Skip to content

HackerSchool/pico-synth

Repository files navigation

pico-synth

The Pico-Synth Board v0.1 is the first version of a Raspberry Pi Pico based synthesizer, featuring an I2S DAC with line-out, a 2x8 switch matrix with individual LEDs, four rotary encoders with switches, an OLED screen, and an SD card slot for optional storage. This fist iteration of the board was designed with a focus on low cost and component availability.

📥 1. Clone the Repository & Initialize Submodules

git clone --recursive https://github.com/HackerSchool/pico-synth.git
cd pico-synth

If you already cloned without --recursive, initialize submodules manually:

git submodule update --init --recursive

📦 2. Install the Pico SDK and Pico Extras

Option 1: Install via Raspberry Pi Repo (Recommended on Raspberry Pi OS)

sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential

Option 2: Manually Install (For Other Linux/Windows/macOS)

Clone & Set Up the Pico SDK

mkdir -p ~/pico && cd ~/pico
git clone --recursive https://github.com/raspberrypi/pico-sdk.git
cd pico-sdk
git submodule update --init

Clone & Set Up Pico Extras

cd ~/pico
git clone --recursive https://github.com/raspberrypi/pico-extras.git

🌍 3. Set Environment Variables (Each Terminal Session)

Before building, set the paths so CMake can find the SDK and extras:

export PICO_SDK_PATH=~/pico/pico-sdk
export PICO_EXTRAS_PATH=~/pico/pico-extras

To make this permanent, add these lines to ~/.bashrc or ~/.zshrc:

echo 'export PICO_SDK_PATH=~/pico/pico-sdk' >> ~/.bashrc
echo 'export PICO_EXTRAS_PATH=~/pico/pico-extras' >> ~/.bashrc
source ~/.bashrc

🛠 4. Build the Project

  1. Create a Build Directory
mkdir -p build && cd build
  1. Run CMake to Configure the Build
cmake ..

if using ninja on windows:

cmake -G "Ninja" ..
  1. Compile the Code
make -j$(nproc)

if using ninja on windows:

ninja

🔥 5. Flash to the Raspberry Pi Pico

Step 1: Put the Pico in Bootloader Mode

  • Hold down the BOOTSEL button on the Pico.
  • Plug it into your computer via USB.
  • It should appear as a USB mass storage device (RPI-RP2).

Step 2: Copy the .uf2 Binary to the Pico

Once built, the pico-synth binary (.uf2 file) will be in build/:

cp build/pico-synth.uf2 /media/$USER/RPI-RP2/

The Pico will automatically reboot and start running the synthesizer!


🛠 Troubleshooting

  • "pico_sdk_import.cmake not found" error?

    • Make sure PICO_SDK_PATH is set correctly.
    • Try running source ~/.bashrc.
  • No *.uf2 file after make?

    • Check the build log for errors.
    • Ensure pico_enable_stdio_usb(${bin_name} 1) is set in CMakeLists.txt.

📜 License

GPLV3 License

About

Pico based I2S Synthesizer

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •