

Mp3 player pcb v1
A retro-inspired hardware MP3 player built from scratch. Features KiCad schematics, PCB layouts, and 3D models for a physical-media-inspired music experience.
- Size
- 76 × 53 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 55
- Nets
- 66
- Pads
- 203
- Tracks, vias
- 384, 55
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 13 Jul 2026
- Updated
- 30 Jul 2026
Overview
Mp3 player pcb v1 is an open-source printed circuit board by marian-millan, from the marian-millan/mp3_player repository on GitHub. It is a 2-layer board of 76 × 53 mm with 55 parts on 66 nets, routed with 384 tracks and 55 vias.
It is built around the ATMEGA328P-AU, DFR0299 and DW01A, with the TP4056-42-ESOP8 and FS8205A among its other parts. Its parts include 16 resistors, 13 capacitors, 6 ICs, 5 connectors and 4 switches. It belongs with the retro computing and games boards and the AVR (ATmega, ATtiny) boards of this library.
Main components
5ATMEGA328P-AU
TQFP-32(7x7)-40℃~+85℃ 1.8V~5.5V 10bit 1KB 20MHz 23 2KB 32KB 8 Bit AVR Built-in FLASH TQFP-32(7x7) Microcontrollers (MCU/MPU/SOC) ROHSMicrochip TechnologyMicrocontrollers (MCU/MPU/SOC)DFR0299
THroughholeTHroughhole V-Audio Modules ROHSDFRobotV-Audio ModulesDW01A
SOT-23-6L-40℃~+85℃ 1 2.5V 300mV~10V 3uA 4.3V Protection IC Support SOT-23-6L Battery Management ROHSPUOLOPBattery ManagementTP4056-42-ESOP8
ESOP-8-40℃~+85℃ 1 1A 2uA 4.2V 4V~8V Charging IC Lithium Battery Support ESOP-8 Battery Management ROHSTOPPOWERBattery ManagementFS8205A
SOT-23-6-55℃~+150℃ 1.2V 1.5W 2 N-Channel 20V 31.5mΩ@2.5V 466pF 5.7nC@4.5V 58pF 65pF 6A SOT-23-6 MOSFETs ROHSTECH PUBLICMOSFETs
README
README.mdPortable MP3 Player
A custom, distraction-free music player inspired by retro physical media
KiCad 9 · Arduino · DFPlayer Mini · SSD1306 OLED
Overview
We love music, but wanted a way to listen without constantly reaching for a phone and getting distracted. Inspired by the tactile feel of retro physical media, we set out to build a dedicated hardware MP3 player.
This repository contains versioned hardware designs, assembled-board models, and Arduino firmware. The player combines physical transport controls and a rotary volume encoder with a compact OLED interface.
Features
- Standalone MP3 playback through a DFRobot DFPlayer Mini
- 128 × 64 SSD1306 OLED interface
- Previous, play/pause, and next track buttons
- Rotary encoder volume control
- Custom KiCad schematic and two-layer PCB layout
- STEP model of the assembled board
Repository Layout
| Path | Contents |
|---|---|
versions/v1/firmware | Version 1 Arduino firmware |
versions/v1/hardware/mp3_player_schematic_v1.kicad_sch | Version 1 KiCad schematic |
versions/v1/hardware/mp3_player_pcb_v1.kicad_pcb | Version 1 KiCad PCB layout |
versions/v1/hardware/mp3_player_assembly_v1.step | Version 1 assembled-board model |
versions/v2 | Version 2 placeholder—in development |
versions/
├── v1/
│ ├── firmware/
│ │ └── mp3_player_v1/
│ │ └── mp3_player_v1.ino
│ └── hardware/
│ ├── mp3_player_assembly_v1.step
│ ├── mp3_player_pcb_v1.kicad_pcb
│ └── mp3_player_schematic_v1.kicad_sch
└── v2/
└── README.mdVersioning Convention
Each release keeps its firmware and hardware together under
versions/v<release>. Project artifacts follow the
descriptive_name_v<release>.<extension> naming pattern.
New iterations should be added as sibling directories rather than overwriting earlier versions. Arduino sketches are kept in matching directories because the Arduino IDE expects a sketch and its containing directory to share a name.
Firmware
Requirements
- Arduino IDE or Arduino CLI
- An Arduino-compatible board configured for the project hardware
- DFRobotDFPlayerMini
- U8g2
SoftwareSerial, SPI, and Wire are supplied by the Arduino platform.
Pin Map
| Function | Pin |
|---|---|
| Previous track button | D2 |
| Play/pause button | D3 |
| Next track button | D4 |
| Rotary encoder A | D8 |
| Rotary encoder B | D9 |
| DFPlayer serial | D10 / D11 |
| OLED display | Hardware I²C |
The buttons use the microcontroller's internal pull-up resistors and are active low. Playback actions occur when a button is released.
Upload
- Install the
DFRobotDFPlayerMiniandU8g2libraries with the Arduino Library Manager. - Open
versions/v1/firmware/mp3_player_v1/mp3_player_v1.ino. - Select the correct board and serial port.
- Compile and upload the sketch.
- Insert a prepared microSD card into the DFPlayer Mini and power the player.
On startup, the firmware initializes the display, sets the volume to 20, and
starts the first track. The current interface labels tracks as
trackNNN.mp3 using the file number reported by the DFPlayer.
Current Status
Version 1 includes the complete design sources and an initial working firmware implementation. The firmware currently focuses on core playback, volume control, and a minimal track-number interface; metadata browsing and richer error reporting are not yet implemented.
Version 2 is currently in development. Its directory is reserved, but no hardware or firmware artifacts have been published yet.
Parts
55| Qty | Value | Footprint | References |
|---|---|---|---|
| 6 | 10k | Resistor_SMD:R_0603_1608Metric | R1, R3, R7, R8, R13, R17 |
| 4 | , , , | ||
| 4 | 100nF | Capacitor_SMD:C_0603_1608Metric | C1, C2, C3, C5 |
| 3 | 0.1uF | Capacitor_SMD:C_0603_1608Metric | C13, C14, C15 |
| 2 | 1k | Resistor_SMD:R_0603_1608Metric | R5, R12 |
| 2 | 22pF | Capacitor_SMD:C_0603_1608Metric | C11, C12 |
| 2 | 22uF | Capacitor_SMD:C_0603_1608Metric | C4, C9 |
| 2 | 330ohm | Resistor_SMD:R_0603_1608Metric | R4, R9 |
| 2 | 5.1k | Resistor_SMD:R_0603_1608Metric | R10, R11 |
| 2 | SW_Push | mp3:pushbutton | SW2, SW3 |
| 1 | 1.2k | Resistor_SMD:R_0603_1608Metric | R6 |
| 1 | 100k | Resistor_SMD:R_0603_1608Metric | R15 |
| 1 | 100ohm | Resistor_SMD:R_0603_1608Metric | R2 |
| 1 | 100uF | Capacitor_SMD:C_0603_1608Metric | C6 |
| 1 | 16MHz | mp3:XTAL_X49SM_S2_YXC | Y1 |
| 1 | 2.2uF | Capacitor_SMD:C_0603_1608Metric | C8 |
| 1 | 2.2uH | mp3:IND-SMD_L4.9-W4.5 | L1 |
| 1 | 732k | Resistor_SMD:R_0603_1608Metric | R16 |
| 1 | ATMEGA328P-AU | mp3:ATPMEGA328P | U1 |
| 1 | Bat_JST_conn | Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical | J2 |
| 1 | Conn_01x05_Pin | mp3:rotary_encoder_socket_pads | J1 |
| 1 | Conn_01x05_Pin | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J4 |
| 1 | DFR0299 | mp3:MODULE_DFR0299 | U4 |
| 1 | DM-OLED096-636 | mp3:OLED_screen | U6 |
| 1 | DW01A | Package_TO_SOT_SMD:SOT-23-6 | U5 |
| 1 | FS8205A | mp3:FS2805 | Q1 |
| 1 | PJ-320D-A | mp3:HRO_PJ-320D-A | J7 |
| 1 | Polyfuse_Small | Fuse:Fuse_0805_2012Metric | F1 |
| 1 | SB120 | Diode_SMD:D_0805_2012Metric | D4 |
| 1 | SW_Push | Button_Switch_SMD:SW_Push_SPST_NO_Alps_SKRK | SW1 |
| 1 | SW_SPDT | mp3:SW-SMD_MST-12D18G4-SPDT-SLIDE-SWITCH | SW4 |
| 1 | TP4056-42-ESOP8 | Package_SO:SOIC-8-1EP_3.9x4.9mm_P1.27mm_EP2.41x3.3mm_ThermalVias | U3 |
| 1 | TPS61023DRLR | mp3:TPS61023DRLR | U2 |
| 1 | TYPE-C 6P | mp3:CONN_TYPE-C-6P_SHN | J3 |
| 1 | green | LED_SMD:LED_0805_2012Metric | D1 |
| 1 | yellow | LED_SMD:LED_0805_2012Metric | D2 |
Similar boards
- 2 layers69.1 × 56.6 mm

