I’ve assembled a few Pico 2W-based temperature/humidity sensors, flashing them with CircuitPython.
They work great, but since they are programmed to reboot every N minutes (for reasons) and some are placed in bedrooms, the very bright green blinking of the onboard LED at every boot is somewhat unfriendly to night sleep.
I have been looking for ways to configure - if at all possible - this behaviour to basically fully disable any LED blinking patterns. The only seemingly relevant hint I have found is this: Boot up Lights? - Raspberry Pi Forums :
On RP2350B like Pimoroni Pico Plus 2 you can activate bootrom lights.
But I couldn’t find out how (if even possible without building a custom CircuitPython base system) - any suggestions/pointers?
Building a custom CircuitPython version is the easiest way to go. You can disable the board-LED completely in the board-definition or just disable the blinking at startup.
I am all set to build - I’ve actually just built the board’s stock circuitpython firmware locally, it works fine, I get the uf2 firmare file in a few minutes (haven’t tried flashing it yet to one of my boards).
I had a (quick) look around through the source tree but could’t figure out what I would need to edit in order to disable the light blinking at boot time. I think this will be enough - but maybe also a pointer to disable the lights altogether in case I later realise that the led actually blink at some other stage.
Remove the definition to disable the status-LED all together. You might consider creating a unique board for this by copying the raspberry_pi_pico2_w directory to a new directory below …/boards/.
To disable blinking, compile with
make -DCIRCUITPY_SKIP_SAFE_MODE_WAIT=1
The default is defined in (just for info)
py/circuitpy_mpconfig.mk
As an added bonus, boot time is cut by one second. Without wait for safe-mode, you do loose the option to press reset to enter safe-mode. But I never used that feature and it is actually useful only for development, and not for production use.
Just one last hint: use make -j$(nproc) … to greatly speed up compiles. Passing the number of processors to the -j option (nproc outputs the cores+smt) will compile the sources in parallel. You should be down to a minute or even less with this option.