How to minimize delay while sending data from one coordinator to multiple endpoint?


I am having trouble with time required to configure coordinator from microcontroller. I am using AT mode. I have to send data to multiple end points from one coordinator. So each time I have to configure coordinator with destination address end point i.e

  1. +++\r (for AT mode)
  2. ATDHxxxxxxxx (setting DH)
  3. ATDLxxxxxxxx (setting DL)
  4. ATCN (apply changes and exit AT mode)

This entire process eating considerable time. Is there any other way to achieve same while decreasing configuration time?



Are you sending the same information to multiple endpoints?

I think you are adventuring outside the realms of what AT mode was meant to provide - simplicity, serial compatibility and mainly meant for point-to-point data transfers.

Yes, you can do what you are doing, but you will get the speed penalty you are experiencing - further more it gets more painful the more radios you have in your network.

The only proper answer to your question would be to switch to API mode. That would automatically give you the answers you are looking for. In this case, easily addressing multiple radios and/or sending broadcasts and speed.

But further more, you’ll get:

  • robust checksummed data integrity
  • overview of signal strength
  • ack and retries

If you make the switch, there’s no turning back :slight_smile:

There’s not much you can do to speed up command mode because your MCU that is controlling the XBee needs to send query one by one and wait for the returns

Compare this to API mode where you compile a frame (within the mcu) which is series of bytes and fire it away to XBee.

Without knowing specifics of your setup, there are a lot of libraries and code out there that takes away the complexity of API mode. But if you only need very specific frames then you can easily write your own abstraction.


Thanks for the inputs…

I have observed exactly what you posted so I switched to AP mode.

While exploring API mode I wondered can coordinator with EE=1 can communicate to end device with EE=0 by setting option byte to 0x00…?? I am asking this because initially end device does not have encryption key when user request to add end device to network by pressing switch (CB) two times my algorithm set EE of coordinator to 0 and send encryption key to end device after that both will set EE to 1.

If the answer of question I just asked above is yes then it would be great for me.