Wireless ZigBee targets distributed, low power applications that typically include sensor and control systems from lighting to high end asset tracking. Single-chip ZigBee platforms tend to be programmed in C or C++, but putting Java on one of these small platforms is a challenge. It is also one that Sentilla has met and exceeded with its Perk JCreate (Fig. 1) modules.
The JCreate modules run on AAA batteries. They contain a 16-bit Texas Instruments MSP430 microcontroller. It has a built-in accelerometer and external connections for the on-chip ADC and digital I/O ports. The two connectors are compatible with Phidget modules. The JCreate module has eight on-board LEDs.
The MSP430 is effectively hidden by Sentilla’s Java ME CLDC 1.1 platform. The kit is available for $199; individual modules are $90. Contact Sentilla for chip level module pricing.
Using Java has a host of advantages: from a more robust and reliable development environment to portability that C/C++ cannot match. Java’s used would be more common if it were not for the difficulty of getting Java to work on the tiny platforms normally associated with ZigBee. Java support of 32-bit ZigBee platforms is comparatively easy, but these chips tend to be in ZigBee gateways.
The MSP430 was chosen by Sentilla as the host of its portable device. It is one of the largest available, but it implements a complete Java environment, including a real time garbage collector. It would be very nice if this platform were generally available for MSP430 users, but for now it remains a host for ZigBee.
The microcontroller is paired with TI’s CCPerk 802.15.4/ZigBee transceiver. The Java environment effectively hides this fact by delivering standard Java communication support.
The development kit comes with a pair of battery powered Perk. The modules come with a combination of built-in sensors and LEDs and expose Perk interfaces for custom work. A USB ZigBee dongle provides a link to the PC development platform.
It’s All In The Software
Sentilla’s development suite is based on Eclipse. Eclipse was originally a Java development environment that has since expanded to support everything from C to Python. It is possible to utilize a stock Eclipse installation and add the support supplied by Sentilla but this is a non-trivial task. Most developers are likely to install the custom Eclipse package that accompanies the development kit. But this is such a trivial task that it is almost not worth mentioning.
If you have used Eclipse and Java already, then short of connecting the development system to one of the wireless modules, you are ready to go. Write your ‘Hello World’ program, or grab one of the many sample applications, download, and run. Debugging is great compared to most ZigBee development alternatives. The USB-based gateway provides a seamless interface to the wireless network.
So will Sentilla’s solution take the ZigBee world by storm? Probably not. But that is due more to the entrenched C/C++ tools and platforms already in use. Likewise, Java’s requirements cannot be met by a large number of ZigBee platforms.
Still, if the module is suitable for your application then a significant amount of development time can be saved using this approach. Likewise, its robust download/update facility eliminates the need to develop and manage these chores.
Translation of an application from the development modules to a custom device should be relatively easy since the deployment module contains everything except a power supply.
I really liked the module design and the ease with which software development proceeded. Using Java with the JCreate was like working on the PC, although the application runs a bit slower than on a quad core Athlon. But that’s to be expected.
Moving code from one Java platform to another is effectively write once, run anywhere. I often check out code between a pair of communicating Java applications on different virtual machines running on the same PC when the JCreate modules are not handy.
Looking for more? Check out Sentilla Labs (labs.sentilla.com) for a host of sample applications.