eZ430-Chronos and Linux
In an earlier blog I wrote about the TI eZ430-Chronos. This is a $50 development kit with a twist. Instead of a generic target board, you get a wristwatch. It's more of a "Casio-style sports watch" than a Rolex, but inside is a fairly powerful MSP430 CPU and I/O including a 3-axis accelerometer, a temperature sensor, a pressure sensor, and a wireless connection back to a PC. You also get a USB programmer, and the USB receiver for the watch. Use coupon code HALFMSPTOOL (don't know when that expires) and the price drops to under $25.
I've had one of these for a bit and finally got around to playing with it. I thought you might be interested in what I found out. TI ships two "evaluation" development tools with the watch -- IAR (limited to 4K) and CCS (limited to 16K). I've used CCS before on different CPUs and I wanted the higher limit, so I installed that in a virtual Windows box (I run Linux and none of these were available for Linux as far as I could tell).
The watch firmware is included as source code, but its too big for the demo version of CCS to compile. To work around this, TI provides some "drivers" as precompiled libraries. That's great, but it looks like they have a version mismatch on the libraries. So if you reflash the watch with the included CCS project it behaves erratically. The worst effect was it wouldn't let me get into the wireless reflash, so I had to open the watch and reflash it while it was connected to the PC.
I tried to resolve the issue for a bit, but decided instead to switch to the OpenChronos firmware. This is essentially the same as the TI code, minus some of the proprietary bits. You can build it with the mspgcc port of gcc. Simple, right?
Not quite. The mspgcc tools haven't been updated lately so there is a fork (mspgcc4) that has more recent tools. Their most recent update only had Window binaries, so I stuck with Windows for now. The compiler did its job on the OpenChronos source. I was even able to make a simple change to the watch firmware.
Of course, if I'm using gcc, why am I running Windows? I got the previous version of gcc (there were binaries for Linux) from the web site. Unfortunately, it did not know about the processor on the watch which is apparently a newer member of the MSP430 family.
Well, I hated to build gcc. I've done that before for other processors and it has always been a pain. But I finally bit the bullet. As it turns out, the MSPGCC4 page has a build script that goes out and downloads what you need and does the build and install very painlessly. Once the build completed, I was in business.
The TI site has both Linux and Windows versions of the "control center" that lets you work with the watch. The Linux version is written in TCL and worked fine to download code to the watch, set the time, and even use the watch as a mouse.
I haven't tried debugging yet, but that looks like another problem. There is a gdb proxy. Maybe I'll get lucky and it will work on 64 bit Linux. Maybe.