Introduction: Touchscreen Internet Radio, Raspberry

Picture of Touchscreen Internet Radio, Raspberry

Make this super easy and cool looking 2.8" touchscreen Internet Radio that can be controlled with PC, Smartphone and basically every machine that has got a browser and an internet connection..

(find the speakers at the back from here ;)

Components list:

-Raspberry Pi, basically any one works from the first gen.

-Adafruit PiTfT touch screen

-Cable between the screen and raspberry.

Case was printed with Printrbot Makers kit.

Step 1: Planning.

Picture of Planning.

The dimensions in the picture are in millimeters.

The plan is simple. Make a table top case for the screen and raspberry. I had to make the base of the case 3mm taller than in the plans. I was fooled by the length of the solders under the raspberry.

The 3D model of the case was made with ScetchUp, witch is a free and brilliant software to use.

The project will include the printable file, but if you like and want to support my future projects you can buy the files from HERE. Cost is only 1 dollar and helps me a lot :)

All of my printable files on sale in here!

Step 2: Printing.

Picture of Printing.

The whole project is printed with Printrbot makers kit.

Simple and small printer does the job well.

Printing time for the whole case was about 2.5 Hour's. With layer height of 0.2mm and speed of 50mm/s. Nozzle size is 0.4mm.

Printed with support .

Step 3: Testing.

Picture of Testing.

Test that the components fit in to case. In my case the parts just snapped in to place.

I had a Adafruit's plug and play image that works with the screen right away in the testing process. You can find the image from Adafruit's site under the PiTfT screen.

Remember to properly fold the cable in the case. If you like i have reserved a place for four buttons under the screen. I didn't have good (suitable) buttons to use in that place.

Step 4: The Rom.

Picture of The Rom.

I used a base of the Volumio image to use. It has got in basics a Web based Ui witch means that if you write your raspberry's IP address on your URL bar it will open a page where you can control the Raspberry.

To make the screen work i had to install the drivers to it and make the screen load up in boot. Then i had to install LXDE environment and finally make the raspberry's own internet browser to open up automatically with the Web Ui open.

Look on the next step to see how it is done.

Step 5: Install Drivers.

Picture of Install Drivers.


The Volumio has to be version 1.41 to make the TFT screen work.

I will not guarantee this working in other versions of Volumio.

See volumio's page.

If you are going to use the Volumio without the TFT screen, just use the latest version available.

To connect to the Raspberry it has to be on internet. Access to it via SSH. Use PuTTy for easy access.


Basic username is : root

And password : volumio

1. Burn the Volumio image to your SD card. Find the instructions from the Volumio's site.

2. Remap the partition size. Add a line at a time to the console and answer the "questions" as follows.

<p>sudo fdisk /dev/mmcblk0<br>Command : d
Partition number : 3
Command : n
Select : default
Partition number : 3
Partition start : default
Partition end : default
Command : w</p>sudo reboot

After reboot continue.

sudo resize2fs /dev/root

3.Get the drivers from Adafruit for the screen

sudo apt-get update

curl -SLs | sudo bash

sudo apt-get install -y adafruit-pitft-helper

Wait the processes to finish and continue.

sudo nano /boot/config.txt

Insert this to the txt file.










Save the file with Ctrl+O and quit Ctrl+X

sudo reboot

After reboot the screen should be black. If it isn't redo the whole thing.

If the screen is black. continue.

Take the touch screen drivers to use.

write the command.

sudo nano /etc/modules

And add to the last line this.


Save and quit.

Last things to the touch screen are these.

sudo mkdir /etc/X11/xorg.conf.d

sudo nano /etc/X11/xorg.conf.d/99-calibration.conf

Write these lines to the screen and save.

Section "InputClass"

Identifier "calibration"

MatchProduct "stmpe-ts"

Option "Calibration" "3800 200 200 3800"

Option "SwapAxes" "1"


Now the screen and drivers are installed. Don't worry. There is no picture at the time.

4.Next we will install LXDE environment.

sudo apt-get update

sudo apt-get install -y xserver-xorg xinit xserver-xorg-video-fbdev lxde lxde-common

This one is your "desktop".

5.Install and configure Chromium browser and LXDE

sudo apt-get install chromium x11-xserver-utils unclutter

sudo nano /etc/xdg/lxsession/LXDE/autostart

