How to Make a Raspberry Pi Media Panel (fka Digital Photo Frame)

Picture of How to Make a Raspberry Pi Media Panel (fka Digital Photo Frame)

The goal of this project was to create a low cost Raspberry Pi Media Panel--a nice looking screen that could stand in the living room or attach to the refrigerator with the primary purpose of streaming personal photo and video content full time, but also be able to do some other cool things when show the weather, play a movie, play music, or receive AirPlay content.

Read this blog post if you want to learn more about what a media panel is and why you might want one.

Success criteria were:
-Low cost: a full blown computing device and screen for between $100 and $200 all in
-Attractive: meaning my wife finds it aesthetically acceptable for the living room
-Light: no more than a few pounds
-Thin: no more than an inch thick, including frame
-Quick: can be built in a few hours or less
-Simple: requiring mainly assembly, versus construction or manufacturing


Several people have asked me about an integrated product/service like this that is off-the-shelf. I've been working on one for almost two years, and just launched it on Kickstarter. It's called Fireside, and we think of it as a SmartFrame. It auto-organizes, scores and ranks your photos and videos so it can be smart about constantly updating playlists so you always see fresh relevant content. Read all about it here:

Remove these adsRemove these ads by Signing Up

Step 1: Select the right LCD Screen

Picture of Select the right LCD Screen
photo 1.JPG
photo 2-3.JPG
photo 2-5.JPG
There is a lot to picking the right LCD much that I wrote a completely separate blog post on how to select the right LCD screen for your media panel. If you want the full details and/or are thinking of doing something different, read that post.

To keep things short and simple, I recommend using a 15" or 17" screen similar to the screens used in the MacBook or MacBook Pro. You can, of course, also use a screen from an old laptop you already own, but you need to make sure you can find an LCD controller board that can operate it.

We bought our screens from, and the exact models we chose were the LG & Philips LP154WP1-TLA1 and the LG & Philips LP171WU3-TLA2. They were about $75 each brand new. Both screens were matte finish, though the next time I think we'll opt for glossy.

Don't worry so much about the numbers after the dash...they don't have a large impact on the screen. The critical numbers that determine whether an LCD Controller will support your panel and how to program it are the LP154WP1 and LP171WU3.

If you have questions, or are thinking about getting a different screen, read this blog post first.

Step 2: Order an LCD Controller Board

Picture of Order an LCD Controller Board
As you may have read in the blog post on picking LCD screens, there are a number of places you can buy an LCD controller board. However, I think the best is a company called NJYTouch based in China. For the LP154WP1 or LP171WU3 screen, order Model 5451 (audio) from their eBay Store. It costs about $40, and includes the inverter, a control switch (so you can turn your screen on and off) and the correct LVDS connector cable for your LCD the programming so that when it arrives it is plug and play.

Shipping for the item is currently free, but takes about a month to get to the US. Instead, ask to upgrade to DHL after you've purchased and for about $20 more the unit will arrive in under a week.

You will need to buy a 12 volt 4 amp power adapter--you can use any standard 2.5mm internal diameter 5.5mm outer diameter. We used this one from Amazon rather than having NJYTouch ship one specially from China.

You'll also need to buy an HDMI A to DVI 24+1 cable, since the controller board has DVI and VGA input but no direct HDMI. We used this one from amazon.

If you want to have audio, you need a device that can take the audio track off HDMI and deliver it via 3.5mm analog. You can find these on Amazon for between $30 and $99, depending on options. We've used this $43 product from J-Tech Digital with the X-mini II speaker via 3.5mm jack and had a good experience.

Unfortunately, there is a problem with the 3.5mm analog out on the Raspberry Pi board itself, and if you try to use it you will get a lot of popping and background noise. Similarly, if you try to add a USB sound card and take audio off via software, you'll find relatively poor performance and audio/video delay and syncing issues in our experience. Currently, the only reliable way is to take audio off HDMI.

Step 3: Order a Frame

Picture of Order a Frame
Once your LCD screen arrives, it's time to get out the tape measure and get the exact dimensions so you can order a frame for it. American Frame provides nice looking and low cost cut-to-order metal frames to your exact specification. Unfortunately, they do not cut metric sizes. Since LCD panels are made to metric specifications, you will have to calculate the size using 16ths of an inch as best you can. If you can't get a perfect match, round up to make sure the panel will fit inside the frame.

