Schematics

The circuit has three main parts: the MCU, the FPGA, and the SPI DAC. All three are connected via SPI and the buttons are attached directly to the MCU GPIO Pins.

fpga block diagram

Source Code Overview

The source code for the project is located in the Github repository here.

Bill of Materials

Item Part Number Quantity Unit Price Link
I2C input expander MCP23008-E/P-ND 4 $1.54 MCP23008
10k 1/20W Rotary Potentiometer 987-1649-ND 6 $2.51 FC15BR10K
10k 1/10W Slide Potentiometer PTA2043-2015CPB103-ND 6 $1.71 PTA2043
12 bit SPI -> DAC MCP4822-E/P-ND 2 $4.28 MCP4822
16 bit 12S -> DAC PCM1725U 2 $6.21 PCM1725U
.22 uF Capacitor C322C224K5R5TA 1 $0.36 C322C224K5R5TA
10 uF Capacitor C322C106K3R5TA 1 $0.79 C322C106K3R5TA
1K Resistor CF14JT1K00 1 $0.1 CF14JT1K00
White Arcade Buttons OBSC-24-CW 12 $3.95 OBSC-24-CW

Total cost: $101.11