Insert the following lines to the autostart file. Comment (#) the screen saver line.

#@xscreensaver -no-splash

@xset s off
@xset -dpms

@xset s noblank

@chromium --kiosk --incognito --user-data-dir --disable-touch-editing --enable-touch-events http://volumio.local

If you have a problem with the volumio.local address, change it to your raspberrys IP address.

finally write

sudo reboot

6. Now that everything is in order, Its time to wake up the screen.


FRAMEBUFFER=/dev/fb1 startx

You should now have a picture in your screen.

To make it automatically to boot the screen on power up you will have to make a new file to boot it up.

sudo nano /etc/rc.local

Add these lines just before exit 0 line at the bottom.

sudo modprobe spi-bcm2708

sudo modprobe fbtft_device name=adafruits rotate=90

export FRAMEBUFFER=/dev/fb1


save the file.

Reboot and hope for the best.

Step 6: Testing

Picture of Testing

See that everything works the way it should. Pop some speakers in to the plug at the back and hit play.

If you have any questions i will try to answer them as soon as i can.

Step 7: Bottom Lid.

Picture of Bottom Lid.

Almost forgot. Glue the bottom lid to the bottom of the base. Use glue or tape or whatever.

If you want you can make a small "cut" to the base for the SD card for easy remove. You know...if you like to play Nes or other emulator with it ;)

Step 8: That's All Folks.

Picture of That's All Folks.

Thanks for reading. Enjoy your internet radio that you can control with everything that is connected to your local internet.

If you like my projects be sure to follow me to get the latest projects first.

And also remember to VOTE.

Happy buildings

-Miska Karvonen.


MaRR10 (author)2017-11-09

I have pi zero with Audio DAC hat, is it possible to attach a monitor/display, if yes how can I mount them together to pi zero? Thank you.

Stoffel007 (author)2017-10-09

Finally I made it. After days (and nights) of trying, restart everything, trying again, my Raspberry music system works.

Everything worked as described, except for one thing: installing Chromium. All the sites I found with help for installing Chromium were already outdated. Finally I found the solution on this website:

Now, everything works flawless. Thank you mkarvonen for this tutorial. If you would see this message, then maybe you can change the way to install Chromium.

Juan C Walls (author)2017-07-03

I was wondering if this could be done portable (with an integrated speaker and battery) and also with FM radio.

ErikH47 (author)2017-06-09

If I don't want to use your Pokemon speakers (they're awesome though) how would I go about connecting speakers to them that use RCA cables. To make things simpler can this play music through Bluetooth? I have this old stereo system that's great but behind with the times. I was thinking of adding a Bluetooth receiver to it and connecting it to this pie. So does this have Bluetooth functionality?

HydrogenCore (author)2017-05-29


What changes if I use a 3.5" pitft screen?


PietC made it! (author)2016-07-10

What a great instructable is this!

I made it but with a lot of trial (and error).
To get it work I added in step 3 after "sudo apt-get update", "sudo apt-get upgrade". Since it takes an hour to install all the files, it is a good idea to make a back-up of the sd-card. If something goes wrong (and it will), you don't have to repeat all the previous steps.
I used "sudo apt-get upgrade" again after "sudo reboot" in step 3.

I struggled with a small error in the code in step 6:
"sudo modprobe fbtft_device name=adafruitts rotate=90"
Delete a "t" in adafruitts and let the music play!

mkarvonen (author)PietC2016-08-25

Thanks! :D Yeah i should probably mention to remember to take backups on the SD card since i did that error many times :D

Sometimes there is a spelling mistake in the code and thanks for pointing that out! I will have to correct that :)

fnkngrv (author)2016-06-13

Is there a video of this bad boy in action?

MarcelD9 (author)2015-09-17

i think chromium-browser is now installed

thanks to this page

with some manual installations but now after all steps and the final reboot when i write

FRAMEBUFFER=/dev/fb1 startx

the screen does not turn on and i have to do CTRL+C to go out from the Xserver.

Any idea ?

KhonFin (author)MarcelD92016-02-19

I have the same problem!

I am using Pi2.

Before I managed to get LXPanel picture on my Adafruit, but later system somehow failed.

Is there some problem with chromium or what is it? My chromium version is 48.

HDMI-cable connected to TV it boots to LXPanel and it works fine.

I am not familiar linux at all so it is very difficult to solve this.

Any ideas? I really need this radio for my wife!

KhonFin (author)KhonFin2016-02-21

Ok, now I can get picture on my adafruit display.

It boots fine to the LXDE environment and I can use my mouse and keyboard to use it.

But I cant get chromium browser visible. When I use task manager to check if it's running, I can see that it is running on background.

I just cant make it visible. What is the problem here? Is it possible to use other browser to make this work?

MarcelD9 (author)2015-09-17

"Package 'chromium-browser' has no installation candidate"

