Timers negotiated with the cell tower

This concerns the XBee3 Cellular LTE-M/NB-IoT. According to documentation regarding the PSM:

“The cellular component wakes to participate in maintaining the network state periodically based on timers negotiated with the cell tower. It is also triggered to wake up when the user performs any activity requiring network connectivity such as mobile-originated traffic like sending an SMS or UDP/TCP traffic. When it wakes up, it spends a short time awake so that it is reachable through the network at that time and then returns to the low power state.”

Is there a way to know what the timers are? The doc says to ask your carrier - currently its an ATT sim that came with the Dev Kit.

Additionally, will the unit be able to execute a MicroPython script during these wake times?

Currently the module has no way to report the timers established with the network. There’s a bug in the underlying implementation of that part of the system that makes it impossible to retrieve. Hopefully that is something that can be resolved in a future release.

The component that wakes up to perform the PSM updates is not the microcontroller which runs MicroPython, so running a script cannot be synchronized to those events and still keep the lowest power consumption. If the XBee is kept awake it can monitor the Association Indication(AI) value and it would be possible for it to take action each time that became Connected (0x0).

Thanks for your response.

So does the XBEE3 have an autonomous sleep/wake function where is does not need a host controller or cell towers? When you set the Cyclic Sleep Mode timer, I assume that the xbee is running on its own. What are the limits of that timer, e.g. how long can it sleep?


Cyclic Sleep can operate without a host or cell tower to tell the XBee when to be awake. The maximum SP value used for the wake interval is one day when Cyclic Sleep is being used (SM=4 or 5).

It’s also possible for a MicroPython application to directly control the sleep period as well using the sleep_now function on the XBee object which I believe has the same maximum.