Ruben Laguna's blog

Sep 6, 2008 - 2 minute read - Comments - arduino electronics firmware shield upgrade xbee zb zigbee

Upgrading Xbee Series 2 (XbeeShield) to Xbee ZB with Arduino

As stated in this digi page is possible to upgrade/convert a Xbee Series 2.5 to a Xbee ZB (with full standard Zigbee capabilities). Xbee Series 2.5 is just another name for the forme Series 2, so the upgrade procedure is exactly the same.

The procedure if fairly straighforward

  1. Remove ATmega168 from Arduino board

  2. Insert XbeeShield into Arduino

  3. Change *both *jumpers in XbeeShield to USB

  4. Connect Arduino to the computer using the USB cabke

  5. Download the ZNet 2.5 to ZB Conversion Kit here

  6. Start the X-CTU 5.1.4.1 software

  7. xbee01

  8. Select the proper COM port (should be Usb serial port (COMX))

  9. Click on Test Query. The following dialog should appear indicating that X-CTU found the Xbee in that COM port and giving you some information about the Xbee module version, etc. In my case it was a ZB24-B with 1220 firmware

  10. xbee02

  11. Go to the Modem Configuration tab

  12. Download the ZNet 2.5 to ZB Conversion Kit here if you didn’t do it earlier

  13. Uncompress the ZIP

  14. xbee11

  15. Select the “Download new versions” button.

  16. xbee12

  17. Press the “File” source button

  18. Select the xbee_zb.zip file to add the firmware set to X-CTU

  19. Back to the Modem Configuration tab. Select “Always update firmware” checkbox and select XB24-ZB (or XB24P-ZB if you have a PRO module) and the function set that you want for the module (router, coordinator, end device, each one in two differente flavor AT or API). In my case I selected XB24-ZB and COORDINATOR API. Check the product manual to find out about API and AT modes and the different firmwares for each set

  20. xbee03

  21. Press “Write” and X-CTU will start uploading the firmware to the module

  22. xbee04 xbee05

  23. The firmware upgrade is complete

NOTE: Make sure that the configuration for DIO7 is DISABLED as this XBee pin is connected to the RST in the Arduino. If you leave the default option (1 - CTS) random resets after a couple of seconds may occur+

NOTE 2: Be aware that putting XBee to sleep will also raise DIO7 and produce and Arduino reset. See this other post on XBee sleep and Arduino reset