Hi, thank you for your tuto but i have this problem too, do tou have a solution ?

I have tried this :

sudo apt-get update

and then try the installation again.

sudo apt-get install chromium-browser

but it doesn't for me.

Thank you

Aariz Firdaus (author)2015-09-14

It is possible right to change the OS to raspbian so it is like an ipad

mkarvonen (author)Aariz Firdaus2015-09-14


The OS is the internet radio itself. The picture in the screen is just a browser page opened in kiosk mode. This requires installation of the X in order to work.

By default there is no picture on the screen.

RyanL26 (author)2015-09-12

When I try to install Chromium, I get an error reading : "package 'chromium' has not installation candidate"

Do you have any thoughts on how to deal with this or another option for a browser?


mkarvonen (author)RyanL262015-09-12


If there are no installation candidates, try the command

sudo apt-get update

and then try the installation again.

sudo apt-get install chromium-browser

AlexanderG13 (author)2015-07-22


Is the Volumio version 1.41 compatible with raspberry pi 2 model b?
I only get the rainbow screen on it after installing it on my SD-card and trying to boot it up.

If not are there any other options for me? :<

Thanks in advance

mkarvonen (author)AlexanderG132015-07-29

Hi. im not sure that this version of volumio works with raspi2. Did you remember to plug in Lan cable on the first boot? the volumio needs internet for the first boot.

AlexanderG13 (author)mkarvonen2015-07-29


Yep just about everything was plugged in :< it worked with the latest image of volumio so im guessing the 1.41 version doesnt support raspi2.

That sucks tbh :< the interface looks so nice compared to the other options.

carltonwb (author)2015-07-20

Thank you for the file link. After a few months I am getting back to this.

I have gone through step 3. I did the reboot but my screen does not turn black/go off it still remains on. I have started from the beginning 4 times but still the same result. I am using a B+.

What might I be doing incorrectly.

mkarvonen (author)carltonwb2015-07-20

Hi, Do you have the exactly same type of screen that i am using?

If not, Try to look out for specific drivers for that screen.

Is the Volumio version 1.41?

If not, Try again with the correct version. This wont work with anything else.

When in terminal, try to hit the command FRAMEBUFFER=/dev/fb1 startx

to the raspberry, If the screen remains black or white repeat the driver installation.

(ie. No picture after a few minutes comes to the screen)

The screen is a picky one sometimes. Eventually it will work just keep it up!

Make a fresh image if you have the idea that something might be wrong.

carltonwb (author)mkarvonen2015-07-20

Thank you for the help. I tried it 3 more times with no luck. Then I did a sudo apt-get upgrade. It took almost an hour to upload all the files and process them.

Lo and behold after the step 3 reboot it started working as it should. Do not know what file(s) in the upgrade made a difference.

Again thank you for helping me get it working.

carltonwb (author)2015-05-20

Where can I download version 1.41

mkarvonen (author)carltonwb2015-05-20

Hi! you can find the image from here

mmanuel2 (author)2015-05-10

Sorry, I just saw the software steps... (Note to self: read before commenting!)

mkarvonen (author)mmanuel22015-05-11

That happens sometimes even to the best :D Thanks!

mmanuel2 (author)2015-05-10

Hi: Great 'structable. What software are you using to serve up the webpage on the Pi, and play the music?

nerd7473 (author)2015-04-30


nerd7473 (author)nerd74732015-05-01

yes! senses fail, atreyu, and other tasteful music!

mkarvonen (author)nerd74732015-05-01

Phone does that a lot :D

mkarvonen (author)nerd74732015-05-01

Thanks! You can also play your own music with it. Just add songs to it via USB or LAN.

nerd7473 (author)mkarvonen2015-05-01

never mind my phone is acting dumb

nerd7473 (author)mkarvonen2015-05-01

the comment above was meant to be sent to you replied to myself...

TheZaneHill (author)2015-04-29

This is neat, How do you like your PrintrBot metal?

mkarvonen (author)TheZaneHill2015-04-29

Hi! Thanks!

The printer is PrintrBot simple makers kit. It's basically the same but it has a smaller print area by default and it has to be build yourself. But the printer is great! It's cheap and prints are good quality if you calibrate it well.

I'm currently building a bigger print plate for the printer and longer X axle to get bigger prints.

I could do an Instructable about that if your interested!

About This Instructable




Bio: I am 27 years old engineering student from Oulu in Finland. I make these projects as a hobby, and it would be fun to also ... More »
More by mkarvonen:PipBoy 3000 (working)DIY Piranha PlantPhoto(s) to 3D model
Add instructable to: