Mohamed Salem b49c7f60bb Add WS2812B LED support via PIO with rainbow and color commands
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.
2026-04-13 03:32:18 +02:00

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

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

  1. Hold the BOOTSEL button on the Pico and plug it into USB
  2. It mounts as a USB mass storage device
  3. Drag the .uf2 file from build/ onto the Pico
  4. 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
No description provided
Readme 131 KiB
Languages
CMake 48.5%
C 39.9%
Shell 6.8%
Dockerfile 4.8%