PlatformIO is very interesting project that aim to solve very important problem of configuring deployment environment for embedded systems. IMHO good approach is to focus on modularity (various IDE can be used, even Vim) and simplicity (in best case 2 command should be enough to deploy first code).

Recent years we have explosion of bootstraping applications (ie.vagrant, puppet). Most of them seems to follow git-like command line interface and getting a lot of attention from programmers community. PlatformIO is promising project for all Embedded Software developers who in the era of IoT came from Linux systems.

It take some time to try PlatformIO using real hardware. Luckily on my desk there are 2 supported boards gathering dust, which I would like to try in this post.

msp430

MSP-EXP430F5529LP on the left and MSP-EXP430FR5969 on the right.

Installation on Debian

I highly recommend using virtualenv for any custom python application.

At the beginning I simply follow Getting Started page.

What configuration I should use for my boards ?

So it looks like 5529 have 2 flavours. According to Energia 16MHz option is for backward compatibility. Let’s use recent 25MHz config.

PlatformIO first ask if we want auto-uploading successfully built project, so I answered y. Then inform about creating some directories and platformio.ini file. After confirming toolchain, downloading starts.

Problems with MSP430F5529LP

Lack of main.cpp

If you run PlatformIO without any source code in src directory you will get error message like this:

Of course adding main.cpp to src directory fix this issue. As sample code you may use MSP430F55xx_1.c

libmsp430.so: cannot open shared object file

Next problem is with libmsp430.so which is not visible by mspdebug, but was installed by PlatformIO in $HOME/.platformio/packages/toolchain-timsp430/bin/libmsp430.so.

Running:

before calling platformio fix problem. For some users even better would be to make libmsp430.so accessible system wide:

tilib: device initialization failed

If you didn’t use your MSP430 for a while there can be problem like this:

Fix for that according to error log should be like this:

But this can cause additional problems that I reported here. I finally managed to fix problem using hints from Agla Blog.

Because gcc-msp430 was removed from Debian Sid we have to use compiler delivered by platformio to test blinky example from Agla blog:

Problems with MSP430FR5969

I experienced very similar problems with FR5969. Unfortunately above procedure led me to:

Building libmsp430.so

This probably means that default libmsp430.so, downloaded probably from Energia project, doesn’t support FR5969. So I tried build libmsp430.so by myself:

This improved situation, but give:

I’m not sure why this message appear, but when tried 2nd time I finally get debugger prompt, what means that process finished correctly and we can access FR5969.

Final test

MSP430F5529LP

Please download MSP430F55xx_1.c and save it as src/main.c. Then run:

If you see blinking red P1.0 LED1 then everything works as expected.

MSP430FR5969

Please download msp430fr59xx_1.c and save it as src/main.c. Then run:

If you see blinking green LED2 then everything works as expected.

Summary

I hope that this post was useful for you and you learn some things. If you feel that this knowledge was valuable please share, if you experienced some other problems please let me know, so I can improve content of this post.