Updated date:

How to Build a Jukebox Using an Old Radio and a Raspberry Pi

Bill has been an information systems professional for more than 30 years. He enjoys writing about cooking, local history, and technology.

The finished jukebox. It has over 2200 songs.

The finished jukebox. It has over 2200 songs.

The Project Begins

I had seen some great examples of homemade jukeboxes online and knew it was something I wanted to do. I thought about the project for a long time and decided that I wanted to up-cycle an old 1930s or 1940s wooden console radio rather than building a cabinet to house the electronics. I didn't want to destroy a working antique so I limited my search to those that weren't currently functioning. Most of the instructions I found online used custom made enclosures, so it was clear that I would have to figure things out for myself.

The 1941 Sears Silvertone radio as I purchased it.

The 1941 Sears Silvertone radio as I purchased it.

Design Considerations

The console radio projects I saw online didn't appeal to me. They stripped the old radios down to bare wood and then refinished them to look like new. I wanted my old radio to look like an old radio.

The software I planned to use allows for physical buttons and/or a touch screen. My radio had no room to tastefully place both a screen and buttons so I opted for a touch screen.

I intended to add an amplifier and speakers to the radio cabinet but ultimately went with a Bluetooth transmitter instead. That enables me to listen to the music over my high-end stereo system or on a Bluetooth speaker in my kitchen or elsewhere. I would only need to unplug the transmitter and plug in an amp if I decided to go back to the original plan.

I wanted the radio to look benign when off and fun when playing music. I added a multi-color LED strip to the back of the unit. It provides a playful splash of color when the jukebox is running but is not visible when the machine is off.

I'm a fan of Steampunk but had never done anything along those lines. I thought I might do something with the old vacuum tubes so I ordered some amber 12 volt LEDs. I would figure out the details later.

Finding A Radio To Modify

The first step was trying to locate a suitable (non-functioning) radio. I looked at Craig's List and Facebook Marketplace listings daily. There were more than a few available at $150 and up, but I didn't want to spend that much since there were electronics to buy as well. After about two weeks I found one listed for $20 and it was just a 15 minute ride from my house. It was exactly what I needed and I immediately called and picked it up.

Working On The Cabinet

A 10 inch touch screen would replace the physical controls. I removed and saved everything from the wooden cabinet and enlarged the opening with a jigsaw. I was a little loose with my handling of the saw and had to add a piece of plywood to cover up my mistakes.

It's likely that if you are doing this project, your radio will be a different model and the placement of the screen and/or buttons will have to be determined by what you have to work with.

The ornate grill cloth was torn and filthy and would not have stood up to washing. I found a shop on eBay (RichmondDesignsInc) that sells period-correct replacements. They didn't have an exact replacement for my radio but they had something that was very similar.I think it was well worth the $26.

I cleaned the woodwork and touched up some spots where the finish was chipped. A coat of furniture polish was applied and it looked a lot better but still had the patina that I wanted.

I have a 3D printer that I used to make the trim around the touch screen, the new old-looking "Silvertone" logo and a few other things. A 3D printer is not required for this project but it can com in handy. I 3D printed brackets on the back of the radio to hold power buttons, USB connections, and audio inputs. These are not required. Fruitbox allows for touch screen buttons to shut down the software and to safely power off the Raspberry Pi. I wanted to keep those functions separate from the jukebox interface to prevent someone from inadvertently turning it off.


The original controls

The original controls

"No mistakes, just happy little accidents" - Bob Ross

"No mistakes, just happy little accidents" - Bob Ross

The Electronics And Software

There is a brilliant piece of free software called Fruitbox that handles all the jukebox functionality and runs on a Raspberry Pi. You can use it as is or build your screen however you want it to. The first image above shows the jukebox in "Song" mode. You can also set it up to show and play full albums. The author provides great software support on his official RaspberryPi.org webpage. I've provided links to the software and to the hardware components that I used below.

Computer

I used a Raspberry Pi 3B+, though most versions (excluding 4) will work. You will need a micro SD card of any size. If you're not using the SunFounder touch screen you'll need a Raspberry Pi power supply, an HDMI cable, some arcade buttons and controller, and a monitor. I paid $25 for my 3B+ on sale at Micro Center. You can normally find them for $35 in most places online.

