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.
-
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
-
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
-
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
-
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
-
Power Path MOSFETs
- Automatic power source switching
- Manages USB and battery input without backfeed
-
3.3V Voltage Regulator (U5)
- Converts VBAT or USB 5V to 3.3V
- Powers ESP32 and peripherals
-
MicroSD Card Slot (CARD)
- SPI interface to ESP32
- Used for external storage (music files, data, etc.)
-
RGB LED (D12)
- Addressable WS2812-type LED
- Controlled via GPIO2
- Used for status indication
-
Reset and Boot Buttons (SW1, SW2)
- Reset (EN) restarts ESP32
- Boot (IO0) forces programming mode when held on reset
-
JST-PH Battery Connector (J1)
- 2-pin LiPo connector (2.0mm pitch)
- Pin 1 = VBAT (+)
- Pin 2 = GND (–)
-
User Buttons (SW3–SW7)
- 5 pushbuttons connected to ESP32 GPIOs 32, 33, 25, 26, 27 respectively
- Wired active-LOW with internal pull-ups enabled
Target Board: ESP32 (e.g. ESP32-WROOM-32 / ESP32-WROOM-32E)
IDE: Arduino IDE or PlatformIO
Board Selection: ESP32 Dev Module or equivalent
Function | ESP32 Pin |
---|---|
CS (Chip Select) | GPIO 5 |
SCK (Clock) | GPIO 18 |
MISO | GPIO 19 |
MOSI | GPIO 23 |
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)
The following are images of the schematic, PCB layout, and 3D board render.


