Skip to content

alarm.exit_and_deep_sleep_until_alarms(pin_alarm) fails to deep sleep on Xiao ESP32 C6 #10224

Closed
@timshac

Description

@timshac

CircuitPython version and board name

Adafruit CircuitPython 9.2.6 on 2025-03-23; Seeed Xiao ESP32-C6 4MB Flash 512KB SRAM with ESP32-C6FH4

Code/REPL

import board
import alarm
import microcontroller
import digitalio

# LED pin for observing if deep sleep was reached (LED will go out)
LED_PIN = microcontroller.pin.GPIO15
led = digitalio.DigitalInOut(LED_PIN)
led.direction = digitalio.Direction.OUTPUT
led.value = False  # turn on LED

pin_alarm = alarm.pin.PinAlarm(pin=board.D9, value=True, pull=False)
alarm.exit_and_deep_sleep_until_alarms(pin_alarm)
# board does not deep sleep here (above)
# this code (below) will correctly sleep, forever:
# alarm.exit_and_deep_sleep_until_alarms()

Behavior

With the pin_alarm, the board will not sleep:

alarm.exit_and_deep_sleep_until_alarms(pin_alarm)

The device will not deep sleep.

With no alarms, the board will sleep forever:

alarm.exit_and_deep_sleep_until_alarms()

This code will correctly deep sleep.

Deep sleeping correctly works with a time alarm:

time_alarm = alarm.time.TimeAlarm(monotonic_time=time.monotonic() + 10)
alarm.exit_and_deep_sleep_until_alarms(time_alarm)

This code will correctly deep sleep, and wake up 10s later.

Description

No response

Additional information

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions