Xbee Series 1 vs. Series 2 vs. Digi’s new names for things

Just some musings on some things I worked out:

Maxstream, now Digi, makes two versions of the Xbee radio modules.  Series 1 are 1mW or 60mW modules (depending on regular or Pro) with 100m or 1600m range.  Series 2 are 2mW or 50mW (120m/1600m).  However, their software is quite different.

Series 1 modules are peer-to-peer, they join a PAN and ship the data around, all the firmware is the same.  Series 2 modules are coordinator based mesh networking– one of the modules is the PAN coordinator, with different firmware.

Anyway — I had originally bought two Series 2 routers and one Series 2 coordinator.   For some reason, the coordinator died.  I finally got around to creating an interface to let me reflash the firmware on them, and now have working 2mW radios.  The trick is that you actually need a lot more serial protocol than is frequently presented — I got Sparkfun’s FT232RL breakout board, which includes the DTR and RTS pins needed to interface to it.  I also picked up their xbee breakout board.  A little soldering, and all is well.

I’m running the X-CTU software in parallels on my mac, and for some reason the standard guard times of 1000ms just weren’t working, I brought it up to 1200ms and it was able to talk to the radios just fine.  Reflashed the firmware (and a bit easier configuration to boot) and all is well.

Second bit of things is the configuration for a point-to-point config:

  • Choose your own PAN (you never know when someone will be messing with an xbee in your neighborhood)
  • For something like a controller, set Packetization timeout to 0 — otherwise you’ll end up with a random timeout between when you send your bytes and when they get sent.  This isn’t a problem if you’re always sending data, but if you’re doing something realtime you’ll want Packet to 0.
  • By default, the Series 1 radios broadcast, Series 2 Routers send to the Coordinator, and the Coordinator broadcasts.
  • Unless you really need broadcast messages, just have each radio send the packet to the other radio, using the 64-bit serial number printed on the bottom of the xbee.  You can set the radio to have a “common name” if you need to programatically change which radio it’s talking to (or replace a radio module without reprogramming all of them), but with only two end points, I think it’s just easier to use the 64-bit number.

Leave a reply