Skip to the content
2 layers51 × 30 mmEsp32audio, the printed circuit board in 3D

ESP32 Audio Player main board (KiCad, XIAO ESP32-S3)

Size
51 × 30 mm
Copper layers
2
Thickness
1.6 mm
Parts
45
Nets
42
Pads
162
Tracks, vias
285, 60
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
20 Jun 2026
Updated
20 Jun 2026

Overview

Esp32audio is an open-source printed circuit board by ppisljar, from the ppisljar/freeesp32_audioplayer repository on GitHub. It is a 2-layer board of 51 × 30 mm with 45 parts on 42 nets, routed with 285 tracks and 60 vias.

It is built around the CS4344, PJ-320A and SS14. Its parts include 18 capacitors, 11 resistors, 5 connectors, 4 ICs and 1 diode. It belongs with the audio and music boards and the ESP32 boards of this library.

Main components

3

README

README.md

freeesp32_audioplayer

Open-source ESP32 audio playback board designed primarily as the hardware platform for freeesp32_ave — audio-visual entrainment (AVE) firmware.

This repository contains the full KiCad project: schematic, PCB layout, design rules, 3D models, datasheets, and helper scripts.

Board renders

TopBottom
Top viewBottom view

KiCad 3D renders. Top: TRRS headphone jack, USB-C, microSD slot, XIAO ESP32-S3 module, LED/expansion pin headers. Bottom: speaker amplifier (APA2068), bulk capacitors, level-shifting resistors.

Board features

  • MCU module: Seeed Studio XIAO ESP32-S3 (Wi-Fi + BLE)
  • Headphone output: Cirrus Logic CS4344 stereo I²S DAC
  • Speaker output: APA2068 Class-D power amplifier
  • Storage: microSD card slot for offline audio and timeline files
  • LED outputs: configurable headers — works with NeoPixel (WS2812), DotStar (APA102), or direct PWM strips (the firmware picks the backend)

Power

The board can be powered any of three ways. The 5 V rail feeds the speaker amplifier (APA2068), and the XIAO's onboard LDO derives the 3.3 V rail that feeds the DAC (CS4344) and the MCU itself.

SourceConnectorVoltageNotes
USB-CXIAO ESP32-S3 onboard5 V (USB VBUS)Also used for flashing firmware and the serial console. The default during development.
External 5 VJ4 — JST PH 2-pin (V+_EXT)5 V regulatedFor powering from a bench supply, wall adapter, or upstream USB-PD trigger.
Li-ion batteryJ5 — JST PH 2-pin (BATTERY)3.0 – 4.2 VConnects to the XIAO's BAT+ pin. The XIAO's built-in charger manages the cell when USB is also plugged in.

Battery-powered audio

A single Li-ion cell sits below the 5 V needed by the speaker amplifier, so the board includes a TPS61023 synchronous boost converter (U4) that lifts BAT+ up to 5 V. Output is fed into the 5 V rail through a Schottky diode (D1) so the boost output can't backfeed USB VBUS when both USB and battery are connected.

This means the speaker output works on battery just as well as on USB — no compromise.

Combining sources — what's safe

CombinationSafe?Why
USB + battery✅ YesXIAO charges the cell; D1 blocks the boost from feeding USB.
USB + external 5 V (J4)❌ No — pick oneBoth feed the 5 V rail directly. Hot-swapping risks back-feeding the upstream supply.
External 5 V + battery✅ YesSame reasoning as USB + battery — D1 isolates the boost.

Tip: if you intend to deploy the board untethered in a meditation session, leave USB unplugged once you've flashed the firmware. The XIAO's USB controller draws current even when the host is idle.

Repository layout

