• Stars
    star
    188
  • Rank 204,940 (Top 5 %)
  • Language
  • License
    MIT License
  • Created over 2 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A RP2040 based Audio Development Kit with 32 Bit Audio Output. Build your own standalone synthesizers!

Chaos Communication Camp 2023 News

image

Update: You can still get your PicoADKs from our Webshop. The generative synthesizer code will be released in the next days after cleanup and improvements.

The binary firmware with the generative synth can be found here.

Demo Video

Update

Harvard University Electronic Instrument Design Lab has prepared a Wiki with examples for the PicoADK. Check it out here.

PicoADK - Pico Audio Development Kit

image

Introduction

The PicoADK is a RP2040 based Audio Development Board, which allows you to build your own digital oscillators, synthesizers, noise boxes and experiment around. It has all the base features of the Raspberry Pico, plus a high quality Audio Output, 8 Analog Inputs for connecting potentiometers, control voltage from eurorack systems or even additional input signals.

Even though it is very small, it is capable of synthesizing and outputting a very high quality sound output. Thanks to the Vult DSP language you can even create digital filters, waveshapers, oscillators and even complete synthesizers!

Sound demos

You can find some sound teasers at Soundcloud.

PicoADK Video

PicoADK Video

Audio Demo

Buy

The PicoADK can be ordered at Schneidersladen and Tindie.

image

Specifications

  • RP2040 Dual Core Cortex M0+ running at up to 400MHz (overclocked)
  • USB Type-C connector (Host & Device Mode)
  • 2MB Flash for Firmware and Data (4MB on v1.1b)
  • Very low noise LDO regulators with separate LDO for digital circuits and separate for analog circuits, no switching regulators
  • Partially pin-compatible with RP2040 (besides a few pins internally used or rearranged), extra 4 pins on each side for SPI ADC
  • Audio DAC PCM5100A, up to 32-bit high-quality output
  • Dedicated Boot and Reset Buttons
  • 8 channel 12-bit ADC with up to 1MS/s, with selectable 3.3V range (on-board low-noise power supply) or range up to 5V via external VREF
  • Low-Pass filter on each ADC input with external 5V voltage reference input suitable for CV (no overvoltage protection, unipolar)
  • Symbols marking special pin functions on the pin headers
  • 4 LEDs on shared GPIO2-5 for debugging, 1 RGB WS2812B LED
  • ESD Protection on USB
  • SWD Debug Header
  • JST 1.0mm 4 Pin (QWIIC compatible) I2C Connector

Firmware

You can find the firmware template including examples at https://github.com/DatanoiseTV/PicoADK-Firmware-Template

The repository contains the I2S codec drivers, A custom build step for Vult DSP based projects and a synthesizer as an example and should be a good starting point for most projects.

Pinout (PicoADK v1.1) - 48 Pin

image

The Analog Lineout are the Pins marked with L and R. You can find them on the right bottom of the PicoADK (when USB is facing upwards).

Interactive pinout at https://datanoise.net/picoadk/

Internal Signals

Some signals are routed to internal peripherals as following:

GPIO Function Shared w/ Header?
GPIO2 Debug LED 1 yes
GPIO3 Debug LED 2 yes
GPIO4 Debug LED 3 yes
GPIO5 Debug LED 4 yes
GPIO10 ADC128 SPI1 SCK yes
GPIO11 ADC128 SPI1 MOSI yes
GPIO12 ADC128 SPI1 MISO yes
GPIO13 ADC128 SPI1 CSn yes
GPIO15 Big Debug LED (WS2812 on v1.1a) no
GPIO16 PCM5100A I2S DAT no
GPIO17 PCM5100A I2S BCLK no
GPIO18 PCM5100A I2S LRCLK no
GPIO23 PCM5100A DEMP no
GPIO24 VBUS Detect Pin no
GPIO25 PCM5102 XSMT no

The SPI ADC shares the GPIO10 to GPIO13, which are also present on the pin headers. Please be aware of that.

Make sure your software controls the XSMT and DEMP pins. The XSMT needs to be controled by the software to mute/unmute the audio output. With the DEMP pin you can control the Deemphasis for 44100 Hz.

Changes required for 5V ADC range (default is 3.3v)

By default, the ADC range is approximately 0-3.3v provided by a low-noise internal 3.3V voltage source. If you want to use 0-5V input range, you need to cut the trace on the jumper on the bottom of the PCB and bridge the VEXT position with the middle of the jumper. MAKE SURE THAT YOU CHECK FOR NON-CONTINUITY WITH A MULTIMETER between the 3.3V reference side and the middle of the jumper to make sure you've cut the bridge properly. The recommended way of cutting the trace is using a sharp blade such as an exacto knife. Use of a dremel or similar is NOT recommended, as it could damage the inner layers of the board

First Flashing / Getting started

  • Press and Hold the B(OOT) button and press reset quickly. Afterwards release the BOOT button and you will see a RP2_BOOT drive on your computer. After that, you will be able to just drag and drop the UF2 file with the firmware image onto it.

Arduino IDE support

The PicoADK is supported by Arduino using the Arduino Pico Package from Earle Philhower https://github.com/earlephilhower/arduino-pico

