Skip to the content
4 layers28.6 × 80.6 mmPmodADC, the printed circuit board in 3D

A fully discrete 14bit, 41kHz, FPGA-controlled Successive-Approximation Audio ADC and R2R Audio DAC.

Size
28.6 × 80.6 mm
Copper layers
4
Thickness
1.6 mm
Parts
137
Nets
115
Pads
471
Tracks, vias
997, 130
Pours
6
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
23 Sep 2020
Updated
6 Feb 2026

Overview

PmodADC is an open-source printed circuit board by schilkp, from the schilkp/PmodADC repository on GitHub, published under the MIT licence. It is a 4-layer board of 28.6 × 80.6 mm with 137 parts on 115 nets, routed with 997 tracks and 130 vias.

It is built around the 74AHCV541ABQX, SN74LVC1G17DCK and OPA1602AID, with the TLV61046ADBV, LDK320AM-R and TPS63700DRC among its other parts. Its parts include 51 resistors, 43 capacitors, 15 ICs, 4 connectors and 2 inductors. It belongs with the audio and music boards of this library.

Main components

7

README

README.md

PmodADC

Philipp Schilk, 2020

Description

A fully discrete 14bit, 41kHz, Successive-Approximation Audio ADC and 14bit 41kHz R2R Audio DAC controlled by an iCEBreaker FPGA board.

Overview

Details

Demos

These are a few demonstrations of the PmodADC and PmodDAC.

For each song, there are 3 files provided:
- The original (mono) wav file
- The song played back via a phone and recorded on the PmodADC
- The song played via the PmodDAC and recorded with a Focusrite Saffire Pro 40 Interface.

Note that all audio files are provided at 44.1kHz to allow for easier playback:
The PmodADC demos were played back at 44.1kHz and upsampled from 41kHz after recording.
The PmodDAC demos were downsampled to 41kHz for playback, and recorded at 44.1kHz.

All music by Kevin MacLeod, see Music Attribution below.

The wav files can be found here, or via the Soundcloud links below:

SongOriginalPmodADC DemoPmodDAC Demo
New Hero in Townhereherehere
Protofunkhereherehere
Whiskey on the Mississippihereherehere
The Partinghereherehere

Alternatively, a single website with all the above audio files can be found here.

Setup

A guide to setting up the open-source apio tool-chain can be found here.

This project requires some hardware modifications to the iCEbreaker board. See here for details.

The Python/Matlab scripts to play and record audio require some drivers and setup. See here for details.

Two versions of the Verilog Code are provided:
- Setup 1, which immediately plays back the audio recorded by the PmodADC via the PmodDAC.
- Setup 2, which allows the PmodADC and PmodDAC to send/receive audio via USB.

See here for details.

Python Utilities

The easiest way to record and play music is using the two python utilities provided here.

They rely on numpy, pyserial, wavio, and scipy:

bash
> pip install -r requirements.txt

They have only been tested under python3.

Record.py

Record music to a wav file using the PmodADC.

By default the audio is resampled to 44.1kHz.

Usage:

text
usage: Record.py [-h] (-s S | -n N | -i) [-r] comport outfile

positional arguments:
  comport     The COM port to which the board is connected.
  outfile     The filename under which the recorded audio should be saved.

optional arguments:
  -h, --help  show this help message and exit
  -s S        The number of seconds that should be recorded.
  -n N        The number of samples that should be recorded.
  -i          Recorded until a Keyboard Interrupt is received.
  -r          Do not re-sample audio to 44.1khz.

Record 10 seconds of audio from COM8 and save it to recording.wav:

bash
python3 Record.py COM8 recording.wav -s 10

Play.py

Play a wav file via the PmodDAC.

By default the wav file is resampled to 41kHz (if necessary).

Usage:

text
usage: Play.py [-h] [-L | -R] [-r] comport wavfile

positional arguments:
  comport     The COM port to which the board is connected.
  wavfile     The filename of the audio file.

optional arguments:
  -h, --help  show this help message and exit
  -L          Play the left audio channel.
  -R          Play the right audio channel.
  -r          Do not re-sample audio to 41kHz.

Play the left channel of some_audio_file.wav via COM8:

bash
python3 Play.py COM8 some_audio_file.wav -L

Matlab Utilities

Matlab functions to communicate with the PmodADC/PmodDAC are also provided.

