Posts Tagged ‘xbee’

X-Bee Madness

March 17, 2010 Leave a comment

We’ve using X-Bee modules to send information and commands between the vehicle and a laptop. After we added all the sensor information and other feedback to Proto-2, I started to see communication drop outs when attempting bi-directional comm. Since it is a stop-gap mechanism for test and debug, I wasn’t too worried about it but wow has it been annoying.

The modules are the X-Bee 900 Pro‘s. We had the baud rate ramped up to 115.2 but decided after some calculations to drop back to 38400. No help. So I dug through the manual again. Likely, we should be using API mode but for the moment we kept it simple and just left them in the default broadcast configuration.

The downside of this mode is that the modules are not really communicating point to point even though only two are in the system. So they duplicate broadcast messages to help assure the messages get to everyone in the message. The default duplication is set to 3. I lowered it to 1. If we drop a message here or there, it shouldn’t really effect the performance of the system significantly.

Also, the vehicle is really and end-point, not a router and will never be for this configuration so I changed it to be an end-point not a router. However, that required a firmware upgrade which was seamless using the X-CTU software other than it defaulting the module back to 9600 baud. Honestly both could be set as endpoints I think but I didn’t test that configuration since I was in a rush to get the comm working.

I also tried lowering the packet ratio to zero prior to the other changes to immediately transmit characters rather than bundling messages. It proved too not help but might be a good option at some point. I also lowered the XOFF buffer maximum to 128 characters down from the default of 319 since none of our message strings exceed that length.

If we were going to rely on the radios for good communication, the API interface is the way to go not the transparent default. The changes cleared up the congestion but I made mass changes so cannot specify precisely which one did the trick. If you run into similar issues, I can check the exact configuration and setting changes.

In the end, one more hurdle cleared.