How to minimize power on a Digi XBee 3 Cell LTE-M/NB-IoT Modem

We’re using a Digi modem to periodically transmit data using the MQTT library in micro-Python, and power draw is very important because our instruments are solar powered and remote. We’re setting it up for power saving mode (DO = 0x8) with remote manager disabled, and pin sleep mode (SM = 1) to assert the sleep signal when the data transmission is complete. We’re monitoring the current draw on the XBIB-CU-TH development board across jumper P10, using pin D4 as an output that is set high when the communication is initiated, low when disconnected. The current draw remains high for approximately twenty seconds after the modem is disconnected (D4 goes low), regardless of the state of the sleep pin, as if the sleep pin has no effect. We’ve been using a Digi Radio module, which powers down immediately, so I was expecting similar behavior. I assume there’s some handshaking going on to disconnect from the cell tower, but is there any way to make that time shorter? Unfortunately I can’t attach a scope screen shot of the current profile, but the time it takes to shut down at the end of the transmission is longer than the transmission itself, and nothing I’ve tried seems to help. Maybe we need to live with it, but it would be nice to have an explanation, thanks.

Bit Banger, the module needs time to shutdown the Cellular module. That is what the 20 seconds you are seeing is.

Eric (mvut)'s answer is actually slightly wrong - in your configuration (SM=1, DO=0x8) the cellular module is not being shut down. However, please review this page of the documentation, and in particular the last section about interaction with XBee sleep:

When the XBee goes into “deep sleep” with PSM enabled, the cellular module is still enabled/being given power. If the XBee is asleep (pin 13 is low) but the current draw is still high, then the modem is still awake. If the XBee is still awake (pin 13 is high), then the ~20 seconds is actually because of a behavior of the u-blox modem where it can take a few moments for a TCP socket to be closed.

Long story short, if the ~20 seconds of higher current draw happens while the XBee is asleep, you may be able to shorten that time by adjusting the ATPA (Requested Active Timer) parameter. Whether that changes the timing will depend on your carrier and their policies for PSM timers - after all, ATPA is only the requested active timer.