Skip to the content
2 layers152.4 × 127 mmECE445L Lab7, the printed circuit board in 3D

Embedded music-streaming system using ESP32 and TM4C MCUs, featuring USB-UART audio streaming, SPI DAC output, MOSFET-based analog filters, digital audio effects, real-time control via potentiometers, and a web-based interface.

Size
152.4 × 127 mm
Copper layers
2
Thickness
1.6 mm
Parts
215
Nets
192
Pads
647
Tracks, vias
1,366, 282
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
16 Dec 2025
Updated
17 Dec 2025

Overview

ECE445L Lab7 is an open-source printed circuit board by niranjannt, from the niranjannt/Local-Music-Streaming-Pipeline repository on GitHub. It is a 2-layer board of 152.4 × 127 mm with 215 parts on 192 nets, routed with 1,366 tracks and 282 vias.

It is built around the ESP32-D0WD-V3, OPA2350UA and TLV5616CD, with the FT232RQ, LM4041CILPR and MMBF170 among its other parts. Its parts include 111 resistors, 36 capacitors, 18 transistors, 15 ICs and 8 switches. It belongs with the interfaces and adapters and audio and music boards and the ESP32 boards of this library.

Main components

7

README

README.md

Local Music Streaming Pipeline (ECE 445L Final Project)

This repository contains the final project for Embedded Design Laboratory (ECE 445L) at UT Austin, developed by Niranjan Telkikar, Ashton Knecht, Thompson Truong, and Nathan DeLaRosa. The project implements a music-streaming pipeline using local WAV files, combining frontend/backend software with embedded hardware.

Project Overview

Our system streams music from a web interface to an ESP32-Devkit-V1 and outputs audio through a 12-bit SPI DAC connected to a headphone jack. The pipeline includes both analog and digital filters controlled in real-time by circular potentiometers, allowing adjustment of treble, mid, bass, and digital effects such as flanger, distortion, and reverb.

Pipeline Flow

  1. Web Interface: Streams WAV files via Java Serial library to the ESP32 through a USB-UART converter.
  2. ESP32: Receives serial data and sends it to the SPI DAC (mono channel). It also handles digital filter adjustments.
  3. DAC: Outputs analog audio to headphones.
  4. TM4C123GH6PM: Reads potentiometer inputs for analog filters and adjusts MOSFET gain circuits for treble, mid, and bass channels in real-time.
  5. Visualizer: Displays right-bass changes in real-time using ADC input from the TM4C.

Team Contributions

  • Ashton Knecht:

    • Designed and soldered the PCB with ESP32-Devkit-V1.
    • Implemented MOSFET gain circuits for analog filters.
    • Carefully routed PCB to minimize trace length.
  • Thompson Truong:

    • Designed the enclosure and circular potentiometers for analog and digital filter control.
    • Developed ESP-IDF code for digital filters on the ESP32 and analog filters on the TM4C.
  • Nathan DeLaRosa:

    • Implemented audio playback and backend/frontend for the web interface.
    • Wrote ESP-IDF code for streaming audio.
  • Niranjan Telkikar:

    • Wrote and tested the mono DAC_Out function for the ESP32 (Arduino IDE/ESP-IDF).
    • Developed a basic visualizer for real-time bass monitoring.
    • Assisted with hardware debugging and ESP-IDF integration.

Hardware Components

  • ESP32-Devkit-V1
  • TM4C123GH6PM microcontroller
  • 12-bit SPI DAC (mono)
  • MOSFET-based analog gain circuits
  • Circular potentiometers for analog and digital filters
  • Headphone jack for output audio

Software Components

  • Arduino IDE / ESP-IDF framework for microcontroller programming
  • Java Serial library for web-to-ESP32 streaming
  • Frontend/backend web interface for music streaming
  • Real-time visualizer reading ADC inputs from TM4C

Usage

  1. Connect the ESP32 and TM4C to your computer via USB.
  2. Launch the web interface to stream WAV files.
  3. Adjust analog and digital filters using the circular potentiometers.
  4. Observe audio output through headphones and visualizer display.

Download a demo video of the project here!

Acknowledgements

This project was completed as part of ECE 445L: Embedded Design Laboratory at UT Austin.

Parts