The Arduino support is currently experimental and the recommended software template is to use this repository. The PicoADK board is supported on Arduino Pico Release 2.6.4+ onwards.

Micropython support

Update: As of CircuitPython 8.2.1, the PicoADK is supported! Get it here

Projects

Want your project listed? Let me know.

Community

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

EDA Libraries

3D Model

The STEP file for mechanical design can be found here.

More Pictures

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

PicoADK v1.1 Top Photo courtesy of Paul D. Pape - derwellenreiter for schneidersladen, Berlin, Germany.

PicoADK v1.1a Top

More Repositories

1

PicoADK-Firmware-Template

🎡 🎹 Firmware boilerplate for the RP2040 powered PicoADK Audio Development Board. 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
C
137
star
2

esp-find3-client

3rd Party Indoor Location using ESP8266/ESP32 and Find3 (https://github.com/schollz/find3)
C++
128
star
3

AKWF_WaveForms

AKWF Single-Shot Waveforms as Signed 16-bit Integer C-Headers for use in Wavetable Synthesis. Resampled to 256+1 Samples.
C
33
star
4

PicoADK-Eurorack-Module

A Eurorack Module with 8x CV ins, 6 potentiometers, OLED screen, and 32-bit Audio Ouput ...
19
star
5

rp2040-vult-demo-board-template

A Vult DSP template for the RP2040 DSP Demo Board (PCM5102 32-bit Audio Codec, CV, Gate, MIDI)
C
14
star
6

wg-web

A CRUD-Application for managing WireGuard peers (e.g. for dynamic peer management) - WiP
Python
13
star
7

USB-C-Eurorack-PSU

STUSB4500 + TPS5430 based USB-C Eurorack PSU
C++
10
star
8

MT8816

Arduino Library to contol a Mitek MT8816 8x16 Analog Crosspoint Switch
C++
8
star
9

AudioOS

Buildroot based Raspberry Pi 4 OS with Real Time Kernel
Makefile
5
star
10

RP2040-Base-Template

A basic template for RP2040 based boards using PICO-SDK.
C
4
star
11

VCVRack-AbletonLink

PoC VCV Rack 2.0 module providing Ableton Link with Start/Stop Sync.
C++
3
star
12

rp2040-base-pcb-template

A template EasyEDA project with Raspberry Pi RP2040, USB-UART Bridge, 16MB Flash and 800mA LDO optimised for JLCPCB PCBA. πŸ”Œ πŸ”¨
3
star
13

AKWF_WaveForms_1024

Resampled AKWF Waveforms as C-Headers (1024+1 samples each)
C
3
star
14

JUCE-Vult-Demo

A monophonic phase-distortion synthesizer example written in Vult DSP. Standalone / AU / VST3.
C++
3
star
15

BeMicro-CV-Multicomp

Pick-and-mix to create your own custom computer on the BeMicro CV FPGA Board.
VHDL
2
star
16

NordModularPatches

Patches for Nord Micro Modular, Nord Modular G1 and Nord Modular G2
2
star
17

PicoUI

WiP User Interface Graphics + Input handling library for Arduino
C++
2
star
18

RemoteIO-gRPC

Remote I/O service for RaspberryPi using gRPC (and Protobuf)
Go
2
star
19

NorthernLights

Work in progress nRF24 DMX wireless light controller (ArtNet, DMX)
C++
2
star
20

AmbikaVoicecardControl

Arduino Library for controlling an Ambika Voice Card via SPI.
C++
2
star
21

RP2040-NRF24-Sensor-Node

A low-power Raspberry RP2040 + nRF24L01+ Sensor Node with LiPo Charger and Protection Circuitry
2
star
22

AudioOS-Buildroot

Realtime Audio optimized OS for Raspberry Pi 3/4 based on Buildroot.
Makefile
2
star
23

AudioOS-JUCE-Example

C++
1
star
24

DadaControl

JavaScript
1
star
25

BitmapFnts

C
1
star
26

OpenFrameworks-PS3Eye-FaceTracker

Just a dirty test with OF, The PS3Eye and FaceTracker @60fps.
1
star
27

debugomatic-gui

A GUI based on dear imgui for the RP2040 debug-o-matic board (swd scan, jtag scan, i2c enum, ..)
C++
1
star
28

modep-pi4-aarch64

Tweaks and config for modep-host / modep-ui for Raspberry Pi 4/400.
1
star
29

FabLabML

Fab Lab Markup Language - A markup language to describe your fablab
1
star
30

raspberry-juce

Dockerfile
1
star
31

imgui-cmake-template

C++
1
star
32

MIDIBox-FB01-Programmer

Yamaha FB-01 4-op FM Synth MIDI CC proxy / programmer
C
1
star
33

PicoADK-Firmware-Arduino

Work-in-progress Arduino version for the PicoADK Audio Development Board
C++
1
star
34

GLSL-Shaders

C
1
star
35

linux-rpi-5.4.y-rt

Raspberry Pi Kernel 5.4.y with PREEMT_RT Realtime Patches.
C
1
star
36

RaspberryPi-PL011-MIDI

C
1
star
37

Teensy_AK4558

Eagle
1
star
38

PicoADK-Eurorack-Module-VCV

VCV Rack Module for the PicoADK Eurorack Module "Aurora"
C
1
star