I have a lot of photos in my hard drive which I don't see that much and that I would like to see them more because they bring me great memories.

That is what I wanted create a digital photo frame that shows the photos, so that I could see them everyday.

Project planning

The main idea is to use a small screen to show pictures. This screen will be connected with a Raspberry Pi, which will contain the pictures. The Raspberry Pi will run a Samba server in order to send easily the photo from any device connected to the same network. In addition, I don't want to have the screen turned on all the time, so I added a PIR motion sensor to turn on the display only when someone is passing in front of the frame.

Part sourcing

The parts that I used in this project are the following:

a LCD screen with an HDMI output. I found a screen for 19€ in ebay, with a 1024x600 resolution ;

a Raspberry Pi ;

a PIR motion sensor ;

an HDMI cable ;

a standard picture frame to put the screen in.

Used parts

Building frame

The screen comes with a driver that contains different peripherals for settings. As you can see in the image, there is:

a power input ;

a VGA input connection ;

a HDMI connection ;

a remote control

some buttons to change brightness, power on-off and change input source.

LCD screen components

I have to attach the driver to the screen, to hide it behind the frame. Initially I used a carton which was efficient, but I think it was very ugly.

1 / 2 • Front of the carton cover

Then I decide to use a traditional picture frame and modify the back in order to fit the size of of the screen.

Raspbian running in the screen

Motion sensor

The Raspberry Pi is connected to the screen using an HDMI cable. There are several ways to connect the motion sensor: one can connect directly to the GPIO pins as shown here or use a seeed hat and a Grove PIR motion sensor. Personally I prefer the second option.

I used Python to control the motion sensor and turn on the screen. The code can is shown at the end of the article.

Samba server

I chose to show only local images in the Raspberry Pi, so I used a Samba server in order to easily send the images to the Raspberry Pi. Samba is a very popular file server, the instructions to configure it can be found here.

Display images

There are plenty of software to show images in the Raspberry Pi, like MagicMirror. But I wanted to keep it simple and don't use too much resources, so I chose to use FIM image viewer, which allows me to show images without having to install a desktop version of Raspian or loading a X-server. It's very simple to use, I use the following command to show randomly the images from a folder and changing every 7 seconds:

fim /home/pi/Selection -a -H -q --slideshow 7 --random

FIM can also be used to show images in the command line. It show images like that:

FIM showing an image on the screen

Conclusion

I'm happy with the results. The 19€ screen has good quality and has excellent viewing angles, so one can see pictures from different parts. In the future I will like to improve the transitions of the images, or add some text to the pictures about metadata of the picture, like the date or the place where the photo was taken.