See Scripts/MATLAB/RecordAudioExample.m and Scripts/MATALB/PlayAudioExample.m

Music Attribution

text
Protofunk by Kevin MacLeod  
Link: https://incompetech.filmmusic.io/song/4247-protofunk  
License: http://creativecommons.org/licenses/by/4.0/  

Whiskey on the Mississippi by Kevin MacLeod  
Link: https://incompetech.filmmusic.io/song/4624-whiskey-on-the-mississippi  
License: http://creativecommons.org/licenses/by/4.0/  
  
New Hero In Town by Kevin MacLeod  
Link: https://incompetech.filmmusic.io/song/5742-new-hero-in-town  
License: http://creativecommons.org/licenses/by/4.0/  

The Parting by Kevin MacLeod  
Link: https://incompetech.filmmusic.io/song/4501-the-parting  
License: http://creativecommons.org/licenses/by/4.0/  

Parts

137
QtyValueFootprintReferences
150u1Capacitor_SMD:C_0402_1005MetricC3, C7, C9, C10, C15, C21, C22, C31, C33, C35, C36, C40, C43, C44, C46
1520K 0.1%Resistor_SMD:R_0402_1005MetricR9, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R71, R72
1310K 0.1%Resistor_SMD:R_0402_1005MetricR22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R73, R74
121uCapacitor_SMD:C_0402_1005MetricC6, C12, C13, C14, C19, C25, C28, C29, C30, C32, C38, C45
710uCapacitor_SMD:C_1206_3216MetricC2, C8, C11, C17, C18, C20, C27
51K/100MHzInductor_SMD:L_0402_1005MetricFB1, FB2, FB3, FB4, FB5
3100RResistor_SMD:R_0402_1005MetricR7, R67, R68
315kResistor_SMD:R_0402_1005MetricR33, R35, R36
3discResistor_SMD:R_0402_1005MetricJP2, JP3, JP4
210uCapacitor_THT:CP_Radial_D4.0mm_P1.50mmC16, C26
21KPotentiometer_SMD:Potentiometer_Bourns_TC33X_VerticalRV1, RV2
21k2Resistor_SMD:R_0402_1005MetricR41, R42
220kResistor_SMD:R_0402_1005MetricR43, R44
222uH, 300mAInductor_SMD:L_Wuerth_MAPI-3020L1, L2
247kResistor_SMD:R_0402_1005MetricR34, R37
274AHCV541ABQSOT764-1_DHVQFN20:SOT764-1_DHVQFN20U5, U6
274VHC595BQ,115SOT763-1_DHVQFN16:SOT763-1_DHVQFN16U1, U2
2INTestPoint:TestPoint_Pad_D1.0mmTP3, TP6
2LDK320AM-RPackage_TO_SOT_SMD:SOT-23-5U8, U9
10u22Capacitor_SMD:C_0402_1005MetricC5
1100kResistor_SMD:R_0402_1005MetricR8
110RResistor_SMD:R_0402_1005MetricR1
110kResistor_SMD:R_0402_1005MetricR38
110n C0GCapacitor_SMD:C_0603_1608MetricC23
110nF C0GCapacitor_SMD:C_0603_1608MetricC34
1120kResistor_SMD:R_0402_1005MetricR2
133kResistor_SMD:R_0402_1005MetricR6
14n7Capacitor_SMD:C_0402_1005MetricC4
14n7 C0GCapacitor_SMD:C_0603_1608MetricC24
14u7Capacitor_SMD:C_0805_2012MetricC1
150k LogPotentiometer_THT:Potentiometer_Alps_RK09L_Single_VerticalR40
1560kResistor_SMD:R_0402_1005MetricR5
15kResistor_SMD:R_0402_1005MetricR39
15k6Resistor_SMD:R_0402_1005MetricR4
168kResistor_SMD:R_0402_1005MetricR3
174AHCT541BQ,115SOT764-1_DHVQFN20:SOT764-1_DHVQFN20U20
1820RResistor_SMD:R_0402_1005MetricR65
1AudioInJack_3.5mm_PJ-313D-6A:PJ-313D-6AJ4
1AudioInConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1
1DACTestPoint:TestPoint_Pad_D1.0mmTP5
1DIResistor_SMD:R_0402_1005MetricJP5
1DNSResistor_SMD:R_0402_1005MetricJP8
1DNSCapacitor_SMD:C_0402_1005MetricC37
1JumperResistor_SMD:R_0402_1005MetricJP7
1LF398_SOIC8Package_SO:SO-8_3.9x4.9mm_P1.27mmU16
1LT1711xMS8Package_SO:MSOP-8_3x3mm_P0.65mmU13
1LeaderTech SMS405Leader_SMS405:Leader_SMS405J2
1MIC5270BM5Package_TO_SOT_SMD:SOT-23-5U10
1NormalResistor_SMD:R_0402_1005MetricJP6
1OPA1602Package_SO:VSSOP-8_3.0x3.0mm_P0.65mmU12
1PmodConnector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_VerticalJ3
1REF3450Package_TO_SOT_SMD:SOT-23-6U7
1S&HTestPoint:TestPoint_Pad_D1.0mmTP10
1S&H_iTestPoint:TestPoint_Pad_D1.0mmTP9
1S&H_oTestPoint:TestPoint_Pad_D1.0mmTP11
1SL03Diode_SMD:D_SMFD1
1SN74LVC1G17DCKPackage_TO_SOT_SMD:SOT-353_SC-70-5U11
1TLV61046ADBPackage_TO_SOT_SMD:SOT-23-6U3
1TPS63700Package_SON:VSON-10-1EP_3x3mm_P0.5mm_EP1.65x2.4mm_ThermalViasU4
1bypResistor_SMD:R_0402_1005MetricJP1