215
QtyValueFootprintReferences
190.1uCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1, C3, C10, C11, C12, C13, C15, C22, C23, C24, C25, C27, C28, C29, C30, C31 +3
1910kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR5, R10, R12, R20, R21, R31, R33, R35, R36, R42, R43, R46, R53, R54, R62, R64 +3
182kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR11, R13, R22, R23, R24, R32, R44, R45, R55, R56, R103, R104, R105, R109, R110, R111 +2
18MMBF170Package_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q17, Q18 +2
9100Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR74, R76, R78, R80, R82, R85, R89, R101, R107
810kECE445L:P120PK-Y25BR10KR83, R86, R87, R90, R91, R92, R93, R94
840kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR16, R17, R28, R37, R49, R50, R60, R68
8OPA2350ECE445L:DIP-8_W7.62mm_LongPadsU5, U6, U7, U8, U10, U11, U12, U13
7100kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR73, R75, R77, R79, R81, R84, R88
630kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR18, R19, R30, R51, R52, R61
50Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR6, R7, R8, R27, R29
41.2nCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC4, C6, C16, C18
4184kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR14, R25, R47, R58
4200kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR39, R40, R70, R71
430nCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC5, C7, C17, C19
468.8kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR15, R26, R48, R59
4~ECE445L:MountingHole_4_40H1, H2, H3, H4
310uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC2, C14, C26
2+3V3ECE445L:Testpoint_1x02_P2.54mmTP1, TP2
20.1uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC35, C36
21.5VResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR98, R99
2125Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR100, R106
21N914ECE445L:Testpoint_1x02_P2.54mmD3, D4
23.3kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR38, R69
23.7nCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC9, C21
250Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR96, R97
250kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR41, R72
25K1Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R2
27.5kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR34, R66
275Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR102, R108
29.5nCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC8, C20
2GNDECE445L:Testpoint_1x02_P2.54mmTP3, TP4
2TLV5616ECE445L:DIP-8_W7.62mm_LongPadsU9, U14
1+VRailECE445L:Testpoint_1x02_P2.54mmTP5
1+VRefECE445L:Testpoint_1x02_P2.54mmTP6
11.5kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR95
11kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR3
12479774-1ECE445L:24797741J1
147kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR4
1Adafruit ST7735RECE445L:adafruit_st7735r2U15
1AudioJackECE445L:STX3000J3
1DelayECE445L:SW_PUSH_6mmSW7
1DistortionECE445L:SW_PUSH_6mmSW5
1EK-TM4C123GXLECE445L:ti_EKTM4C123GXLJ2
1ESP32-D0WD-V3ECE445L:ESP32_30pinU3
1FT232RECE445L:FT232R-BreakoutU4
1FlangerECE445L:SW_PUSH_6mmSW4
1LCDModeECE445L:SW_PUSH_6mmSW3
1LM2937ET-3.3_NOPBECE445L:TO254P470X1028X1955-3PU1
1LM4041CILPRECE445L:ti_LM4041CILPRU2
1LOGOLOGOG1
1L_BassECE445L:Testpoint_1x02_P2.54mmTP12
1L_MidECE445L:Testpoint_1x02_P2.54mmTP11
1L_OutECE445L:Testpoint_1x02_P2.54mmTP14
1L_TrebleECE445L:Testpoint_1x02_P2.54mmTP10
1PD6ECE445L:LED_D5.0mmD1
1PD7ECE445L:LED_D5.0mmD2
1POWERECE445L:LED_D5.0mmD5
1PauseECE445L:SW_PUSH_6mmSW2
1R_BassECE445L:Testpoint_1x02_P2.54mmTP9
1R_MidECE445L:Testpoint_1x02_P2.54mmTP8
1R_OutECE445L:Testpoint_1x02_P2.54mmTP13
1R_TrebleECE445L:Testpoint_1x02_P2.54mmTP7
1ReverbECE445L:SW_PUSH_6mmSW6
1SW_SPSTECE445L:SW-T3-1A-A-A3-S1SW1
1TempoECE445L:SW_PUSH_6mmSW8

Similar boards

  • 2 layersBaseline project, the printed circuit board in 3D

    Baseline project

    mjetpurwala/SchoolProjects

    Projects completed at my time at UT Austin

    65 parts
  • 2 layers114.4 × 88.9 mmSenior Design, the printed circuit board in 3D

    Senior Design

    spencshis-prog/Watermelon_Lovers_FH10b

    This repository contains the codebase for the project, including a frontend for user interaction and a backend (currently under development) for data processing and evaluation.

    69 parts
  • 2 layers83.6 × 86.6 mmECE445L Lab7, the printed circuit board in 3D

    ECE445L Lab7

    Mikail-Sadic-UT/POV-Globe

    Globe

    102 parts41
  • 2 layers128.8 × 114.8 mmECE445L Operator Final, the printed circuit board in 3D

    ECE445L Operator Final

    Andres-Wearden/Lab10

    The typical explanation for the repo structure. Lab specific instructions can be found further below.

    60 parts
  • 2 layers152.4 × 88.9 mmSwanGanzInterface, the printed circuit board in 3D

    SwanGanzInterface

    ATK-1/SeniorDesign_SwanGanz

    The contributors to this senior design project were Nathan DeLaRosa, Ashton Knecht, Jack Son, and Jerry Xia under the supervision of Dr. Jonathan Valvano.

    108 parts
  • 2 layers132 × 78 mmECE445L Lab7, the printed circuit board in 3D

    ECE445L Lab7

    AndrewYin04/VR-Goggles-Embedded-Lab

    The typical explanation for the repo structure. Lab specific instructions can be found further below.

    124 parts
  • 2 layers152.4 × 127 mmECE445L Final Project, the printed circuit board in 3D

    ECE445L Final Project

    DylanMeeks/ece445l-lab7-10

    The typical explanation for the repo structure. Lab specific instructions can be found further below.

    243 parts
  • 4 layers30 × 70 mmWearable, the printed circuit board in 3D

    Wearable

    brnna05/senior-design-strength-training

    Senior Design project for ECE 364D - Fitness wearable for strength training

    73 parts

Questions

How big is the ECE445L Lab7 PCB?

It measures 152.4 × 127 mm and has 2 copper layers, 1.6 mm thick.

What parts does the ECE445L Lab7 use?

215 parts, built around the ESP32-D0WD-V3, OPA2350UA, TLV5616CD and FT232RQ. 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 ECE445L Lab7 KiCad files?

From the niranjannt/Local-Music-Streaming-Pipeline repository on GitHub, at the commit this page was made from: the board is hw/ECE445L_Lab7/ECE445L_Lab7.kicad_pcb and its schematic hw/ECE319K_Starter/ECE319K_Starter.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ECE445L Lab7 design in my own project?

Its repository states no licence, so its author keeps all rights: ask niranjannt before reusing the design.