I've got three Arduinos connected to XBee S2 modules (one Coordinator and two Endpoints), all running API mode. The firmware is 1120 / 1320.
How can I stream data really fast from the coordinator to the two endpoints ? I am trying to make the endpoints respond to live audio. The data sent to them is about 10 bytes of payload - which is the output from an FFT; but the endpoints need to respond close to real time, thus the data transfer rate from the Coordinator needs to be as fast as possible. I do not expect the Endpoints to send any data back.
I tried the following, and ran into these issues:
1. Asynchronously sending (ie: without waiting for a response from the module when sending) unicast messages from the Coordinator to only one Endpoint (call it E1). This works quite fast, regardless of whether the other endpoint is on or off, and I would like to maintain this speed. However, I can't maintain this speed when sending to both endpoints (see below).
2. Asynchronously sending one unicast message from the Coordinator to one Endpoint E1, then another unicast message from the Coordinator to the other Endpoint E2. When this happens, E1 receives the data very slowly (about 1 message every second). This slowness happens regardless of whether E2 is powered on or off.
3. Asynchronously sending broadcast messages from the Coordinator. When this happens, E1 receives the data very slowly (about 1 message every second). This slowness happens regardless of whether E2 is powered on or off.
Why is this happening, and more importantly how can I make the Coordinator send data to both Endpoints really fast ?
Thank you !
PS: In case it matters - the modules are wired only on pins: VCC,GND, DIN,DOUT, and ASSOC. The modules respond well to API AT commands. I've also tried changing BH to 1, without any effect on the latency.