It’s quite some time now that I started programming with low-cost MSP430 MCUs development kits, I must admit that sometimes I need more RAM and flash but I like this MCU a lot: its advanced clock configuration options, the 16bit Von-Neumann architecture and the low power modes make this MCU an ideal option for battery powered applications and a great development platform for beginners.
Additionally, there is a small but vibrant community on 43oh (see: http://forum.43oh.com/) and Texas Instruments helps a lot to spread the platform giving away free development kits to schools or other not-for-profit organizations.
A few days ago I decided to buy the eZ430 Chronos development kit, it was just 29.99 $ shipped and I needed a watch with altimeter for my mountain activities.
You can see a detailed description of the watch on the official TI page: http://processors.wiki.ti.com/index.php/EZ430-Chronos
Basically, this is an MSP430 development kit in a watch case, it integrates a radio that can communicate with your PC through the provided USB dongle. It means that you can read sensors and send data to your PC and even upload a new firmware through the radio link. On the other hand you can control your PC from the watch by sending commands, for example the watch accelerometer can be used to move the mouse pointer on the computer screen.
In the box
In the box, you find:
In the picture you can see the single items. Please note that the current version has a white PCB instead of the black one.
- the watch
- a screwdriver to unmount the watch
- spare screws
- an USB RF (radio frequency) access point dongle
- an USB FET eZ430 programmer
- some printed materials and fliers
Getting started on Linux
First you need to download the software and documentation bundle: http://www.ti.com/lit/zip/slac388
Inside the package you find a single self-extracting archive that you must launch to unzip everything on your hard disk, by default, the software is installed in your home folder under Texas Instruments sub-folder .
Inside the zip you find:
- user manual
- recovery firmwares
- control center software
- schematics, BOM
- source code of the watch software (with some binary blobs for proprietary parts)
The control center
The control center is written in Tcl/Tk (wow: I can’t tell the last time I saw Tcl/Tk software!) and provides the following functions:
Note: the wireless update do not work out of the box (see next paragraphs).
To start the control center, you will need Tcl/Tk installed (xdotools is also needed to emulate the mouse or bind keys to watch commands):
- accelerometer graph
- mouse emulation (move a pointer on the screen)
- PPT (presentation control)
- time/altitude syncronization
- wireless firmware update
$ sudo apt-get install tk8.5
$ sudo apt-get install xdotool
# Launch the control center:
$ cd ~/Texas Instruments/eZ430-Chronos/Control Center/Chronos Control Center
$ tclsh eZ430-Chronos\ CC\ 1_2.tcl
How to fix wireless update
Due to a bug in the USB Access Point firmware, before being able to do wireless firmware upgrades you need to install a new firmware on the dongle itself, first you must solder the tiny male connector to the AP dongle as shown in page 46 of the user manual (slau292.pdf , in the above mentioned software/documentation bundle).
Then you connect the AP dongle to the eZ430 programmer and you upload the new firmware with mspdebug.
If you don’t have mspdebug installed, you can easily find it in the Energia packages for your Linux architecture: http://energia.nu/download/
The new firmware can be found in the above mentioned software/documentation bundle under ~/Texas Instruments/eZ430-Chronos/Recovery/RF Access Point/MSP430 v1.1 – white PCB , a sample session follows, of course you will choose the firmware version that matches your radio frequency (868MHz is for Europe):
$ cd ~/Texas Instruments/eZ430-Chronos/Recovery/RF Access Point/MSP430 v1.1 - white PCB
$ mspdebug rf2500
(mspdebug) prog Recovery_eZ430-Chronos_AP_868MHz_2_2-white_PCB.txt
Writing 4096 bytes at a000...
Writing 4096 bytes at b000...
Writing 4096 bytes at c000...
Writing 4096 bytes at d000...
Writing 3717 bytes at e000...
Writing 340 bytes at ee86...
Writing 46 bytes at ffd2...
After the AP firmware upgrade, you will be able to use the AP dongle to upload a new firmware to the watch.
Of course, you will want to compile and upload a custom firmware, there are several good reasons to do that: first you will want to get rid of proprietary parts (like heart beat measure) and related menus and last but not least: you are a hacker, aren’t you?
To compile a new firmware you will need the compiler and header files, installing Energia as suggested above is probably the easyest way to have all the toolchain installed.
The good is that there is a nice OpenChronos firmware project, the bad is that there are many forks and it’s difficult to understand where to to start.
Basically, I’ve found two main projects:
Here I’m just telling you what I did in order to get a working firmware, this doesn’t mean that there are other (maybe better) solutions.
I started from this article: http://www.joachim-breitner.de/blog/archives/613-Experimenting-with-the-TI-eZ430-Chronos.html and from his fork: https://sourceforge.net/u/joachimbreitner/openchronos-ng/
Downloading and configuring the software:
$ git clone git://git.code.sf.net/u/joachimbreitner/openchronos-ng u-joachimbreitner-openchronos-ng
$ cd u-joachimbreitner-openchronos-ng/
$ make config
Note: accelerometer is not yet ported do not enable that feature or it won’t compile.
Note: if your compiler is not in the path, you can add the full path to Common.mk as shown below:
### Build tools
CC = $(COMPILER_PATH)msp430-gcc
LD = $(COMPILER_PATH)msp430-ld
AS = $(COMPILER_PATH)msp430-as
AR = $(COMPILER_PATH)msp430-ar
When everything is configured, just type make to see the magic, the new firmware is built as openchronos.txt in the same directory.
Now you can use the control center to upload your new firmware, the whole procedure is well explained in the manual.
If you want to install a new firware over openchronos-ng, please remember that to enter RFSBL you need to follow the instuctions as explained in this blog post: http://sourceforge.net/p/openchronos-ng/blog/2013/02/openchronos-ng-got-a-boot-menu/ and reported below:
When the watch is reset (or applied power for the first time, from battery etc..) instead of going directly into the main openchronos-ng menu. It displays BOOT in the screen. At this boot menu you can do two things: If you press the backlight button, you will enter the wireless updater mode. If you press any other button, you will get the regular openchronos-ng menu.
Want more? In the next post we will say “Hello World!” writing our first module for openchronos-ng: https://www.itopen.it/2013/11/29/openchronos-hello-world-tutorial/