System Overview & Documentation

Brief Overview of System, Goals, and Materials
Author

Victoria Parizot & Audrey Vo

Published

December 9, 2024

Motivation

Harvey Mudd College includes a plethora of student DJs that perform regularly around the 5Cs. As two currently aspiring DJs, we wanted to understand the technical workings of audio modifications and create a functional deck so that we could perform for our friends.

Insight into how we came up with this project can be found in Victoria’s blog.

Problem Statement

Our overarching goal for this project is to build an operational DJ Mixer that manipulates audio files based on user inputs. Our mixer will be able to control the frequency and gain of audio files passed in via an AUX cord based on physical inputs from the user.

Objectives

The objectives of this project are as follows:

  • Use an external ADC to read in a Stereo file into the FPGA
  • Communicate audio data between the MCU and FPGA
  • Implement low pass and high pass digital filters using the FPGA
  • Vary audio volume based on user gain inputs
  • Output the manipulated audio onto speakers

We met all of these objectives except for digital filtering. While we had digital filtering working in simulation, we ran out of time to implement it in hardware. As a result, we used the potentiometers in RC and CR circuits to implement the lowpass and highpass filters.

System Overview

The project is split between the MCU and FPGA. The MCU is in charge of:
  • Outputing the manipulated audio data with the onboard DAC with DMA
  • Interpreting and transferring the user input EQ values to the FPGA
  • Acting as the controller for SPI communication
The FPGA handles:
  • Generating the Clock for the PCM1808 ADC to read in audio
  • Digital filtering of the audio data based on EQ values from the MCU
  • Sending audio into the MCU

Ultimately, filtering was handled with an external circuit on the output of the MCU.

The system is described in the block diagram and wiring diagram below.

FPGA Diagram for Project PariVo

Wiring Schematic for Project PariVo

Bill of Materials

As our project deals with audio, in addition to the STM32L432KC MCU and UPduino v3.1 with the iCE40 UP5K, we used the following materials. Our new hardware was the PCM1808, an external ADC to convert stereo audio to digital to be read into the FPGA using I2S. More information on the PCM1808 can be found under FPGA & PCM1808 Design.

Item Part Number Quantity Cost per
PCM1808 ADC Breakout Board PCM1808 1 7.99
10k Slide Potentiometer PTA2043-2015CPB103-ND 2 $1.78
Stereo Headphone Jack ID: 1699 3 $0.95
Aux Cable Sourced from stockroom 3 n/a
8Ohm 4W Speakers Sourced from stockroom 3 n/a

In-Progress Photos

Here are some photos of our design process!

System Hooked up to Wooden Box System Hooked up to Wooden Box

Debugging MCU Audio Output