PicoADK - Audio Development Kit

by DatanoiseTV

Image of Board

The PicoADK is a RP2040 based Audio Development Kit, 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 / RP2040, plus a high quality Audio Output, 8 Analog Inputs for connecting potentiometers, control voltage from Eurorack systems or even additional input signals.

Why did you make it?

I made it initially for myself to build digital oscillators for a hybrid synth and to experiment with the RP2040 as a DSP.

What makes it special?

It has a 32-bit Audio Codec and an SPI 8x 12-bit ADC and is only longer by 4 pins on each side than the Raspberry Pico!


  • RP2040 Dual Core 133MHz Cortex M0+ (running at 2x 400MHz Overclocked in the RTOS Template)
  • 2MB Flash (plenty for synthesizers and sound generators)
  • Very low noise LDO regulators (separate LDO for digital circuits and separate for analog circuits)
  • No switching regulators
  • Pin-compatible with RP2040 (besides a few pins internally used or rearranged)
  • PCM5100A 32-bit, up to 384KHz I2S Audio Codec
  • 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 (fMax=48 KHz) at low-impedance (100 Ohm). With 5V VREF suitable for CV (no overvoltage protection, unipolar)
  • Series resistors on ADC SPI to improve signal integrity and reduce crosstalk
  • Symbols marking special pin functions on the pin headers
  • 4 LEDs on shared GPIO2-5 for debugging
  • GPIO15 is hard-wired to a LED
  • ESD Protection on USB
  • SWD Debug Port



Have some info to add for this board? Edit the source for this page here.

CircuitPython 8.2.6

This is the latest stable release of CircuitPython that will work with the PicoADK - Audio Development Kit.

Use this release if you are new to CircuitPython.

Release Notes for 8.2.6

Built-in modules available: _asyncio, _bleio, _pixelmap, adafruit_bus_device, adafruit_pixelbuf, aesio, alarm, analogbufio, analogio, array, atexit, audiobusio, audiocore, audiomixer, audiomp3, audiopwmio, binascii, bitbangio, bitmaptools, bitops, board, builtins, builtins.pow3, busio, busio.SPI, busio.UART, collections, countio, digitalio, displayio, errno, floppyio, fontio, framebufferio, getpass, gifio, i2ctarget, imagecapture, io, json, keypad, keypad.KeyMatrix, keypad.Keys, keypad.ShiftRegisterKeys, math, microcontroller, msgpack, neopixel_write, nvm, onewireio, os, os.getenv, paralleldisplay, pulseio, pwmio, qrio, rainbowio, random, re, rgbmatrix, rotaryio, rp2pio, rtc, sdcardio, select, sharpdisplay, storage, struct, supervisor, synthio, sys, terminalio, time, touchio, traceback, ulab, usb_cdc, usb_hid, usb_midi, vectorio, watchdog, zlib

Included frozen(?) modules: neopixel

Absolute Newest

Every time we commit new code to CircuitPython we automatically build binaries for each board and language. The binaries are stored on Amazon S3, organized by board, and then by language. These releases are even newer than the development release listed above. Try them if you want the absolute latest and are feeling daring or want to see if a problem has been fixed.

Previous Versions of CircuitPython

All previous releases of CircuitPython are available for download from Amazon S3 through the button below. For very old releases, look in the OLD/ folder for each board. Release notes for each release are available at GitHub button below.

Older releases are useful for testing if you something appears to be broken in a newer release but used to work, or if you have older code that depends on features only available in an older release. Otherwise we recommend using the latest stable release.