I recommend the Radius Colorcast line since the slightly larger rabbet depth fits the depth of the LCD panel a little better and the rounded bevel makes a slightly more attractive package. The Standard line works fine too if you want something simpler. Colors worth checking out include Black, Bright White, Right Red and Natural Steel. The frames you see in the photos of this tutorial are all Natural Steel.

Make sure you order the standard white mounting board and that you remove the matting and the acrylic that are automatically added to the order. You don't need them. Total cost should be around $10-15 plus shipping, which will take up to about a week depending on where you're located.

Step 4: Magnetic Mount vs Stand vs Hanging

Picture of Magnetic Mount vs Stand vs Hanging
Now you need to decide where you want to put your frame so you can get the correct mounting hardware. If you're going to hang it, your frame will ship with everything you need.

If you want to mount it on the refrigerator, we recommend getting four extremely strong magnets. We used MMR-A-X8 Neodymium mounting magnets from K&J Magnetics for about $5 each. In retrospect, this may have been overkill, but the good news is there is no chance that our Media Panel is going to accidentally come off the refrigerator. To attach the magnets to the frame, you will need a 2" x 1/2" mending brace (sold at Ace Hardware or similar) and four 1/6" wide x 1/2" long machine nuts and bolts.

If you want to stand your Media Panel on a desk or a table, the $5 Easel Mate by Albin Products is a great solution. Do not order directly from Albin like we did. Albin is the designer of the Easel Mate and wholesales it. Unfortunately, the Easel Mate they sell on their web site is the wood screw version, and will not work for our metal frame. Many picture frame stores seem to carry the Easel Mate, and we ended up buying it at University Art in Palo Alto. A quick Google search will turn up many other suppliers you can order from online.

Step 5: Order a Raspberry Pi and Accessories

With the longer lead time items out of the way, it's time to buy the brains of your Media Panel, the Raspberry Pi. We bought our Raspberry Pi Model B for $35 from Element14. To round it out, you'll also need a few more things:

-USB WiFi (unless you plan to use ethernet). We use this product from Edimax which is about $9.
-A case for your Pi: We like this one you can buy on Amazon in a variety of colors for about $12.
-An SD Card for your operating system. We like this 8 GB one from Amazon for about $7.
-A cable to power your Raspberry Pi, either a Micro B AC adapter ($5) or a USB A to USB Micro B ($5) if you plan to backpower your Raspberry Pi from a powered USB hub (more on this later). Backpowering is recommended, as connecting all your USB peripherals to the USB hub offloads the power draw from the Raspberry Pi and results in more stable Raspberry Pi operation.
-(Recommended) Powered USB hub. We use this model from Belkin which was about $17.
-(Recommended) USB Mouse and Keyboard. If anything goes wrong during your setup, it can be convenient to just plug a mouse and keyboard in to address the problem vs using SSH or your XBMC remote control. You probably already have them, and if you don't you can get them pretty cheap from Amazon. Make sure you pick one from the RPi Verified Peripherals list.

If you decide to deviate at all from this specific set of items, be sure you check the Rasperry Pi Verified Peripherals list first to see if it works with Raspberry Pi. Do not assume something will just work.

Step 6: Prepare your Raspberry Pi

Picture of Prepare your Raspberry Pi
The next step is to load the operating system on your Raspberry Pi. There are lots of operating systems you could use, but our experience has been best with Raspbmc. It's a minimal Linux distribution based on Debian specifically tuned for running XBMC on Raspberry Pi. The system auto-updates, and it boots directly into XBMC.

Follow these directions to download and install Raspbmc. Be sure to set up your install so that your Raspberry Pi has network access. This means you need to configure WiFi.

Power up your USB hub and connect it to one of the Raspberry Pi USB A jacks. Then from one of the 4 ports on the hub, connect your USB A to USB Micro B Cable from the hub to the USB Micro B jack on the Raspberry Pi. This is called backpowering, and will be how your Raspberry Pi receives power. Finally, connect your USB WiFi module and testing keyboard/mouse (if you like--not essential).

