Mohamed Salem 66e18ed248 Extract reusable components into git submodules
STD_TYPES, MCU_UART, MCU_USB, MCU_PIO, HAL_COM, HAL_LED moved to
separate repos under common/ as git submodules. Each submodule ships
with default config (cfg/) that projects can override.

color_switcher/src/ now contains only project-specific components
(APP_CLSW, SYS_ECU). CMake sources_config references common/ via
COMMON_DIR. Docker volume mounts ../common:/common so the container
sees the submodules. Build verified — zero errors.
2026-04-13 03:55:25 +02:00
2026-04-13 03:43:38 +02:00
2026-04-13 03:43:38 +02:00

Pico Projects

A collection of Raspberry Pi Pico (RP2040) firmware projects. Each project is self-contained in its own subfolder with its own Dockerized build system, CMake configuration, and source code.

Projects

Project Description Target Board
color_switcher Interactive color-switching firmware with USB-CDC serial commands and WS2812B LED control via PIO Waveshare RP2040-Zero

Getting Started

Each project is independent. To work on one, cd into its folder:

cd color_switcher/
docker compose build              # first time only
docker compose run --rm pico-build bash build.sh   # compile
./flash.sh                        # flash to Pico (hold BOOTSEL + plug in)

See each project's own README.md for project-specific instructions.

Prerequisites

No local ARM toolchain needed — everything builds inside Docker containers.

Repository Structure

pico/
├── color_switcher/          # WS2812B color switcher with USB/UART comm
│   ├── cmake/               # modular CMake build system
│   ├── src/                 # layered C firmware (MCU → HAL → APP → SYS)
│   ├── Dockerfile           # containerized ARM cross-compilation
│   ├── docker-compose.yml
│   ├── build.sh / flash.sh
│   └── CLAUDE.md / README.md
└── README.md                # this file
Description
No description provided
Readme 131 KiB
Languages
CMake 48.5%
C 39.9%
Shell 6.8%
Dockerfile 4.8%