Light sleep: crash on wakeup



  • Hi!

    I'm working on a project using a Lopy (wifi/ble/lora) board. The board is a bit old, but I upgraded the firmware yesterday (1.20.2.r1).

    I would like to put the Lopy into light sleep (maybe deep sleep later) and wake it up every 1 minutes or when a button is pushed.
    The button is connected on P23 (G10 on the base board) and GND.

    Here is my code:

    import pycom
    from machine import Pin
    import machine
    
    pycom.heartbeat(False)
    
    print("Initializing input pin...")
    p_in = Pin('P23', mode=Pin.IN, pull=Pin.PULL_UP)
    machine.pin_sleep_wakeup(['P23'], machine.WAKEUP_ALL_LOW, True)
    
    print("Entering main loop...")
    while True:
        print("RUN")
        machine.sleep(60000)
        print("WAKE")
    

    It works fine when I run the file interactively using Pymakr, but it doesn't work when I upload the file to the lopy, and reset it to run it at boot : it crashes and reboots every time it wakes up (either after 60s or when I push the button):

    Initializing input pin...
    Entering main loop...
    RUN
    Guru Meditation Error: Core  0 panic'ed (StoreProhibited). Exception was unhandled.
    Core 0 register dump:
    PC      : 0x40095eb3  PS      : 0x00060e33  A0      : 0x80088f34  A1      : 0x3ffb7130  
    A2      : 0x00000000  A3      : 0x00060e20  A4      : 0x00000001  A5      : 0x0000cdcd  
    A6      : 0xb33fffff  A7      : 0x3ffdc6f4  A8      : 0x0000abab  A9      : 0x3ffb7130  
    A10     : 0x00000003  A11     : 0x0000cdcd  A12     : 0x00060e20  A13     : 0x00000000  
    A14     : 0x3ffb2740  A15     : 0x3ffb2d91  SAR     : 0x00000000  EXCCAUSE: 0x0000001d  
    EXCVADDR: 0x00000000  LBEG    : 0x40092cd4  LEND    : 0x40092d02  LCOUNT  : 0xffffffff  
    
    ELF file SHA256: 0000000000000000000000000000000000000000000000000000000000000000
    
    Backtrace: 0x40095eb3:0x3ffb7130 0x40088f31:0x3ffb7160 0x40086d09:0x3ffb7180 0x401432c6:0x3ffb71c0 0x400d249c:0x3ffb71e0
    
    ================= CORE DUMP START =================
    7DMAAAEAAAAPAAAAbAEAAA==
    fHL7P3Bw+z90cvs/
    << GARBAGE >>
    

    Do I need to do something special to make it work correctly?

    Thanks!



  • I've just changed the version to Pycom MicroPython 1.20.0.rc13 [v1.9.4-94bb382] on 2019-08-22; LoPy with ESP32 (legacy firmware) and light sleep works as expected. I'm not sure I understand the difference between different driver types, but I don't use pybyte, so it should be ok.

    Could it be a bug in the pybyte firmware?


Log in to reply
 

Pycom on Twitter