Unlike most commercial frames, this digital picture frame connects to Flickr, allowing you to add and remove photos without a physical storage device, such as USB stick or SD card. A Raspberry Pi hidden inside the TV connects to the internet and automatically updates the pictures when the Flickr album is modified.


Step 1: Set Up the Raspberry Pi

Since there are already plenty of good guides for setting up a Raspberry Pi, I won't go into the details here. I followed this instructable, and made sure that I had auto-login working (wifi doesn't work well with my network, so I ended up plugging in to ethernet since I had the power cables showing anyway). I would also recommend setting up SSH so you can access the Pi without taking apart your picture frame.

<p>This is great, thanks for sharing! You may want to take a look at DAKboard (http://dakboard.com) for the software side of things. Works with popular photo sharing services (Flickr, Google Photos, Instagram etc.) and adds calendar, news and weather functionality!</p>
<p>It looks like your code is a little outdated/broken for download_flickr_set.py and script_slideshow.sh. Here's the fixed code that I whipped up: <a href="https://gist.github.com/Jarvl/3799acac27283f80641d57804faac9ae" rel="nofollow">https://gist.github.com/Jarvl/3799acac27283f80641d...</a></p><p>It's important to note that in script_slideshow.sh, &quot;DISPLAY=:0.0&quot; doesn't work within a cron job because cron runs at a deeper layer than the X display. I replaced it with &quot;export DISPLAY=:0.0&quot;, works just fine now.</p><p>Also to stop the display from going blank, I had to add this line into &quot;/etc/lightdm/lightdm.conf&quot; under [SeatDefaults]: xserver-command=X -s 0 -dpms</p><p>Great project though, I'm working on getting the frame together soon!</p>
<p>thank you for your time and community support :) </p><p>i inserted &quot;export DISPLAY=:0.0&quot; to replace &quot;DISPLAY=:0.0&quot; </p><p>per your recommendation i received the following errors.</p><blockquote> pi@raspberrypi:~/bin $ /home/pi/bin/script_slideshow: line 3: export: `-Z': not a valid identifier</blockquote><blockquote>/home/pi/bin/script_slideshow: line 3: export: `-F': not a valid identifier</blockquote><blockquote>/home/pi/bin/script_slideshow: line 3: export: `-z': not a valid identifier</blockquote><blockquote>/home/pi/bin/script_slideshow: line 3: export: `-Y': not a valid identifier</blockquote><blockquote>/home/pi/bin/script_slideshow: line 3: export: `-D': not a valid identifier</blockquote><blockquote>/home/pi/bin/script_slideshow: line 3: export: `3': not a valid identifier</blockquote><blockquote>/home/pi/bin/script_slideshow: line 3: export: `/home/pi/photoframe/flickr': not a valid identifier</blockquote><p>here are the contents of my script_slideshow:</p><blockquote>#!/bin/bash</blockquote><blockquote>export DISPLAY=:0.0 XAUTHORITY=/home/pi/.Xauthority feh -Z -F -z -Y -D 3 /home/pi/photoframe/flickr &amp;<br></blockquote>
<p>You need to put all of those commands on a different line. Refer to my gist <a href="https://gist.github.com/Jarvl/3799acac27283f80641d57804faac9ae#file-script_slideshow-sh" rel="nofollow">https://gist.github.com/Jarvl/3799acac27283f80641d...</a></p>
<p>thanks for the update code :)</p><p>Runing in a Pi Zero like a charm</p>
<p>Any idea/code about do this but usering a Facebook folder instead of Flickr?</p>
<p>Meant to upload this months back. I built this for my mom to gift to her on Mothers' Day and she loves it! I modified the code a bit so the python script pulls from two Flickr albums and combines the pictures in to one folder.<br><br>Already had a Raspberry pi laying around luckily, just had to buy the other parts:<br><a href="https://www.amazon.com/gp/product/B003MTTJOY/" rel="nofollow">https://www.amazon.com/gp/product/B003MTTJOY/</a><br><a href="https://www.amazon.com/gp/product/B00VE72DLC/" rel="nofollow">https://www.amazon.com/gp/product/B00VE72DLC/</a><br><a href="https://www.amazon.com/gp/product/B007PESCCC/" rel="nofollow">https://www.amazon.com/gp/product/B007PESCCC/</a><br><a href="https://www.amazon.com/gp/product/B00GF9T3I0/" rel="nofollow">https://www.amazon.com/gp/product/B00GF9T3I0/</a></p><p>I bought a matted frame from Joann Fabrics (didn't have time to build one myself) and cut out the matte to fit the lcd screen. Just glued pieces of balsa wood on the sides and bottom so it would stay in place.</p><p>The screen came with a remote which was a nice touch. I just had to mount the IR receiver so it would stick out the top a little.</p><p>It all came together very nicely, thanks for the great instructable!</p>
<p>Very nice guide, but would you happen to know how I can make this without having the photos public? I'm making a frame for my grandmother, and the plan is to make it possible for my uncles and aunts to add photos to it remotely (and easily). I first thought of Dropbox or GDrive, but none of those have sync clients supported in Raspbian.. And I obviously don't want family photos in a public Flickr album.</p>
<p>awesome tutorial. Has anyone written scripts to do a live slideshow from an instagram user or hashtag?</p>
<p>Found it! looks like the photo.__dict__['attrib'] item has been replaced with photo.attrib </p><p>So far the code is working. </p>
<p>I made a typo, I am running FlickrAPI v2.0 not v1.4.</p>
<p>I have tried you code but keep getting an error on one line:</p><p>url, filename = make_url(photo.__dict__['attrib'])</p><p>I get the following errror:</p><p>AttributeError: __dict__</p><p>I cannot figure this out except that my flickr API may be different than yours. I am running Flickrapi v1.4</p><p>I believe my version is the issue because the following line was wrong in your code for v1.4:</p><p>flickr = flickrapi.FlickrAPI (FLICKR_KEY)</p><p>I had to change it to:</p><p>flickr = flickrapi FlickrAPI (FLICKR_KEY,FLICKR_SECRET)</p><p>This worked but the __dict__ does not. I wish I knew more about Python as I am at a dead end...</p>
<p>This is great. I actually started working on this too, but ran into an issue. I modified the steps a little bit and mounted a share on my Pi so it will display my own pictures from a network share. However, it seems that I get an error and based on my research it sounds like feh wasn't made to handle pictures bigger than 3MB. Have you ran into this issue?</p>
<p>I did not, but my images weren't particularly large. You should be able to reduce the picture size automatically in your code before displaying it with feh, although off the top of my head I can't tell you how. </p>
<p>Is there a way to adjust this to pull from a certain flickr hashtag instead of from a flickr user?</p>
<p>Yes, there is. Take a look at the tutorial here: <a href="http://www.ofbrooklyn.com/2014/01/2/building-photo-frame-raspberry-pi-motion-detector/" rel="nofollow">http://www.ofbrooklyn.com/2014/01/2/building-photo...</a> There are instructions for downloading images by tag, although they may be outdated. If you look at the flickr api, there are a few calls that also seem promising - flickr.photos.search, flickr.tags.GetClusterPhotos, etc. <br></p>

About This Instructable




Bio: After a fun time making projects for the Instructables design team, I'm now helping to start the robot uprising.
More by Beaconsfield:Raspberry Chocolate "Blood" Sauce Quick-and-dirty Phone Holder Simple Chair Pocket 
Add instructable to: