My little XBee network has risen to 12 nodes and started having trouble. Seems my love of broadcast mode finally did me in.
I like broadcast mode because you can monitor it by simply plugging an XBee into a laptop and watching what is going on. However, when you get a couple of nodes that have to be repeated because of distance or intervening walls, the traffic jumps up radically. The little devices start starving for air time and drop packets that then have to be resent which makes it worse. This means I had to go to actually addressing the traffic to specific destinations to solve the problem.
Doing that, I lost the ability to see the interactions of the various devices and was at a loss on how to monitor things to eliminate the eventual bugs that were bound to show up. I searched the web and got one of those Freakduino Chibi boards. For those of you that haven't seen them yet, they're an 802.14.4 radio on an arduino look alike board (well mostly). The boards can be put in promiscuous mode so they will see all the traffic in range. This was a blessing from the mighty electron for my network.
There's some code on the site to hook it into Wireshark, but I couldn't get that to work reliably, so I rolled my own. I just took the incoming packets and filtered by address to watch a particular node (or two) and was able to see everything one of the XBees was sending . So, I could watch a node that was flooded by sending its own data plus forwarding stuff from other nodes farther away. A couple of my XBees were almost constantly transmitting simply because they became critical path devices.
After a little cleanup and some addressing, the network settled right down and is working fine. Of course, I'll be encountering problems in the future as I add other stuff, but at least now I can see the darn traffic.
So, you folk out there that wonder what is actually going on between your little radios, here's a possible solution.
(full disclosure) I don't have any affiliation with Freakduino at all other than loving his Chibi board.