Skip to the content
2 layers32 × 25.5 mmSpeaker, the printed circuit board in 3D

The module takes digital audio from the Hackxpansion controller, converts it to an analog signal, amplifies it, and drives a speaker ## Images ## Schematic ## Overview

Size
32 × 25.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
18
Nets
37
Pads
87
Tracks, vias
229, 21
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
7 Sep 2026
Updated
11 Oct 2026

Overview

Speaker is an open-source printed circuit board by arghya-v, from the arghya-v/hackxpansion-speaker repository on GitHub. It is a 2-layer board of 32 × 25.5 mm with 18 parts on 37 nets, routed with 229 tracks and 21 vias.

It is built around the PAM8302AASCR and CMS-15113-078S. Its parts include 6 capacitors, 4 resistors, 2 ICs, 2 switches and 1 connector. It belongs with the audio and music boards of this library.

Main components

2

README

README.md

hackxpansion Speaker Module

Crates: pkg:cargo/hackxpansion_speaker@0.1.0
A speaker module for hackxpansion that allows sound to be emitted from the device

The module takes digital audio from the Hackxpansion controller, converts it to an analog signal, amplifies it, and drives a speaker

Images

case pcb pcb3d

Schematic

schematic

Overview

The Speaker Module provides the HackXpansion system with a dedicated audio output.

text
                    Hackxpansion Controller
                              │
                              │
                    ┌─────────┴─────────┐
                    │    Digital Audio  │
                    │                   │
                    └─────────┬─────────┘
                              │
                              ▼
                    ┌───────────────────┐
                    │  TLV320DAC3100    │
                    │    Audio DAC      │
                    └─────────┬─────────┘
                              │
                              │ Analog Audio
                              ▼
                    ┌───────────────────┐
                    │      PAM8320      │
                    │  Class-D Amplifier│
                    └─────────┬─────────┘
                              │
                              ▼
                         ┌─────────┐
                         │ Speaker │
                         └─────────┘

The controller sends digital audio to the module over I²S. The TLV320DAC3100 converts the digital signal into analog audio, which is then amplified by the PAM8320 before being sent to the speaker.

Features

  • 48 kHz, 16-bit audio
  • Two user-input buttons

Hardware

The TLV320DAC3100 converts the incoming digital I²S stream into an analog audio signal.

It is configured for:

text
Sample Rate: 48 kHz
Bit Depth:   16-bit
Interface:   I²S
MCLK:        12.288 MHz

The DAC is controlled over I²C and has a dedicated hardware reset line.

The analog output from the DAC is passed to a PAM8320 Class-D amplifier.

Module Interface

The module uses the HackXpansion GPIO bank for both audio and user input.

GPIOFunction
GPIO0I²C SCL
GPIO1I²C SDA
GPIO2I²S BCLK
GPIO3I²S DIN
GPIO4I²S LRCLK
GPIO5MCLK
GPIO6DAC RESET
GPIO7Button 1
GPIO8Button 2
GPIO9Unused

See the Xpanse API docs

This allows the main HackXpansion firmware to assign functionality to the buttons without the speaker module needing to know what those actions are.

The driver is responsible for:

  1. Resetting the audio DAC
  2. Configuring the DAC over I²C
  3. Starting the master clock
  4. Starting the I²S output
  5. Registering the audio interface with HackXpansion
  6. Registering the module buttons

lib.rs contains the HackXpansion-specific module driver, while dac.rs contains the reusable TLV320DAC3100 driver.


This was all possible thanks to Hackspansion: A hackclub YSWS

Parts

18
QtyValueFootprintReferences
510 µFlcsc_footprints:C15850_C0805C2, C3, C4, C5, C7
210kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR3, R4
2SW_PushButton_Switch_THT:SW_PUSH_6mmSW1, SW2
1100nFlcsc_footprints:C155422_C0402C1
11kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1
168kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2
1CMS-15113-078SCMS-15113-078S:SPKR_CMS-15113-078SLS1
1PAM8302AASCRlcsc_footprints:C113367_MSOP-8_L3_0-W3_0-P0_65-LS5_0-BLU2
1TLV320DAC3100IRHBRlcsc_footprints:C179677_LFCSP-32_L5_0-W5_0-P0_50-BL-EPU1
1~Hackxpansion:Male_ModuleJ1

The 16 most common of 18 parts.

Similar boards

  • 4 layers121.9 × 44.4 mmBurnedHead, the printed circuit board in 3D

    BurnedHead

    justinbalexander/BurnedHead

    A handheld game console

    92 parts45Unlicense
  • 4 layers25.3 × 35.1 mmAgb hifi audio pcb, the printed circuit board in 3D

    Agb hifi audio pcb

    cajunpanda/gameboy-hifi-audio

    A HiFi audio mod for various Game Boy models

    66 parts25MIT
  • 2 layers81 × 55 mmFABI schematic, the printed circuit board in 3D

    FABI schematic

    asterics/FABI

    The repository for FABI (Flexible Assistive Button Interface)

    80 parts22
  • 4 layers54.7 × 78.5 mmDisplayModule PONSv71, the printed circuit board in 3D

    DisplayModule PONSv71

    MasaoC/GPS-TFT-Map_PONS

    鳥人間コンテストに特化したGNSS誘導システム。人力飛行機のパイロットが使いやすいことを目標にした航法装置です。ハードとソフトをオープンソースで開発しています。

    151 parts14MIT
  • 2 layers82.5 × 136.7 mmGameboy dmg, the printed circuit board in 3D

    Gameboy dmg

    alxhoff/gameboy-dmg-pcb

    PCB for Gameboy DMG with audio and GPIO expander to provide I2C interface to push buttons

    95 parts4GPL-3.0
  • 4 layers182 × 150 mmStarman, the printed circuit board in 3D

    Starman

    adamm/starman

    Starman Christmas Tree Topper PCB

    248 parts3
  • 2 layers58 × 44 mmButton, the printed circuit board in 3D

    Button

    birkenfeld/stm_button_rust

    Using nightly Rust and cargo, just do a cargo build --release.

    40 parts3

Questions

How big is the Speaker PCB?

It measures 32 × 25.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Speaker use?

18 parts, built around the PAM8302AASCR and CMS-15113-078S. 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 Speaker KiCad files?

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

Can I use the Speaker design in my own project?

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