Pandora's Box - An Internet Radio player made with a Raspberry Pi!

FeaturedContest WinnerContest Winner
Picture of Pandora's Box - An Internet Radio player made with a Raspberry Pi!
Plug in this internet radio player and listen to your favorite stations on Pandora Radio. Six pushbuttons control the music, while an LCD gives feedback on the song, artist, and other useful information. All of this is housed in a custom acrylic case with access to the Raspberry Pi's ports.

Special thanks to LVL1 Hackerspace ( for use of their laser cutter!

Raspberry Pi is a trademark of the Raspberry Pi Foundation.
Remove these adsRemove these ads by Signing Up

Step 1: Parts List

In order to build the system, you will need several things. The main piece is a Raspberry Pi Model B with a 5V, 1A power supply. This Instructable is based on a Revision 2 board, but will work on earlier boards with minimal changes. 

Next, you will need an SD card with a Raspbian Wheezy image. Instructions for this process found at:

Electrical hardware needed:
1) Solderless breadboard (and wire)
2) Serial LCD module (3.3V module from Sparkfun was used:
3) Ethernet Cable
4) USB Keyboard and mouse (necessary for setup, not the final product)
5) Pushbuttons (6) -  "Normally Open" type with threaded mounts
6) 3.3V Regulator (LM1117T-3.3 from Texas Instruments in the TO-220 package type used here)
7) Resistors: (7) ~10kOhm, (6) 1 kOhm
8) Capacitors: (2) 10 uF tantalum (as recommended by TI for 3.3V regulator
9) Pi T-Cobbler from Adafruit (not necessary, but makes GPIO access much easier)
10) Auxiliary audio cable

Other equipment needed:
1) Soldering Iron and solder (for the T-Cobbler breakout board)
2) 1-Minute Epoxy (for the acrylic case)
3) Acrylic (and a means of cutting it)
4) Nylon Standoffs and Screws
5) Velcro strips (with sticky sides)

The acrylic used in this project was 0.08" thick and can be found at Lowe's in 8"x10" sheets. This was great for cutting with a laser-cutter. Other thicknesses can probably be used - this will be left up to your discretion (and experience).

The standoffs used were a combination of (3/8"  - hex -  1.25" -  4-40 thread) and (3/8" - hex - 0.375" - 4-40 thread) nylon male/female standoffs. 4-40 fillister flat head nylon screws were used with these standoffs.

Although this Instructable includes directions for the custom case, this is probably the trickiest part of the design. Familiarity with a laser-cutter is necessary, since every laser cutter and design software package is different.
gbovee1 year ago
Can someone explain to me the point of using 5v and a regulator to get to 3.3v when there is a 3.3v supply from the pi. I am fairly new to this stuff and am just trying to learn. Thanks.
Ayy (author)  gbovee1 year ago
That's a really good question. The answer has to do with the current limit on the Raspberry Pi's 3.3V line. According to the link below, the 3.3V line can output up to 50 milliamps current. Meanwhile, the 3.3V LCD module I used can draw up to 60 mA.

While LCD may never draw that full 60 mA, it has the potential to cause issues. Since the 5V supply can supply over 300 mA (when using a 1A power supply), I chose to add the 3.3V regulator.  

RPi electrical specs:
gl0rious1 year ago
Could i get an estimate of the cost? i really would like to do this project, and i am a beginner..
Ayy (author)  gl0rious1 year ago
This depends on what equipment you already have. For example, I already had soldering equipment, drill and tap set, standoffs, SD card, and resistors. I'll give some prices for the bigger items:

Raspberry Pi: $35 + shipping
Power Supply: $8 + shipping
T-Cobbler: $8 + shipping
Serial LCD Monitor: $25 + shipping
Buttons: $7
Acrylic Sheets: $8
Epoxy: $5
Capacitors: $2
Velcro: $5

The small things tended to add up quickly - like the bits I had to get from Radioshack and Lowes (buttons, capacitors, velcro, etc). I probably could have gotten some things much cheaper online, but I didn't have the patience to wait for the velcro to ship. All the parts were around $110 with shipping - but since I plan on reusing most of the stuff for future projects, the cost felt reasonable.

Hope that helps.
akcook Ayy1 year ago
gl0rious Ayy1 year ago
thats very helpful thanks
Ayy (author) 1 year ago
Note: On the box plans, the center piece has an issue with the spacing of the raspberry pi's holes. If you are making the same box, double check the holes (I don't have the original files to correct the images...)
calmlunch3 days ago


spewlocks5 days ago


clapfilk17 days ago



Its magnificent :)

lack3r24 days ago

Hi guys. This is actually a great post. However, Pandora cannot be used outside US :(. Is there a way to do the same project but with another online radio provider, let's say TuneIn? Because this cannot be used outside US...

Its cooler :)

txspyder8526 days ago

Looks like a great project! Not sure I understand where the audio connection to an external amp is made. Does it produce a stereo signal?


CK in IL

4maxthedog1 month ago

Very nice project.