To verify your install worked, connect your Raspberry Pi to a TV via HDMI and make sure it boots into XBMC. Also, make sure that you can see the weather and RSS feeds so you know Internet access is working on the device. Navigate into the System: Info section and write down your device's IP address in case you need it in the future for SSH access or to set up your remote control.

Also, I recommend enabling "Allow control of XBMC via HTTP" in System: Settings: Web Server (so you can use the remote control app for your smartphone) and "Allow XBMC to receive AirPlay content" in System: Settings: Airplay.

Finally, download and install the free XBMC app for your iPhone or Android phone so you have a remote control for your system.

Step 7: Assemble the LCD Controller Board

Picture of Assemble the LCD Controller Board
photo 4.JPG
photo 5.JPG
photo 3.JPG
Here is a video that shows you how to put together the LCD Controller Board and accessories you have received. Assemble as described in the video, but do not attach the LVDS cable to the LCD panel yet. We'll do this in the next step because the cable must pass through the hole we need to cut in the mounting board.

Step 8: Assemble the Frame

This step is for putting together all the pieces. Assemble your frame and insert the LCD panel and LCD Controller Board as per the video. Provided everything goes right, it shouldn't take more than about 10 minutes.

Once your frame is assembled, connect power to your LCD controller board, plug in the HDMI cable to your Raspberry Pi and then power up your Raspberry Pi to get the first glimpse of your Media Panel in action.

Step 9: Adding Your Media and Operating Your Media Panel

Two (among many) ways to add personal media to your Media Panel are as follows:

The first method is easy and requires no technical abilities, but requires buying a USB flash drive. Buy a USB Flash Drive (like this 64 GB SanDisk for $38) and create two folders on it using the computer that stores your media. One for videos, and one for photos. Copy your personal photos and videos into the correct folder. Unplug your flash drive and plug it into the USB hub connected to your Raspberry Pi. Now you just need to tell XBMC where to find the media (see below).

The second method is to copy the files directly to the SD card on the Raspberry Pi, which requires using SCP / SSH. SSH to your Raspberry Pi and create folders for your media in /home/pi. Open a terminal window on another computer on your network and type 'ssh pi@ipaddress' and then enter raspberry for the default password. ipaddress should be replaced with the IP address of your device, like as an example. You will now be in the /home/pi directory. Type two commands: "mkdir pics" and "mkdir videos" followed by "exit" to log out. Now navigate to the directory containing your photos and type this command "scp * pi@ipaddress:/home/pi/pics". Enter your password again, and make sure you don't have anything else in the folder other than photos because everything in the folder is now being copied to your Raspberry Pi. Do the same for videos using "scp * pi@ipaddress:/home/pi/videos".

Now that your media is accessible locally to your Media Panel, you need to make XBMC aware of it. Under Pictures, go to "Add Source" and select your pics folder. Do the same under Videos for your videos folder.

To set up XBMC to do a photo slide show, follow these directions to add the Slideshow Screensaver and configure it to use your pics folder.

To run a video loop, use the following steps (kludgy, I know...):
-In System, Settings, Video, Playback, select "Play the next video automatically" play next item in a folder
-Navigate to your video folder under Videos, Files
-Using your remote control, change the mode to gesture.
-Select and hold down on the video folder. From the pop-up menu, click Queue Item.
-Select and hold down on the video folder again. From the pop-up menu, click Now Playing.
-You should be presented with a list of all the videos in your folder.
-Gesture left to get the right menu and select Shuffle (unless you want to play videos in order).
-Click once on a video to start your infinite video loop playing.

In addition, of course, you can configure your Media Panel to have all the standard video and audio services of XBMC, including Amazon Instant Video, Hulu, Youtube, and countless others.


1-40 of 77Next »
andyjagoe (author) 24 days ago

Several people have asked me about an integrated product/service like
this that is off-the-shelf. I've been working on one for almost two years, and just launched it on Kickstarter. It's called Fireside, and we call it a SmartFrame. It auto-organizes, scores and ranks your photos and videos so it can be smart about constantly updating playlists so you always see fresh relevant content. You can read more about it here:

ibenkos5 days ago

I am new to raspberry pi, I got my model B yesterday and I want to make this project but I don't know what to download and where. can somebody please help me and reply whit links on what I need to download for this project? thanks

