Skip to content

christopherk26/custom_esp32_mp3player

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

Custom ESP32 MP3 Player Board

This project is a custom ESP32-based board for a small-group MP3 player project.
It is modeled after the SparkFun Thing Plus ESP32-WROOM design.


Main Components

  1. ESP32-WROOM-32D (U2)

    • Main microcontroller with WiFi and Bluetooth
    • Handles all digital I/O, ADC, DAC, SPI, UART, I2C, and GPIO for user buttons
    • Powered by 3.3V logic and supply
  2. MCP73831 (U1)

    • Li-Ion/Li-Poly battery charge controller
    • Charges LiPo battery from USB 5V
    • VBAT connects to battery positive terminal
    • STAT output drives charge status LED
  3. CH340C (U4)

    • USB-to-Serial converter
    • Interfaces ESP32 UART0 with USB-C
    • Handles serial communication and code uploading
    • DTR and RTS control ESP32 auto-reset and boot via transistors
  4. USB-C Connector (CN1 / USB1)

    • USB data and power interface
    • D+ and D– connect to CH340C
    • VBUS (5V) powers charging circuit and regulator
    • CC1 and CC2 resistors identify the board as a USB peripheral
  5. Power Path MOSFETs

    • Automatic power source switching
    • Manages USB and battery input without backfeed
  6. 3.3V Voltage Regulator (U5)

    • Converts VBAT or USB 5V to 3.3V
    • Powers ESP32 and peripherals
  7. MicroSD Card Slot (CARD)

    • SPI interface to ESP32
    • Used for external storage (music files, data, etc.)
  8. RGB LED (D12)

    • Addressable WS2812-type LED
    • Controlled via GPIO2
    • Used for status indication
  9. Reset and Boot Buttons (SW1, SW2)

    • Reset (EN) restarts ESP32
    • Boot (IO0) forces programming mode when held on reset
  10. JST-PH Battery Connector (J1)

    • 2-pin LiPo connector (2.0mm pitch)
    • Pin 1 = VBAT (+)
    • Pin 2 = GND (–)
  11. User Buttons (SW3–SW7)

    • 5 pushbuttons connected to ESP32 GPIOs 32, 33, 25, 26, 27 respectively
    • Wired active-LOW with internal pull-ups enabled

Programming & Pin Setup

Target Board: ESP32 (e.g. ESP32-WROOM-32 / ESP32-WROOM-32E)
IDE: Arduino IDE or PlatformIO
Board Selection: ESP32 Dev Module or equivalent

SD Card Interface (SPI)

Function ESP32 Pin
CS (Chip Select) GPIO 5
SCK (Clock) GPIO 18
MISO GPIO 19
MOSI GPIO 23

User Buttons

Button GPIO Notes
1 27 Active-LOW, internal pull-up enabled
2 26 Active-LOW, internal pull-up enabled
3 25 Active-LOW, internal pull-up enabled
4 33 Active-LOW, internal pull-up enabled
5 32 Active-LOW, internal pull-up enabled

Baud Rate: 115200 (Serial Monitor)
Power: 3.3V logic level throughout (shared with ESP32 core and SD module)


Images

The following are images of the schematic, PCB layout, and 3D board render. SCH_Schematic1_1-P1_2025-10-10

Screenshot 2025-10-10 at 9 19 37 PM Screenshot 2025-10-10 at 9 20 28 PM Screenshot 2025-10-10 at 9 21 08 PM

About

A custom esp32 mp3 player PCB design in easyeda.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published