text
main_board/
├── esp32audio.kicad_sch    # schematic
├── esp32audio.kicad_pcb    # PCB layout
├── esp32audio.kicad_pro    # KiCad project
├── 3dmodels/               # STEP models for enclosure design
├── datasheets/             # IC datasheets and reference schematics
├── analysis/               # generated reports (regenerable from source)
├── images/                 # 3D renders used in this README
├── outputs/                # gerbers, drill files, BOM, pick-and-place CSVs
└── *.py                    # helper scripts (netlist sync, freerouting…)

Related projects

RepoRole
freeesp32_audioplayerThis repo — open hardware (KiCad)
freeesp32_aveAVE firmware that runs on this board
freeesp32_ave_generatorWeb editor that generates session timelines for the firmware

Ordering the board

The main_board/outputs/ directory contains everything a PCB fab needs:

File / folderPurpose
outputs/Archive.zipGerbers + drill file (KiCad standard layer naming)
outputs/esp32audio.csvBOM with manufacturer part numbers (MPNs)
outputs/esp32audio-*-pos.csvPick-and-place coordinates (top / bottom / all)

PCBWay (recommended for assembly with non-LCSC parts)

  1. Go to https://www.pcbway.com/orderonline.aspx and upload outputs/Archive.zip. The site auto-detects board size, layer count (2-layer), and finish.
  2. Defaults are fine: FR-4, 1.6 mm, HASL or ENIG, green soldermask, white silkscreen.
  3. For assembly: enable PCB Assembly, upload esp32audio.csv (BOM) and esp32audio-top-pos.csv + esp32audio-bottom-pos.csv (CPL). PCBWay sources parts by MPN globally — useful if any component is out of stock on LCSC.
  4. Quoting + DFM review typically completes within 24 h; bare-board lead time ~3–5 days, assembled ~7–10 days.

JLCPCB (cheaper for bare boards / parts available on LCSC)

  1. Go to https://cart.jlcpcb.com/quote and upload outputs/Archive.zip.
  2. Defaults are fine. JLCPCB's free options match what this design needs.
  3. For assembly: enable PCBA, upload esp32audio.csv (BOM) and esp32audio-all-pos.csv (CPL). JLCPCB requires the parts to be in their LCSC catalog — verify MPN availability before ordering, and substitute equivalents in the BOM where needed.

Bare-board only (any fab)

Just upload outputs/Archive.zip — the gerbers use KiCad's standard layer naming (F_Cu, B_Cu, F_Mask, B_Mask, F_Paste, B_Paste, F_Silkscreen, B_Silkscreen, Edge_Cuts) which every modern fab recognises.

Regenerating outputs from source

If you edit the schematic or PCB, regenerate the manufacturing files from KiCad:

  • PCB → File → Fabrication Outputs → Gerbers… (use outputs/ as the output directory, then zip)
  • PCB → File → Fabrication Outputs → Drill Files…
  • PCB → File → Fabrication Outputs → Component Placement… (top + bottom CPL)
  • Schematic → Tools → Generate BOM…

Status

Hardware design in active development. See main_board/project_plan.md and main_board/lessons_learned.md for design notes.

License

TBD — open hardware license to be chosen (e.g. CERN-OHL-S 2.0).

Parts

