"RetroTune"-Vintage Radio Replica
by dventura1006 in Circuits > Arduino
101 Views, 1 Favorites, 0 Comments
"RetroTune"-Vintage Radio Replica
Hello everyone,
I designed and built this vintage radio, as a portable music player that you can take anywhere, without needing your phone, Bluetooth, or Wi-Fi to listen to music. It plays music directly from a microSD card, allowing you to upload your favorite songs from your computer using a microSD card adapter. This vintage radio is suitable for anything you can imagine: listening to music while studying or working (without your phone you can focus), taking it to camping trips, to the beach, picnics, or simply enjoying a distraction-free music experience. Its vintage design makes it a unique decoration for a shelf, desk or living room.
This project was meant to demonstrate the practical use of rechargeable batteries in portable electronics, showing how battery-powered devices can provide a creative way to enjoy music, without relying on a constant power source.
I hope this project inspires others and helps anyone who wants to build their own portable vintage radio.
Supplies
Electronics:
- ESP32 S3 Dev Module
- DJY Li-ion battery (3.7V)
- DFPlayer Mini MP3 Module
- Rotary Encoder Module
- 8 ohms speaker 0.25 Watts
- SPST toggle switch
- MicroSD card
- MicroSD adapter
- Female to female jumper wires
- 2 female to male jumper wires
- USB C to USB A Data cable
Materials:
- PLA white filament for 3D printer
- Sandpaper
- Glue
- Acrylic paint (red, green, yellow)
Tools:
- 3D printer
- Phillips screwdriver
- Wire stripper
- Cotton waste
Designing and 3D Printing
All of the 3D parts used in this project, were custom designed in Blender, to fit all the electronics components, and achieve the vintage look of an antique radio.
The enclosure was originally designed as a single model and then split into two parts using Blender's Boolean modifier. This makes the parts much easier to 3D print without requiring support material. The front section includes openings for the toggle switch and rotary encoder, while the top features a grille for the speaker.
As mentioned earlier, I printed all the parts in white PLA using a Creality Ender 3 V3 SE, using Ultimaker Cura as slicer. The whole radio took approximately 7 hours to print.
Preparing the Electronics
Before wiring any of the electronics, I assembled the main components into the 3D-printed enclosure to make sure everything fit correctly. I installed the speaker, toggle switch, and rotary encoder in their designated openings (with glue), checking that each component was properly aligned and securely mounted before moving on to the electrical connections.
Something important to remember is that you will have to attach some jumper wires(F-F) to the speaker. That's when the wire stripper comes in:
- First, remove one terminal from the jumper wire
- Then use the wire stripper to remove 1/2 inch of insulation
- Finally, insert the stripped end of the wire in the speaker terminal
You'll need to repeat the same process for the toggle switch. The only difference is that you'll need one female jumper connector on one end and one male jumper connector on the other.
Wiring Electronics
With all the components mounted in the enclosure, it's time to wire the electronics. Follow the wiring diagram carefully and double-check every connection before powering on the radio. Taking a few extra minutes to verify the wiring can help prevent damage to the components and save time troubleshooting later.
DFPlayer Mini----ESP32 S3
- VCC-----3.3V
- RX------pin 17
- TX------pin 16
- SPK1---speaker (polarity doesn't matter)
- SPK2---speaker
- GND----GND
Rotary Encoder----ESP32 S3
- +--------3.3V
- GND----GND
- SW-----pin 6
- DT------pin 5
- CLK-----pin 4
Programming the ESP32 S3
With the hardware fully assembled, the next step is to program the ESP32-S3. The code handles all the radio's main functions, including reading the rotary encoder, detecting button presses, communicating with the DFPlayer Mini, and controlling music playback. It also manages volume adjustment, track selection, and playback commands.
Open the Arduino IDE, install the required libraries, select the correct ESP32-S3 board and COM port, and upload the provided sketch to the microcontroller.
Required libraries:
- DFRobotDFPlayerMini-->I think this is the only one you'll have to install
- HardwareSerial
Downloads
Uploading Songs to MicroSD Card
If the song you want to upload is available in YouTube, you can use YouTube-to-MP3 converter to save it as an MP3 file. I'll suggest using Y2Mate. After you download the MP3 file, copy all the songs to the MicroSD card, and ensure that all the files are .mp3 file.
Powering the Radio
With the electronics programmed and the microSD card ready, it's time for the final assembly. Carefully place all the components inside the enclosure, Once everything is in position, insert the microSD card into the DFPlayer Mini.
Now it's missing the switch and the Li-ion battery. The ESP32 S3 has a pin named Vin or 5Vin, which will be connected to the toggle switch, and that to the positive terminal of the battery. The negative one should be in GND.
Finally you can glue the whole enclosure and turn on the switch!!
Use Your RetroTune!!
Rotary Encoder functions:
rotating---------raise and lower the volume
Quick press-----Pause/play
Hold------------Change song
Recharging the battery:
In my case, I charge the battery by routing the charging connector through the speaker opening. Whenever the battery needs to be recharged, I simply pull the connector out through the opening, connect it to the charger, and then place it back inside the enclosure once charging is complete. You can do the same as me!