Hardware Development: ez430-rf2500

Texas Instrument Development kit

ez430-rf2500

Some weeks ago, I purchased a small wireless radio development kit from Texas Instrument: a ez430-rf2500. It's composed of two identical board containing a small processor and a radio transceiver in the 2.45GHz band. Also included, a battery pack with an adapter board to connect one of the two radio boards and a USB based debugger to reprogram and watch the execution of one of the two boards.

TI provides a limited version of the IAR compiler with the kit. The open-source GNU gcc based compiler works (almost) flawlessly with the MSP430. Annoyingly, the USB debugger interface can only (as the state of February 2008) be used from a Windows machine! I even experienced problems related to the serial port converter under Windows 2000 (stops transmitting after a few lines), when it works under Windows XP. On the other hand, the gcc compiler and the debugger can be run on almost any OS (I use Mac OS X as one of my development system!).

RF2500 test application - raw transceiver

The raw transceiver test application is a very small firmware written to test the transceiver chip. It can be used to evaluate the transmission range of the modules depending upon some settings (data whitening, FEC). It' doesn't use any SimpliciTI facility, but directly access the transceiver at register level.

The test application will try to send a fixed size packet as soon as it received one with a valid CRC (green LED flash). If no packet is received, it will try to send one after two seconds (red LED flash). This way, the same application can be used on both nodes to evaluate the range of the transceiver. By pressing the button, the application switches between different transceiver settings (nothing, only data whitening, only FEC and both). The mode switch is displayed by a flash on red and green LED. Of course, both modules should have the same settings.

The application compiles with a makefile by using msp-gcc. Invoking make run will download the software using msp430-gdb and gdbproxy.

SimpliciTI Wireless monitor demo using msp-gcc

The IAR kickstart edition provided with the evaluation kit is limited to 4KB, but the library requires up to 10KB, which prevents the compilation with the kickstart. Thus TI provides the library as pre-compiled binaries.

Converting the library to msp-gcc wasn't too difficult as most of the compiler specific is located within a single file (bsp_msp430_defs.h). 

The biggest caveat is a "feature" of msp-gcc which is able to optimize fixed size and small memcpy calls to direct load and store through registers. The compiler uses 16 bits load/store when possible, which leads to problems if the addresses are oddly aligned. Unfortunately, some elements of the structures which are copied by the use of  are located on odd addresses or within structures with an odd amount of elements stored as array. The problem can be solved by aligning the structures or preventing the compiler to optimize the calls by adding the -fno-builtin.

The archive RF2500_WirelessSensorMonitor_1.02.tgz contains demo source files, which seem to be released as freeware. The library itself is under a more restrictive license, thus should only be downloaded from the TI web-site. In order to modify the library, apply the simplicity-1.0.3.patch file with the usual patch utility. Before compiling, a folder containing a space should be renamed (or linked), namely Components/simpliciti/Network applications to Network_applications.

The Accesspoint sample can be built by invoking make in the Accesspoint directory. The code can be uploaded through msp-gdbproxy by invoking make run. The path to the library source can be adapted by changing the SIMPLICITI_PATH within the Makefile. The same applies to the Endpoint demo.