|
A while ago, I happen to get hold of an old Compaq EVO400c laptop. It was still in good working order, but only a pentium 3, 800mhz machine, so not much use as a working laptop. So what to do with it? Well, turn it into an electronic picture frame, of course..... This whole project took a few days, was not as difficult as I imagined when I started. Update:(19/12/2008): The picture frame did not survive the trip to Australia, the frame was all battered, and the screen seemed to be stuck on a high contrast setting. Fortunately Joanne, my sister in law, had the same laptop, which was also not working. Using parts from both, I managed to get one working model. I also decided to rebuild the thing into a new frame. (selected by my wife, Melanie)
Not much information of the actual build, as it primarily consisted of stripping it all down to the basic parts, and mounting that to the picture frame. This in itself was a bit of a problem, as the new frame was metal based (and a thin metal it was) so no place to drill screw holes, or any obvious means to mount the parts to the frame. The solution was to use a plastic compound called 'Shapelock'. Fantastic stuff. This allowed me to create 'brackets' around the four corners, and I then glued the 'brackets' to the back of the frame. This securely mounted the screen and MB. Below is a picture showing the top left 'bracket' (all images below are clickable to load large versions)
The next step was connectivity.
For this I wired in a USB wireless dongle, by soldering wires between the USB pins on both MB and dongle. You can see the wires on the MB in the picture above, and below is a picture showing the dongle in place. 
That was basically it. Most of the work involved was to dismantle the laptop, but I had done that previously when I built the first version of this picframe. Below is a picture of the whole back. In this picture you can see all four the Shapelock brackets In the top left you can see the blue and red wires that I soldered onto the power connector, which runs off to the new power socket, mounted on the back pane. In the top right you can see the RJ45 connector. It is not visible once the back pane is mounted. This is for initial install, as the wireless will not be up from scratch install. It is also my backup, just in case the wireless fails, I then still have a way of getting it on the network. You can also see the wood frame I glued onto the back of the metal frame, which adds extra height to the back, otherwise the back pane does not fit. I painted those black on the outside. 
The back consists of some hard board, and is the original back that came with the frame. I added some holes above where the fan and heat extracting parts on the MB are, thus allowing for ventilation. The holes I drilled are neatened up with some stuff I got from 'Spotlight'. Not exactly sure what they are called, but I think they are used in material to neaten up holes. Same effect I wanted. - Had quite a few stares from the women in the shop, with me browsing around the knitting/needle/material sections.
So that concludes the hardware side of things, now the software. I wanted to keep this part as simple as possible. I liked the flash imagerotator used in the gallery I use on this site, so the objective was to use it. I used a base Debian etch install.The install was done by putting the hard drive in a usb caddy, and then I used my laptop to install Debian from a cd. Had some issues here with the network, after I moved the hard drive back to the picframe. Many thanks to all on the PLUG list that helped. The posts involved are available on the PLUG archive I then installed xorg, and a simple window manager called 'evilwm', which I also use on my mythtv box. Apache was then installed, as the imagerotator seems to like loading it's images from http:// urls. All the files for the setup will be saved in the default apache location /var/www The images are stored in /var/www/pics/ The next install was firefox, (or icedove as Debian calls it) and I installed a plugin called 'R-Kiosk' that forces it into KIOSK mode. I then created a small index.html file to load into firefox. The imagerotator options used: <script type="text/javascript"> var s1 = new SWFObject("http://127.0.0.1/imagerotator.swf", "rotator", "1000","750","7"); s1.addParam("wmode", "transparent"); s1.addVariable("file","http://127.0.0.1/xmllist.xml"); s1.addVariable("width","970"); s1.addVariable("repeat","true"); s1.addVariable("height","720"); s1.addVariable("transition","random"); s1.addVariable("shownavigation","false"); s1.addVariable("kenburns","false"); s1.addVariable("rotatetime","20"); s1.addVariable("shuffle","true"); s1.addVariable("screencolor","0xFFFFFF"); s1.addVariable("usefullscreen","false"); s1.addVariable("overstretch","true"); s1.write("xcontainer"); </script> The size settings I got from a bit of experimentation. I created a small bash script to build the required xml file: #!/bin/bash IFS=$'\n' rm -rf /var/www/xmllist.xml echo "<playlist>" >>/var/www/xmllist.xml echo "<trackList>" >>/var/www/xmllist.xml for i in $(ls /var/www/pics/); do echo "<track> <title/> <creator/> <location>http://127.0.0.1/pics/$i</location> <info/> </track>" >> /var/www/xmllist.xml done echo "</trackList>" >>/var/www/xmllist.xml echo "</playlist>" >>/var/www/xmllist.xml
To start it all up when the system boots, I simply changed inittab to auto logon my user, and I then placed startx in ~/.bash_profile #1:2345:respawn:/sbin/getty 38400 tty1 1:2345:respawn:/bin/login -f user tty1 </dev/tty1 >/dev/tty1 2>&1
The last step was to create the ~/.xinitrc file This hides the cursor using unclutter, and disables screen blanking, and then builds the xml list, and starts firefox It also makes sure the files are owned by the apache user, as I found that the imagerotator fails if it cannot load a file. xset s noblank xset s off xset s noexpose xset s 0 0 xset -dpms unclutter -root -visible & /home/user/buildxml.sh chown www-data:www-data /var/www/pics -R /home/user/startslide.sh the startslide.sh file simply consists of #!/bin/bash firefox http://127.0.0.1/index.html
To allow easy copy of files to the picframe, I exported the pics folder using NFS. Below are some pics of it in action: The last two I captured during some transitions.
 
|