Skip to the content
PCBKitNew board
2 layers55 × 70.5 mmTreble, the printed circuit board in 3D

A hardware-based audio player built around the ESP32, utilizing a PCM5102A DAC for high-quality I2S digital audio output, a MicroSD card reader for storage, and an analog joystick for intuitive control.

Size
55 × 70.5 mm
Copper layers
2
Thickness
1.58 mm
Parts
5
Nets
37
Pads
57
Tracks, vias
112, 0
Pours
3
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
28 May 2026
Updated
26 Oct 2026

Overview

Treble is an open-source printed circuit board by PuffyPufferfish0, from the PuffyPufferfish0/treble repository on GitHub. It is a 2-layer board of 55 × 70.5 mm with 5 parts on 37 nets, routed with 112 tracks and 0 vias.

It is built around the ESP32-DEVKITC-VE. Its parts include 4 connectors and 1 IC. It belongs with the ESP32 boards of this library.

Main components

1

README

README.md

ESP32 I2S Audio Player -Treble

A hardware-based audio player built around the ESP32, utilizing a PCM5102A DAC for high-quality I2S digital audio output, a MicroSD card reader for storage, and an analog joystick for intuitive control.

Features

  • High-Fidelity Audio: Hardware-decoded streaming via the PCM5102A DAC over the I2S bus.
  • Expandable Storage: Reads audio files (e.g., 8MB .mp3 streams) directly from a MicroSD card via SPI.
  • Analog Navigation: KY-023 joystick integration for track/menu navigation, paired with a dedicated momentary trigger button.
  • Custom PCB: Designed in KiCad to transition from a breadboard prototype to a clean, modular printed circuit board.

Hardware Components

  • ESP32-DevKitC
  • PCM5102A I2S DAC Module (Note: XSMT pin physically bridged to HIGH for hardware unmuting)
  • MicroSD Card Adapter
  • KY-023 Analog Joystick
  • Momentary Push Button

Pin Mapping

ComponentPinESP32 GPIONotes
PCM5102A DACBCKGPIO 26I2S Bit Clock
DINGPIO 22I2S Data In
LCKGPIO 25I2S Word Select
SCKGPIO 13Driven LOW in software
MicroSD ReaderMISOGPIO 19VSPI Bus
MOSIGPIO 23VSPI Bus
CLKGPIO 18VSPI Bus
CSGPIO 5VSPI Bus
KY-023 JoystickVRXGPIO 32Analog Input (Powered via 3.3V)
VRYGPIO 33Analog Input (Powered via 3.3V)
Trigger ButtonPin 1GPIO 27Requires INPUT_PULLUP

WARNING

this project is still in development

Software & Dependencies

This project is built using the Arduino IDE/PlatformIO for the ESP32.

  • ESP32-audioI2S - Core library for I2S output and MP3 decoding.
  • Standard SPI.h and SD.h libraries for file system management.
  • Breadboard prototyping and hardware debugging
  • Hardware mute-bypass modification on DAC
  • Schematic in KiCad
  • PCB layout and routing
  • Custom PCB fabrication and assembly

trebleIDE

An Electron application with React

Recommended IDE Setup

Project Setup

Install

bash
$ npm install

Development

bash
$ npm run dev

Build

bash
# For windows
$ npm run build:win

# For macOS
$ npm run build:mac

# For Linux
$ npm run build:linux

Parts

5
QtyValueFootprintReferences
1ESP32-DevKitCPCM_Espressif:ESP32-DevKitCU1
1JOYSTICKConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical_SMD_Pin1RightJ3
1MICROSD_READERConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_HorizontalJ2
1audio DACConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_HorizontalJ1
1buttonConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_HorizontalJ4

Questions

How big is the Treble PCB?

It measures 55 × 70.5 mm and has 2 copper layers, 1.58 mm thick.

What parts does the Treble use?

5 parts, built around the ESP32-DEVKITC-VE. 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 Treble KiCad files?

From the PuffyPufferfish0/treble repository on GitHub, at the commit this page was made from: the board is kicad/treble/treble.kicad_pcb and its schematic kicad/treble/treble.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Treble design in my own project?

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

Similar boards

  • 2 layers103.8 × 50 mmGalagino pcb set, the printed circuit board in 3D

    Galagino pcb set

    harbaum/galagino

    A Galaga, Pac-Man and Donkey Kong arcade emulator for the ESP32

    26 parts558
  • 2 layers115 × 75 mmSpinCoater, the printed circuit board in 3D

    SpinCoater

    RParkerE/OpenSilicon

    OpenSilicon enables DIY semiconductor fabrication with open-source guides for building IC equipment at home. The project includes BOMs, 3D files, firmware, and PDKs, supporting makers and researchers in chip fabrication.

    11 parts55GPL-3.0
  • 2 layers127.3 × 54.1 mmESP32 SolarBox, the printed circuit board in 3D

    ESP32 SolarBox

    cole8888/SRNE-Solar-Charge-Controller-Monitor

    Read data from SRNE solar charge controllers.

    34 parts42
  • 2 layers62.2 × 57.1 mmWs2mqtt, the printed circuit board in 3D

    Ws2mqtt

    Tho85/ws2mqtt

    Connect WiSafe2 devices to Home Assistant

    8 parts28BSD-3-Clause
  • 2 layers99.9 × 99.9 mmSplit flap, the printed circuit board in 3D

    Split flap

    tinkermax/split-flap

    DIY mechanical spli-flap display

    28 parts13CC-BY-4.0
  • 2 layersJF ECU32, the printed circuit board in 3D

    JF ECU32

    JoachimF/JF-ECU32

    RC Jet Engine ECU

    27 parts12GPL-3.0
  • 2 layers72.5 × 84.8 mmDevboard, the printed circuit board in 3D

    Devboard

    ste2425/PSP-Bluetooth-AVConnector

    An AV-Out Breakout library for the PSP. Providing Kicad symbols and footprints to interface with the PSP 2/3K AVOut socket (also known as the TVOut socket)

    13 parts12
  • 2 layers100 × 88.9 mmGen2, the printed circuit board in 3D

    Gen2

    Alignof/Juggernaut

    疑似時限爆弾解除競技

    41 parts10MIT