Data packets lost when sending data from 2 routers to one coordinator

Hi all,

I made a setup which consists of 3 Zigbee’s, 2 routers(Zigbee S2C’s) and 1 coordinator(Zigbee S2). The routers are each connected to arduino nano which collects data from 2 FSR’s and an IMU(frame type: zigbee transmit request and packet size 46 bytes) and sends it to the Coordinator attached to an arduino UNO. All the Xbees are in API mode 2 and working at a baud rate of 115200. I am using a library called “Simple Zigbee Library” to send all the collected data to the Coordinator. The collection and sending of data works fine except that there are packets lost in the way. The nano’s sample data at a frequency of around 25Hz independently. The coordinator tries to read the data send from the zigbees(using the library of course) in every loop, but unfortunately, it seems to receive only around 40-45 samples.(Should have been 25*2=50 samples total from the 2 xbees). Can anybody suggest why this is happening. I need as less data loss as possible for my setup to achieve its motive. Any kind of help is appreciated.

P.S: It may be important to mention that the coordinator is reading the data only from one xbee in each loop.
Thank you.

Yea you are most likely exceeding the throughput capabilities of the Mesh network. You are trying to send more than 2,300 bytes per second (23,000bits per second)with no retries, or rout discoveries. Under ideal circumstances, you can only hope to achieve up to 30kbps for 1 hop and about 15kbps for 2.

Update:I reduced the packet size to only 8 bytes, the dropping has become less frequent, but it still happens once every 20 seconds. The duration for which data is unavailable varies between 1 to 2 seconds. Is it normal for a Xbee to drop packets even for such a small data packet? If not can anybody suggest where am I making a mistake?

Start by reducing the amount of data packets being sent. Next, set the MR, NH and BH to 1 or 2.

Then set the DL and DH on your remotes to the SL and SH of the coordinator.