I have a Xbee2 network formed by 1 coordinator and 2 router/endpoint.
When data is sent from router to coordinator all the bytes are receiving (almost) immediately.
When the coordinator sends data to the routers/end point the receive few bytes after that they stopped receiving.
The remaining character are received after a delay of about 8/10 seconds.
We already set R0 (packetization delay) to 0 but without any result.
I belive I understand what is causing your problems. by default the Routers are given the address of the Coordinator and are setup to Unicast data to the Coordinator (Unicast data can be transmitted very quickly). The Coordinator, on the other hand, is setup by default to Broadcast data to all nodes in the network. Broadcast data, due to the unknown size of the ZigBee network, is a VERY SLOW method for transmitting data. The delays built into the module only allow for 3 Broadcast transmissions every 4 seconds.
For more detail on Unicast vs Broadcast check out this article:
Which parameters should I confirgure in order to force unicast mode?
In order to send a Broadcast message set the DH=0x0 and the DL=0xFFFF
In order to send a Unicast message set the DH=SH (Receiver) and the DL=SL (Receiver).
Other than manually setting addressing there is also a method for setting addressing using the ND, DN, & NI parameters. For a tutorial on this method go to:
This link is unfortunately not working anymore.
I would have liked to use the DN and NI parameters in a network with 3 XBees S2 (XBee1 NI=PRI, XBee 2 NI=SEC, XBee 3 NI=DIS), but the timing is much too unreliable.
Most of the time communication is bidirectional between PRI - SEC, occasionally the PRI needs to send data to DIS.
Some messages arrive immediately, others are delayed by up to over 10 seconds. 100 to 200 ms delay max would be acceptable.
I’d like to avoid hard-coding the serial numbers of the XBees. Any ideas?