March 14, 2011

Arduino, Launchpad, and Cortex M0

I was reviewing my posts over the past few days and noticed something that I found quite striking. In this post, I compared the ATMega328 chip, found in the Arduino, against the MSP430 chips found in the TI Launchpad. Note that the MSP430G2211, which is a stripped-down microcontroller with little memory and few peripherals, and is the least expensive of the three chips in the table, is priced the same as the NXP Cortex M0 LPC1111 that I mentioned in this post.

Think about that. For the same price as a 16 bit processor with 2K Flash, 128 bytes of RAM, and a single timer running at 16MHz, you could have a 32 bit processor with 8K flash, 2K RAM, I2C, SPI, a UART, an ADC and four timers running at 50MHz.

Wow.

Why use such a small 16 bit processor when a much more powerful 32 bit processor can be had for the same price? Honestly, unless you're building a device that needs to run for years on batteries, I don't know why you would. (I haven't reviewed the M0's low power modes to know how they compare against the MSP430.)

Now admittedly, I'm just a hobbyist and don't know much about selection of parts in industry. There may be compelling reasons to choose the MSP430 over the M0. I'm just really struck by the vast difference in two chips that have the same price. (Okay, to be fair, if you get the MSP430G2211 in the QFN package to match the LPC1111, the price does go down to $1.93. But still... that 10 cent difference gets you a huge difference in performance and capabilities.)

The Arduino vs. The Launchpad

Currently, there are two processors/platforms that are getting a lot of attention in the hobbyist community. The first, of course, is the Arduino.

The second is the TI MSP430 line of processors, particularly the Launchpad platform. These have become popular because TI has been practically giving them away. At $4.30 including shipping, it's the least costly microcontroller development platform that I'm aware of.

In my video yesterday, I had some criticism for the MSP430. Granted, NXP's giveaway certainly incented me to be derogatory to any 8/16 bit micro that I could find, but in all honesty, the Launchpad doesn't seem to have a lot going for it after you get past the price.

Let's look at some of the key differences between these two platforms. (Note that two processors ship with the Launchpad; you can swap between them because the processor is in a socket):

SD CardSTM32F4
D2 (N/C for SPI)PC10
D3 (or CS#)PC11
CMD (or MOSI)PD2
CDCard detect signal; not used in this demo.
CLK (or SCK)PC12
VCC3.3V
GNDGND
D0 (or MISO)PC8
D1 (or IRQ)PC9
WPWrite protect signal; not used in this demo.

(Note: The table above was lost on 11/18/2011 after my site was hacked and I rebuilt it. I was unable to find the original table data.)

You can see that the ATMega has the bells and whistles that the MSP430 doesn't. Granted, you're going to pay more for one of those chips, and when you're making hundreds of thousands of devices, price is certainly important. But I just don't get the whole MSP430 proposition, especially at the low end. Why put a 16 bit ALU in a device with only 128 bytes of RAM?

The one thing that the MSP430 does really well is save power. With six different low power modes, the MSP430 can draw less than a microamp while idling. That's important for battery powered devices but not really something that is generally important to the hobbyist community.

To be fair to TI, the MSP430 line does include more capable processors than those that ship with the Launchpad. I tried to find one that would be comparable to the Arduino's ATMega328 and it looks like the MSP430F157 is close. But to get the PWM, I2C, SPI, UART, and A/D you're going to have to go to a 64 pin surface mount package and run at a top speed of 8MHz.

I just don't get TI's strategy on this. Packaging the low-end MSP430 devices into the Launchpad, pricing it where they did, and even using an "Arduino-esque" footprint all strongly suggest that TI is going after the hobbyist community with the Launchpad. They had to know the comparisons to the Arduino would come. Why, oh why, did they ship the Launchpad with such an anemic processor? I just don't get it. The only thing here that would attract a hobbyist to the Launchpad over the Arduino is price. TI, that's just not enough. The Arduino has an entire hobbyist ecosystem up and running and providing all kinds of support to the community.

My prediction is that the vast majority of Launchpads that TI has shipped are going to sit on shelves, gathering dust, while the more expensive (much more expensive, on a relative basis) Arduino's are going to continue to be the centerpieces of innovative, exciting projects from the hobbyist community.

I do have the Launchpad in my hands, and because I have it, and others have it, I will use it for future projects and tutorials. But frankly, I can't think of any applications that would have me sitting at my desk, trying to find a suitable processor, for which the MSP430G2231 would be the best choice.

What are your thoughts?