Thank you for a great Instructable! I have one problem--wireless access with Raspbmc. I think I've tried every solution on the web with no success. Can you help?

Are you using OpenElec all i did was go into settings you should be able to find all the WiFi settings there assuming you have a wifi dongle plugged in.

Also if i'm getting this wrong try plugging the WiFi dongle into the Rpi directly, instead of a USB hub.

Tried the dongle both ways - no joy. I'm probably going to use a wired network connection. So I went on to Step 7 of the Instructable and when I powered everything up, here's the raster below. Any ideas??

andyjagoe (author)  john.scott.7140426 days ago

John, this looks like an issue with your LCD controller board and/or LCD screen. Which LCD screen do you have and which model LCD controller? Have you checked with NJYTOUCH if your controller supports your screen and is programmed correctly?

andyjagoe (author)  john.scott.714041 month ago

Hi John. Thanks for the comment and glad you enjoyed it! Can you be more specific with the problem you're having with wireless in Raspbmc? To get consistent and stable wireless support with the Edimax under Raspbian, it's important to do the following system tweaks which are not configured by default (see below). Not sure if these are in Raspbmc or not...but it's worth taking a look.

#Add 'wireless-power off' to /etc/network/interfaces so wifi operates properly
# Disable power saving in realtek 8192cu
# add 'options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1' to /etc/modprobe.d/8192cu.conf

Thanks, Andy! I'm a real noobie here but I'll give this a try.

Also, my issue is that Raspbmc will scan for wireless, see my network but will not connect for some reason.

andyjagoe (author)  john.scott.714041 month ago suggestions will probably not help in that case. This change is just to prevent situations where your wireless will lock up or stop working.

You may want to try loading Raspbian on another SD card and see if you can boot it up and find your wireless network. This would be a good datapoint for you to know exactly where the problem is. I've found Raspbmc to sometimes be a bit more bleeding edge than could also try the OpenElec distribution which is an XBMC oriented distribution for RPi but also maybe a bit more stable. Simply boot up and then from the command line type 'startx' to go into the gui. You can then use the WiFi setup tool on the desktop to look for and add networks.

skinner.tim1 month ago

This could be my solution I've been looking for, I work as a video artist, mainly showing projected work in non-commercial galleries. Someone is going to purchase my work but I need to appropriate it for a household setting, so it can hang on the wall just like a painting. Anyway I've been trying to work with digital photo frames, firstly getting the right MP4 with the right codecs is a nightmare, and the quality is poor (plastic imports from China). Would it be possible not to stream a video through the internet but just play via a usb?

Hey Tim, you might be interested in Canviz:

andyjagoe (author)  skinner.tim1 month ago
Hi Tim. Thanks for your comment. If you use XBMC as the Instructable suggests, the default is to play locally and a USB stick was what I used when I built it. You still might have to deal with codecs though, since XBMC handles some better than others.

Something else that could interest you is my new company Fireside, which has its roots in this very instructable (and is launching soon). Fireside is like Sonos for video/pictures, providing a visual ambience ecosystem for the home. It also has apps for adding content and does all the transcoding / conversions for you.

Thanks Andy

Codecs are a real pain, most common for me are MP4 - ACC, H.264 or .Mov - Linear PCM, H.264, my vids are created on FCE and then Quicktime conversion. I've trialled XBMC on my Mac it is running my videos fine, this might change when XBMC is on the Raspberry Pi.

Signed up to Fireside, as there are more and more digital video artists anything to help us sell our work to the general public is always welcome, ideally we want a device that can play one single MP4orMov that is secured within (one piece, one frame) and can hang on the wall, no different to a painting, ideally battery powered.

Anyway thanks again.

Doing it!
My UK pricing so far.

R-Pi (B+) - £27.44
Edimax Wifi - £8.28
USB Hub (recently released R-Pi one) - £10.11
Black Pi case - £2.46
Mains for Pi - £2.88
2m cable HDMI - DVI - £1.84
LCD Controller Board (HDMI+DVI+VGA+AUDIO LCD Controller Board for LP154WX4 1280x800 DIY M.NT68676.2A) - £23.00
LG 17" LP154WX4 Screen (2nd hand) - £16.14

