build.sh runs inside Docker (mounted at /scripts/build.sh via docker-compose volume). flash.sh runs on the host and takes the project name as an argument, auto-detecting the .uf2 file. Usage: cd color_switcher && docker compose run --rm pico-build bash /scripts/build.sh cd .. && ./flash.sh color_switcher
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