More from schilkp/PmodADC

1
  • 4 layers28.6 × 80.6 mmPmodDAC, the printed circuit board in 3D

    PmodDAC

    schilkp/PmodADC

    A fully discrete 14bit, 41kHz, FPGA-controlled Successive-Approximation Audio ADC and R2R Audio DAC.

    122 parts6MIT

Similar boards

  • 2 layers80 × 75 mmUsb pd, the printed circuit board in 3D

    Usb pd

    Chase-Hicks/hardware-design

    project files and documentation for pcb design

    121 parts
  • 2 layers142.7 × 194.5 mmSoft Power Switch panelized, the printed circuit board in 3D

    Soft Power Switch panelized

    sparkfun/SparkFun_Soft_Power_Switch_Mk2

    Documentation, example code, and hardware for the SparkFun Soft Power Switch - JST 2mm.

    2,177 parts2
  • 2 layers25.4 × 25.4 mmSoft Power Switch USB C, the printed circuit board in 3D

    Soft Power Switch USB C

    sparkfun/SparkFun_Soft_Power_Switch_USB-C

    Documentation, example code, and hardware for the SparkFun Soft Power Switch - USB-C.

    61 parts2
  • 4 layers39.4 × 110.3 mmBetula Main, the printed circuit board in 3D

    Betula Main

    Cs4System/Eurorack

    Blattwerk Eurorack modules. Designed by Lorenz Neumann

    176 parts83
  • 4 layers51 × 59 mmPlaqchek sipm sens, the printed circuit board in 3D

    Plaqchek sipm sens

    PLAQCHEK/Hardware_Design

    circuit simulations, schematics, PCB design files

    99 parts
  • 6 layersEMG 2, the printed circuit board in 3D

    EMG 2

    xmoshte/Biosignals_Cobot

    Design files and documentation for a biosignals controlled collaborative robotic arm (cobot) by the Center for Robotics and Biomedical Engineering

    264 parts
  • 2 layers160 × 100 mmRedPitaya Lockbox, the printed circuit board in 3D

    RedPitaya Lockbox

    TU-Darmstadt-APQ/RedPitaya-Lockbox

    Digital controller for laser frequency stabilization based on the RedPitaya STEMlab 125-14 board

    110 parts40
  • 2 layers160 × 100 mmRedPitaya IntStab, the printed circuit board in 3D

    RedPitaya IntStab

    TU-Darmstadt-APQ/RedPitaya-IntStab

    Digital controller for laser intensity stabilization based on the RedPitaya STEMlab 125-14 board

    127 parts28

Questions

How big is the PmodADC PCB?

It measures 28.6 × 80.6 mm and has 4 copper layers, 1.6 mm thick.

What parts does the PmodADC use?

137 parts, built around the 74AHCV541ABQX, SN74LVC1G17DCK, OPA1602AID and TLV61046ADBV. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the PmodADC KiCad files?

From the schilkp/PmodADC repository on GitHub, at the commit this page was made from: the board is ECAD/PmodADC/PmodADC.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the PmodADC design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).