thisoldgeek
Published © CC BY-NC

Modern Jukebox

A 3D-printed mini jukebox powered by Volumio. Streams your music, Pandora, Spotify and AirPlay. Sound-reactive LEDs dance to your music!

AdvancedFull instructions providedOver 3 days12,242

Things used in this project

Hardware components

Raspberry Pi 3 Model B
Raspberry Pi 3 Model B
×1
Adafruit Pi Perma Proto Hat NO EEPROM
×1
Arduino Nano R3
Arduino Nano R3
I used an ancient, no-longer made Arduino Micro. You'll have to make sure your pinout works if you use a different board. An Adafruit Metro Mini also works.
×1
LED Strip, NeoPixel Digital RGB
LED Strip, NeoPixel Digital RGB
I used a 60 LED per meter strip from Adafruit. You'll need two pieces: 36 LEDs and 22 LEDs. The 60 LED/meter strings look better than the 30 LEDs/meter.
×1
Uctronics 5in HDMI LCD with Touch Screen
You might be able to use a Waveshare or other brand. MUST be 5 in, and the mount points could change in the 3D model if you don't use this exact LCD.
×1
HDMI Flat Male-Male 270 degree 1 ft cable
×1
HDMI Combo 90 and 270 Degree Converter
×1
Left Angle Micro to USB A 9in cable
For touch interface on LCD. "Left" is the side where the cable comes out when the plug is inserted.
×1
Short Micro to USB A Cable
Attach Arduino to Raspberry Pi USB A, for power
×1
Capacitor 1000 µF
Capacitor 1000 µF
On power rail from Pi/Audio Amplifier
×1
IQAudio Pi Digi Amp Plus
Late Breaking News! IQAudio is now part of Raspberry Pi. You can get the Pi Digi Amp Plus for the bargain price of $30 USD. I used old stock that was much more expensive. This build uses a 5V feed from the Amp Plus to power the LEDs. https://www.raspberrypi.org/blog/iqaudio-is-now-raspberry-pi/
×1
Resistor 330 ohm
Resistor 330 ohm
For NeoPixel/LED string
×2
SparkFun Sound Detector (with Headers)
SparkFun Sound Detector (with Headers)
The one component YOU MUST HAVE for sound-reactive LEDs!
×1
Dayton Audio RS100-8 Speakers
Excellent small speakers, with a quirk: they have a protruding cone in the center of the speaker, to they can't fit flush on a speaker grille. I have a fix for that! Two 3D printed speaker stand-offs specifically for the RS100's
×2
Speaker Wire 18AWG
×1
Parts Express SPDT Mini Rocker Switch Center Off
×1
Parts Express SPST Rocker Switch
CAUTION! I used a SIMILAR UXCELL rocker switch that is no longer available. Check the Parts Express dimensions, may be different than what I used. That MAY REQUIRE a change to the jukebox base component because the switch is friction fit by size.
×1
Adafruit Female Header - Pack of Five
×1
Hook Up Wire Kit, 22 AWG
Hook Up Wire Kit, 22 AWG
For wiring the Perma-Proto board and soldering to the NeoPixel Strand
×1
M2.5 Standoffs - 20mm Threaded Male one end, Female other
Attach Adafruit Perma-Proto Board to IQAudio Digi Amp Plus
×4
M2.5 Standoffs - 5mm Threaded Male one end, Female other, plus 4x nuts
Attach 4 standoffs to IQAudio Pi Digi Amp to Raspberry Pi and 4 standoffs (plus 4 nuts) to mount the board to the Jukebox case.
×8
Machine Screw, M2.5
Machine Screw, M2.5
To attach Perma-Proto board to IQAudio board, LENGTH = 4-5mm
×4
Micro SD Card
For Raspberry Pi
×1
Adafruit Panel Mount 2.1mm DC Barrel Jack
For external power brick input
×1
DC Power Extension Cable
Used inside the case to connect the barrel connector to the IQAudio Amp. That in turn powers both the RPI and the Perma-Proto board.
×1
Velvet Adhesive Liner, Multi-Pack
I used a different, but similar, product I had on hand. This is used as a baffle/light blocker behind the LEDs. You could glue on anything opaque, probably even black paper works.
×1
3D Filament
I used five different colors of filament, no post processing: red, white, Fillamentum Vertigo Galaxy, Fillamentum Rapunzel Silver, and brown. If you are going to post-process, you'll probably need at least 2x 1kg reels. Best would be white because it's needed as a diffuser for the LEDs
×1
Adafruit Slow Fade 5mm Diffused LED
Used to illuminate the "star" in the speaker grille. This will indicate if the power is on or off to the jukebox (via the switch).
×1
Acrylic Sheet 3mm - 6mm
To make a window at the top of the jukebox. I put a photo in back of this to look like the record changer on the jukebox.
×1
Machine Screw, M2.5
Machine Screw, M2.5
For mounting the speakers, at least 15mm long, black, flat head (to fit as countersunk. You will also need the same number of nuts. Six each speaker, 2x speakers.
×12
3.4A Power Supply
The IQAudio Digi-Amp Plus required a strong power supply. The one I used is similar to this one (in the store link). It is 19V which is dropped down to 5V to power the RPI. The Digi-Amp had a jumper block to ouput 5V/GND and I used those to power the LEDs directly, via a header block on the Perma-Proto board.
×1
Parts Express Speaker Grille Cloth
Give the jukebox a vintage look...
×1
Acrylic Sheet 3mm to 6mm thick
Used to create a windows in the arch at the top of jukebox. Once cut to fit, you can put a photo or drawing behind the acrylic.
×1
3 pin screw terminal block 5.08mm pitch for PCB
Attach selection switch and LED wires
×1
Machine Screw, M2.5
Machine Screw, M2.5
Used for an optional 3D printed back cover, M2.5 x 5mm., recommend Pan Head.
×7

Software apps and online services

Volumio
Arduino IDE
Arduino IDE
GIMP Drawing Program
If you want to add a photo or drawing at the top of the jukebox, in the window, you'll need some kind of drawing program for original art or to size a jpg to fit. I used Corel Draw X7.

Hand tools and fabrication machines

3D Printer (generic)
3D Printer (generic)
I used a Prusa I3 MK3S. You'll need a printer of similar or greater build volume to be able to print the parts.
Hot glue gun (generic)
Hot glue gun (generic)
Glue the parts together to form the case.
Soldering iron (generic)
Soldering iron (generic)
Wire up the Adafruit Perma-Proto board to run the LED strips
Zap-a-Gap Medium CA Glue
Great adhesive, used to glue small parts together. Used to attach the decorative pieces on the front of the jukebox.

Story

Read more

Custom parts and enclosures

Modern Jukebox R1V2 F360 File

Fusion 360 design

Code

Modern-Jukebox on github

Credits

thisoldgeek

thisoldgeek

11 projects • 26 followers
A specimen of Homo Sapiens, which is an unintentionally ironic name for the species.

Comments