Mohamed Salem 863da8f75c Add RX support and interactive color-switcher command demo
MCU_UART: full RX with ISR and DMA modes, ring buffer, blocking
ReceiveByte, async ReceiveBuffer with request fulfillment, blocking
ReceiveBufferBlocking. Per-byte RX callback (ISR mode).

MCU_USB: blocking ReceiveByte via getchar_timeout_us, cached-byte
peek for bIsRxDataAvailable.

HAL_COM: RX function pointer types + dispatch (ReceiveByte,
bIsRxDataAvailable) with USB wrappers in cfg.

APP_CLSW: interactive command parser. Accumulates input into a
buffer, parses on delimiter. Supports red/green/blue/help commands
with echo and response. SYS_ECU tick reduced to 10ms for responsive
input.
2026-04-13 01:29:20 +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%