Digital Picture Frames

Like most people I take a lot of digital photos, but never make prints of them. Something that bothered me was that once taken these photos would languish, unseen, on a hard disk somewhere for ages.

Of course there are commercial digital photo frames available but these never quite work for me:

  • The screen size is normally way too small
  • The manufacturers put huge bezels around the screens (to make them look bigger I guess)
  • I don’t think they look that attractive
  • Your photos are always constrained to either a portrait or landscape orientation – and photos taken in the opposite orientation will be squashed onto the screen

So it occurred to me that using old 18″ LCD monitor screens and adding a more attractive frame I could solve some of these problems. The answer to the orientation problem was to use four screens and have two of each orientation.


The idea is that to the casual glance these look like normal framed pictures (or maybe back-lit photos in a darker light). I set the photos to change every 5 minutes so there is not a constant, distracting, scrolling of the photos. So quite often visitors will not especially notice anything strange about pictures, until they suddenly realise the pictures have changed since they last looked.


Originally I was driving the screens from a server and sending the video over CAT5 adapters to the screens. Recently I needed to replace the server and so I decided to switch over to using Raspberry Pi cards to drive each screen directly instead. I figured it would be useful to document how I did all this in case it is useful for anyone else.

How are the frames made?

The frames are just the guts of old 18″ LCD monitors with all the casing taken off. I asked my carpenter friend Michael Waterhouse to make the Cherry wood frames which we designed together. Because of the depth of the screens you have to make the frames – I could not find a normal framer who could handle the LCD screen depth.


The frames are made from lengths of 2cm by 4cm Cherry wood. The cross-section shows how the frame is made up of two bits of the wood suck together so that the sides of the frame are deep enough to cover the LCD screen.

Frame cross-section

The screens have a VESA wall mount on the back that fixes them to the wall and the wooden frame is attached to the screen. I’ve also mounted the screen controls on the underside of the wooden frame too.


Mounting on the wall

As we were doing renovation work on our house I was able to hide power and CAT5 cables behind the wall to connect to each screen. Here is a photo of the wall with the screens ready to go up. The VESA wall mounts are what the screens fix to.


If you are not rebuilding a wall then getting power to the screens in some kind of reasonably attractive way is probably the hardest problem to solve. My friend Nick Twyman has suggested that if you have a dado rail you could perhaps suspend the pictures using wires that also carry power to the frames. I’ve seen some transparent cables used to suspend and power pendant lights that might work for this – though I think I’d personally prefer to have the supply voltage be 12V rather than mains if I were doing it this way.

Driving the Screens

Each screen is driven by a Raspberry Pi computer. These have a CAT5 ethernet connection and an HDMI output to drive the screen.

For technical details of how I set this up have a look at this post on

As I was putting the power cables in the wall it made sense to put in some CAT5 cables too – but since adding WiFi to a Raspberry Pi is simply a case of plugging in a cheap USB WiFi dongle having the CAT5 cabling is not critical.

Powering the Raspberry Pi’s at first seemed trivial – you just power them from the USB hub on the LCD screen right? What I found was that the USB hubs (on the screens I was using at least) did not power up if they had no USB input connected. So in the end I took the 12V power from the external power supply to the screens, took apart some cheap car 12V to USB adaptors and used these to provide the power to the micro USB connector the Raspberry Pi needs.


Motion Detection

For energy efficiency reasons (and also because I did not want to burn the screen back-lights out) I wanted the screens to go into power save when there was no one around to see the photos.


For this I have used another Raspberry Pi – this one connected to a standard PIR motion detector. If no motion is detected for 10 minutes it switches the four screens to power save mode. As soon as motion is detected it switches the screens back on again.

You can see the PIR detector in the top right hand of the photos at the top of this post – on top of a tall cupboard that is next to the screens. There is no CAT5 cable up there so I have plugged in a USB WiFi dongle and connected it to the house WiFi network.

For technical details of how I set this up have a look at this post on