- 2 layers214 × 174 mm

- 2 layers52 × 43 mm

MP3 Player
hackclub/reflow
A YSWS for the northern hemisphere's summer and the aussie's winter. Run by @pmnlla, with love and loads of carrots.
46 parts2 - 2 layers60 × 111.3 mm

Silkscreen pcb
iandchasse/silkscreen-pcb
Silkscreen: open-hardware ESP32-S3 e-paper reader mainboard (KiCad 9). Formerly the de-link hub.
189 parts589CERN-OHL-S-2.0 - 2 layers61 × 61 mm

ESP32 FC
MAATHES-THILAK-K/ESP32-S3_FLIGHT_CONTROLLER
A custom-designed flight controller based on the ESP32-S3 module, built for compatibility with the esp-fc firmware and Betaflight-like configuration.
69 parts7Apache-2.0 - 2 layers51.1 × 95 mm

Talk e
milovanpms/talk-e
📻 — A simple LoRa-based talkie-walkie built on ESP32, operating on the 433 MHz frequency band for long-range, low-power wireless communication.
75 parts4 - 2 layers80 × 34 mm

Dji fcc
nikolaus018/dji-fcc-esp32
ESP32-S3 firmware that switches a DJI N1 remote to FCC mode over USB (replaces the Android app)
69 parts3MIT - 2 layers30 × 25 mm

Project2
devKOff/pcb-lipo-power-management-system
An integrated PCB power management system for single-cell Li-Po batteries featuring onboard charging, circuit protection, and a DC-DC boost converter with selectable 5V and 12V DC outputs.
28 parts2
Questions
How big is the Mp3 player pcb v1 PCB?
It measures 76 × 53 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Mp3 player pcb v1 use?
55 parts, built around the ATMEGA328P-AU, DFR0299, DW01A and TP4056-42-ESOP8. 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 Mp3 player pcb v1 KiCad files?
From the marian-millan/mp3_player repository on GitHub, at the commit this page was made from: the board is versions/v1/hardware/mp3_player_pcb_v1.kicad_pcb and its schematic versions/v1/hardware/mp3_player_schematic_v1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Mp3 player pcb v1 design in my own project?
Its repository states no licence, so its author keeps all rights: ask marian-millan before reusing the design.