

WavetablePi
A wavetable module powered by a Raspberry Pi Zero 2W and mt32-pi
- Size
- 39.3 × 75.7 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 13
- Nets
- 23
- Pads
- 107
- Tracks, vias
- 169, 20
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 16 Jan 2023
- Updated
- 17 Mar 2025
Overview
WavetablePi is an open-source printed circuit board by scrapcomputing, from the scrapcomputing/WavetablePi repository on GitHub, published under the GPL-2.0 licence. It is a 2-layer board of 39.3 × 75.7 mm with 13 parts on 23 nets, routed with 169 tracks and 20 vias.
Its parts include 2 capacitors and 2 resistors. It belongs with the audio and music boards and the Raspberry Pi (Linux) boards of this library.
README
README.mdWavetablePi
WavetablePi is a wavetable module based on the Raspberry Pi Zero 2 W running mt32-pi. It is capable of emulating several midi synthesizers, including mt32, sc55 and general midi with custom sound fonts. For a complete feature list please refer to the mt32-pi project.
For controlling the mt32-pi from DOS, please use mt32-pi-control.
- For the "Horizontal" version of this board please check out WavetablePiHoriz.
Features
- It currently supports two modes of audio: using the raspberry pi's PWM audio out (which is noisy and sounds pretty bad), and an external Hi-Fi PCM5102A based DAC.
- You can also attach a 0.91 OLED SSD1306 I2C 128x32 display.
- Starting from rev 0.3 PWM audio is filtered by a simple low-pass filter (R3-C3 and R4-C4).
I want to build one myself!
- Please note that the current version of the WavetablePi board is quite tall (76mm x 40mm) so please check if it fits your sound card, especially if it needs to be placed perpendicularly to the ISA slots.
- Also please make sure that there is enough clearance between the WavetablePi and the sound card. Some cards have large components that may touch the raspberry pi a
- A WavetablePi with the DAC or the OLED display takes quite a bit of vertical space, so you will end up wasting one ISA slot! There is just no room for a card right next to the sound card, as the OLED display and the DAC will be in the way.
- Finally please check that the PCM5102A HiFi DAC is in the form factor that fits the board. The one I am using is approximately 32mm x 17mm. Also please check that the pinout matches.
- For ordering the PCB, you usually just need to upload the zipped gerber files to the fab's website.
Assembly Tips / Troubleshooting
- For attaching the Pi flush against the board, it may be better to cut the 40-pin header into short sections (like 2x3) before soldering them. This should make it easier to solder and to remove the plastic spacers after soldering.
- DAC Board: Before soldering, check if the address solder bridges on the back are set: https://github.com/dwhinham/mt32-pi/wiki/GY-PCM5102-DAC-module
- If the music sounds weird, or slow check
mt32-pi.cfg. You may need to setgpio_baud_rate = 31250. - Please check out the detailed documentation of the mt32-pi project: https://github.com/dwhinham/mt32-pi
These tips are based on feedback from ThatRed (many thanks!). Feel free to check out the full text: https://github.com/scrapcomputing/WavetablePi/issues/1
Videos
Bill of materials
| Item | # | Description |
|---|---|---|
| Raspberry Pi Zero 2 W | 1 | The older RPi Zero is not fast enough |
| 40-pin 2x20 male header 2.54mm pitch | 1 | For attaching the RPi to the board. |
| 26-pin 2x13 female header 2.54mm pitch | 1 | For attaching the board to the wavetable header |
| 6-pin 2x3 pin male header 2.54mm pitch | 1 | For the audio select jumpers |
| Jumper 2.54mm pitch | 2 | Jumpers for the audio selection header |
| Capacitor 10uF through-hole ceramic | 2 | |
| Capacitor 100nF through-hole ceramic | 2 | C3 and C4 which form the PWM audio low-pass filter along with R3 and R4. 100nF is for a 1.6KHz cutoff frequency. Use lower values for higher cutoff |
| Resistor 22K Ohm | 1 | |
| Resistor 10K Ohm | 1 | |
| Resistor 1K Ohm | 2 | R3 and R4, which along with C3 and C4 form a low-pass filter of the PWM audio |
| 0.91 OLED SSD1306 I2C 128x32 module | 1 | (Optional) |
| PCM5102A I2S DAC Module (aka GY PCM5120) | 1 | (Optional but highly recommended) Please check the PCB for the supported dimensions and form factor! |
Parts
13| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 10uF | Capacitor_THT:C_Rect_L7.0mm_W2.0mm_P5.00mm | 10uF, 10uF |
| 2 | 1K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R3, R4 |
| 1 | 100nF | Capacitor_THT:C_Rect_L7.0mm_W2.0mm_P5.00mm | C3 |
| 1 | 10K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | 10K |
| 1 | 22K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | 22K |
| 1 | C | Capacitor_THT:C_Rect_L7.0mm_W2.0mm_P5.00mm | C4 |
| 1 | Conn_02x03_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical | Audio Select |
| 1 | Conn_02x13_Odd_Even | Connector_PinSocket_2.54mm:PinSocket_2x13_P2.54mm_Vertical | Wavetable1 |
| 1 | GY_PCM5102A | Custom:GY_PCM5102A | DAC1 |
| 1 | LCD_0.91_OLED | Custom:LCD_0.91_OLED | LCD1 |
| 1 | RPiZero2W | Custom:RPiZero2W | Raspberry Pi Zero 2 W |
Questions
How big is the WavetablePi PCB?
It measures 39.3 × 75.7 mm and has 2 copper layers, 1.6 mm thick.
What parts does the WavetablePi use?
13 parts. 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 WavetablePi KiCad files?
From the scrapcomputing/WavetablePi repository on GitHub, at the commit this page was made from: the board is kicad/WavetablePi.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the WavetablePi design in my own project?
Its repository publishes it under the GPL-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers40 × 20 mm

- 2 layers74.9 × 49.5 mm

- 2 layers35 × 29 mm

MagSpoofTC
samyk/magspoof
A portable device that can spoof/emulate any magnetic stripe, credit card or hotel card "wirelessly", even on standard magstripe (non-NFC/RFID) readers.
13 parts4.2k - 2 layers20.6 × 23.6 mm

AO-03 signal amplifier
fossasia/pslab-scripts
Pocket Science Lab - Scripts for Sensor Experiments
13 parts1.6kApache-2.0 - 2 layers47 × 35.6 mm

- 2 layers95 × 95 mm

Cube batteryboard
willem-pennings/balancing-cube
A cube that balances itself in a corner or edge using reaction wheels
13 parts1.1kGPL-3.0 - 2 layers15.2 × 20.3 mm

Pt100stick
VoronDesign/Voron-Hardware
Cool Hardware designed by the Voron Design group
13 parts1.1kGPL-3.0 - 2 layers53.9 × 23.2 mm

Buffer
hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI
13 parts1kGPL-3.0