Setting up a Raspberry Pi is easy. You download the operating system from the Raspberry Pi official website to your computer (Mac or PC), burn the image onto a Micro SD card using SD Card Formatter (free download) and then put the card into the Raspberry Pi and plug in the power.

Alternatively, you can download the file from the Fruitbox GitHub page that includes the Pi O/S and the Fruitbox software.

Once booted, you can configure the network, timezone and keyboard settings. Instructions for this can be found on the RaspberryPi.org website.

Fruitbox will use keyboard keys by default so it's not necessary to have arcade buttons or a touch screen on hand to test the functionality. Any wired or wireless USB keyboard will work. Once the Pi is configured and Fruitbox is installed and configured, a keyboard is no longer required.

Touch Screen

The SunFounder 10 inch model is specifically made to work with Raspberry Pi. The Raspberry Pi mounts to the back of the screen so no separate power supply is necessary as it gets power from the screen. The screen comes with it's own power supply and HDMI cable.

I am super impressed with this touch screen. It comes with everything you need to attach and connect the Raspberry Pi and works right out of the box. Setting it up to work with the Fruitbox software is detailed in the Fruitbox Userguide.

InnoMaker Raspberry Pi HiFi DAC Hat.

This device plugs into and sits on top of the Raspberry Pi, which is why it is called a "hat". It delivers a clear, robust sound and doesn't require external power. This isn't completely necessary but well worth it as it is far superior to the Pi's onboard sound chip.

The instructions for this included a warning that it is loud. I kind of shrugged that off as hyperbole. I was using a set of powered computer speakers at the time and they weren't too loud. I added the DAC hat and almost blew my ears out. It is amazing how powerful this little device is. I highly recommend it.

Bluetooth Transmitter (Optional)

1Mii Bluetooth 5.0 Transmitter Receiver

This is not required if you intend to plug your amp or powered speakers directly into the Raspberry Pi or InnoMaker HiFi DAC. If you do use a Bluetooth transmitter/receiver, make sure it has a switch so you can lock it into transmit mode. I went through a bunch of other ones that automatically switched between the two modes and can be a nightmare to connect.

The Raspberry Pi has built-in Bluetooth but I could not get it to work consistently and when it did, the sound wasn't very good. A search of this issue showed that I was not alone.

Arcade Buttons (If not using a touch screen)

If you plan to set up traditional jukebox buttons rather than using a touch screen, you'll need a set of arcade buttons and a controller. The Fruitbox software can handle touch screen buttons, manual buttons, or a combination of the two.

These buttons are fairly easy to configure but I didn't have a suitable place to mount them on my radio. I've seen where some people have added a box on top of the radio to hold the buttons but I didn't like the look.

I ordered a set and used them when I was setting up and testing my Fruitbox software. Once I decided on a touch screen, these buttons went into my unused hardware drawer to be used in some future project.

If you only want to test your Fruitbox installation, a keyboard will fit the bill.

Software Steps

Download and Install RPI-Fruitbox using the files and instructions on this site:

https://github.com/chundermike/rpi-fruitbox


For assistance with any aspect of Fruitbox, go to:

https://www.raspberrypi.org/forums/viewtopic.php?t=188723


The author of the Fruitbox software and experienced users will answer your questions. It's a great online community.


Add-ons:

To add a power status light for the Raspberry Pi:

https://howchoo.com/g/ytzjyzy4m2e/build-a-simple-raspberry-pi-led-power-status-indicator

To add a physical button to safely power off the Raspberry Pi:

https://howchoo.com/g/mwnlytk3zmm/how-to-add-a-power-button-to-your-raspberry-pi


Setting Up Multiple USB Drives

I've set up my jukebox to look for the music database and MP3 files on a USB drive. I have 4 different USB drives set up with different music, different screen skins, and different modes (song mode or album mode). In essence, each USB is a unique version of a jukebox.

Depending on which USB drive is plugged in when I start the Raspberry Pi, I have Old Radio Shows from the 30s and 40s, popular music from the 50s to today in album mode, classical music, opera, and Broadway shows in album mode, or all popular music in song mode.

You can configure Fruitbox to start playing random songs after X seconds of inactivity. With over 2,200 songs on my jukebox, it's pretty cool when songs you haven't heard for a long time come up.

