Deep Sleep Wakeup, recording multiple events



  • I have several sensors that can trigger a wake from deep sleep.
    Some of these are shock sensors that basically output a very short impulse.
    It is possible that several sensors are triggered by the one event. Is there a way to capture all the inputs that triggered the wake.
    I guess one will always be first. Is it possible to queue subsequent events similar to interrupts?

    Sometimes the impulse is short enough that the wake registers but not the reason. Ie the following code outputs
    (1, [])
    Other times the output will be as expected for a single sensor wake
    (1, [Pin('P21', mode=Pin.IN, pull=Pin.PULL_DOWN, alt=-1)])
    Ideally, I would like to see a list of all the pins that went high during the wake process. eg
    (1, [Pin('P21', mode=Pin.IN, pull=Pin.PULL_DOWN, alt=-1)], [Pin('P22', mode=Pin.IN, pull=Pin.PULL_DOWN, alt=-1)], [Pin('P23', mode=Pin.IN, pull=Pin.PULL_DOWN, alt=-1)])

    print(machine.wake_reason())
    
    machine.pin_deepsleep_wakeup(wakePinList,machine.WAKEUP_ANY_HIGH, True)
    machine.deepsleep(deepSleepTime)
    


Pycom on Twitter