Using Electron ublox modem Idle while ARM in Deep Sleep

I need to be able to have the Electron using as low as power as possible but maintain registration to the cell system so do keep data costs low for the month.

My question is it possible to put the modem in power save mode (goes to idle when not active 900ua current consumption) and then put the ARM into to deep sleep while maintaining registration on the cell network.

This would save a lot of power consumption while reducing data.

I could be mistaken, but isn’t that the documented SLEEP_NETWORK_STANDBY?

1 Like

Although it seems undocumented for SLEEP_MODE_DEEP it’s still available

System.sleep(SLEEP_MODE_DEEP, timeout, SLEEP_NETWORK_STANDBY);
2 Likes

Thanks of the input.

The Electron I tested just failed so I cannot test until I get a couple of new Electrons. I was reading the modem hardware manual for the power save mode and just wanted to make sure that even though DeepSleep resets the Arm that there are no variables needed to be preserved from the previous registration on the cell system before the Deep Sleep.This eliminates the need to waste 6K of data just to re-register on the cell network. If any variables needed to be preserved, they would need to be in the battery backed ram.

Getting this working will enable the Electron to run off batteries for long periods and not waste data re-registering after each Deep Sleep. Perfect remote IOT/M2M use without solar.

BTW SLEEP_NETWORK_STANDBY is available quite a while since 0.5.0 and was introduced exactly for saving that 6K handshake.

So does it put the modem in power save mode or do I need to send AT commands to the modem before DeepSleep?

So if this works I should have a modem power consumption of 900ua + DeepSleep arm current of about 130ua (about 1ma/hr consumption). Assuming I have 2 primary Lithium D cells - 19000ma/hr each at 3.6v I could last four years depending on how often I am communicating?

This also confused me from the Electron Data usage which says you need to register from Deep Sleep. See below.

Starting a connection: Whenever the Electron has to join the cellular network it will “handshake” and register itself and your functions and variables.
Startup
Reset
Wake from deep sleep
Wake from stop mode
Cellular modem is turned off and on again

No need to do anything else, but for the actual power consumption I have no actual figures, but maybe @BDub has or knows who has


I’d say no to that. Self-discharge would cut that short considerably I guess.

BTW, its mAh (product of current x time) and not mA/h (ratio current over time).


I guess this section of the docs is pre SLEEP_NETWORK_STANDBY

We have a low power branch for the electron that we need to integrate into production electrons. It wasn’t incorporated into the firmware at the time due to possible issues with beta electrons, and it still may break those. When I was testing this low power mode, I would see the current down to about 2-3 mA, with short peaks of 100mA whenever the modem needed to talk to the tower. We can currently achieve down to about 4-5mA in deep sleep with the modem still on, last I measured… so we are pretty close to that already.

This is super old code, so I would not expect it to operate correctly now, but the commits concerning low power should be valid:
https://github.com/spark/firmware/commits/feature/electron-low-power

I’ll look into cherry picking these commits soon and see how things behave.

4 Likes

Thanks, I will give that a try.

Bdub
I put the modem into power save mode Cellular.command(“AT+UPSV=1\r\n”)) which executed correctly.

I had the software in a loop where it did not send any data simply stayed awake for a minute and then deep sleep (170ua consumption) for a minute. It still consumed 30K of data over about 20 minutes. However it still appears to go thru flashing green, cyan and then breathing cyan taking about 30 secs. My understanding is the modem should stay registered which should attach very quickly and consume little data.
In essence if woke up 10 times and consumed about 30k of data.

Is does not seem to be what is described in the Sara module or is the amount of time and data related to particle cloud interaction. I will be posting my data mainly to Amazon.