Manage End Devices Non-Parent device operation
Digi XBee® 3 Zigbee® RF Module
152
children. Applications can reduce the number of required application broadcasts, and consider
implementing an external address table or many-to-one and source routing if necessary to improve
routing efficiency.
Non-Parent device operation
Devices in the Zigbee network treat data transmissions to end devices differently than transmissions
to other routers and coordinators. When a device sends a unicast transmission, if it does not receive a
network acknowledgment within a timeout, the device resends the transmission. When transmitting
data to remote coordinator or router devices, the transmission timeout is relatively short since these
devices are powered and responsive.
However, since end devices may sleep for some time, unicast transmissions to end devices use an
extended timeout mechanism in order to allow enough time for the end device to wake and receive
the data transmission from its parent.
If a non-parent device does not know the destination is an end device, it uses the standard unicast
timeout for the transmission. However, provisions exist in the Silicon Labs Zigbee stack for the parent
to inform the message sender that the destination is an end device. Once the sender discovers the
destination device is an end device, future transmissions will use the extended timeout. For more
information see Router/Coordinator configuration.
End Device configuration
XBee end devices support four different sleep modes:
n Pin sleep
n Cyclic sleep
n Cyclic sleep with pin wake-up
n MicroPython sleep (with optional pin wake). For complete details see the Digi MicroPython
Programming Guide.
Pin sleep allows an external microcontroller to determine when the XBee 3 Zigbee RF Module sleeps
and when it wakes by controlling the SLEEP_RQ pin. In contrast, cyclic sleep allows the sleep period
and wake times to be configured through the use of AT commands. Cyclic sleep with pin wake-up is
the same as cyclic sleep except the device can be awakened before the sleep period expires by
lowering the SLEEP_RQ line. The SM command configures the sleep mode. The end device continues
to stay awake as long as DTR is held low. The device resumes its sleeping pattern upon driving DTR
high again.
In both pin and cyclic sleep modes, XBee end devices poll their parent every 100 ms while they are
awake to retrieve buffered data. When the end device sends a poll request, it enables the receiver
until it receives an acknowledgment from the parent. It typically takes less than 10 ms between
sending the poll request to receiving the acknowledgment. The acknowledgment indicates if the
parent has buffered data for the end device child. If the acknowledgment indicates the parent has
pending data, the end device leaves the receiver on to receive the data. Otherwise, the end device
turns off the receiver and enter idle mode (until it sends the next poll request) to reduce current
consumption (and improve battery life).
Once the device enters sleep mode, the On/Sleep pin (Micro pin 25/SMT pin 26) it de-asserts (low) to
indicate the device is entering sleep mode. If the device enables CTS hardware flow control (D7
command), it de-asserts (high) the CTS pin (Micro pin 24/SMT pin 25) when entering sleep to indicate
that serial data should not be sent to the device.
If the Associate LED pin is configured (D5 command), the associate pin is driven low to avoid using
power to light the LED. The SLEEP_RQ pin is configured as a pulled-down input so that an external