Digital Picture Frame

One of my more recent projects was a “Digital Picture Frame” or “Walltop”. In this project, I took an old laptop, and converted it into a digital picture frame, similar to those you can find on Amazon or eBay.

I had two primary goals:

  1. It had to be acceptable to my wife
  2. It had to be cheap (or free…)

The first goal is obvious. I wanted it to be useful, and to be useful it had to hang on a wall (picture frames in closets aren’t worth crap). In order to get permission to hang it on the wall, it must be acceptable to my wife.

The second goal works like this–I’m a techno-geek. I like technology. I like gadgets. However, I’m frugal (OK, cheap) and my money is better spent putting a new roof on the house (damn, still need to do that) than it is putting a fancy electronic gadget on the wall.

So with those two goals in mind, I set off to create this:

The Hardware
In order to display images, I knew I didn’t need a very powerful laptop. Even crappy laptops are going for $100 used at eBay or other resellers. Even $100 was too rich for my blood (see goal 2 above). So I figured I would ask around. I work in IT, and figured someone had an old laptop they would let go for almost nothing. The second or third person I asked said “Oh yeah. I’ve got one sitting in my closet that I haven’t used for 2 years. You can have it on one condition.” Damn, “how much?” I wondered. “You can’t give it back” he continued. Score! Laptop: $0.

The laptop is a Pentium 150Mhz with 24MB ram, Windows 98 (Of course I have the license for that!), 2GB hard drive, PCMCIA network card, C
D-ROM, Floppy, pretty much everything I could want.

So I took the laptop home, booted it up and started installing software to be sure it could do what I wanted it to do. More on the software later. This was simply my proof of concept phase.

After I was convinced that I could accomplish the software pieces, I took the laptop apart. Most other digital picture frame “HOW-TOs” go into great detail in how they accomplished the hardware feat. Since you are unlikely to have the exact same laptop, I won’t bore you with the details. (I didn’t bother to take pictures of it at this stage anyway). The hardware went through two phases:

  1. First I took apart only what was absolutely necessary to detach the screen from the base. Probably 90% of the laptop was still intact. The display data and power cables were just barely long enough so that I could fold the CPU up back behind the display. This worked very well until summer. When summer came, the fan ran constantly and drove me nuts. So next came phase two.
  2. I took the whole thing apart, and completely stripped out the innards. The display remained largely intact, I only removed a front bezel. The rest of the high voltage and display circuitry remained in the back part of the display case. I know how sensitive this stuff is, and I didn’t feel like messing with it. The rest of the laptop consisted of a) mother board, b) hard drive, c) PCMCIA slots, d) BIOS battery. No keyboard. No CD. No battery. No case. Just bare board. I then took the mounting screws from the serial and parrallel ports, attached them to mounting holes in the mother board, and epoxied them to the back of the display. You can see the view from the sides:



Some people have chosen to do without the harddrive, choosing to boot from CD, and pull images either from a wireless network, or pull them from compact flash card, etc. While this is certainly possible, my requirement 2 prohibited this approach for my project. Also, the sound of the harddrive is minimal (and is only on for 3 minutes out of every 15) so that requirement 1 is not in jeopardy.

The Frame
I searched all the art and craft supply stores to see if I could find a frame that would be deep enough and large enough to hold the laptop. I couldn’t. So I decided to build my own. I went to my local hardware store and bought three things: solid wood door moulding, 24×24 finish quality plywood, and 1/2″ dowel. I think I spent less than $10.

I cut the moulding using my mitre saw to fit my laptop display exactly (well, close). I glued the pieces together and let it dry well. I cut the plywood to be the same size as the front. I then futzed around with all kinds of bracketing techniques for hold the laptop and diplay in place. None worked like I wanted, so I settled on the four dowels method–two on the bottom and one on each side. The assembled laptop (walltop, whatever) slides in the top, snuggles in between the two side dowels, and rests on the two bottom dowels. I drilled holes in the back and the front frame (very carefully) and glued them in place.

Now, what to paint it with? Remember the two goals? Lucky me, I just happened to have a small can of left-over black satin Rustoleum. Score! Paint cost: $0. Two coats, with a gentle sanding in between made it look quite nice, if I do say so my self.

Initially, I cut the dowels so that the phase 1 configuration fit very snuggly between the frame and the back panel. When I removed all the casing for phase 2, it didn’t fit so snuggly any more. So I took some duct tape (YES!), folded it in half lengthwise so that there was no adhesive exposed, and used it as a strap with staples to hold the display against the front frame.

Software
OS: Windows 98. That was not really a choice. It came on the laptop, and since I know Windows better than Linux, I figured my chances of completing the project were better on Win98. In addition, I created my own start up graphic which says “Please wait while your digital picture frame starts”.
I created a folder called “My Pictures” and I shared it on the network. I named the computer “Frame”, and set the network card to DHCP.

Display Software: Irfanview. I created a batch file to start Irfanview in slideshow mode, and put a short cut to it in the Startup group. I set the slideshow to look at the My Pictures directory, randomly show the images, and change them every 15 minutes. I set it this long because I wanted it to be like a piece of the environment, not something you sit and watch.

Remote Control: Since I don’t have a keyboard, I need to be able to administer it on the network. So I installed RealVNC. That way I can put the frame on my network, boot it up, and go to “http://frame:5800″ and have complete control over the laptop.

