Deep Sleep with MicroPython



  • Hi, I'd like to press the M5 button on my M5StickC-Plus, do something, turn it off/deep sleep and turn it back on with the 'M5' button, as it is easily accessible. Basically I think this is how one of those Dash buttons used to work.

    I tried with:

    axp.setLDO2State(False)
    axp.setLDO3State(False)
    

    The screen turns off, but the device seems very much alive (I tried issuing commands from the REPL) and, when unplugged, completely discharges in a short period of time (maybe a few hours?)

    Is there a way to do this? I saw there may be something for Arduino, not sure if it works reliably, but I'd be willing to port my code to Arduino to have this functionality.



  • Hello @koichirose

    here is how I managed to get M5StickC Plus into deep sleep using MicroPython:

    p37 = machine.Pin(37, mode = machine.Pin.IN, pull = machine.Pin.PULL_UP)
    p37.irq(trigger = machine.Pin.WAKE_LOW, wake = machine.DEEPSLEEP)
    machine.deepsleep(20000)
    

    It wakes up from deep sleep either after 20 seconds or when button A is pressed.

    Thanks
    Felix