Deep Sleep Summary
-
Hi all,
Edited 2017-08-06 with new Pysense data
Edited 2017-08-22 with new Pysense wake on pin info
Edited 2017-09-06 with Deep Sleep Shield current consumption feedback, 3V3 input
Edited 2017-09-12 to clarify that deep sleep current is from battery, not USBHere is my current understanding the situation regarding the various deep sleep modes.
Current estimates are based on the setup being powered from a battery, not over USB (this will result in noticeably higher currents).
Battery life estimates are based on a 2500 mAh battery, but do not take into account power drawn during the "wake" periods, which depends on what you do, and how often you do it, nor power drawn by any sensor.
-
WiPy 2.0, LoPy 1.0 and SiPy 1.0, using expansion board, without Deep Sleep Shield
- use
machine.deepsleep() - wake on timer: Yes
- wake on pin: Yes
- pins: P2, P3, P4, P6, P8 to P10 and P13 to P23.
- ESP32 powered during deep sleep (including ULP and RTC): Yes (in deep sleep mode)
- deep sleep current: > 12 mA (bad) [±1 week?] due to DC-DC switching regulator (10 mA) and flash (2 mA)
- -> Option 1: provide regulated 3.3V via 3V3 input -> lowers current to ±2 mA [±1 month] there is some controversy on this point, it could actually damage the board
- -> Option 2: use Deep Sleep Shield, Pytrack or Pysense
- use
-
Using Deep Sleep Shield
- use Deep Sleep library
- wake on timer: Yes
- wake on pin: Yes
- pins: P10, P17, P18
- ESP32 powered during deep sleep (including ULP and RTC): No
deep sleep current: ±7-10 µA (good) [years?]- deep sleep current: ±500-620 µA [months?]. Waiting for Pycom for reason/fix.
-
Using Pysense
- use Pysense library
- wake on timer: Yes
- wake on pin: Yes, but requires patched Pysense firmware and librairies and cutting one pin, see https://forum.pycom.io/topic/1673/pysense-pinout-wake-on-pin/16
- pins: EXT_IO1 (pin 6 on the External I/O header) only
- ESP32 powered during deep sleep (including ULP and RTC): No
- deep sleep current: ± 12 µA (good) [years?] with updated Pysense library
-
Using Pytrack
- use Pytrack library
- wake on timer: Yes
- wake on pin: Same as Pysense?
- pins: Same as Pysense?
- ESP32 powered during deep sleep (including ULP and RTC): No
- deep sleep current: ± 20 µA (good) [years?]
-
-
Nice summary and this topic indeed deserves some clarification/overview.
Without deep sleep shield I think the device will only run for a day or so. At least that is my experience. It also depends on the devices you connect of course, because they stay powered in deep sleep.
-
Hi There,
How are you measuring the current in deep sleep? Also do you know of a way of keeping a PIN or PINs high when going into deepsleep, I dont think this is possible because of the board reseting when coming out of deep sleep.
Thanks
-
For Pytrack, could include (if I am right)
- GPS/Accel powered during deep sleep: No (explain low 20µA deep sleep current)
For Pysense, something is obviously powerd which consume 2.5mA, but as electric schematics is not avail, it is difficult to say...
-
@Emmanuel-Goudot
The Pysense problem was fixed yesterday https://forum.pycom.io/post/10039 -
Great summary. I agree with @RobTuDelft: many people and projects are waiting on this to settle so some definitive conclusion from pycom would be great. They're doing such a great job but we need to know what they've done or what they're working on.
-
Still the current with the sipy is 89mA
just doing this
from deepsleep import DeepSleep import pycom pycom.heartbeat(False) ds = DeepSleep() while True: ds.go_to_sleep(60) # go to sleep for 60 seconds print("Woke up") -
Well turns out that if you put it backwards like the Official documentation
https://docs.pycom.io/chapter/datasheets/downloads/deepsleep-pinout.pdf
you will fry it..
i put the other shield for my other sipy the correct way and now it works. 620uA
-
@iotmaker See this post for the correct orientation of the deep sleep schield
-
@iotmaker How are you measuring the current?
-
@PeterBaugh From the battery positive lead in series to the VIn of the expansion board
-
Hello,
I'm using LopY with Expansion board. SW upgraded to ver 1.7.8.b1
I tried deepsleep functionality simple as below.
import machine machine.pin_deepsleep_wakeup(['P18', 'P15'],machine.WAKEUP_ALL_LOW, True) machine.deepsleep(15*1000) print("\n\n Wakeup", machine.wake_reason())The board is going to sleep and indeed is waking up on P18 dumping the following output .
rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:1 load:0x3fff9010,len:12 ho 0 tail 12 room 4 load:0x3fff9020,len:388 load:0x40078000,len:11584 load:0x4009fc00,len:848 entry 0x4009fd9c** I don't understand why the LoPy was reset after this wakeup **
In order to dump the reason, I also added in main.py the following
print("\n\n Wakeup main reason", machine.wake_reason())and has no output
Wakeup main reason (1, [])** I believe there is bug that no GPIO is mentioned in that list **
-
@Colateral wake from deep sleep is actually similar to a reset: as the CPU and its RAM are not powered during deep sleep, you can't just resume at the next Python instruction, as it restarts from scratch.
Differentiating a wake up from deep sleep from other reasons (regular power on, reset...) is still a bit difficult, the subject has already been discussed in other threads.
-
@jcaron Thank you.
Yes, in the meanwhile I read dozens of posts. The question is why after reset I don't get the GPIO pin that triggered the wakeup?
Do the deepsleep shield fixing this GPIO wake up cause bug?
Actually, If the Lopy is working fine with this reset what else is enhancing the deepsleep shield? -
@iotmaker I am measuring the same power comsumption ... 620 uA with expansion board and 520 uA without it.
-
@rloro338 said in Deep Sleep Summary:
@iotmaker I am measuring the same power comsumption ... 620 uA with expansion board and 520 uA without it.
I am glad i am not the only one.. I just took another sipy updated firmware and deepsleep library and same issue 520uA really far from 7 or 10 ua
-
-
Hi, I have a SiPy + Pysense + 3.7 V LiPo battery. I'm testing Deep sleep mode from Pysense library but the multimeter is not showing 12 µA current consumption.
SiPy firmware: 1.18.0
Pysense firmware: 0.0.8My program disabled WiFi in boot.py. In main.py I blink an LED for 5 seconds and then go to sleep. These are my results:
Blinking: ~50 mA
Deep sleep: ~2.2 mAmain.py code:
from pysense import Pysense import pycom import time py = Pysense() #Turn-of heartbeat if pycom.heartbeat() == True: pycom.heartbeat(False) for i in range(5): pycom.rgbled(0x1F) time.sleep(0.05) pycom.rgbled(0x00) time.sleep(1) #Sleep 20 seconds py.setup_sleep(20) py.go_to_sleep()Is there any piece of code I'm missing? What are you doing to get 12 µA with the Pysense board?
-
@dmayorquin never tried with a SiPy, only a LoPy, but the end result should be the same as the PySense will completely switch off the module.
The usual culprit is powering through USB, but if I understand correctly your setup, this is not the case. You are connecting the battery directly to the JST-PH connector on the Pysense, right?
Do you have anything else connected? Do you have an SD card in the slot? You haven’t setup any of the sensors to remain awake (like accelerometer wake up)?
-
Hi @jcaron , thanks for your fast answer. Yes, I'm connecting the battery directly to the JST connector on the Pysense and I'm not using any sensor or SD card. In boot.py I disable WiFi:
from network import WLAN wlan = WLAN() wlan.deinit()And main.py code is exactly as It's shown in my previous reply. I'm going to try with other releases of SiPy firmware. If you have any suggestion please let me know.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login