XBEE transmitter in API mode 2 suddenly stops

Hi guys,

I have been developing some test code for the XBEE digimesh modules operating in API mode 2 (with escape characters).

The hardware consists of two modules: an xbee development board as the receiver and an XBEE module on a custom PCB as the transmitter. The receiver was set to AT mode whilst the transmitter is set to API mode 2.

When the network is switched on, operation is healthy for a couple of minutes, after some time transmission suddenly stops. I can confirm that the transmitter XBEE continues to receive API packets; I can confirm, using the API packet builder tool, that the packets are accurate, yet the receiver outputs nothing.

I tried sending the same packet using another xbee module setup similarly to the original transmitter and it works perfectly even when tried at the same point the other one stops working.

I then pasued the software of the MCU on board the transmitter, and whilst the board was still powered, I removed the XBEE and put it on again (to reset the XBEE only) and when I resume the MCU operations, the network is healthy once again.

Is there some register which I need to read, possibly in command mode, just to confirm that the XBEE is ready to receive another API packet? Cause it seems to me that the XBEE is crashing, maybe since I am overloading something (data rate is actually quite slow: 4Hz max)…

A typical packet that I send is:

7e 00 4d 10 00 00 7d 33 a2 00 40 da e8 a4 ff fe 00 00 3c 2a 48 49 53 30 30 30 30 31 44 ff ff ff ff 3a 00 00 00 00 00 00 00 0f 42 e6 53 ff ff ff fe b4 00 00 00 00 00 00 00 18 4b ce 64 00 00 00 7d 31 a7 00 00 00 00 00 00 00 00 00 00 00 2a 3e 0d 0a dd

Thanks for your time.

regards,
bouvett

Which XBee modules and related firmware are you using?

What lines are connected at the XBee modules side?

Are you using Hardware flow control?

XBEE module: S1 (XB24-DM)
Function set: XBEE Digimesh 2.4
Firmware : 8067
Hardware Version: 1746

XBEE lines: DIN and DOUT only

Hardware flow control: None

I found a link saying that the payload size of the API packet has to be less than the NP (Maximum Packet Payload Bytes) parameter (49 in my case). I reduced the payload to 44 and it still jammed (after a much longer time).

Any ideas?

thanks a lot

I think I need to include some type of Software flow control. Somehow I’m jamming the transmitter XBEE (API2) and the only way to get it running again is via a hardware reset.

Is there a way to read the CTS state and assert the RTS via software?

I have found something on this here:http://www.science.smith.edu/~jcardell/Courses/EGR328/Readings/XBeeCookbook.pdf under “Software Flow Control with API Mode”, but its not very well explained.

thanks again

I think I need to include some type of Software flow control. Somehow I’m jamming the transmitter XBEE (API2) and the only way to get it running again is via a hardware reset.

Is there a way to read the CTS state and assert the RTS via software?

I have found something on this here:http://www.science.smith.edu/~jcardell/Courses/EGR328/Readings/XBeeCookbook.pdf under “Software Flow Control with API Mode”, but its not very well explained.

thanks again

I soldered a wire so that I can read the CTS pin coming from the XBEE. I set the FT register to 0x3C so that CTS is set very early and configured my code such that when CTS is logic high, it stops sending data to the XBEE - this mechanism was tried and tested and confirmed that it works. Yet, for some reason, CTS at some point goes logic HIGH and stays so till I hard reset the XBEE.

Any ideas what may be happening?

thanks a lot

Try updating your firmware on your XBee modules to the latest version.

I want to know that which XBee modules and related firmware are you using and what lines are connected at the XBee modules side?
Also i want to know that are you using Hardware flow control?

low cost pcb