1
\$\begingroup\$

I am new in the Xbee world. I have four Xbees S1 802.15.4; three are end devices and one is a coordinator.

The end devices transmit well to the coordinator. The coordinator is connected to a Raspberry Pi via USB with an Xbee USB Explorer. The communication is through serial and I can see the data for the end devices, using Python.

How can I send a signal from the coordinator to each end device to wait to start the transmission?

At this moment I have the configuration in API Mode.

\$\endgroup\$

1 Answer 1

1
\$\begingroup\$

Choose a Python XBee library, and use it to send a "Broadcast Message", which means it will go to all the end devices.

A Broadcast message is addressed like so:

The 64-bit destination address should be set to 0x000000000000FFFF for a broadcast transmission (to all devices). The coordinator can be addressed by either setting the 64-bit address to all 0x00s and the 16-bit address to 0xFFFE, OR by setting the 64-bit address to the coordinator's 64-bit address and the 16-bit address to 0x0000. For all other transmissions, setting the 16-bit address to the correct 16-bit address can help improve performance when transmitting to multiple destinations. If a 16-bit address is not known, this field should be set to 0xFFFE (unknown).

If you don't want to use a library, you can build the packet yourself using the Reference for your version of XBee (eg. https://www.digi.com/resources/documentation/digidocs/pdfs/90000976.pdf) and look at the section for "ZigBee Transmit Request Frame type: 0x10". Send data matching that format and it should work.

But I'd recommend using a library.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.