MSP430G2231 Software UART

Software UART example for MSP430G2231 using mps430-gcc on Linux

This example shows how to use software UART on the TI Launchpad with a MSP430G2231 MCU (which does NOT have a hardware UART). With the code from Nicholas J. Conn, Joby Taffey and Colin Funnell I was able to create a half-way-decent software UART.  Thanks Nicholas, Joby and Colin! So basically my job only was puzzeling things togehter and wrap them in a msp460-gcc project.

Update: I made a second example based on the one TI has in it’s examples. It is based on Timer_A for RX and TX. You can find that example in the „timer-a-uart“ branch. Regarding transmission of the first byte this works smoother for me (the other example eats the first byte). I also used a user defined callback for echoing the inputted chars, and made the main loop just blink the green LED. Feels a little like multitasking 🙂

(Anyway, softuart sucks)

I am not going into detail about how it works, since Nicholas already did a great job doing so :-).

Note: If you have an MSP430 MCU which does support hardware UART (e.g. the MSP430G2553), have a look at this example.

1. Get the sources

You can download the sources on github:

git clone

Note: If you like to use the „timer-a-uart“ based example, switch to that branch by issuing:

git checkout timer-a-uart

2. Compilation

Note: This project is written for msp430-gcc on Linux (I used v4.5.3 which is available as package on ubuntu). For flashing the „mspdebug“ tool was used (also from the Ubuntu package).

To compile the source just issue a:


This builds the firmware in the „bin“ subdirectory in various formats.

3. Doxygen Docs

If you installed doxygen on your system, you could generate the HTML-based documentation by calling:

make gen-docs

This will create the documentation under „doc/gen/html“.

4. Flashing

To flash the firmware to your Launchpad you could use the „flash-target“ make target:

make flash-target

5. Usage

Connecting your Launchpad should give you a new serial device „/dev/ttyACM0“. Connect to this port at 9600 bauds – e.g. by using screen:

screen /dev/ttyACM0 9600

Every character you type will be echoed then, surrounded by square brackets.

1 Comment to MSP430G2231 Software UART

  1. 29. Juni 2012 at 11:25 | Permalink

    Great job!! nice and clean.

Leave a Reply

You must be logged in to post a comment.