Skip to the content
PCBKitNew board
2 layers42.3 × 13.8 mmButtonBox, the printed circuit board in 3D

Lol im just bored and building a selfmade Mp3 player

Size
42.3 × 13.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
20
Nets
30
Pads
86
Tracks, vias
220, 21
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
18 Aug 2026
Updated
7 Nov 2026

Overview

ButtonBox is an open-source printed circuit board by Pertifiatus, from the Pertifiatus/MP3-Player repository on GitHub. It is a 2-layer board of 42.3 × 13.8 mm with 20 parts on 30 nets, routed with 220 tracks and 21 vias.

Its parts include 6 capacitors, 6 connectors, 4 resistors, 3 diodes and 1 IC.

README

README.md

MP3-Player

A compact DIY music player, smaller than an iPod Touch, built around a Raspberry Pi Compute Module 4 on a custom PCB. It syncs your YouTube Music library straight to the device, no home server needed.

Concept

  • Front: round GC9A01 display for menus and navigation
  • Back: monochrome SSD1306 OLED for music visualizations
  • Audio: mainly Bluetooth A2DP, plus a 3.5 mm headphone jack (ES8388 codec)
  • Controls: button box (SX1509 GPIO expander) + IMU (QMI8658A) for orientation and shake gestures
  • Power: Li-ion battery, USB-C charging (RT9466) with an 80% charge limit, fuel gauge (MAX17048), soft power button
  • Lighting: SK6812 status ring

Hardware

PartDetails
ComputeRaspberry Pi CM4 Lite Wireless (boots from microSD), on 2× Hirose mezzanine connectors
PowerTPS63020 buck-boost, RT9466 charger, MAX17048 fuel gauge
AudioES8388 codec over I2S
DisplaysGC9A01 (SPI0), SSD1306 (SPI4)
PCBsMain board + ButtonBox, designed in KiCad (KiCad/Projekt 1)
CaseFusion 360 (CAD/Player.f3z)

Software (Software/)

Python on Raspberry Pi OS, running as systemd services:

FilePurpose
main.pyMain UI loop (front display, buttons, IMU)
player.pyPlayback
sync_youtube.pyYouTube Music library sync
connectivity.pyWiFi / Bluetooth connections
ui_state.py, ui_render.pyUI state machine and rendering
ui_views.py, ui_common.pyScreen content as plain data, shared drawing helpers
themes/8 switchable designs (Einstellungen → Anzeige → Design): Klassik, Cybercore, Y2K, Glas, Neumorph, Bento, Pixelhaus, Cyberpunk
preview_themes.pyPreview sheet per design (previews/), --bench render timings
fonts/, assets/Bundled OFL fonts, Pixelhaus house image
buttonbox.py, qmi8658.py, es8388.py, max17048.py, rt9466.pyHardware drivers
charge_control.py, power_button.pyCharging logic and soft shutdown
led_control.py, led_service.pyStatus ring LEDs
setup_pi.sh, *.service, sdcard-boot-*Pi setup and boot configuration
test_*.pyTests

Status

Work in progress. Board 2 boots reliably; the software bring-up and debugging of battery operation are ongoing. Detailed notes on hardware, pinout, config.txt and lessons learned are in CLAUDE.md and Software/NOTES_FOR_PER.md.

Repository structure

text
CAD/        Fusion 360 case
KiCad/      Main board + ButtonBox (schematics, PCB, 3D models)
Software/   Python application, drivers, services, tests
docs/       Design specs and plans (status ring, quick connect, design themes)

Parts

20
QtyValueFootprintReferences
6100nFEasyEDA_Lib:C0402C1, C2, C3, C4, C5, C6
45.1kΩEasyEDA_Lib:R0603R1, R2, R3, R4
3~EasyEDA_Lib:LED-SMD_4P-L3.2-W2.8-LS5.9_SK6812MINI-ELED1, LED2, LED3
1Conn_02x04_Counter_Clockwise_MountingPinPiity:8PinJ7
1ConnectorPiity:6PinJ2
1Pause/PlayPiity:2PinKlickJ4
1Rotary EncoderPiity:5PinRotaryJ3
1ShufflePiity:2PinKlickJ5
1StopPiity:2PinKlickJ6
1~EasyEDA_Lib:QFN-28_L4.0-W4.0-P0.40-BL-EPU1

Questions

How big is the ButtonBox PCB?

It measures 42.3 × 13.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the ButtonBox use?

20 parts. 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 ButtonBox KiCad files?

From the Pertifiatus/MP3-Player repository on GitHub, at the commit this page was made from: the board is KiCad/Projekt 1/ButtonBox/ButtonBox.kicad_pcb and its schematic KiCad/Projekt 1/ButtonBox/ButtonBox.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ButtonBox design in my own project?

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

More from Pertifiatus/MP3-Player

1
  • 4 layers46.2 × 89 mmProjekt 1, the printed circuit board in 3D

    Projekt 1

    Pertifiatus/MP3-Player

    Lol im just bored and building a selfmade Mp3 player

    67 parts

Similar boards

  • 2 layers66.9 × 74.5 mmDeskHop Rev1, the printed circuit board in 3D

    DeskHop Rev1

    hrvach/deskhop

    Fast Desktop Switching Device

    20 parts7.9kGPL-3.0
  • 2 layers86.4 × 64.8 mmSlot machine, the printed circuit board in 3D

    Slot machine

    google/google-ctf

    Google CTF

    20 parts5.1kApache-2.0
  • 2 layers36.2 × 26.8 mmEsp32 minimal, the printed circuit board in 3D

    Esp32 minimal

    atopile/atopile

    Design circuit boards with code! ✨ Get software-like design reuse 🚀, validation, version control and collaboration in hardware; starting with electronics ⚡️

    20 parts4kMIT
  • 2 layers108.1 × 393.8 mmSweep compact ble, the printed circuit board in 3D

    Sweep compact ble

    davidphilipbarr/Sweep

    Sweep - a small promicro based keyboard inspired by the Ferris.

    20 parts2.1k
  • 2 layers26 × 15.9 mmTPS54340 Buck Regulator, the printed circuit board in 3D

    TPS54340 Buck Regulator

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    20 parts1.2k
  • 2 layers67.6 × 30.5 mmRgb to hdmi, the printed circuit board in 3D

    Rgb to hdmi

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    20 parts1kGPL-3.0
  • 2 layers44.3 × 28.7 mmLin bus adapter esp32, the printed circuit board in 3D

    Lin bus adapter esp32

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    20 parts915
  • 2 layers89.5 × 61.6 mmFreeDeck TH 2020-02, the printed circuit board in 3D

    FreeDeck TH 2020-02

    FreeYourStream/freedeck-hardware

    all the stuff you need to build your own FreeDeck

    20 parts772