Sometimes it makes me laugh like when I hear Glenn Miller, followed by Black Sabbath, followed by Taylor Swift.

The user guide in the installed package and on the GitHub page will tell you how to have the Raspberry Pi automatically mount the USB drive at start up.

Creating your own skins can be fun but the documentation for that isn't highly detailed. It is however very versatile and allows you to create skins limited only by your imagination. After fumbling around for awhile I figured out how to make my own screens. I've made an old time radio dial, a Forbidden Planet themed screen (see video below) and a few others. The downloaded software includes a variety of different screens that you can choose from and that's likely all you'll need.

The Guts of the System

This shows the back of the touch screen. On the right is the Raspberry Pi with the DAC hat attached. That's the whole jukebox in a nutshell.

This shows the back of the touch screen. On the right is the Raspberry Pi with the DAC hat attached. That's the whole jukebox in a nutshell.

The wires in the above picture are for adding physical buttons that I didn't want to have on the touch screen. I put buttons on the back of the radio to stop the Fruitbox software and safely shutdown the Raspberry Pi. Both of those functions could be easily handled by virtual buttons but I didn't want users to accidentally turn things off.

Other wires connect to a status LED on the front of the radio.



Interfaces and Brackets

The buttons and interfaces I added to the back of the radio.

The buttons and interfaces I added to the back of the radio.

The USB extensions and input jack make it easier to plug in accessories but are not necessary. You could just as well plug things directly into the Raspberry Pi. I added them so I wouldn't have to reach into the back of the radio when I wanted to connect a keyboard or other device.

Starting from the left:

A USB port that is connected to the Raspberry Pi. It can be used for a keyboard, or any other suitable peripheral, or can be used to power any 5 volt accessory.

A button to cause Fruitbox software to exit to the operating system.

A holder for USB drives that aren't currently being used. I have different sets of music and skins on each one.

An audio jack. I use it to plug in a Bluetooth transmitter but it can be used to connect to and amp or stereo system.

A USB port for plugging in whichever MP3 collection and screen skin that you want.

A button to power the Raspberry Pi up after it has been powered down.

A button to safely power the Raspberry Pi down.

Fruitbox Wurly Skin with Forbidden Planet Theme

Using the Touch Screen in Album Mode

Old Radio Shows Skin

I created this skin for listening to  old radio programs from the 30s and 40s

I created this skin for listening to old radio programs from the 30s and 40s

Add Ons

New life for old vacuum tubes. A touch of Steampunk

New life for old vacuum tubes. A touch of Steampunk

I added an LED strip to the perimeter of the back of the radio so it would cast a glow on the wall behind it. Originally I had it set to react to the music and that was pretty cool. But I decided to remove the powered computer speakers that I had put inside the cabinet temporarily and added a Bluetooth transmitter so I could broadcast the music to my living room stereo system. The downside was that the microphone that is attached to the LED strip doesn't pick up the sound as well as it did when speakers were in the cabinet. The result was that the pulsating lights were significantly less dramatic. Additionally, I had removed the original speaker to let the sound from the computer speakers out and the light from the LEDs shown through the grill cloth.

I decided to cut a window where the original speaker had been and lit the old vacuum tubes with amber LEDs to give them a warm and comforting glow. I covered the hole with some acrylic that I had lying around and I am very happy with the results.

I 3D printed a trim ring to fit inside the speaker hole and added a 3D printed Silvertone logo.The coiled copper wire was for added effect. The reflective wall behind the tubes is an empty cookie tin from Christmas.

Conclusion

This was a fun, rewarding, and useful project. Everyone who sees it loves it. I would suggest setting up the Raspberry Pi and Fruitbox software before you start trying to incorporate it into an old radio or custom made cabinet. There is a bit of a learning curve, especially if you haven't used Linux or worked with a Raspberry Pi before, but it's not daunting. The big plus is that it is a widely supported platform and there is an enormous amount of help available. Google searches will answer just about any question you have. Questions about Fruitbox specifically will be answered on the "fruitbox MP3 jukebox" forum on RaspberryPi.org.

I'll answer any questions that I can.

© 2021 Bill Yovino

Related Articles