Skip to the content
PCBKitNew board
4 layers65 × 56 mmWavePi hat, the printed circuit board in 3D

Multifuntion synth platform for Raspberry Pi and other single board computers.

Size
65 × 56 mm
Copper layers
4
Thickness
1.6 mm
Parts
24
Nets
16
Pads
129
Tracks, vias
119, 3
Pours
4
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
18 Jun 2019
Updated
21 Dec 2019

Overview

WavePi hat is an open-source printed circuit board by t9999clint, from the t9999clint/WavePi repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 65 × 56 mm with 24 parts on 16 nets, routed with 119 tracks and 3 vias.

It is built around the LM2596S-5.0 and CAT24C32LI-. Its parts include 7 resistors, 5 connectors, 3 ICs, 2 capacitors and 2 diodes. It belongs with the audio and music and computers and single-board computers boards of this library.

Main components

2

README

README.md

WavePi

Multifuntion synth platform for Raspberry Pi and other single board computers.

Project page... https://www.retroimperfections.com/wavepi/

Discussion Forum... https://www.vogons.org/viewtopic.php?f=62&t=65908

WavePi aims to be a Open Source, all in one synth solution for older PCs that lack the grunt to use modern synthesizer software.

Meant mainly to be a drop-in replacement for a Waveblaster daughterboard for a SoundBlaster card for the 90’s, however it can also be configured for several different uses. You can connect to any Midi port, or even through serial to the host machine. This device can also act as a standalone synth in a professional music stack. Plug it into a Midi Keyboard or Guitar and use it to rock out!

I use it to play old games on my MS-DOS pc with improved music, but I also built one for my Mom to practice piano with on a old 90’s Yamaha Midi keyboard I found at goodwill. (My synth sounds far more realistic than the built in synth) I decided to keep the project 100% open source in hopes that this project will continue on long after I am no longer able to work on it.

The components required for this are simple.

  1. Small computer running Linux (preferably debian). 1gb ram or greater is strongly recommended for best results.
  2. Midi interface of some kind (USB, Serial, etc…)
  3. DAC of some kind to pump out the audio with
  4. Something to send it Midi data with (MS-DOS games, Midi Instrument, etc…)

The hardware I am developing this project with is as follows…

  1. Raspberry Pi 3B+ running Raspbian.
  2. Serial 2 Midi interface wired into Waveblaster header on MS-DOS PC
  3. USB DAC plugged into the Ras Pi
  4. Intel 486 DX2 PC running MS-DOS 6.22 and a Soundblaster 16 with the Rasp Pi wired into it for Midi Data and power.

I will be making a rasbian image for the ras pi 3, but I want to add a few more features first.

The installation instructions are as follows, keep in mind that the project is in beta state right now.

  1. Install debian based os on your synth device. For Raspberry Pi's I strongly recommend raspbian lite (no gui = more ram)
  2. (OPTIONAL) I highly recommend enabling openssh-server so you can remotly manage the files and whatnot using putty and filezilla -- sudo apt install openssh-server -yy && sudo systemctl enable ssh
  3. (OPTIONAL)update rasbian to latest firmware and whatnot. -- sudo rpi-update
  4. Update other packages -- sudo apt update && sudo apt upgrade -yy && reboot
  5. configure audio levels -- alsamixer
  6. (optional, but STRONGLY recommended) change default password for pi user. -- passwd
  7. Use wget to download latest WavePi release -- wget https://github.com/t9999clint/WavePi/archive/v0.9.0.tar.gz
  8. use tar to extract the archive -- tar xzf v0.9.0.tar.gz
  9. rename extracted folder to WavePi -- mv WavePi-0.9.0 WavePi
  10. change to WavePi directory -- cd WavePi
  11. make it executable -- chmod +x ./install.sh
  12. run install-munt.sh as root to compile and install munt to your system. Go get some coffee this will take a bit. -- sudo ./install.sh
  13. copy over soundfonts and munt rom files to appropriate folders using filezilla or something.
  14. change to the configs subfolder -- cd ../configs
  15. use aplay to get your alsa device number. -- aplay -l
  16. edit main.cfg file and modify the device numbers to match your hardware -- nano main.cfg
  17. edit the 000.cfg and modify the soundfont settings to match the soundfont you downloaded. -- nano 000.cfg
  18. (optional) create more config files by copying the 000.cfg and configure them for other soundfonts. -- cp 000.cfg 003.cfg
  19. reboot -- sudo reboot

Now there are two ways to control WavePi, either by using the wavepi command, or by sending it special sysex messages.

