[Solved] Power consumption deep sleep Pysense/Pytrack



  • Hi.
    We've done some testing with a multimeter and the Pysense shield.
    LoPy firmware: 1.7.6.b1
    Pysense firmware: 0.0.3

    Our test program disabled WiFi in boot.py and ran a 30s normal sleep (time.sleep()) and a 30s deep sleep (py.setup_sleep(30) + py.go_to_sleep()).
    Here's our results:

    USB power
    Normal sleep: ~50-60mA
    Deep sleep: ~8mA

    3.7V LiPo battery
    Normal sleep: ~40mA
    Deep sleep: ~2.5mA

    According to the specs, this should not be normal.
    Anyone else experiencing similar issues?


    Solution:
    Update firmware and use latest library.



  • @dbrgn Thanks for the notification, I can confirm that it works!





  • @dbrgn Not really any changes with 1.7.8.b1.

    LoPy firmware: 1.7.8.b1
    Pysense firmware: 0.0.4

    USB power
    Normal sleep: 48.8mA
    Deep sleep: 7.4mA

    3.7V LiPo battery
    Normal sleep: 40.2mA
    Deep sleep: 2.2mA



  • Sorry for bumping this again, but now that a new LoPy firmware has been released, any news about the low power fix?

    The specifications of the PySense on the website still says:

    Ultra low power operation (~1uA in deep sleep)

    ...since that promise is still off by a factor of about 2500, at least an ETA would make me happy :)



  • Is there any ETA on the deep sleep fix? This is delaying the shipping of one of my projects. We simply can't send it to the customer if the battery only lasts a few days or weeks.



  • @Emmanuel-Goudot
    I see 2.6V on the MPL3115A2 Vdd pin during deep sleep so I guess it is active, for example on the Si7006-A20 (temp/humidity) I don't.

    My best guess is certain sensors can act as wake-up sources (e.g. pressure going above/below threshold) so they have separate power nets.



  • @jmarcelino Are you sure sensors on the PySense are powered during deepSleep ?
    I have done tests on pytrack, and it looks like 3.3V is 'cut' for LoPy, LIS(accel) & GPS, explaining the ~17µA of the pytrack during deepsleep.



  • @bucknall
    Just to be clear that 1mA is on top of the lingering 2mA... I'm not sure what's causing that one yet :)



  • @jmarcelino Ah good catch! I'll test this out - Thanks!



  • I saw the same results for the Pysense as @Pwntus

    Also noticed that if you used the MPL3115A2 pressure sensor (not sure about the others) it goes into deep sleep with it in active mode increasing consumption by about 1mA. But I think this one can be solved in the Python library by setting MPL3115_CTRL_REG1 to 0x0 (to clear SBYB bit in CTRL1 register)

    mp = MPL3115A2(py)
    
    mp.i2c.writeto_mem(MPL3115A2.MPL3115_I2CADDR, MPL3115A2.MPL3115_CTRL_REG1, bytes([0x0]))
    

    before entering deep sleep.



  • @Pwntus Ok I'll feed this back to Daniel again - apologies for getting your hopes up - I'll keep you in the loop with how this progresses.

    Thanks for your patience,

    Alex



  • @jcaron @bucknall (+ others) here's our new (unofficial) Pysense test.

    LoPy firmware: 1.7.6.b1
    Pysense firmware: 0.0.4

    Our test program disabled WiFi and Bluetooth in boot.py and ran a 30s normal sleep (time.sleep()) and a 30s deep sleep (py.setup_sleep(30) + py.go_to_sleep()).
    Here's our results:

    USB power
    Normal sleep: ~57.2mA
    Deep sleep: ~7.35mA

    3.7V LiPo battery
    Normal sleep: ~49.1mA
    Deep sleep: 2.2mA

    It still appears that the Pysense has issues with deep sleep.



  • @jcaron @Pwntus I'll double check with Daniel regarding the power concerns. I'll confirm if this is correct (I'm London based - Daniel works from the Netherlands).



  • @Pwntus Ah, wondered about that, but didn't see anything in the chagelog that seemed to be related. Thanks for the (very) quick reply!



  • @jcaron issues with the Pysense should be fixed in the pysense_0.0.4.dfu firmware release, but we have yet to test it. I'll post the results tomorrow.



  • @bucknall Hi,

    Have you made any progress on this? Any idea if this is hardware-related or just a firmware issue yet?

    Thanks!



  • @Pwntus (+ others) Thanks for raising this! We're now investigating this, it appears that the issue only pertains to the the Pysense. Thanks for your patience!



  • I can confirm that the pysense does not seem to properly go into deep sleep.

    On a 3.7V LiPo, it still pulls 2.7mA in deep sleep mode. (Note, the USB cable in the photo below is not connected to any power source.)

    photo of multimeter

    Pysense firmware is at 0.0.3.



  • Thanks for the replies @jubbs @this-wiederkehr @jmarcelino
    It has been suggested that the peripherals are not put into "standby" while in deep sleep.
    Shouldn't this be done by the Pysense/Pytrack by default? In addition, we do not initialize/use any peripherals in our test program.

    We did some more testing with the Pytrack shield.
    LoPy firmware: 1.7.6.b1
    Pytrack firmware: 0.0.3

    Our test program disabled WiFi and Bluetooth in boot.py and ran a 30s normal sleep (time.sleep()) and a 30s deep sleep (py.setup_sleep(30) + py.go_to_sleep()).
    Here's our results:

    USB power
    Normal sleep: ~75-80mA
    Deep sleep: ~5.3mA

    3.7V LiPo battery
    Normal sleep: ~73mA
    Deep sleep: 18μA (!)

    It seems like the Pytrack gives acceptable readings while using a 3.7V LiPo battery while the Pysense still has some issues.



Pycom on Twitter