Monday, June 2, 2014

Arduino Uno vs TI LaunchPad (MSP430 edition)

[Post today by Ed Smith, Member of the Humboldt Microcontrollers Group]

Today I'm going to compare the well known Arduino platform to a relative newcomer, the Texas Instruments (TI) LaunchPad.

I'm writing this with the assumption that you, the reader, have at least a vague idea what a microcontroller is and are curious about them.

Arduino Uno (Atmega328P)

There are a lot of Arduinos out there (link), we're going to focus on the Uno as it's the gold standard of Arduinos. You can get smaller Arduinos, cheaper Arduinos, more powerful Arduinos, but it all centers on the Uno. This is an Uno (photo from Arduino.cc):


For the full specs, click here.

An Arduino Uno will run you between $25 and $30 depending on where you buy it. This gets you an Arduino Uno only; you'll need to buy a USB-A to USB-B cable to plug it into your computer, so figure $30-$35 for Uno+Cable.

This gets you 20 IO pins, 6 of which do analog input and 6 of which can do PWM output (pulse width modulation). Should your code crash or you have other reasons to need it, there is a RESET button on the board. There is an LED built into pin 13 for easy testing and/or status reports and/or the MCU version of 'Hello World!'. Disabling this LED if you want to use pin 13 for something the LED interferes with requires cutting a trace or de-soldering the LED.

Arduinos have a lot of expansion options. Boards called 'shields' can be stacked on top of the Arduino board to add features. Ethernet? Sure! Motor control? You bet! WiFi? Yup. GSM Cell Radio? Why not? The full list is too large to list here. Many of them can be stacked on top of other shields as well. Arduinos start to look pretty funny after two or three shields are stacked on them, but it's a wonderful ability.

The really cool bit about Arduinos though is the IDE (which stands for something I'm sure, but I don't know what). It takes the opaque (to me, anyway) mess of the AVR C language and turns it into a fairly simple, fairly logical language.

Also worth noting is that Arduino is a separate entity from the company that manufacturers the actual microcontroller chip. Atmel makes the microcontroller chip, then Arduino buys the chip and assembles the single-board microcontroller and sells it.

Texas Instruments MSP430 LaunchPad

Now that we've met the Arduino, let's meet the TI LaunchPad (MSP430). One of the more important differences relates to who makes the MCU on the LaunchPad. TI makes it. TI is big, TI is bloody huge. This means that TI can make a microcontroller development board (what an Arduino is too, as a note) for a lot less money than a relatively small company like Arduino can.
This is a TI LaunchPad (MSP430G):
For full specs, click here.

A TI LaunchPad (MSP430) costs $10 with free shipping from TI directly. That's pretty amazingly cheap. This gets you the LaunchPad, a USB cable (Mini-USB, just like cameras and such) and, in the case of the units I bought in 2012, three MSP430G chips of varying complexity and speed. I'll be talking about the MSP430G2553 in this article, as it is the most powerful of the three and what you officially get with the board. I do not know if you still get the extras now (2014).

You get 16 IO pins, of which 8 can do analog input and 7 can do PWM. You also get a green LED connected to a PWM pin and a red LED connected to a digital IO pin. Both LEDs can be detached from their pins by removing a pair of jumpers. You get a RESET button just like the Arduino, as well as an extra pushbutton that you can use in your projects.

TI puts out an IDE (actually a couple) for programming the MSP430. I have attempted to use it and failed miserably. If you're fluent in C you may have better luck. Thankfully the folks at Energia.ru have ported the Arduino IDE to work with LaunchPads! They've ported many libraries as well, so many Arduino programs can be moved between the two platforms very easily. It's not quite a simple copy/paste as the pin names are different, but it's close. The LaunchPad also has expansion boards, TI calls them BoosterPacks. They add all sorts of features, just like the Arduino shields do. The BoosterPacks do not, however, stack.

Now that we've met the two, let's compare directly! I'm going to list the advantages that each platform has; this is not a comprehensive list.

TI LaunchPad MSP430 Advantages: 
  • Much lower cost. $10+tax and you're set. Arduno's $25+tax+shipping+buy-a-USB-cable can't compare.
  • Better built in LEDs, and a button.
  • Standard header spacing for pins, no odd 0.05" gap to foil breadboard/perfboard projects.
  • Much more flexible PWM controls. The MSP430G2553 uses a 16 bit timer for PWM rather than the Atmega328P's 8bit timer.
  • Very good low power draw features for long battery life.
  • Replacement chips don't need pre-programming/bootloading before working with the Energia IDE.

Arduino Uno Advantages:
  • Massively huge community support. This is not to be under-estimated.
  • Stackable shields mean the sky is the limit for feature expansion.
  • Capable of 40mA source/sink per pin; this is enough for very bright LEDs. The MSP430 LaunchPad caps out at ~ 4mA.
  • Can run at 5V or 3.3V (or anywhere between 1.8V and 5V if you change oscillators). The MSP430 caps out at 3.6V.
  • More IO pins, 20 vs 16. It might not seem like a huge difference, but I have projects where I've used 18 of those pins after using a pin expander to gain 8 more.

Either board is an excellent choice for people just starting out in the microcontroller world. Personally I prefer the MSP430 LaunchPad for most things due to the button, LEDs, and cheap replacement cost if I blow it up. I have many, many Arduinos, however, and use them quite often as well.

It's worth noting that both TI and Atmel make a lot of different microcontrollers. TI makes a number of snazzier LaunchPads, and Arduino makes a number of snazzier Arduinos as well. Many of the LaunchPads are Energia compatible; all of the Arduinos are Arduino IDE compatible of course. Many other Atmel MCUs are also Arduino IDE compatible with modifications/expansions of said IDE.

**********

No comments:

Post a Comment