Digi XBee ZB Series 2.x
19 January 2012 by martin
I now have a couple of Digi XBee ZB Zigbee wireless modules. I really like the idea of these little wireless modules, compared to equivalent WiFi modules they are very low powered, cheaper and they can be used to collect simple sensor data without an Arduino. I can feel an iDoorbell v2 project coming along soon!
There are basically two different types of Digi XBee modules available, the series 1 and the series 2 (which includes 2.5). From what I read the series 1's are much easier to work with, however I bought the latest series 2.5 ZB version not the series 1. I thought I'd share how I managed to get these little modules talking to each other.
The Zigbee protocol requires at least one unit to act as a network Coordinator but out-of-the-box they both came configured as Zigbee Endpoints. It took a bit of head scratching to figure out how to make one Xbee a Coordinator. Turns out you have to download some software from Digi called X-CTU and use it to upload a suitable Coordinator firmware to one of the units. The X-CTU web page says that 64-bit operating systems are not supported but it works fine on my Windows 7 64-bit laptop. X-CTU is actually a really useful piece of software and makes it very easy to work with the XBees.
After I uploaded a new Coordinator firmware to one of the modules they just worked. I currently have the Coordinator hooked up to a Windows PC using the Sparkfun USB Explorer and the endpoint sitting in a (awesome) Ciseco Xbee shield on the Arduino. I have a small program running on the Arduino that continually generates messages and prints them to the serial port. The messages magically appear in X-CTU on the PC.
My plan now is to build a Zigbee/WiFi bridge using an Arduino, an XBee and a WiFi shield. The bridge will connect to the MQTT broker and publish received data to different topics depending on the XBee sending the message. iDoorbell v2 will use just an XBee (no Arduino required) to send a message through the bridge onto the MQTT broker where a small script will subscribe to the appropriate topic and react by sending a "there's someone at the door" message through Prowl. Very cool!