I found a big button corded telephone and decided to paint it red and turn it into a jukebox.
A Raspberry Pi Pico is used to read the keypresses, process the input, send the Mp3 player instructions via UART, and provide feedback through the LED and buzzer.
The output pins of the Mp3 player are connected to the speaker inside the handset. There’s also a 3.5″ mini-jack port, to use headphones. The switch below the handset is used as a power switch.
The whole Jukephone is powered by a lithium battery rechargeable via USB.
I loaded the MicroSD card with 999 Mp3 files, organized so that there’s one hundred per genre (except the first one). Specific tracks can be invoked by typing their number on the keypad.
Other available functions are:
- Previous / Next track
- Adjust volume
- Pause / Resume
- Play a random track (with no repeats)
- Change equalizer settings (5 presets available)
- Repeat single track on / off
- Restart current track
Schematic and BOM
- Landline telephone (I’m afraid rotary dials are not covered here)
- Raspberry Pi Pico
- DFPlayer mini (or MP3-TF-16P clone) – MH2024K-24K, MH2024K-16SS and many more chips are supported
- MicroSD card. 8GB or more is recommended.
- TP4056 battery charger module
- 18650 or equivalent lithium battery
- 1000uF electrolytic capacitor
- 2x 1KΩ resistor
- 3.5″ audio socket
The specific telephone I used had a keypad matrix with 17 keys, an LED, a buzzer, and another key not on the matrix. You should be able to adapt the code to your hardware.
Among the telephone components you should be able to use the keypad matrix, handset speaker, handset switch, buzzer, LED, as well as most of the wiring and connectors.
Source code
You can find the source code of the project here: github.com/TuriSc/Jukephone
Jukebox is an original project.