MCU_PIO: generic PIO driver with config-driven program loading, function-pointer init callbacks, blocking put, and DMA async put. ws2812.pio written from scratch — 800 kHz, 10 cycles/bit, side-set. HAL_LED: pixel buffer with intensity scaling, RGB byte order for RP2040-Zero WS2812 variant. SetColor immediately pushes the strip. APP_CLSW: rainbow HSV hue rotation on startup (auto-mode). Color commands (red/green/blue/off/rainbow) stop the rainbow and set the LED to a static color. Integer-only HSV-to-RGB conversion. CMake: added hardware_pio link and pico_generate_pio_header for ws2812.pio compilation. SYS_ECU init sequence updated.
Color Switcher
A Raspberry Pi Pico project that sends commands over UART to a connected computer. Written entirely in C using the Pico SDK.
Prerequisites
- Docker and Docker Compose
No local toolchain installation needed — everything runs inside the container.
Building
# Build the Docker image (first time only, or after Dockerfile changes)
docker compose build
# Compile the firmware
docker compose up
The .uf2 firmware file will appear in build/.
Flashing
- Hold the BOOTSEL button on the Pico and plug it into USB
- It mounts as a USB mass storage device
- Drag the
.uf2file frombuild/onto the Pico - The Pico reboots and runs the firmware
Interactive Shell
To drop into the build container for debugging or manual commands:
docker compose run --rm pico-build bash
Description
Languages
CMake
48.5%
C
39.9%
Shell
6.8%
Dockerfile
4.8%