Boot light blink behaviour on pico 2w

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?

thank you!

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.

Building is simple, you should read the file circuitpython/.devcontainer/Readme.md at main · adafruit/circuitpython · GitHub

I know what I am talking about because I wrote this document ;-)

If you think you can work with these instructions, I will guide you through the necessary steps to disable the lights.

Another option is black tape or black paint.

1 Like

oh, wow, thanks!

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.

thank you!

The status LED is defined here:

ports/raspberrypi/boards/raspberry_pi_pico2_w/mpconfigboard.h

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.

1 Like

Thanks! I built my custom CircuitPython firmware with

make CIRCUITPY_SKIP_SAFE_MODE_WAIT=1 BOARD=pimoroni_pico_plus2w TRANSLATION=en_GB

flashed it, and this worked perfectly - no more green flashes every few minutes messing with our family’s sleep, every team each board restarts ❤️

Thanks again for all the guidance!

1 Like

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.