45
QtyValueFootprintReferences
60.1uFCapacitor_SMD:C_0402_1005MetricC2, C5, C9, C10, C15, C18
410kResistor_SMD:R_0402_1005MetricR8, R11, R12, R13
3100kResistor_SMD:R_0402_1005MetricR1, R2, R7
310uFCapacitor_SMD:C_0805_2012MetricC4, C16, C19
3FiducialFiducial:Fiducial_1mm_Mask2mmFID1, FID2, FID3
21kResistor_SMD:R_0603_1608MetricR3, R4
2220uFCapacitor_SMD:CP_Elec_6.3x5.4C13, C14
23.3uFCapacitor_SMD:C_0805_2012MetricC7, C8
1100uFCapacitor_SMD:CP_Elec_6.3x5.4C11
11uFCapacitor_SMD:C_0402_1005MetricC3
12.2uFCapacitor_SMD:C_0603_1608MetricC12
122uFCapacitor_SMD:C_0805_2012MetricC17
13.3uFCapacitor_SMD:C_0603_1608MetricC6
1365kResistor_SMD:R_0402_1005MetricR9
14.7uHInductor_SMD:L_Taiyo-Yuden_NR-30xxL1
149.9kResistor_SMD:R_0402_1005MetricR10
1APA2068New_Library:SOP-16-P_3.9x9.9mm_P1.27mm_EP2.18x4.12mmU3
1BATTERYConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalGND BAT+
1CS4344Package_SO:TSSOP-10_3x3mm_P0.5mmU2
1GPIO_BREAKOUTConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ6
1L_SPKRConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ2
1PJ-320AConnector_Audio:Jack_3.5mm_PJ320D_HorizontalJ1
1R_SPKRConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ3
1SS14Diode_SMD:D_SMAD1
1TPS61023DRLRPackage_TO_SOT_SMD:SOT-563U4
1V+_EXTConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalGND 5V
1XIAO ESP32-S3New_Library:XIAO_ESP32-S3_SMDU1
1microSDConnector_Card:microSD_HC_Hirose_DM3D-SFJ7

Similar boards

  • 2 layers101.5 × 83 mmSd2snes, the printed circuit board in 3D

    Sd2snes

    mrehkopf/sd2snes

    SD card based multi-purpose cartridge for the SNES

    154 parts722GPL-2.0
  • 4 layers101.8 × 83 mmSd2snes ecp5, the printed circuit board in 3D

    Sd2snes ecp5

    samlittlewood/sd2snes_ecp5

    Lattice ECP5 variant of SD2SNES

    184 parts21GPL-2.0
  • 2 layers75.5 × 62.5 mmHeadphone dac, the printed circuit board in 3D

    Headphone dac

    fsodari/ProtoDAC

    USB Audio DAC

    69 parts10AGPL-3.0
  • 4 layers250 × 100 mmFreEDrum, the printed circuit board in 3D

    FreEDrum

    Gemuesesaft/freEDrum

    Open source EDrum trigger module

    492 parts1GPL-3.0
  • 4 layers62.1 × 67.3 mmProto pico, the printed circuit board in 3D

    Proto pico

    amundgr/proto_pico

    A mash of several different projects in one PCB in an attempt to kicak start all of them at once. Why fail and give up on one project when you can do it on several at once!

    112 parts
  • 2 layers100 × 100 mmLT Eval board, the printed circuit board in 3D

    LT Eval board

    kprasadvnsi/LT_Eval_board

    Evaluation board for Lichee Tang

    98 partsCC-BY-SA-4.0
  • 2 layers18.5 × 25 mmCS4344, the printed circuit board in 3D

    CS4344

    sneakylizard123-4/CS4344

    The CS4344 is a 24-bit stereo DAC that accepts I2S audio and runs from a single 3.3 V supply. This board gives it a 6-pin 2.54 mm header, a 3.5 mm stereo jack, and the passives it needs. There is no configuration bus.

    14 partsCERN-OHL-P-2.0
  • 6 layers100 × 75 mmSTM32H743, the printed circuit board in 3D

    STM32H743

    sneakylizard123-4/STM32H743

    This board puts an STM32H743XIH6 and an iCE40 UP5K on the same PCB. The H743 handles control, USB, Ethernet, storage, and audio.

    171 partsCERN-OHL-P-2.0

Questions

How big is the Esp32audio PCB?

It measures 51 × 30 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Esp32audio use?

45 parts, built around the CS4344, PJ-320A and SS14. 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 Esp32audio KiCad files?

From the ppisljar/freeesp32_audioplayer repository on GitHub, at the commit this page was made from: the board is main_board/esp32audio.kicad_pcb and its schematic main_board/datasheets/xiao_plus_base/XIAO Plus Base V1.0/XIAO Plus Base V1.0.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Esp32audio design in my own project?

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