January 28, 2018

My wife and I have taken tens of thousands of digital photos, but we never get to see them! So I built a kitchen slideshow. It’s a computer monitor mounted to the wall:

There’s an HDMI cable that runs down through the wall to a Raspberry Pi in the basement. The Pi is network-connected and has an external USB drive to store the images. A wireless keyboard is used to control the slideshow.

The slideshow uses a Ken Burns effect to make the photos seem more interesting. It also shows what’s currently playing on our Sonos music system, allows you to rotate and rate the photos, and you can email them to friends as they come up.

We store our photos in Dropbox. I have a cronjob on my laptop that uses rsync to copy the directory tree to the Raspberry Pi every hour. The slideshow program itself doesn’t pick up on changes right away, though, you have to restart it. (Photos have to be pre-processed to make their display fast, and this only happens at startup.)

The label for the photo is taken from the pathname. A pathname like “Vacations/Mexico 2005/Beach.jpg” will be displayed as “Vacations, Mexico 2005, Beach”, and parts like “DSC_4911.JPG” are removed altogether. The displayed date is the date of the filename, which is typically correct for phone photos but wrong for scans. I fix those by changing the file’s date.

When friends come over they end up just riveted to the display. We all have to tear ourselves away from it!

The source code is available on GitHub.

~ See all projects ~