ESP32C6 using MicroPython will not WAKE_UP from external signal

Hi there,

So , AFAIK the GPIO2 is RTC capable and should support deep sleep wake-up. You’re using wake_on_ext1() on on the XIAO ESP32C6 it’s relatively new to python, but it’s not waking from deep sleep via external pin, Hmmm even though your logic seem correct. :+1:

it’s likely the MicroPython BSP doesn’t fully support GPIO wake from deep sleep yet on the ESP32-C6.

If using wake_on_ext1() or wake_on_ext0() does not work despite correct wiring and logic, and only timeout wake works, it confirms the issue is firmware-level.

can you test if ?
If EXT1 doesn’t behave, try wake_on_ext0() instead, which supports a single pin but might be better supported:

from esp32 import wake_on_ext0
wake_on_ext0(pin=door_sw, level=esp32.WAKEUP_ANY_HIGH)  # or WAKEUP_ALL_LOW

you’ll get Warning: If esp32.WAKEUP_ANY_HIGH or constants aren’t defined on the C6 port, that confirms the MicroPython port is incomplete.

try using an external pull-down or pull-up** if needed. Don’t rely solely on internal Pin.PULL_UP during deep sleep — some pins lose their pull config during deepsleep.

Try external 10k pull-up resistor on GPIO2. :v:

Does the Basic Sleep work ?
Test basic deep sleep without any wake source

Just test whether the system goes to deep sleep and reboots normally after timeout:

import machine
machine.deepsleep(5000)

If this works, but GPIO wake doesn’t — then it’s 100% a MicroPython firmware issue, not hardware.

Alternative: Use Arduino firmware instead

The Arduino BSP 3.2.0 for Xiao ESP32C6 has full deep sleep + GPIO wakeup working. I’ve personally tested it (PJ can confirm too :smile:). :point_right: If your project isn’t tied to Python, use Arduino for stable GPIO wake from sleep.

HTH
GL :slight_smile: PJ :v:

Our AI , said this… too

  • The Seeed-provided MicroPython firmware may not fully support all light/deep sleep wake sources yet on the ESP32-C6 — this is likely tied to IDF support for deep sleep IO muxing not being complete in MicroPython for the C6 chip.
  • The C6 port is still in preview/unstable phase, even in v1.24.x-preview.