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.