Skip to content

๐ŸŽต ๐ŸŽน Firmware boilerplate for the RP2040 / RP2350 powered PicoADK Audio Development Boards. Build your own stand alone synthesizers! Includes all nuts and bolts (FreeRTOS, USB MIDI, Vult DSP, Hardware Plumbing, DMA, ..). https://github.com/DatanoiseTV/PicoADK-Hardware

License

Notifications You must be signed in to change notification settings

DatanoiseTV/PicoADK-Firmware-Template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

PicoADK v2

We are currently working on the PicoADK v2 - the successor to the PicoADK v1. It is powered by the RP2350A Cortex-M33 MCU, which has floating point support along other features.

Advert_PicoADKv2

For firmware progress check the RP235x branch

  • Powerful MCU: Equipped with a Raspberry Pi RP2350A MCU (Dual Core 150MHz with overclocking capability, Hazard3 RISC-V or Cortex-M33, software selectable) for fast computing.
  • Lot of Storage: 4 MB QSPI Flash for your Code and Data.
  • Expandable Memory: Optional 8MB QSPI PSRAM for applications which need more RAM (e.g., long delays).
  • Connectivity: QUIIC / I2C Connector.
  • Debugging Features: SWD Debug Port.
  • Storage Options: TF-Card (Micro) on the bottom of the PCB (SPI or SDIO 4-bit Mode capable).
  • MIDI In Circuit with Optocoupler.
  • Presoldered Pin Headers.
  • Power LED.
  • User LED.
  • Type-C for Programming and User Applications.
  • 5-pin USB pins (e.g., for USB Host).
  • I2S Pins exposed on the headers, to allow for connecting an ADC.

PicoADK - Audio Development Kit Firmware

PicoADK_Top

Photos courtesy of Paul D. Pape - derwellenreiter for schneidersladen, Berlin, Germany.

This boilerplate template allows you to create standalone synthesizers, noise boxes, sample players, ..

Template example code notes

The example code is a simple monophonic synthesizer which can be controlled via USB MIDI or can play a randomly generated melody. It requires you to solder 4 Potentiometers to the ADC0-ADC3 pins, which control wavefolding, envelope amount, filter frequency and resonance.

Repository structure

  • C code is located in the src folder and contains all the low-level funtionality for the firmware incl. USB MIDI handling and dealing with the Audio DAC.
  • Includes for the C code are located in the include folder.
  • The Vult DSP code is located in the vultsrc folder.
  • The includes for Vult are located in lib/vult/examples. These provide some oscillator, filter and envelope implementation along others.

Compiling using PicoADK Docker Image (easy)

*** Currently broken, will be fixed soon. ***

Using the script

Just execute ./build-firmware-docker.sh in the project folder.

Manually

  1. git clone --recursive https://github.com/DatanoiseTV/PicoADK-Firmware-Template.git
  2. cd PicoADK-Firmware-Template
  3. Enter the following command in your project directory:
docker run --rm -u $(id -u):$(id -g)  -v $PWD:/project -w /project datanoisetv/picoadk-dev:latest build-firmware.sh

Prerequisites (manual)

  1. Install the Pico-SDK. You can find a guide at https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf
  2. Install the Vult compiler: sudo npm install vult -g
  3. (Optional) Install Ninja - apt install ninja

Compiling the firmware (manual)

git clone --recursive https://github.com/DatanoiseTV/PicoADK-FreeRTOS-Template picoadk-template
cd picoadk-template
export PICO_SDK_FETCH_FROM_GIT=1
mkdir build && cd build
cmake .. (optionally add -GNinja)
make (or ninja when you have used -GNinja)

Now you can find a main.uf2 in the build folder, which is your firmware.

Copying the Firmware to the PicoADK

Plug in the PicoADK USB Type-C while holding the BOOT button or hold BOOT and press the reset button quickly. After that, a RPI-RP2 disk volume will appear. Simply drag and drop the UF2 file to this drive and the PicoADK will reboot after a moment, the drive will disappear and your firmware will be running.

More information

Please check the Pico Getting Started Guide on how to install the toolchain and required libraries for your OS.

Development

The pipeline will trigger a full build on Push or Pull Request.

Releasing

The pipeline will trigger a new release build on following tagging scheme:

git tag -a v1.0.0 -m "Release v1.0.0"
git push origin v1.0.0

Hardware

The way-to-go hardware option is the PicoADK

Getting RAM and flash usage statistics

image

Your statically allocated memory and flash usage will be reported upon linking.

Community

You can find the PicoADK at Discord right here and a community discussion board on GitHub Discussions

About

๐ŸŽต ๐ŸŽน Firmware boilerplate for the RP2040 / RP2350 powered PicoADK Audio Development Boards. Build your own stand alone synthesizers! Includes all nuts and bolts (FreeRTOS, USB MIDI, Vult DSP, Hardware Plumbing, DMA, ..). https://github.com/DatanoiseTV/PicoADK-Hardware

Topics

Resources

License

Stars

Watchers

Forks