Summary
This is a bit of a strange one, because we are using an implementation of the CircuitPython alarm module for the RP2350 that is not on the main branch of CircuitPython, the behavior of some of the functions is not consistent with existing alarm module implementations.
It appears that if you don't form a USB Serial Connection with the RP2350 before the first call of safe_sleep in main.py the USB peripheral is suspended and not restored when the board comes out of safe_sleep. All other code seems to run as expected, but it may appear to an end user that the board has unexpectedly stopped functioning.
Work Around
The work around for this is to just make sure a serial connection is formed within about 10-15s of power up. If this window is missed a power cycle will start the window again.
Steps to reproduce
Environment
Summary
This is a bit of a strange one, because we are using an implementation of the CircuitPython
alarmmodule for the RP2350 that is not on themainbranch of CircuitPython, the behavior of some of the functions is not consistent with existingalarmmodule implementations.It appears that if you don't form a USB Serial Connection with the RP2350 before the first call of
safe_sleepinmain.pythe USB peripheral is suspended and not restored when the board comes out ofsafe_sleep. All other code seems to run as expected, but it may appear to an end user that the board has unexpectedly stopped functioning.Work Around
The work around for this is to just make sure a serial connection is formed within about 10-15s of power up. If this window is missed a power cycle will start the window again.
Steps to reproduce
main.pyEnvironment