Total £92.15 ($149.18)

The items left to source are slightly more expensive here in the UK, a LCD power adapter is about £11 ($18). Framing will be about £20 ($32), though cross that bridge later on, and could always fashion one myself.

The audio HDMI to HDMI converter - found this one over here similar price ($31.50),

Leaving the framing out my main spend should be around the £120 ($195), which is pretty good.

andyjagoe (author)  skinner.tim1 month ago

Great! Note that you'll need a microSD card (B+ is microSD vs B is regular SD card) and USB flash stick as well. Using the B+, I've been able to run all the USB components directly connected to the Raspberry Pi vs using the USB hub. The B+ fixed a lot of the problems that made the USB hub the preferred solution for the B. So you probably can drop the USB hub (saves space too).

Most of the parts have arrived (annoyingly the HDMI cable not until Mon).

Yep found out I needed a microSD, I actually have an 8GB micro card which I was using in my camera, is it possible to reformat an old one or do you have to use a new one?

Was wondering with the RaspberryPi instead of having the whole media centre, I just need to play one video, is there a simple player akin to Quicktime you could recommend.

andyjagoe (author)  skinner.tim1 month ago

Yes, you can reformat an old one. Just be sure it's not to old because it needs to be fast enough to run the OS. Take a look here for more details on SD cards:

There's a command line video player called omxplayer you can easily use, and you could loop it using a shell script. This is the de facto video player on the Raspberry Pi, and is actually what XBMC uses under the hood anyway. There might be some other ways to get hardware accelerated video going (I've been able to successfully compile gstreamer 1.0, which most other solutions are dependent on), but this is a much more difficult and less mature route to go than using omxplayer.

Got the raspberry pi running but being a noob struggling to get omxplayer running on Raspbian, so going to put that aside for one moment, and place on my card the Raspbmc (XBMC) on the card instead, my only at the moment is just to get a video playing.

There are a couple of foreseeable problems - the login point, so when the customer has it on her wall she will have to log in, plugging in a keyboard etc, this could get annoying, also at the other end switching the thing off, can't just flip the switch. This is where the digital photo frames have the advantage. The ability to switch on and off at will, touch screen is a possible future way to go, it's just that login point, wonder if there is a way round that.

Was wondering have you used aluminium frame moulding for health and
safety reasons or would you be able to use a wooden surround? how hot does it get?

andyjagoe (author)  skinner.tim1 month ago

I used aluminum because it allowed the thinnest possible frame. I think you'd be fine if you choose wood. I haven't measured the heat, but for this application it shouldn't get so hot that it's a concern.

This is a very cool idea. I supposed I could use a screen from a old laptop, does not hurt to give it a try. I imagine that it is possible to integrate wireless speaker. There is so much to play with this. Thumbs up, very good!!

andyjagoe (author)  luis.berroa.1651 month ago
Hi Luis. Thanks for the comment and glad you're enjoying!

Yes, you can use an old laptop screen--but you need to make sure you can get an LCD controller board that can drive it. Also, sound is definitely possible. It used to be that you needed to take it off the HDMI channel for best results (some LCD controller have this built in) since RPi didn't handle separate audio solutions well...but I understand this has been getting better. You might be able to take it off the 3.5mm jack. You just have to be careful with sync issues.

bigbutbald1 month ago

Hey! Thanks for the intractable. It's great. My question is if there's anyway to adjust or tweak this, so that it would draw from a dynamic set of pictures, like a twitter hashtag, or Facebook album, or something like that?

andyjagoe (author)  bigbutbald1 month ago
Thanks for your note and question. I know there are some apps you can add to XBMC to do some of these things, but I've never found any that I especially liked. It's one of the reasons I started working on Fireside, which is launching on Oct 28:
zsole21 month ago

Hi Andy,

Thank you for this great instructable! It was easy to follow, without much experience on DIY projects.

There are two points that somewhat bothered me, but from the comments, others had it too: having two power bricks, and the on-off switch (or lack thereof). With some research and experimenting, I was able to overcome those:

