It's been a busy month with the Embedded Systems Conference (ESC). Check out our ESC Webcast archive for more details on what was shown at the show. While there, I picked up half a dozen new kits to check out, so there is plenty more to come over the next two months. I was hoping to have more that one Zigbee kit so that I could do a comparison, but they will not be showing up for awhile. In the meantime, Freescale's MC13191/92 Developer's Starter Kit has been waiting patiently for over a month. Time to take a look at it.
The kit I received included a pair of Sensor Application Reference Design (SARD) boards (Fig. 1), an HCS08 Code Warrior CD, and a CD for the kit. The latter had a host of documents, but the Zigbee-specific code had to be downloaded from the website. Source code for the PHY interface was available, while the MAC protocol stack was in library form. Check with Freescale for availability of the full source. It should be available as it becomes more refined.
The SARDs contain an HCS08 microcontroller that interfaces to the MC13192 2.4-GHz Zigbee transceiver chip via a 4-wire serial peripheral interface (SPI) (Fig. 2). It also contains sensors that can be accessed by the MCU. The SARDs are programmed with a demo application. It's possible to change the application using the background debug module (BDM) interface, although you do need a BDM emulator. The kit includes 9-V batteries and power supplies for both SARDs.
Out of the box, the kit lets you run a demo application on a PC that connects to a SARD via a serial port. The SARD communicates with its sibling via Zigbee. Remote access to the on-board sensors, LEDs, and switches is possible. The Triax SMAC Accelerometer demo is the default test. In this case, the PC application displays the information from the accelerometers on the remote SARD. It tracks X, Y, and Z movement and displays the input to the HCS08's 8-bit ADC. Tip and rotate the remote SARD, and you see the results on the PC. It also tracks the G force.
Moving past this fast setup demo takes a bit more effort. Installing Code Warrior is easy, and downloading the additional support software and demo app from the website just takes some time. Getting an application up and running is a bit more of an exercise. It is easiest to modify the SARD connected to the host, leaving a well-defined and tested application running on the other. Once you are comfortable using the stack, you can get a little more ambitious and start changing the application on the remote SARD. In this case, it's handy to have a pair of BDMs. Otherwise, as in my case, it's a matter of swapping things around for flash programming and debugging purposes.
The stack interface is slightly different from a TCP/IP Ethernet or even an 802.11a/b/g stack. It would help to have more detailed example code. However, that will come eventually.
Definitely get a pair of BDM units. It will make the evaluation and future development work significantly easier. The SARD is a great way to get started with Zigbee. It has enough peripherals to generate and utilize the communication link, and the MCU has enough flash memory headroom to put a substantial application in it. The boards provide a way to test functionality and range, but they are not as great when it comes to power-consumption estimates. There is just too much on there to get a good idea if power is a critical element. A custom board will be the only true testbed.
Freescale is offering a one-stop shop for Zigbee. Its HCS08 processor family has the free Zigbee stack software and it is mated to Freescale's Zigbee transceiver. The low-power combination is likely to be the standard for most Zigbee applications for the next few years until a single-chip solution that combines the MCU and Zigbee transceiver is available.
Overall, the kit was a good start for me when it came to Zigbee. There are many things that need to be addressed, from security to mesh networking, but for now you can get all the basics with this kit.
The trip to the Embedded Systems Conference was an experiment this year. Instead of lugging around my laptop, I popped a new Seagate Pocket hard drive in my bag. The weight and size difference is significant. The hope was to find a PC to plug it into for Internet access.
I have always carried one or two USB flash memory sticks with me for exchanging data, but even my 1-Gbyte stick was a bit small for what I needed. I planned on taking everything I normally had on my laptop, including my browser, e-mail, graphic editing tools, and page-layout applications. That's a pretty hefty package, but one that fits on a 5-Gbyte hard drive with room to spare.
I used Portable Thunderbird for my e-mail and Firefox for my browser. Using my own applications has a number of advantages, including having settings that move with me. No more worrying about cached data being saved on a PC. There is still a potential problem with viruses and Trojan Horse programs on the host, but I have yet to come up with a solution short of booting from the USB hard disk. Although that's a viable option, network configuration can be a pain.
The results were good overall. The biggest problem was getting a USB 2.0 connection. Some of the PCs I had access to included USB 1.1 external connections that were very slow. I was able to get onto a PC, download e-mail, and do some quick RSS browsing in a few minutes.
If you will have semi-regular access to an Internet-connected PC, then this approach is definitely viable. The weight and cost are right. Of course, it's difficult if you need to give a presentation. These days you are expected to bring your own laptop. In the meantime, I am carrying the Seagate Pocket hard disk.