The XBee already provided us with the needed ad-hoc network structure. Additionally, several other developers have documented their experience using XBees in conjunction with Arduino, allowing us to skip some common development pitfalls.

Examples of other Arduino – XBee projects are the ArduinoXbeeShield, created by Arduino together with Libelium, who use the board in their SquidMotes, a predecessor of the WaspMotes. Both the XBeeShield and the WaspMotes are considerably larger than our board design for the SenseStage MiniBee. Another example is the Arduino XBee Interface Circuit (AXIC) , which is a do-it-yourself solution. BlushingBoy sells the MiniBee R3 and MicroBee R3, which can be used together with an Arduino Mini. More recently the RFBee has come out combining an RF radio with an Atmel chip, which is Arduino and XBee compatible. Also recently, the Arduino Fio provides an Arduino with XBee footprint.

For our usage we have found the following:

  • The XBee Series 1, 2.4 GHz, are the most useful, both in the regular version and in the Pro version
  • Problems with the Series 2 are that they don’t support the same kind of mesh networking
  • The 900 MHz range XBees have an altogether different set of firmware, which requires a different configuration that we have used thusfar
  • When the Arduino starts up, the XBee should be in sleep mode, as otherwise serial data communication already happening in the mesh network, may interfer with the startup of the Arduino (it will think it is receiving new firmware through the bootloader). For this reason, we are using the Pin Doze option of the XBee, and wake up the XBee as soon as we are starting up the firmware.