Introduction: Still Yet Another Digital Picture Frame (Linux)
Having seen other designs I wanted to try making one of my own. Although not exactly cheap at ~$135 it was a fun project and a I am very happy with the results. It's clean simple and only requires one small wire for power.
Project Costs:
Laptop with 15" screen $50
Frame $20
16GB Compact Flash card $35 - much bigger then necessary
Wireless card Free
Switches and wire $15
Mating and misc. $15
Total $135
DISCLAIMER: This project involves electricity, heat, and confined spaces. I take no responsibility for any death or damages to anyone or anything from attempts to make this project.
Step 1: The Laptop
Trying to find a good laptop for this project was a bit of a stretch. On one hand you want the slowest , least power hungry system while wanting the highest quality screen. After doing some looking online I settled on a Dell Inspiron 5000.
At $3,776 MSRP this laptop didn't come cheap. Much of that cost came from the impressive 15" screen. After scouring cragislist I found the perfect system for only $50. That's like a savings of $3,726 in only 8 years. The only issues were it has the 1440x1050 resolution monitor instead of the rarer 1600x1200 option and it would flicker lightly especially when looking at the color blue.
Pentium III 650MHz
440BX cheapest motherboard
128MB PC100 SDRAM
15" 1400x1050 LCD
ATI Rage Mobility 128 w/8MB SGRAM
20GB 4200rpm hard drive
8x/24x DVD/CDROM drive
Integrated floppy drive
A major bonus about his laptop was that is was the first Pentium III that used Intel SpeedStep. While this might not sound like that big of a deal especially since almost every laptop now has this technology. It allowed me to manually under clock the CPU from 650 MHz to 500 MHz and reducing the CPU power usage from 9 Watts to just over 5 Watts. Since I don't plan on having an active cooling system every bit of power savings equals less heat to have to worry about.
Step 2: Dissasembly
After taking the casing off of the screen I found that if I gently pressed on one spot on the back the flicker would go away. Although this might be annoying using it as a laptop, it was no problem for this project because I later glued a small piece of foam to the back in the right spot applying consistent pressure.
After that I proceeded to disassemble the laptop and remove all of the guts. I don't have any good pictures of this process because I was having so much fun.
I did a couple minor modifications to make the motherboard smaller. Including cutting off the extra couple inches of the PCB that used to have the modem attached to it. Slowly pealing off the aluminum sheet heat sink on the CPU. I also removed the metal cover over where the hard drive was located because it stuck down further then the end of the pcb.
Step 3: The Frame
The frame was probably one of the hardest choices in the whole project. I didn't want to go with a project box because of the size, however it is really difficult to find a frame that is deep enough. I found this one at Hobby Lobby for $20 and although it worked really well I wish it was made out of wood instead of plastic.
Step 4: Getting Started, the First Couple of Layers
After looking at many other peoples projects I decided to use foam to mat the monitor and use foil tape to hold it in place. This turned out to work really well and was stiff enough to hold the screen in place without any worries that it will move or fall out. (since there is no longer any glass)
Once the screen fitted correctly, I had to figure out a way to put the electronics on top safely without putting pressure on the back of the LCD. Also there is a skinny circuit board that provides high voltage power to the back light that sticks up about 3/8 of an inch that I needed to take into account. To do this I cut another layer of foam for it to rest on the edge of the frame without pushing on the screen. Then I used double sided tape to hold the circuit board in the correct location.
Finding the correct foam to was actually a bit of a problem. The only sizes I could find were either to thick or thin. I ended up buying a thicker piece and through a process of squashing it with a rolling pin and heating it in the oven. After a bit of work I was able to get exactly the right thickness.
Step 5: Motherboard Layer
The mount for the motherboard was made out of 1/4 inch plywood that I cut a section out of to allow the monitor ribbon connection through. Using wood screws I attached the motherboard directly to the wood without spacers. Although probably not ideal, it seems to work just fine.
Later I added two 1" x 1" square pieces of wood at the top and bottom to create the correct amount of pressure to hold all of the components firmly in place(when the back is closed). The only problem was it made it extremely difficult to get the board out of the frame again, so I added the drawer handle at the top.
I had thought about mounting the power supply inside of the screen as well. My advice is don't do it. After finally getting the cover off of the power brick because it was to thick with it. I noticed not only was it real scary, but it made a bit of heat and always smelled like burning. Instead I went with the saner method of leaving the power supply on the ground and running the DC connection to the screen.
Step 6: Adding Connections
At the bottom left you can see where I added the appropriate plug for power and the switch. these were a bit tricky because I wanted the power connector to be hidden as much as possible while still allowing for it to be plugged and removed easily. The switch also had to be space perfectly so when the board was in place it would stick out the correct amount out of the frame.
I had also intended on removing the daughter board with the lights and infrared ports that the power switch is located on becauase it was taller then everything else. This would have required me to trace and solder wires directly to the main board, however I had enough space (depth) to leave it as it was and just connect my wires directly to the old power switch.
Since the laptop cord wasn't long enough, I wanted a cable that I could swap out so I could match the walls and not quite so bulky. That is why I used a RCA audio cable to deliver the power to the unit. Although I don't know how much power the cable can handle, since the unit only pulls 26 Watts on startup and 20 Watts while running it shouldn't be an issue.
An interesting side note, I bought a fairly thin 24 foot RCA cable for this project and found that after switching to it my power usage went up over 4 watts. I knew it would add resistance but hadn't expected that much of a difference.
Step 7: Linux
NOTE: This is not intended to be a complete guide to setting up Linux. This is just my recommendations from the lessons I learned from the experience. For the installation I followed the instructions from here. Not only is this a great guide, but also contains many very useful scripts. For example starting the slide show, turning the display on/off, etc.
I chose Damn Small Linux for my OS of choice. The advantages are that is based on Debian/Knoppix and only takes up 50 MB of space. However the Linux component turned out to be much more difficult then I had expected. It wasn't that the install was particularly difficult, but that I kept hitting issues with it not liking compact flash card and not installing the boot loader correctly.
During the install of DSL you have essentially two choices(oversimplifying), either install it to a USB Pendrive / Memory stick, or to an actual hard drive. Because in Memory stick mode it does things quite differently to allow you to run entirely in RAM with without persistent storage, it makes some changes that are difficult when you want to actually install applications. However when I performed the hard drive mode it would attempt to install the boot loader and silently fail. I found that I could make it work by manually creating a Grub config file and installing it to the master boot loader of the device. This process is not a lot of fun and took a lot of trial and error.
Another issue that I came across was everything that I did was very slow and many applications were slow to respond. I was afraid that it was a limitation of the Compact Flash card but it was actually an issue with the way DSL was configured. By default it disables DMA transfers and this turned out to be a huge problem for my little memory card. Once I figured that out and removed "nodma" from the boot loader transfers went from 2MB a second to 20+MB a second!
Step 8: Conclusions and Final Thoughts
Once booted the unit automatically connects to the wireless internet and starts a slide show of all the pictures it can recursively find in a predefined folder. Then controlling the unit is as simple as connecting to it through a ssh connection and running the appropriate scripts.
Since I wasn't too keen on showing off my own photos I wrote a script(hack) that would check every hour and download all the "featured photos" from Picasa Web
Thanks for reading, this is my first Instructable project and I hope you liked it. If you have any questions please post them in the comments and I will try to answer them.
Action shots below:
Step 9: Updated (Picasa Script / Hack)
So a few people have been asking for the script I have been using to download pictures from picasa. The reason why I didn't include it before was It's about as ugly as it gets and will definitely break as soon as picasaweb changes anything with their web page.
The frustration comes from the lack of any feed to their "featured" photos, and instead I had to download their web page, parse out the lines I'm looking for and replace the links to the thumbnails with the actual links. This is made more complicated since the URL's change with each image as well as the server that is hosting the content.
Thankfully they have a system to group images of different resolutions. In my case I prefer to just grab the originals and let the picture frame scale them appropriately. To make things clearer look at the following links
Thumbnail from picasaweb.google.com/lh/explore# currently 144x144 resolution
http://lh5.ggpht.com/_4TrPwfUulu0/Sd0qLrsV_bI/AAAAAAAACTM/yhbSPhcyh8Y/s144-c/kuva%20151.jpg
Same link with a picture scaled to 800x? In this case 800x536.
http://lh5.ggpht.com/_4TrPwfUulu0/Sd0qLrsV_bI/AAAAAAAACTM/yhbSPhcyh8Y/s800/kuva%20151.jpg
Original photo at 1600x1071 resolution.
http://lh5.ggpht.com/_4TrPwfUulu0/Sd0qLrsV_bI/AAAAAAAACTM/yhbSPhcyh8Y/kuva%20151.jpg
In the code I'm using sed to delete "s144-c" from the URL to download the originals but it works just as well to replace it with images of the desired size.
Also I wrote this script with the intention of it running inside of a folder called "picasa" in my home folder. If you wish to put it somewhere else then you will need to update it accordingly.
This script also needs to be called by something else. I have added the following in my personal crontab to run the script every morning at 4am.
computername$ crontab -l
0 4 * * * ~/picasa/download_favorits >> ~/picasa/cront_out.txt
The basic idea is it will attempt to download all 12 images on the page except if it's already there then it will skip it.
I hope that helps explain it, if you have any other questions please feel free to post them in the comments.
#!/bin/bash
#Mike Dahlgren 2009
HOME=~
wget -O $HOME/picasa/explore.html http://picasaweb.google.com/lh/explore#
mkdir -p $HOME/picasa/pics
cat ~/picasa/explore.html | grep 'style="width' | awk '{print $2 " " $6}' | sed 's/s144-c/d/' > $HOME/picasa/pics_list.txt
cd $HOME/picasa/pics
exec < ../pics_list.txt
while read line
do
echo $line
wget -nc $line
done
rm $HOME/picasa/explore.html
rm $HOME/picasa/pics_list.txt
22 Comments
14 years ago on Step 8
Excellent Project! You wouldn't want to share your script that pulls featured pictures would you? I'm still working on getting my drivers to work with ndiswrapper. Once that is complete i would love to pull images from the web!
Reply 13 years ago on Step 8
For everyone looking for a script to access picasa, i have an alternative suggestion. Look into a product called dropbox. Install it on your picture frame OS and any other computer in the world. Binaries are available for free download. Drag and drop the pictures you wish to use into dropbox (which is essentially just a shared folder being hosted in the interwebs) on your PC. Then direct your slide show viewer on your picture frame to use that folder as its source. I just tried it and it was pretty simple and turned out quite well. Not only that but it is completely live. As soon as I dropped a new picture into Dropbox, it would appear on my picture frame(!) Also, instead of DSL i used Puppy linux and booted from a 512mb usb flash drive.
13 years ago on Step 8
Great job. Nice to see some linux love and great use of wireless. Can I ask why you left the CD-ROM attached?
Reply 13 years ago on Step 8
Thanks for the comment. However I am a little confused by it. There is no cdrom attached. However I did keep it in case I ever needed it.
Reply 13 years ago on Step 8
OK, sorry, I misunderstood because in the picture for step 5 it says you hooked up the CD-ROM, but of course there isn't one in the picture. My bad. Thanks for clearing that up.
13 years ago on Introduction
I am going to do this with an old computer and have been searching through a few different instructables to gain info. Particularly this one and the one here www.instructables.com/id/USBWEB_Digital_Picture_Frame/. I like having the script from yours that shows photos other than my personal ones. Although I like in the other instructable it boots into an html page then goes to the pictures. Is there any way to combine this? This will be my first experience of any type with Linux. Or does your method boot directly to the pictures?
13 years ago on Introduction
I have an old 17" screen which does "waves" when i put in on the pc...but can we use it in any way one this?
without a laptop or anything...
for example if i buy one digital photo frame and then chagne the screen??
but i dont know how...!!
:P little help over here :D
Reply 13 years ago on Introduction
Hi djpain.
The simple answer I'm afraid is "no"
Sounds like the psu in your 17" screen needs repairing. Because of the nature of digital frames it would be very difficult to "mod" a cheap digi frame with a big screen, you would be better off finding a cheapo laptop....
Reply 13 years ago on Introduction
yy i know about the screen.. its not the psu but the "motherboard" or however its called...!!!but i cant find a laptop cheap :(...if i found i would mod the screen to be used by the laptop...if you find anything cheap let me know..!!and then i will make an instructable using the screen :D i want to make it as a gift to my mother :)! you know he will be watching it he will think that its magic xD
thnx a lot for the answer!!
13 years ago on Step 8
Great instructable! I gave you a 5 lots of work and thought put into this!
13 years ago on Introduction
Very Nice. I built a DPF a while ago and it mysteriously died so I have another laptop almost exactly the one that you used that I am thinking about using. You added some things into your DPF that I did not think about. The laptop that I will probably use is a Inspiron 8000 that has been used well. All of the plastics are cracked the touchpad and keyboard intermittently work. And to top it off the screen hinges are shot. I was also thinking of mounting the power brick to the frame but you are probably right.
13 years ago on Step 8
good and Excellent Project.... i love that
14 years ago on Step 9
Thanks for that. I'll have to look at it a bit more closely. I think I've got phpFlickr, with PHP, to work with a script, so now I've got two options. I certainly appreciate the update.
14 years ago on Step 8
Excellent job.. 5 starts!
Reply 14 years ago on Introduction
Thanks for the comment. I appreciate it especially since only one person voted on the project and they gave me 3 stars. :-(
14 years ago on Step 8
well constructing the frame is the easy part. It would be nice if you went into more detail of the linux portion, you didnt really say anything.
Reply 14 years ago on Introduction
As I mentioned, I followed the guide from http://www.thewares.net/item/33 for the Linux portion and attempted to point out any issues that I hit in the process. Do you have any specifics that you would like to see addressed?
14 years ago on Step 8
Love the frame. I'm part way doing one for myself, using DSL and have hit the wall when it comes to downloading photos from the WWW. Would REALLY love to get my hands on your Picasa script/hack.
Reply 14 years ago on Introduction
I have updated the project with a "step 9" that includes the script as well as an attempt to explain it.
14 years ago on Introduction
What program are you using to display the slideshow? I had a similar setup myself but wanted to add in a side widget bar and have yet to find something that suits my needs.