Keep communication flowing with two xbee senders

Hello everyone, here’s the configuration i’m trying to build :
There is two main receivers that are continuously receiving important frames ( no loss is tolerated )
and there is one main station in charge of sending the data to the remote servers.
The ideo is to have two xbee relaying the continuous data to a same third, but since this would cause overlapping problems, a solution would be to make one “sleep” while the other talk, and vice-versa.

How would you do the “alternating” part ? they need to be synced and not lose any packet when waiting for their turn.

First off, in any communications, there must and I repeat must be room for some loss of data. Even in a cabled connection there can be and will be loss of data. Even if it is simply a data collision. Data loss WILL occur.

Next, if you use hardware flow control (CTS, RTS) you can control the flow of data from one devices Buffers to the next. Even if that other device is in a sleeping state. The reason for that is that the device, in this case the XBee will hold off data (CTS will be high) while the module is sleeping. When it wakes and is ready for data, CTS will change states to Low thus telling the other device that it can receive the data.

1 Like

Thanks for answering I actual had a go ( several go ) at CTS/RTS with no luck.

My system would set the two senders starting in transparent mode ( successfully sending every received data )
then the controller, in api mode, would put cts in the first sender, and receive the second.
Then cts the second, and undo cts the first and so on.

The problem I encountered was that CTS behavior was quite unpredictable, first the values 0, 1 wouldnt stop the sending, so i had to set it to 03 or 04, weird but okay if it works thats cool, the thing is, it did work only once in a while, whith the cts pin set to 03 or 04 ( and i checked every time to be sure ) i would sometimes still behave as if nothing, or sometimes stop sending but dont buffer anything ensuing lots of loss.

I’m all with you when saying there must be room for some loss, but at this point there is way more loss than anything

Thanks for answering I actual had a go ( several go ) at CTS/RTS with no luck.

My system would set the two senders starting in transparent mode ( successfully sending every received data )
then the controller, in api mode, would put cts in the first sender, and receive the second.
Then cts the second, and undo cts the first and so on.

The problem I encountered was that CTS behavior was quite unpredictable, first the values 0, 1 wouldnt stop the sending, so i had to set it to 03 or 04, weird but okay if it works thats cool, the thing is, it did work only once in a while, whith the cts pin set to 03 or 04 ( and i checked every time to be sure ) i would sometimes still behave as if nothing, or sometimes stop sending but dont buffer anything ensuing lots of loss.

I’m all with you when saying there must be room for some loss, but at this point there is way more loss than anything

I think there is a little confusion. Triggering CTS on the local radio will not prevent data from being sent over the RF port and being received. You need to have a way to tell the remote device connected to the remote radio not to send data. You need to do that by using one of the DIO line as a flow control function using remote AT commands, or use a processor between the two that says I am only going to allow x number of bytes sent every y ms. Or use a polling protocol.