WavePi command syntax

  • wavepi 000 : By entering in a 3 digit number it will attempt to load a config file matching that number in the sonfigs folder. if no file is found it will attempt to load the default config instead (usually 000.cfg).
  • wavepi configfile.cfg : By entering a config file, must have .cfg as an extention and contain no spaces in it's filepath/name, wavepi will load that instead of using a numbered config in the config folder.
  • wavepi soundfont.sf2 : By entering a .sf2 file, wavepi will start it up using the soundfont.sh script. (all files cannot contain spaces in it's name or folder path)
  • wavepi stop : By entering this command, wavepi will check what synth is currently running and stop it using the pkill -P PID command. (please note that the script is smart enough to only allow one synth to run at a time, if you start a synth while one is already running, it'll stop the currently running one first)

WavePi Sysex messages.

  • These messages are using the same format as the ones that Falcosoft MidiPlayer uses. F0 66 04 00 F7 is for config 000, F0 66 04 09 F7 is for config 009 (there is currently a bug that limits this to only 000-009)
  • This can be sent from MS-DOS using this script... https://downloads.kor.ninja/Music/wavepi/sysex.zip

Parts

24
QtyValueFootprintReferences
43mm_Mounting_Holeproject_footprints:NPTH_3mm_IDH1, H2, H3, H4
23.9KResistor_SMD:R_0603_1608MetricR3, R4
110KResistor_SMD:R_0603_1608MetricR2
11N4148Diode_THT:D_A-405_P10.16mm_HorizontalD1
1220Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR5
1220uFCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC2
133uHInductor_THT:L_Radial_L8.0mm_W8.0mm_P5.00mm_Neosid_SD8L1
140HATConnector_PinSocket_2.54mm:PinSocket_2x20_P2.54mm_VerticalJ2
140KResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR7
14KResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR6
1680uFCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC1
16N138Package_DIP:DIP-8_W10.16mmU2
1AudioJackConnector_Audio:Jack_3.5mm_CUI_SJ1-3533NG_Horizontal_CircularHolesJ4
1CAT24C32Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU1
1CONN_01X02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1
1DNPResistor_SMD:R_0603_1608MetricR1
1Floppy Power Connectordigikey-footprints:PinHeader_1x4_P2.54mm_Drill1.02mmJ5
1IN5824Diode_THT:D_A-405_P10.16mm_HorizontalD2
1LM2596Package_TO_SOT_SMD:TO-263-5_TabPin3U3
1WaveBlaster ConnectorConnector_PinSocket_2.54mm:PinSocket_2x13_P2.54mm_VerticalJ3

Questions

How big is the WavePi hat PCB?

It measures 65 × 56 mm and has 4 copper layers, 1.6 mm thick.

What parts does the WavePi hat use?

24 parts, built around the LM2596S-5.0 and CAT24C32LI-. 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 WavePi hat KiCad files?

From the t9999clint/WavePi repository on GitHub, at the commit this page was made from: the board is pcb/WavePi-hat/WavePi-hat.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the WavePi hat design in my own project?

Its repository publishes it under the GPL-3.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

  • 4 layers200 × 100 mmHeteromycin, the printed circuit board in 3D

    Heteromycin

    hasenbanck/heteromycin

    A 3D printer board using a powerfull STM32 MCU, TMC5160/TMC2160 driver and a Raspberry Pi or compatible SBC

    373 parts40
  • 2 layers65 × 56 mmDebounce shield, the printed circuit board in 3D

    Debounce shield

    MayaPosch/DebounceHat

    Fully isolated, input debounce Hat for Raspberry Pi, for up to 6 switches, relays and powered devices

    83 parts24BSD-3-Clause
  • 2 layers65 × 56 mmPi hat, the printed circuit board in 3D

    Pi hat

    MaZderMind/jukebox

    Software and Hardware of my RaspberryPi-Jukebox-Project

    98 parts4
  • 2 layers66 × 57 mmFlood hat, the printed circuit board in 3D

    Flood hat

    smart-facility/cognicity-floodsensor

    Cognicity flood sensor example code

    57 parts4GPL-3.0
  • 2 layers65 × 56 mmRaspberrypi hat, the printed circuit board in 3D

    Raspberrypi hat

    fablabcb/fablock

    fablock is an RFID lock to our fablab

    31 parts2
  • 2 layers182.5 × 65 mmV1Panel, the printed circuit board in 3D

    V1Panel

    pilotniq/MJoulnir

    Hardware and software for the control system of a full size electric boat.

    171 parts2
  • 2 layers65 × 45 mmRpi gpib pico, the printed circuit board in 3D

    Rpi gpib pico

    Elemecca/rpi-gpib

    GPIB interface for Raspberry Pi

    73 parts1