OPENDAP-C3
An open-source portable Digital Audio Player built around the ESP32-C3 Super Mini and DFPlayer Mini. Compact, hackable, and designed for makers.
An open-source portable Digital Audio Player built around the ESP32-C3 Super Mini and DFPlayer Mini. Compact, hackable, and designed for makers.
Prototype product image — ESP32-C3 Super Mini, DFPlayer Mini, TP4056 charging board and Li-ion battery
Plays MP3 and WAV files directly from a microSD card via the DFPlayer Mini audio decoder.
Resistor ladder design gives you Play/Pause, Next, Previous, Volume Up and Volume Down — all on a single GPIO pin.
Intelligent power management with ESP32-C3 deep sleep keeps battery drain near zero when idle.
Volume level and last-played track are saved to flash and restored automatically every time the device powers on.
Standard headphone jack for private listening — plug in any wired headphones or earbuds.
Full debug logging over serial UART for easy firmware development and troubleshooting.
ESP32-C3 Super Mini
DFRobot DFPlayer Mini
3.7V Li-ion 402020 (400 mAh)
TP4056 USB-C Module
LM2950-3.3
| Component | ESP32-C3 / External Pin |
|---|---|
| DFPlayer RX | GPIO4 |
| DFPlayer TX | GPIO5 |
| DFPlayer USB+ / USB- | USB-C Breakout D+ / D- |
| Button Ladder | GPIO1 |
See the full Wiring_Table.md for detailed power and resistor connections.
ESP32-C3
Arduino Framework
PlatformIO
DFPlayer Mini
C++
Get the source code from GitHub.
git clone https://github.com/shraman-c/OpenDAP-C3.git Open the project folder in VS Code with the PlatformIO extension installed.
Build the firmware using the Arduino framework and flash to your ESP32-C3.
pio run Navigate to Next/Previous folders with explicit folder index tracking for the DFPlayer Mini.
Improved debouncing filters for more reliable button presses, especially during rapid inputs.
Add a small OLED screen for displaying current track info, volume level, and battery status.
OpenDAP-C3 is fully open-source. Fork the repo, tweak the firmware, and build a portable music player that's truly yours.