Photo Frame
I enjoy having a photo frame that can randomly cycle through my entire photo collection. Unfortunately, this collection consists of about 40,000 photos, which is more than most (or any?) dedicated photo frame can handle.
I created my own photo frame, which can handle all the photos, with a Raspberry Pi 3B+ and an inexpensive monitor. Here are very brief instructions, in case you want to set up a photo frame too. These instructions assume basic familiarity with Raspberry Pi machines, and Linux.
I used the following equipment:
Use Raspberry Pi Imager to write an operating system to a microsd card. I used "Raspberry Pi OS (64-bit)".
Attach a keyboard, mouse, and power cable to the computer. Plug in the microsd card. Plug in a USB flash drive with all of your photos on it. I recommend that you scale the photos down to the monitor's resolution before storing them on the flash drive. That way the low-power computer won't have to scale them as they're rendered. I use Vault 3 to organize my photos, and it can scale photos and export them to a flash drive. Note, the following assumes that the flash drive with the photos has a volume label of "PHOTO FRAME".
After the machine boots, open a command shell (terminal) and enter this command:
sudo apt-get update && sudo apt-get upgrade
Then run raspi-config:
sudo raspi-config
Use raspi-config to:
Install "feh", which is the command that will render your photos. From a command shell:
sudo apt install feh
Create a script named photo_frame.sh. Note: I stored this file in a folder named "/home/erict/Apps". Also: You may need to change the folder name specified in the cd command. In my case, the volume label of my flash drive was "PHOTO FRAME", and it was accessible as "/media/erict/PHOTO\ FRAME".
#!/bin/sh export DISPLAY=:0.0 sleep 60 cd /media/erict/PHOTO\ FRAME/ feh --recursive --auto-zoom --randomize --fullscreen --hide-pointer --slideshow-delay 30
Make the script executable. If you're using a command shell:
chmod +x photo_frame.sh
Now test the photo_frame.sh script from a command shell:
./photo_frame.sh
You can stop it at any time by pressing the Esc key.
Now the only remaining configuration task is to ensure that the photo_frame.sh script is run whenever the machine boots. For this, use the crontab command:
crontab -e
Add the following line to the bottom, which will launch the photo_frame.sh script after each boot. You will have to adjust the path to photo_frame.sh.
@reboot /home/erict/Apps/photo_frame.sh
Note: you don't need to use "sudo" with the above command. If you run "crontab -e" as root, and as a user, there will be two cron schedules, which can be confusing.
Reboot and verify that the photos are automatically displayed. Press Esc when done.
Attach command strips to the back of the monitor and the Raspberry Pi. Pro Tip: use isopropyl alcohol to clean the monitor and Raspberry Pi before attaching the command strips. When you press the computer to the back of the monitor, hold the monitor by the frame, not the display. You don't want to damage the display.
Raspberry Pi Mounted on Monitor Back
Finally, boot your Raspberry Pi and enjoy your photos!
I run the photo frame 24/7, so it's important to know what the expense will be for electricity. The Raspberry Pi draws about 1 watt, and the monitor draws about 11 watts.
Raspberry Pi 3B+ | Monitor |
---|---|
![]() | ![]() |
I pay about US $ 0.17 per kilowatt hour on peak, and about US $ 0.04 off peak. On peaks hours are 8 hours per day, 6 days a week. Over one week, the average cost of a kilowatt hour is about US $ 0.08:
I pay about US $ 0.08 per kilowatt hour for appliances that are always on
The Raspberry Pi and the monitor draw about 12 watts. 12 watt hours, or 0.012 kilowatt hours every hour. In a year, that would amount to 0.012 kilowatts / hour X 24 hours / day X 365 days / year = about 105 kilowatt hours per year. At a price of US $ 0.08 per kilowatt hour, that's about US $ 8.40. Well worth it!
Name | Comment | URL | Date/Time |
Barbara Terrell | Love it | July 20, 2025 |
Title | Date |
.NET Public-Key (Asymmetric) Cryptography Demo | July 20, 2025 |
Raspberry Pi 3B+ Photo Frame | June 17, 2025 |
EBTCalc (Android) Version 1.53 is now available | May 19, 2024 |
Vault 3 Security Enhancements | October 24, 2023 |
Vault 3 is now available for Apple OSX M2 Mac Computers! | September 18, 2023 |
Vault (for Desktop) Version 0.77 Released | March 26, 2023 |
EBTCalc (Android) Version 1.44 is now available | October 12, 2021 |