clickyummy1 month ago


bearblue1 month ago


Jamesdh2 months ago

Now. Install a webserver and allow control from any hand held device like phone or tablet.

Control volume, station, like / dis-like song, add station etc...

tenokage11 months ago
in the first paragraph, chmod 777 x.xx where x.xx is the filename, for which files? I also got an error when I tried to enter the last instruction given above (cp -r /home/pi/.config/pianobar/Pandoras-Box/scripts/.) where it said " cp: missing destination file operand after 'cp -r /home/pi/.config/pianoar/Pandoras-Box/scripts/." Any help would be greatly appreciated thanks

The cp isn't "cp -r /home/pi/.config/pianoar/Pandoras-Box/scripts/." It's "cp -r /home/pi/.config/pianoar/Pandoras-Box/scripts/ ." There is a space after the last "/" and before the "."

tikishark made it!2 months ago

If anyone is looking for more of a kit-based version of this project. You can find the project at I was able to get all the needed parts from You will need a Raspberry Pi, LCD and LCD Shield, USB WiFi Adapter, and Raspberry Pi Case (Optional).

gazumpglue2 months ago

The handshake error should be fixed by this process. Occasionally Pandora updates the tls_fingerprint value. If this is still an issue, look at the pianobar github issues page.

My RPi won't boot after making the change below:

And change:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 $


dwc_otg.lpm_enable=0 console=tty1 $

Doing this causes my RPi not to boot. I can't ssh with a console cable, it's just dead. Get all kinds of error msgs from the monitor on the composite video output but I don't know how to let you see those. Running the latest whezzy.

This is the second time I hosed this up. The first time I thought I fat-fingered something. This time I triple checked the change and it still caused the RPi not to boot. Guess I'll flash another SD and leave the LCD off this project for now.

I'm having the same problem! Did you solve it?

Yes I did solve it. It was my mis-understanding of the meaning behind the "$". Being a noob I didn't understand that when a $ is used, this means that everything behind the $ is to be left as-is. I just entered the new code and stopped after typing a "$".

I'm pretty sure that is what was wrong.

I could look at my code tonight and verify that line of code if you want me to.

Kiseleon3 months ago

I created a version inside of a replica 1930's radio (replaced the casette player part with the RPi), and everything works great. The only issue I've been having is that the CPU usage is ALWAYS at 100%. Would it be a bad idea to skip loading the GUI entirely (just load the CLI) and just run the scripts with a cron job? Would there be any downsides to this approach?

AHochstadt3 months ago

Do we also need to buy an NFC breakout board? The Adafruit tutorial on installing libnfc requires one.

sgehring1 year ago
When installing with apt-get the .config/pianobar directory is not getting created plus i get a TLS handshake error. Is anyone else experiencing this?
Ayy (author)  sgehring1 year ago
Are you sure .config isn't being created? Not knowing your knowledge of linux, I want to mention that .config is a hidden file - but if you type "cd ~/.config" in the terminal it should come up. If the folder still doesnt exist, just make the directory ("mkdir ~/.config/pianobar") then create the "config" file with the example I gave in the instructions.

The handshake error should be fixed by this process. Occasionally Pandora updates the tls_fingerprint value. If this is still an issue, look at the pianobar github issues page.

Hope this helped!
ddaily1 Ayy3 months ago
How do I create the config file?
cellfreak7 months ago
Found a fix for the TLS handshake error

Pianobar now works on my Raspberry Pi.
Mariska Botha7 months ago
BunnyRoger7 months ago
Very very cool!
andrewmzhang7 months ago
I have the newest fingerprint 2D0AFDAFA16F4B5C0A43F3CB1D4752F9535507C0

but i still have the TLS handshake failed issue (this was working 3 days ago, and when i check the tls fingerprint with a code found here

it returned the same code found above. Please help me!
Thanks for this, gonna have to put some work in but will be a nice reward. And thank you for all the tips on bettering it as well.
MAApleton7 months ago
I have to say this looks quite impressive though here in South Africa the parts are a lot more expensive so making one would cost a little fortune. But one can dream.
kaplow8 months ago
I am having the same problem as sgehring and aasselhoff. When I installed pianobar, the entire .config directory was missing, including anything inside of it, such as the config file or eventcmd. I followed your instructions and created /.config/pianobar and wrote the necessary information into the config file, but whenever I start pianobar, I get a "no such file or directory" error for eventcmd.
tayexdrums8 months ago
I have been struggling with getting this to successfully automatically start on boot for an entire day. I have tried putting the pianobar and bash /home/pi/.config/pianobar/scripts/ commands in multiple locations. I have tried putting them in the /etc/rc.local file, the ~./bashrc file, and the /etc/bash.bashrc file. The only one that seemed to "halfway" work was the ~/.bashrc file. The pianobar would start but the script would not so was unable to use the buttons. Please help!
emcek9 months ago
I have a question how to use nylon screws, I dont see any holes in my pi? How to screw it to standoffs?

Get More Out of Instructables

Already have an Account?


PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!