#!/bin/bash # # Builds the Piano LED Visualizer firmware for RP2040 / RP2350. # # Produces pico/build/pianoled.uf2. Hold BOOTSEL while plugging the board in # and copy the .uf2 onto the mass-storage device that appears. # set -e cd "$(dirname "$0")" # Board: pico, pico2, pico_w, pico2_w. All run this firmware unchanged; the # radio variants simply leave their radio unused. BOARD=${BOARD:-pico2} export PICO_SDK_PATH=${PICO_SDK_PATH:-$HOME/git/pico-sdk} if [ ! -f "$PICO_SDK_PATH/pico_sdk_init.cmake" ]; then echo "error: pico-sdk not found at $PICO_SDK_PATH" >&2 echo " git clone --recursive https://github.com/raspberrypi/pico-sdk" >&2 echo " or set PICO_SDK_PATH" >&2 exit 1 fi if ! command -v arm-none-eabi-gcc >/dev/null 2>&1; then echo "error: arm-none-eabi-gcc not found." >&2 echo " Debian/Ubuntu: sudo apt-get install gcc-arm-none-eabi" >&2 exit 1 fi cmake -B build -S . -DPICO_BOARD="$BOARD" cmake --build build -j "$(nproc)" echo echo "Built for $BOARD:" ls -l build/pianoled.uf2 arm-none-eabi-size build/pianoled.elf