
MP3-Player
rishub03/MP3-Player
A bare-metal embedded systems project — custom PCB MP3 player built from scratch using STM32F411CEU6, KiCad 9.0, and Embedded C.

A rechargeable music player built around an ESP32-S3. The design is intended to play music stored on a microSD card and send stereo audio to standard headphones through a 3.5 mm jack.
MiniMusicPlayer is an open-source printed circuit board by NZX37, from the NZX37/ESP32Musicplayer repository on GitHub. It is a 2-layer board of 81.3 × 69.8 mm with 32 parts on 61 nets, routed with 222 tracks and 18 vias.
It is built around the TPA6132A2RTE and TP4056-42-ESOP8. Its parts include 8 resistors, 8 connectors, 6 capacitors, 3 diodes and 2 ICs. It belongs with the audio and music boards of this library.
A rechargeable music player built around an ESP32-S3. The design is intended to play music stored on a microSD card and send stereo audio to standard headphones through a 3.5 mm jack. I made it to learn how the digital, audio, charging, PCB, and enclosure parts of a small portable device fit together.
The ESP32-S3 is the central controller. It reads music data from the microSD socket and sends digital audio over I²S to a PCM5102 digital-to-analog converter. The analog stereo signal then passes through a TPA6132A2 headphone amplifier and out through the 3.5 mm headphone jack. A ST7789 TFT is included as the user display. A TP4056-based circuit handles single-cell Li-ion charging, and a boost converter provides the higher supply rail required by the audio section. The battery, display, card socket, audio parts, and connectors are placed on the custom PCB and fit into the two-piece printed enclosure.
The KiCad schematic is the wiring reference for this design. The connections are intended to be made by the PCB, rather than by a separate hand-wired harness. Review the schematic and component datasheets before ordering or powering a board; this design has not yet been documented as a verified working build.
Open the KiCad project in PCB/ to inspect or edit the schematic and board. Minimusicplayer.step is the 3D assembly export, while Case/CASE.stl and Case/LID.stl are the enclosure parts.


The case and lid STL files are included. A photo of the physical build will be added after the device has been assembled.
Prices are the estimates recorded during design and may change by seller, region, and shipping. The total below sums the listed line items; it excludes shipping and does not include parts without a recorded price.
| Part | Qty. | Supplier | Unit price | Line total | Purchase link |
|---|---|---|---|---|---|
| 2.25-inch ST7789 TFT LCD, 2.8–3.3 V | 1 | AliExpress | $6.05 | $6.05 | Product listing |
| Waveshare ESP32-S3-WROOM-1-N8R8 | 1 | BerryBase / Waveshare | $16.88 | $16.88 | Product page |
| PCM5102 I²S DAC | 1 | Adafruit | $4.95 | $4.95 | Product page |
| DC-DC boost converter | 1 | Kuriosity | $4.40 | $4.40 | Product page |
| SJ1-3535NG 3.5 mm stereo jack | 1 | DigiKey | $2.22 | $2.22 | Product page |
| Custom PCB | 1 | JLCPCB | $2.00 | $2.00 | PCB service |
| PCB assembly (PCBA) | 1 | JLCPCB | $29.83 | $29.83 | Assembly service |
| Listed parts subtotal | $66.33 |
The schematic also contains a TP4056 charger, TPA6132A2 headphone amplifier, microSD socket, and other passives/connectors. Their individual purchase links and prices are not present in the current BOM.csv, so the subtotal is incomplete. Check BOM.csv for the source list and update it as these costs are confirmed.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 1uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C1, C4, C5, C6 |
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4 |
| 3 | 10kR | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R4, R5, R6 |
| 2 | 100kR | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R2, R3 |
| 2 | 2u2F | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C2, C3 |
| 2 | 470R | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R7, R8 |
| 2 | LED | LED_THT:LED_D3.0mm | D1, D2 |
| 1 | 1N5819 | Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal | D3 |
| 1 | 1k2R | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R1 |
| 1 | AudioJack3_SwitchTR | Connector_Audio:Jack_3.5mm_CUI_SJ1-3535NG_Horizontal | J10 |
| 1 | BOOT | Connector_PinSocket_2.54mm:PinSocket_1x22_P2.54mm_Vertical | J2 |
| 1 | Battery | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J7 |
| 1 | Boost Converter | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J1 |
| 1 | Conn_01x08_Pin | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J8 |
| 1 | Micro_SD_Card_Det1 | Connector_Card:microSD_HC_Molex_104031-0811 | J3 |
| 1 | RESET | Connector_PinSocket_2.54mm:PinSocket_1x22_P2.54mm_Vertical | J4 |
| 1 | RotaryEncoder_Switch | Rotary_Encoder:RotaryEncoder_Alps_EC12E-Switch_Vertical_H20mm | SW3 |
| 1 | TFT | Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical | J5 |
| 1 | TP4056-42-ESOP8 | Package_SO:SOIC-8-1EP_3.9x4.9mm_P1.27mm_EP2.41x3.3mm_ThermalVias | U2 |
| 1 | TPA6132A2RTE | Package_DFN_QFN:WQFN-16-1EP_3x3mm_P0.5mm_EP1.6x1.6mm_ThermalVias | U3 |

rishub03/MP3-Player
A bare-metal embedded systems project — custom PCB MP3 player built from scratch using STM32F411CEU6, KiCad 9.0, and Embedded C.



aaravjhamb/openIEMA
A high quality open source In Ear Monitor Amplifier!! (IEMA for short)


gelotek-com/Anki-In-Hardware
Building a physical flashcard device inspired by Anki and spaced repetition.

Hasnat4763/Akash-Chowa-DX
Akash Chowa DX is a SW/MW/LW receiver designed based on the Si4735 Radio receiver IC paired with the RP2040 Zero Dev board.

It measures 81.3 × 69.8 mm and has 2 copper layers, 1.6 mm thick.
32 parts, built around the TPA6132A2RTE 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.
From the NZX37/ESP32Musicplayer repository on GitHub, at the commit this page was made from: the board is PCB/MiniMusicPlayer.kicad_pcb and its schematic PCB/MiniMusicPlayer.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask NZX37 before reusing the design.