Open
Description
Port, board and/or hardware
Raspberry Pi Pico W and Raspberry Pi Pico 2 W
MicroPython version
All versions starting with v1.24.0 (including latest v1.26.0-preview.277.g4bd99260d)
Reproduction
- Copy code below to Pico and name it "main.py"
- Reset the Pico and allow the code to complete (approx 5 seconds). No repl needed as the code writes a log file to the flash storage
- Connect the Pico to the USB port and inspect the file "local.log" on the Pico
Code used to test:
# Test RTC sleep behaviour
import machine, os, time
SLEEP_MS = const(2000)
def write_log(s: str) -> None:
dt = machine.RTC().datetime()
log_text = f"[RTC={dt[4]:02d}:{dt[5]:02d}:{dt[6]:02d} ticks={time.ticks_ms()}] {s}"
with open("local.log", "a") as file:
file.write(log_text + "\n")
write_log(f"Machine = '{os.uname()[4]}'")
write_log(f"Version = '{os.uname()[3]}'")
time.sleep_ms(SLEEP_MS)
write_log(f"After time.sleep_ms({SLEEP_MS})")
machine.lightsleep(SLEEP_MS)
write_log(f"After machine.lightsleep({SLEEP_MS})")
Expected behaviour
The real time clock should advance by 2 seconds after running 'machine.lightsleep(2000)' like it was on micropython versions up to and including 1.23.0. Example output from 1.23.0:
[RTC=00:00:01 ticks=49] Machine = 'Raspberry Pi Pico W with RP2040'
[RTC=00:00:01 ticks=54] Version = 'v1.23.0 on 2024-06-02 (GNU 13.2.0 MinSizeRel)'
[RTC=00:00:03 ticks=2058] After time.sleep_ms(2000)
[RTC=00:00:05 ticks=4065] After safe_sleep(2000) with 0 early wakeups
Observed behaviour
The real time clock does not advance during machine.lightsleep(2000) as shown below running on v1.26.0-preview.277:
[RTC=00:00:01 ticks=36] Machine = 'Raspberry Pi Pico W with RP2040'
[RTC=00:00:01 ticks=42] Version = 'v1.26.0-preview.277.g4bd99260d on 2025-06-26 (GNU 14.2.0 MinSizeRel)'
[RTC=00:00:03 ticks=2033] After time.sleep_ms(2000)
[RTC=00:00:03 ticks=4037] After machine.lightsleep(2000)
Additional Information
While machine.RTC().datetime() does not advance during machine.lightsleep(), however, time.ticks_ms advances as expected.
Code of Conduct
Yes, I agree