New Project – Xbee Mesh Network and Data Collection

I needed a project to dabble and distract me in a constructive manner.  The goal for this project is to build a low power data collection network to sample  slow changing analog data such as temperature, ambient lighting, among other things. The constraint given was to use XBee Series 2,  run in API mode, and operate on batteries.

I purchased 5 XBee Series 2s to experiment with. I used X-CTU software to configure the Xbee chips as per the last project I did. The difference this time is I did not want to use AT mode but API mode to give me more control over XBee interactions from the Arduino host software. The  project context is as shown below.

Arduino to-be

The XBee USB Explorer was used and I soldered break away pins and a push button switch between ground and reset.   When I first load an XBee, I select the proper port with default settings. Query the device and you should get a dialog box pop up as shown below.

xctu read new

My XBees don’t come with the latest firmware and perusing the web about which is the latest for the Series 2 indicated that that the ZB supersedes the ZNet stuff.   This is where the push button approach comes in and described here. I picked the XB24ZB firmware with the correct device type. I included 1 Coord, 1 Router, and 2 End Devices. I used a PAN ID of 47 to setup the devices and ensured that I included that in my firmware configuration.

x-ctu default

I  get the following error and that is where the push button wiring that connects reset to ground comes in. I just push the switch for a couple of seconds, release, then upgrade continues. I has something to do with the new firmware and default sleep mode and described here.

x-ctu programmingOnce the new firmware is installed, I head back to the PC Setting tab and select API mode as shown below and set the include escape character as well.

x-ctu api

Now I see the the latest firmware upgrade.