Well, I left it kind of up-in-the-air on exactly how I did it. Basically, I used the examples that Akiba of Freaklabs released for various functions and created a sniffer of sorts. This is necessary because the XBee only sends out the serial port data intended for the particular radio module you're plugged into. That's what makes broadcast mode so useful, you can see all the traffic and chase problems. With a Freakduino Chibi board, you can monitor all the devices on your network at once, but that is way too much information to try to wade through. By setting the Chibi board to promiscuous mode and then writing code to filter by address, you can watch any node in the network to see what is going on with that particular device. This makes it possible to see its traffic even though you aren't using an XBee.
Here's the code I came up with:
A couple of things to keep in mind. The Chibi board is only running at 8 Mhz, so it can't keep up with unlimited traffic flying through the air at 250Kb forever. If you spend too much time in the code checking and decoding, you'll miss packets. The Chibi library sets a buffer size of 1024 to handle packets being received to help with this, but you'll have to reduce this size because the MCU only has 2K of ram to begin with. I point this out in the code. The maximum size of a packet is 127 bytes, so make your parsing buffer longer than that. I print the maximum packet length in the code above, and have never seen a packet larger, so it appears the library is working fine for separating the packets. I also put a routine in the code to monitor memory usage. Use this to keep track so you don't run out with the various buffers and such.
Here's a sample of the output using the serial monitor from the Arduino IDE: