Tag Archive for 'msp430'

Using the TI MSP430 LaunchPad with Ubuntu 10.04

TI MSP430 LaunchPad

The Arduino and the massive community around it have made AVR the de facto standard for hobby microcontrollers, despite the aloofness of Atmel to take advantage of it.  TI apparently decided that they wanted a piece of the pie, so they took a peek at the Arduino recipe and are now selling something that looks a whole lot like it for a fraction of the price.  The TI MSP430 LaunchPad ships with a MSP430G2231 and a MSP430G2211, microcontrollers sourced from TI’s Value Line.  The first, with I²C, SPI, ADCs, PWM, and UART, is a capable Arduino replacement for physical computing, though the latter chip is limited mostly to GPIO.  Unfortunately, both are a bit anemic when it comes to Flash and RAM.  TI’s roadmap shows promise regarding this issue.

The big problem though, is software.  The appeal of Arduino is largely that it has a dead simple to use, cross platform IDE, running on the well maintained and supported avrgcc and avrdude.  TI’s solution, on the other hand, is a set of two Windows-only, registration-required, code-limited, IDEs.  Linux and Mac users are left a little high and dry.  Luckily, there are some projects, new and old, that make it work out.

You can follow the instructions at mylightswitch to install MSPGCC4 and mspdebug, neither of which is in the Lucid repositories.  MSPGCC is an MSP430 port of the GCC toolchain, complete with GDB.  mspdebug lets you program and erase the flash on the LaunchPad, among many other things.  There are some usage instructions for it at Ramblings and Broken Code.  True to its name, the guide is partially broken.  To use the LaunchPad with mspdebug 0.9, you have to specify the driver instead of using -R.  In our case, we want to use the following:

mspdebug rf2500

Ideally, we would be able to use the uif driver that the eZ430U and other TI development boards use.  Unfortunately, the LaunchPad is incompatible with the firmware used with the ti_usb_3410_5052 module that comes with Linux.  There is a really amazing three part series on this at Travis Goodspeed’s blog.

While it is indeed possible to use the LaunchPad and MSP430 devices in general in Linux, I’m going to stick with the trusty AVR/Arduino combo for now.

A Failed Hack: Boogie Board LCD Writing Tablet

Boogie Board Internals

Sometimes a project is just not meant to be.  I picked up a Boogie Board LCD Writing Tablet when they went on sale to satiate my gadget addiction.  I didn’t expect it to be hackable, as it is little more than a glorified chalkboard, but I figured I’d give it a try.  My goal was to be able to lighten what was drawn on the screen, rather than erase it completely, to allow for the possibility of greyscale, or greenscale in this case.

I cracked it open (literally, I didn’t realize there were screws under the sticker), and found a more complex machine than I expected.  The brains of the tablet are an MSP430F2001, one of the cheaper microcontrollers in TI’s MSP430 lineup.  The header on the left hooks up to the programming pins, so anyone out there with a GoodFET might want to take a look at writing new firmware for it.  Unfortunately, I didn’t have one.

The waveform below captured between the two big pads, TP1 and TP2, shows how the cholesteric LCD refreshes.  On pressing the button, the power circuitry on the left generates 36v for 400ms, followed by 18v for 800ms, and feeds it to the multiplexer on the right.  The MSP430 toggles the input pins on the mux to switch that input voltage back and forth between the two pads in 150ms pulses, flashing the screen green and black and clearing what was drawn on it.

Boogie Board Waveform

Unfortunately, while lifting the PCB up to see the traces on the bottom, I snapped one of the connections to the LCD, rendering the tablet useless.  Hopefully someone can pick up where I left off, modify the firmware on the MSP430, and see if its possible to make the LCD go only partway cleared by using shorter or fewer pulses.