Sleep Mode Deep on E-Series

Hey guys,

I’ve been working on a carrier board based around the E-Series Module, and everything works as expected… besides SLEEP_MODE_DEEP.

When I call System.sleep(SLEEP_MODE_DEEP, 60); in the code, the device goes to sleep but will never wake up again.

I am almost certain this happens because the RTC on E-Series is not getting power, so it doesn’t know when to wake up.

The Network Standby Sleep works perfectly, when I call:


So this problem is only with SLEEP_MODE_DEEP.

I have the VBAT pin on the E-Series connected to the LiPo, which I thought was enough to keep it alive while in deep sleep.

If anyone could let me know what pins need to be powered for the E-Series to wake up from SLEEP_MODE_DEEP, it would be greatly appreciated!

When suspecting a misbehaviour of the device OS you should always state what version you are testing on.

If the device can’t wake after the timeout it is possible that you had a HIGH level on the WKP pin when you entered deep sleep. To prevent that there is a “new” overload for System.sleep() that allows to disable the WKP pin.

System.sleep(SLEEP_MODE_DEEP, long seconds, SLEEP_DISABLE_WKP_PIN).

But if this is the case

your PCB should make sure the VBAT pin is permanently powered.
Either the way how it’s done on the Electron via a 0Ohm resistor between 3v3 and VBAT or via a dedicated supply in the voltage range 1.65V … 3.6V (e.g. coin cell) - not sure if connecting it to the LiPo (up to 4.2V) is a good idea tho’.

Sorry, this is running on DeviceOS1.0.0.

I used that SLEEP_DISABLE_WKP_PIN command and its working great now.

I have an external watchdog that was holding the WKP pin high… I should have caught that.
Thanks for the help.

On my next iteration of this PCB, should I tie 3V3 and VBAT together instead?
Is there any negative consequences using my current boards that connect VBAT and LiPo pins?

Thanks for your help!

I’d say driving VBAT beyond the specs will most likely not increase life expectancy of the devices.

1 Like