Lost messages

I am runnung two XBee Pro S2B on sparkfun XBee Explorer USB boards. The boards are connected to a linux machine using USB. On X-CTU (wine) I selected the firmware versions:

  • 218C for the coordinator XBee
  • 298C for the End Device XBee

My Problem is that I sometimes do not get any answers to the requests I am sending to the XBee. That is if I am sending the API frame to query the AI value, I only sometimes get a message back containing the AI value. If I configure the XBee to be a coordinator, I am losing about 20% of the packets. If I configure it to be an end device, I am losing more than half of the packets.

I tried this sending messages with my own program and with the serial terminal CuteCom. On CuteCom I also tried increasing the character delay to 50ms in order to avoid flow control problems. When sending a message to the XBee, the red LED of the sparkfun USB explorer board is flashing, which means the XBee is receiving something. I also tried another XBee with the same results. X-CTU seems to be more successful in querying the parameters, but often fails, too.

Do you have any idea why this problem might occur and how I can solve it?

Thank you

Well, yes. The mesh comms is not reliable. You will lose some - especially with an “end devcie”, which sleeps some % of the time.

Literally, the parent buffers 1 request for it. If a second arrives at the parent before the end-device has pulled that first message, then the first request is usually LOST. Note that other devices and various network actions can also cause this first request to get over-written.

Can your 2nd XBee be a router? Then the coordinator would push/send the message to it instead of waiting for the end-device to pull it.

In my experience, end-devices are ONLY reliable if they just send data without being polled - for example, a sensor which wakes and sends its latest reading.