ESP32 - EN pin when in Deep Sleep State
When my board is in deep sleep state ( machine.deepsleep() ), when I press the EN button the machine.reset_cause() returns the machine.PWRON_RESET instead of the machine.DEEPSLEEP_RESET. Is this supposed to happen? How can I get the machine.DEEPSLEEP_RESET by pressing a button?
I tried the embedded EN button and connecting a physical button to the EN pin.
esp32.wake_on_ext0 not workingon esp32s2
Port, board and/or hardware
esp32 port, waveshare ESP32-S2-Pico
MicroPython version
MicroPython v1.23.0 on 2024-06-02; Generic ESP32S2 module with ESP32S2
Reproduction
import os,time,esp32
from machine import Pin,deepsleep
time.sleep(5)
pb=Pin(0, Pin.IN); esp32.wake_on_ext0(pb,0)
deepsleep(10*1000)
Expected behaviour
Loaded the file as main.py then reset the board. Expected s2 to either deepsleep for 10s or exit deepsleep when I press the button connected to gpio0.
Observed behaviour
The s2 exits deepsleep immediately after entering it. This can be verified with a usb ammeter in series with the usb powering the board. I did not include print commands because having a usb repl active often plays badly with deepsleep.
Additional Information
esp32.wake_on_ext0 works OK with deepsleep on an esp32 v1.23.0 so I figure the instant wakeup on the s2 is down to it being an s2.
Code of Conduct
Yes, I agree