I am trying to create a network of XBee routers (in AT mode) to communicate with a single XBee coordinator (in API mode). I have Pro S2 XBee’s. I have the system working, so that the coordinator is able to receive packets from all three router XBee’s. What is strange, is that between bits 44 and 45 in the packet, there is a loss of information. If I have a single router sending 1,2,3,4… to my coordinator, whatever the value of bit 44 is, bit 45 will be some number 80 to 100 digits higher. The other bits act as expected, but every single packet has this (inconsistently sized) jump in values over those two bits. Both of my XBees are hooked up to Arduinos, and the Arduinos are responsible for telling the XBees when to send and receive data. However, for the time being, my coordinator XBee is being analyzed using XCTU. I can be more detail specific with any followup questions someone may have.
To summarize this all into a question… does anybody know why my XBees would consistently be dropping data between these two bits?
The XBee module does not have that ability. What I would suggest is you remove the xbee from the picture and see if you can reproduce the issue just by connecting your device to the receiving device.
When you say the XBee does not have that ability, are you saying it should not be able to drop bits? If I simply print the incoming data to the Arduino’s serial monitor, there are not large skips in the data. It seems to rather specifically be in the data sending process over XBees. I am sampling and sending at 20kHz a second, which I feel would be quick enough for the potential of lost data.
Yes, a 20Hz signal could be too much for the modules to keep up with. If you want to verify that it is throughput issue, connect CTS and RTS hardware flow control up. The module will trigger these lines when the buffer gets close to full and when there is room again to receive data. If that is the case and your device uses the hardware flow control, you will not see the bits lost.