XBee Pro 900HP S3B - Broadcast

Hi all,

We have XBee Pro 900HP S3B on a custom board, connected by UART and working in API mode. The system is used such that each device sends a message once per second, and the message is intended for all device within range. Message length is around 70 bytes (including all API overhead).

Such usage seems natural for broadcast messages, however all the posts I’ve seen on the subject recommend avoiding broadcast for such frequent transmissions. What I would like to ask is:

  1. If I understand correctly, the latency in broadcast is caused by the routers resending each broadcasted message. Is this correct? If so, what if I configure all devices to be end-nodes? Would this still cause latency, and if so, why?

  2. Using unicast means that instead of each XBee having to send one message once per second, each XBee would have to send N messages per second where N is the number of devices. What is the maximum number of devices that would make unicast more efficient than broadcast (approximately)?

  3. Each device is mobile (carried by a person) and I do not know how many devices would be in range of each other in each situation. Also I cannot set a coordinator that would take care of new nodes joining the network, because I don’t know which devices would be out there. If I use unicast, how can I make sure that each XBee sends its message to all XBees around it? Do I need to scan for new devices every second? That seems like something which would take too long.

In general, I would love to get some recommendations as to the best way to implement a solution for this. I am aware that 802.15.4 modules are much more suitable for broadcast, but we needed to use 900MHz so these modules were the best option.


Yes you are correct. But on the 900 HP, you can tell the radio on a packet by packet basis if that packet is to be sent as a Non Mesh 1 hop transmission (Point to point - Multi-point), to use Repeater mode or to use Mesh mode. In your Case you want it to use the 1Hop mode (TO = 0x40 (Transmit option))

I can’t answer number 2 as it depends on the TO command.

Hi mvut,
Thank you for your prompt reply.

Actually I am already using TO=0x40 in the TX request (actually 0x41 to disable ACK). Do you mean in this case that it does make sense to use broadcast?
In general, if I do use broadcast, what is the difference between configuring the XBEEs as routers with TO=0x40 and configuring them as end nodes (non routing)?
And how can I bring the latency in this setup to a minimum?