Image copying: I could just copy images to \\frame\my pictures. However, I have only 800MB of free disk space (yes, I could probably make more if I was really willing to strip Win98… don’t need to yet) and over 2GB of images on my normal PC. So I downloaded ImageMagick and wrote this batch file:

@echo off
set LOCALFOLDER=%TEMP%\Frame
if not exist %LOCALFOLDER% mkdir %LOCALFOLDER%
if exist “\\frame\my pictures” net use z: “\\frame\my pictures”

:start
if `%1`==“ goto done
for /f “delims=`” %%j in (%1) do set BASE=%%~nj%%~xj
echo %BASE%
convert %1 -resize 800×600 “%LOCALFOLDER%\%BASE%”
if exist z:\ ( copy “%LOCALFOLDER%\%BASE%” z: del “%LOCALFOLDER%\%BASE%”)

shift

goto start
:done
if exist z:\ net use z: /delete

I called this “send_to_frame.bat” and I put a shortcut to it in my “Send To” folder. Then any time I need to send a picture to the frame, I just right click on it, point to Send To, then choose Frame. This automatically resizes my photo to 800×600 (the diplay resolution of the laptop) and copies the file to the shared folder. If the laptop isn’t on the network, it copies the file to %TEMP%\Frame (which is easy to get to from Start, Run, “%TEMP%\Frame”). Then I can copy the files manually to the share when the frame is on the network the next time. One minor note with sending files this way, you can only select 20ish files at a time. I don’t know exactly what the number is, but if you go over it, you’ll get an ugly error.

Conclusion
Now I have a digital picture frame/walltop that cost less than $10. I leave it running all the time. The only noise (in phase 2) is the disk drive every 15 minutes for a minute or two. Nearly every time I look at it there is a different picture. The best part is when my kids look at it: “Oh, I remember that trip to the zoo!” or “Daddy, when was that?”. When I feel like it, I take it off the wall, and walk it up to my router, copy some files and take it back to its home. The whole process takes only a few minutes, and since I have so many pictures on it already, I don’t care if the latest photos don’t get on it for a month or two.

Next steps
I’ll probably get an 802.11g card for it, if they have Win98 drivers (haven’t looked into it yet). That way it will stay on the wall all the time. I could also script it to periodically pull up a web browser to get a weather image or something. Cool stuff like that. But I’ll wait until those cards are cheaper… (anyone have one they’d like to give me?)

I’d like to figure out how to get it to turn off and on the display at scheduled times. That way I can save some power at night when we aren’t looking at it.

Categories: Computers

6 Comments

  1. Jennifer
    Jennifer On January 19, 2006 at 7:54 pm

    Thanks for this info. You sound like my husband. Are you an engineer? I am going to send him this page and ask him to make a digital photo frame for me with our old laptop. We were going to give it to our son to play with (he’s 3), but I think he would rather have a PC, since he hasn’t exactly perfected his fine motor skills yet.

    I am thinking about asking my husband to make our frame “tabletop” ready. Any ideas on how to get that to work? I suppose he could just straighten it out and mount it to the back of a table, but it wouldn’t look that great.

  2. David
    David On February 6, 2006 at 8:01 am

    I recently started my own pictureframe project after getting inspiration from your pictureframe… sad thing is I managed to bust die ‘vga’ connector coming from the mother board to the display… this 20CM ‘long’ cable, i was told, will cost me 47 euros (that should be roughly the same in $) …so nut sure if i’ll continue the project with that particular laptop (anybody got a dead, free/cheap IBM 770X Thinkpad around?)… luckaly, i have a second old laptop to try again if all fails.

    Anyway, thnx ewver so much for the inspiration!

    Greets all the way from The Netherlands!

  3. b598650
    b598650 On October 28, 2006 at 4:38 pm

    I think this is a great idea! I cannot wait to build one myself. Your whole process seemed to be the best walltop design i have read about yet. My only question is this, i know you altered your boot-up display but after the display did the laptop go to windows or did it immediately begin your slide show. I would like to create mine to just begin showing pictures immediately after boot-up, however i am not big on the software and was wondering if you had any insight on the subject.

  4. Administrator
    Administrator On October 28, 2006 at 11:32 pm

    b598650:
    Because the batch file for IrfanView is in the Startup folder, the slideshow starts automatically. You see Windows start if you are watching, but the slideshow starts without any user interaction.

    I would love to find something that would boot faster and display without the Windows startup overhead, but visitors to my home don’t care. They just see the images.

  5. user
    user On January 7, 2007 at 3:28 pm

    Hi There,

    You did a great job ! I started building my DPF last Christmas, and it is almost finished. Like you, I also use Win98 and irfanview, this works great.

    Did you manage to figure out how to switch off and on your DPF ? I really like to know !

    Regards,

    Stefan.

  6. Administrator
    Administrator On January 7, 2007 at 10:39 pm

    The laptop I used had two different power buttons–one for a hard power off, one for a controlled shutdown. Neither were easy to get to after I had it in the frame. It turned out that the hard power switch was just the right size to fit in an eletrical butt-joint connector ( think that is what they are called). So the connected is glued on the end of the switch, making it easier to reach in among the boards. Because it is a hard-boot, it scandisk checks the C: drive every time we turn it on, but it only takes a couple of minutes, and doesn’t require any input. I tried to find ways to disable the scandisk check, but couldn’t get any of them to work.