Welcome to the Pycom forum Forum
    • \[\[global:header.categories\]\]
    • \[\[global:header.recent\]\]
    • \[\[global:header.tags\]\]
    • \[\[global:header.popular\]\]
    • Login

    Explore Pybytes | Official Documentation | Report a Firmware Bug/Issue | GitHub

    Deep Sleep Summary

    Scheduled Pinned Locked Moved Discussion
    deep sleeppysensepytrackdeepsleep
    34 Posts 14 Posters 11.1k Views 16 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • RobTuDelftR Offline
      RobTuDelft
      last edited by

      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.

      Without data you're just another person with an opinion.
      Hackster | About me

      1 Reply Last reply Reply Quote 0
      • P Offline
        PeterBaugh
        last edited by

        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

        1 Reply Last reply Reply Quote 0
        • E Offline
          Emmanuel Goudot
          last edited by

          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...

          J 1 Reply Last reply Reply Quote 0
          • J Offline
            jmarcelino @Emmanuel Goudot
            last edited by

            @Emmanuel-Goudot
            The Pysense problem was fixed yesterday https://forum.pycom.io/post/10039

            1 Reply Last reply Reply Quote 0
            • J Offline
              joshberry
              last edited by

              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.

              1 Reply Last reply Reply Quote 0
              • I Offline
                iotmaker
                last edited by

                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")
                
                I P 2 Replies Last reply Reply Quote 0
                • I Offline
                  iotmaker @iotmaker
                  last edited by iotmaker

                  @iotmaker

                  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

                  D R 2 Replies Last reply Reply Quote 1
                  • D Offline
                    dClaus @iotmaker
                    last edited by

                    @iotmaker See this post for the correct orientation of the deep sleep schield

                    1 Reply Last reply Reply Quote 0
                    • P Offline
                      PeterBaugh @iotmaker
                      last edited by

                      @iotmaker How are you measuring the current?

                      I 1 Reply Last reply Reply Quote 0
                      • I Offline
                        iotmaker @PeterBaugh
                        last edited by

                        @PeterBaugh From the battery positive lead in series to the VIn of the expansion board

                        1 Reply Last reply Reply Quote 0
                        • C Offline
                          Colateral
                          last edited by

                          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 **

                          J 1 Reply Last reply Reply Quote 0
                          • J Offline
                            jcaron @Colateral
                            last edited by

                            @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.

                            C 1 Reply Last reply Reply Quote 0
                            • C Offline
                              Colateral @jcaron
                              last edited by

                              @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?

                              1 Reply Last reply Reply Quote 0
                              • R Offline
                                rloro338 @iotmaker
                                last edited by

                                @iotmaker I am measuring the same power comsumption ... 620 uA with expansion board and 520 uA without it.

                                I 1 Reply Last reply Reply Quote 0
                                • I Offline
                                  iotmaker @rloro338
                                  last edited by

                                  @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

                                  1 Reply Last reply Reply Quote 0
                                  • J Offline
                                    jcaron
                                    last edited by

                                    @iotmaker @rloro338 Updated the summary with the current draw reported with the Deep Sleep Shield.

                                    Also added that powering via 3V3 may not be a solution, and that wake on pin with the Pysense is not trivial.

                                    1 Reply Last reply Reply Quote 0
                                    • D Offline
                                      dmayorquin
                                      last edited by

                                      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.8

                                      My 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 mA

                                      main.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?

                                      J 1 Reply Last reply Reply Quote 0
                                      • J Offline
                                        jcaron @dmayorquin
                                        last edited by

                                        @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)?

                                        D 1 Reply Last reply Reply Quote 0
                                        • D Offline
                                          dmayorquin @jcaron
                                          last edited by

                                          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.

                                          S 1 Reply Last reply Reply Quote 0
                                          • S Offline
                                            sslupsky @dmayorquin
                                            last edited by

                                            @dmayorquin Did you resolve this issue? Looking at your code, one question comes to mind that I have been looking to find an answer to.

                                            You use py.go_to_sleep() to enter sleep mode which is part of the Pysense class.

                                            Is that that call functionally equivalent to machine.deepsleep() ?

                                            J D 2 Replies Last reply Reply Quote 0

                                            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
                                            • 1
                                            • 2
                                            • 2 / 2
                                            • First post
                                              Last post

                                            Pycom on Twitter

                                            Pycom