| ๐ถ **MP3 Playback** Play music from microSD card via DFPlayer Mini ๐ **Folder Browser** Organize songs by genre or playlist ๐ฅ๏ธ **OLED Display** 0.96" screen with animated waveform ๐๏ธ **Physical Controls** 4 navigation buttons + volume knob | ๐ **Real-Time Volume** Analog potentiometer control โญ๏ธ **Auto-Advance** Automatically plays next track ๐ **Reset Function** Button combo for quick restart โก **USB Powered** Portable with power bank support |
In an era of streaming services and smartphone apps, thereโs something special about a physical music player you built yourself.
This project brings back the joy of dedicated music players while teaching valuable electronics and programming skills. Itโs nostalgia meets modern DIY culture. ๐ป
Hardware:
Software:
1. Clone the repository
git clone https://github.com/HimC29/Arduino-Boombox.git
cd Arduino-Boombox
2. Install Arduino libraries
Open Arduino IDE โ Tools โ Manage Libraries, then install:
Adafruit GFX LibraryAdafruit SSD1306DFRobotDFPlayerMini3. Prepare your microSD card
# Format to FAT32
# Copy MP3 files to the root directory
# Files should be named: 001.mp3, 002.mp3, etc.
# Optional: Use the provided Python script to sort files
python sort_mp3_files.py /path/to/sd/card
4. Wire the components
See the Hardware Connections section below
5. Upload the code
Arduino-Boombox.ino in Arduino IDE6. Power up and enjoy! ๐
| Component | Quantity | Notes |
|---|---|---|
| Arduino Uno | 1 | Or compatible board |
| DFPlayer Mini | 1 | MP3 decoder module |
| OLED Display | 1 | 0.96โ I2C (SSD1306, 0x3C) |
| Push Buttons | 4 | Momentary tactile switches |
| Potentiometer | 1 | 10kฮฉ linear |
| Speaker | 1 | 8ฮฉ 3W |
| microSD Card | 1 | Any size, FAT32 format |
| Resistors | 4 | 10kฮฉ (optional, for buttons) |
Button โ Arduino Pin
โโโโโโโโโโโโโโโโโโโโโโโโโ
Back โ D2
Up โ D3
Down โ D4
Center โ D5
DFPlayer โ Arduino
โโโโโโโโโโโโโโโโโโโโโโโโโ
TX โ D10
RX โ D11
VCC โ 5V
GND โ GND
SPK+ โ Speaker +
SPK- โ Speaker -
OLED โ Arduino
โโโโโโโโโโโโโโโโโโโโโ
VCC โ 5V (or 3.3V)
GND โ GND
SDA โ A4
SCL โ A5
Potentiometer โ Arduino
โโโโโโโโโโโโโโโโโโโโโโโโโโ
Signal (middle) โ A0
VCC (side) โ 5V
GND (side) โ GND
| Button | Action |
|---|---|
| Up | Move up in menu / Previous song |
| Down | Move down in menu / Next song |
| Center | Enter folder / Play song / Pause/Resume |
| Back | Return to previous menu |
| Potentiometer | Adjust volume in real-time |
Hold Up + Down simultaneously for 1.5 seconds to access the reset menu:
Songs are organized into folders by genre:
Each folder maps to a specific track range on your microSD card. Customize folder names and ranges in the code to match your music library!
001.mp3 โ First song
002.mp3
003.mp3
...
100.mp3
101.mp3
โ ๏ธ Important: DFPlayer reads files by upload order, not filename. Use the provided Python script to ensure correct ordering.
Adafruit_GFX - Graphics primitives for OLEDAdafruit_SSD1306 - OLED display driverDFRobotDFPlayerMini - DFPlayer communicationSoftwareSerial - Serial communication with DFPlayerContributions are what make the open-source community such an amazing place! Any contributions you make are greatly appreciated.
git checkout -b feature/AmazingFeature
git commit -m 'Add some AmazingFeature'
git push origin feature/AmazingFeature
Thanks to everyone who has contributed to Arduino Boombox!
Want to see your name here? Check out the Contributing section!
Distributed under the MIT License. See LICENSE for more information.
TL;DR: You can use, modify, and distribute this project freely. Just keep the original license notice.
Built with amazing open-source tools and libraries: