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.
Bug: Deep Sleep Wake-up Issue on ESP32-C3
Port, board and/or hardware
ESP32 PORT, ESP32-C3 Super Mini
MicroPython version
Micropython 1.24.1
Reproduction
Title: Bug: Deep Sleep Wake-up Issue on ESP32-C3
Description:
I am experiencing an issue with the deep sleep wake-up functionality on the ESP32-C3 using MicroPython. The device does not wake up as expected when a GPIO pin changes from low to high.
Steps to Reproduce:
- Flash the latest version of MicroPython on an ESP32-C3.
- Use the following code to enter deep sleep and wake up on a GPIO pin change:
import machine import esp32 import time WAKEUP_GPIO_PIN = 0 LED_GPIO_PIN = 8 pin = machine.Pin(WAKEUP_GPIO_PIN, machine.Pin.IN, machine.Pin.PULL_UP) esp32.wake_on_ext0(pin=pin, level=esp32.WAKEUP_ANY_HIGH) wake_reason = machine.wake_reason() if wake_reason == machine.WAKEUP_EXT0: print("Woke up from deep sleep") machine.Pin(LED_GPIO_PIN, machine.Pin.OUT).value(1) time.sleep(1) machine.Pin(LED_GPIO_PIN, machine.Pin.OUT).value(0) else: print("Entering deep sleep") time.sleep(2) machine.deepsleep()
Expected behaviour
Wake up with change on GPIO0.
Observed behaviour
Does not wake up.
Additional Information
No, I've provided everything above.
Code of Conduct
Yes, I agree