For the power brick, I managed to setup a step-down converter from the 12V LCD line (e.g.

For the switch, I found the solution at A simple pushbutton can be wired in instead of the jumper, and the second link under 'EDIT' is particularly useful. To make it work under raspbmc, GPIO access needs to be enabled, an easy to follow guide can be found at (and if someone needs cooling, this is a good starting point, too).

I hope this helps others who wants to follow this excellent guide.

andyjagoe (author)  zsole21 month ago
Hi Zsole2,

What a great addition to the instructable! Thanks for sharing.



These instructions are not complete? WTFudge

andyjagoe (author)  IKnowPatrick1 month ago

Hi IKnowPatrick, A lot of people have used this Instructable over a long period of time and I've never heard that comment. But, that's what the comment section is for. What do you not understand?

JasonR22 months ago

I'm new to Raspberry Pi...I like the concept and am wondering something. Once the frame is built and operating...displaying pictures in a slideshow format. I know I can add pictures via USB or remotely. So the question...if I remotely add the pictures to the source folder while the slideshow is running, will the pictures automatically display in the slideshow or will I need to restart the slideshow?

I would think that they would just appear as the source folder now has more content it would go from picture to picture, first file to last file.

andyjagoe (author)  JasonR22 months ago
Hi JasonR2,

If you're using XBMC for your slideshow (as this instructable details), I'm not sure the exact behavior and it could possibly depend on how you've started your playlist playing (there are multiple ways). I would install XBMC on your Mac or Windows machine first and test the behavior--it should be the same.

BTW, my new project Fireside is a new hardware/software solution that intelligently automates all of this. We're launching soon, so add your email on the site above if you'd like to learn more.


hlords2 months ago

I love this. Will make one for my fridge. Can's wait to buy the laptop screen. I think I will buy from They seem to be the cheapest in the UK.

andyjagoe (author)  hlords2 months ago
Thanks for the comment hlords. Glad you like it! If you liked this, keep tabs on'll be announcing something very interesting there soon!
soonerlater3 months ago


Top notch, blue chip, Instructable. Muy excelante. Thanks.


princejosuah5 months ago

I may not be totally in the topic, but it would be nice to do it with the TV, to have the pictures display randomly when in standby. Just an idea though, I'm almost a noob in this, and don't know if it is doable...


Any installation of XBMC (on any OS: Windows, Linux, Android....) running on any hardware (Raspberry Pi, Intel NUC, old recycled computer....) can run the "Slideshow Screensaver." Whatever that XBMC uses for display (a homemade LCD panel like in this Instructable, on a TV....) is where the slideshow will be presented. There are many options (timing, randomness, transitions, sources....). You just have to jump in the water and paddle around. It might not be super intuitive and obvious at first, but it'll be easy enough and the XBMC community is very supportive. There will always be someone ready to lend a hand.

jagguli4 months ago
brettsalyer6 months ago

How would I do that? Over USB that is? Would a replacement tablet screen be better? Or Laptop touch screens?

andyjagoe (author)  brettsalyer6 months ago
The touch screen (whether tablet or laptop) will have a separate data interface for touch input. You'll need to make sure the Raspberry PI can recognize it and use it as a touch interface. The level of difficulty of what you're describing is certanly higher than just getting an lcd panel to work. Some providers will sell all in one kits. Google NJYTouch (same provider I recommend in the instructable) and see if they offer anything.

I have seen kits for the rpi for touchscreen, though only 7 inch. I want a 12 inch. I found a laptop screen (touch) that I could use. I found a controller board from njytouch and it was listed as supporting hdmi, dvi, vga, audio LCD/LED lvds. I'm hoping those 2 things are all I need to get it going. is there any way to make sure my pi will support it? or is it just trial and error?

andyjagoe (author)  brettsalyer6 months ago

You first need to check with NJYTouch (or on the controller board listing in eBay) that your exact LCD model number is supported by the board. For example, this number might be something like LP156WF4-SLBA. Then when you buy it from NJYTouch, they need to program your LCD controller so it will support your screen (they do this for free when you buy your controller). However, none of this addressed the touchscreen issue. The touch screen needs drivers and will need to be configured for your device. Using it in X-Windows will be different than if you want to use it with a standalone XBMC, etc. You might be able to get a kit from NJYTouch that also supports touch. I'd talk to them and explore that if you're serious about touch.

1-40 of 77Next »