Profil de Farookhfm noisePhotosBlogListesPlus Outils Aide

Blog


01/11/2007

Another year, another PC

Every year around this time I get the urge to build a PC or some derivative of it, like picture frames. I probably yearn for the extra heat or the whine of hard disks and fans all around me. Last year I assembled a new desktop PC to replace my aging 7 year old.
 
This year is no different. Except I didn't need another desktop PC and I didn't feel like another picture frame (though I do have a laptop lying around for that purpose). So, despite not having any need or purpose, I wandered to good ol' Newegg and ordered some parts to build a cheap PC. One can always find a reason to use a PC, no?
 
My budget was in the $200-$250 range. Here is what I went with:
MSI barebone - MSI MBOX K9N6SGM-V - $89.99 (case with a uATX mobo with an AMD AM2 socket, nVidia chipset and 400W power supply)
CPU - AMD Athlon 64 X2 4200+ 2.2Ghz - $74.99 (this is the 65W version)
RAM - OCZ Platinum 2GB (2x1GB) - $45.99 (after $30 mail-in-rebate)
 
I have hard disks (8GB to 80GB) lying around at home, so didn't need that. Didn't want a CD/DVD drive, keyboard, mouse, monitor, etc. So, that was it.
 
Total: $210.97 + $20 shipping (for the case) = $230.97
 
 
I just put in a hard disk, plugged in a CD drive and powered it on. Downloaded the Gutsy Gibbon release of Ubuntu and started installing it.
 
I saw Gutsy with Compiz (see video) on K's laptop recently and was quite impressed with the wobbly windows and how much Ubuntu has shaped up. I had played with the first edition of Ubuntu (Warty Warthog) and briefly with Feisty Fawn on a LiveCD, but Gutsy seemed quite slick. So time to give it a whirl.
 
This will be the second device running Linux in my home - the first was a Series 1 TiVo that is now taking a well deserved break.
 
29/10/2007

Is that a laptop stuck on your fridge?

My household had this problem where we would run out of some supply, usually in our refrigerator - not the essentials like milk, but things like yogurt or ginger and other stuff like paper napkins. And when it was time to get groceries or make a visit to Costco, we would start making a list and inevitably forget that light bulb or kitchen towel that we needed. Also, in our neighborhood, every Wednesday is garbage day (when the good folks at Waste Management swing by to collect our waste), and every second Wednesday is recycling day. I can remember the every Wednesday part, but I can never remember which Wednesday is the second Wednesday. This gets more tedious when I skip recycling on some week - that totally messes with my internal recycling clock. We also have doctor’s appt’s for the kids, medicines that one of my tots needed to take on a regular basis, and other things, that we were forgetting to do. We used our work calendar for some of this, but I don’t look at my work calendar on weekends when my party animal kids have their birthday parties and play dates. And I don’t like to mix my home stuff in my work calendar.

So, R suggested that we should have some way to keep a handy shopping list near the fridge and probably use some online calendar to keep track of our home life. And that is how I ended up with a laptop stuck on the door of my fridge to do exactly that.

In my case I picked an old convertible Tablet PC and stuck it with some industrial strength Velcro strips on the door of my fridge. You can find old Toshiba Portege convertibles on eBay for as “little” as $200-$300. Many of them have issues with the digitizer since the first edition Portege’s were quite shoddy, but often you can just rip it open and re-jig the digitizer and get it working again. The digitizer is basically stuck behind the LCD panel and the pressure while writing on the Tablet, I assume, causes it to split away from the LCD or something like that. Remounting the digitizer and using some tape to make it bond more strongly with the panel seems to help. Kinda sorta. Mine worked flawlessly for a while and then gave up. I currently have it without any screws on the case (relieves the pressure I suppose), but I still have one vertical band where the digitizer is dead, but I manage without that strip.

A Tablet PC seems ideal for this since you can just write on it and don’t need a wireless keyboard and/or mouse lying around, and a convertible makes it nice since you don’t have to crack it open to get the LCD panel to face outwards.

Anyways, here is the Tablet PC stuck on my fridge.

DSC_1776

I needed a few apps on it to make it useful, primarily a calendar and something to keep track of my shopping lists. I wanted the calendar to be on a service (or server) so I could add appointments from work but I also wanted to add appointments directly on my Tablet. Google, MSN, etc. provide calendar services, but unfortunately none of them support sync, only a read-only view. Thus, apps like Mozilla Sunbird didn’t provide what I wanted. Luckily my ISP serves up Exchange goodness, so I setup my account there and fired up Outlook. I can now forward or schedule appointments from work to my fridge!

For shopping lists, Windows Journal on the Tablet PC is perfect and so is OneNote. The Tablet PC also comes with a sticky notes app which also has voice support, so I could, if I want to, leave a message on my fridge for R (no, we aren’t that geeky).

So, now as things run out in the fridge, we write it on our Tablet PC’s shopping list and just print out the list before we head out grocery shopping. (Though a mini-printer like the ones at the store POS devices would be nice to save paper.) I have also scheduled recurring appointments for things like “garbage day” and “recycle day” and other reminders like doctor appointments. No opportunities for those missed garbage and recycle bins anymore.

And since we seem to spend so much time around the kitchen, I thought it would be good to glance at the fridge to know who was calling when the phone rang rather than having to hunt for the phone. So, I wrote a little service that taps my phone line over a modem (which sits in my garage), picks out the callerid and sends it to clients that are connected to it. The client runs on my Tablet PC and pops up a little window that shows who is calling along with a history of past calls. Geekiness galore.

Next up: A kid-friendly mounting of a Tablet PC with apps for kids to doodle on. I saw a device in the kids area of Ikea in Renton. It is mounted on one side of a little "pillar". It has a touch screen and lets kids paint with their fingers, play the memory game, etc. Would be great to have one of these mounted low on a wall at home. Touchscreen would be ideal rather than a pen/stylus as is with Tablets (my kids might jab the pen into the screen). Lets see, maybe next year's project. :)

 

09/11/2006

gPhotoShow config for BartPE

A few people asked me about configuring gPhotoShow for BartPE. I did it a while back and don't remember it very well, but the following should give you a fair idea.
 
The basic idea is to get PEBuilder to copy the gPhotoShow screensaver into the image it builds and when BartPE boots up, you want it to autostart the gPhotoShow screensaver with the settings you want. BartPE natively doesn't support screensavers, so you can't rely on the screensaver being launched at a set interval. Instead what I did is to use the autorun feature of BartPE which lets you run apps on boot up.
 
Here are the steps to create the gPhotoShow plugin for PEBuilder and have it autorun.
 
- Install gPhotoShow and configure the screensaver the way you want it (transition effects, time between transitions, directory of images, etc.) gPhotoShow saves the settings in the registry, which we will use later.
- In the PEBuilder plugins directory, create a directory named gPhotoShow.
- In that directory create gPhotoShow.inf with the following contents:
; gphotoshow.inf
; PE Builder v3 plug-in INF file
; Created by fm
[Version]
Signature= "$Windows NT$"
[PEBuilder]
Name="gPhotoShow"
Enable=1
Help=""
[SourceDisksFiles]
files\gPhotoShow.reg=2,,1
files\gPhotoShow.scr=2,,1
files\gPhotoShow.cmd=2,,1
autorun_gPhotoShow.cmd=2,,1
This specifies the files you want PEBuilder to copy into your BartPE image.
 
- Create a file named autorun_gPhotoShow.cmd in the above directory with the following contents:
@echo off
title Starting gPhotoShow...
call %SystemRoot%\system32\gPhotoShow.cmd
exit
This is the autorun file that BartPE will run after it boots up.
 
- Create a directory under the gPhotoShow plugin directory named "files".
- Copy the gPhotoShow.scr screensaver executable into that directory.
- Open RegEdit and export the tree under HKEY_CURRENT_USER\Software\GPGSoftware into a file named gPhotoShow.reg. Copy this file into the plugin\gPhotoShow\files directory (same as where gPhotoShow.scr is). This file contains the gPhotoShow settings that you configured in step 1.
- Lastly create a file named gPhotoShow.cmd with the following contents:
@echo off
regedit /s %~dp0gPhotoShow.reg
%~dp0gPhotoShow.scr /S
This cmd file is invoked by autorun_gPhotoShow.cmd. It uses regedit to import gPhotoShow.reg into the in-memory registry and then invokes the gPhotoShow screensaver (note the /S parameter).
 
Now, create the image via PEBuilder, after including the gPhotoShow plugin and any other plugins you might want and you are ready to roll.
01/09/2006

BartPE framed

Here is my new digital picture frame running BartPE.
 
DSC_0656 

It is quite robust and neater compared to my previous one, which was literally tied down using hanging wire.

I used the backing board from the previous frame (which is solid cork) to mount the motherboard.  This sits atop the LCD panel, thus I added little quarter-inch wood spacers on the underside and cut various slots to let the LCD panel cables to come through, to make room for the hanging wire, etc.

DSC_0635 

Here is the motherboard screwed-in on top of the cork board.  The CDROM drive is on the bottom left which I fastened using some tape and a screw to prevent it from sliding out.  The compact flash PCMCIA adapter is on the bottom right.  Power connector and switch is on top just above the bare CPU surrounded by thermal gunk.

DSC_0639

I used the backing board from the frame to seal it all in.  I cut a couple of slots for the hanging wire and a slot to allow access to the power connector and screwed it onto 4 elbows that I mounted on the frame.  I used styrofoam as spacers between the backing board and the board mounting the motherboard.  This not only keeps the backing board straight and firm, but also keeps the motherboard snuggly sandwiched in between.  The PCMCIA eject "button" peeks out from the bottom of the frame allowing easy access to the compact flash card.

DSC_0641 

I think it is solid enough (and neat?) to ship across the country to the intended recipient.

One potential problem with this frame is the lack of cooling for the CPU.  There is no heatsink and I didn't connect the fan either (couldn't figure out a nice way to do it).  It is an old 233 MHz CPU (doesn't heat up like the new chips), but it does get hot.  I set the CPU speed to low in the BIOS and it isn't too busy, so it should hopefully hold up.  There is good convectional air flow through the back of the frame with the CPU sitting right on top - I hope that suffices.  I have it running for the last 5 days and it hasn't lost its bearings yet, but if there is a simple way to cool it without the fan I am all ears.

 

A couple of folks mailed me inquiring about the condition of my previous frame.  It continues to hang in my study faithfully displaying my photos.  I recently replaced its hard disk since the old one was driving me batty with the noise, but besides that I haven't touched it.  It noticed that it isn't as bright as the new frame I built, partly because of the dust buildup[*] on the inside and partly due to either the lamps or the LCD going a tad dimmer (it has been running continously for almost 1.5 years now!)  Here it is.

DSC_8092

 

[*] To prevent dust buildup in the new frame I sealed the gaps between the frame and the glass and between the matte and the glass with tacky glue.  I also sealed the LCD panel to the matte with tacky glue.  Only time will tell if this works as expected.

23/08/2006

Customizing BartPE for the digital picture frame

Once I had a barebone BartPE Live CD booting my laptop, the next step was to create a customized version with the photo slideshow viewer, amongst other things.
 
The digital picture frame I built earlier reads photos off a network share over WiFi.  I first tried to do a similar setup, but couldn't get wireless networking on BartPE to work without manual intervention.  I could boot into BartPE and manually connect to my WiFi network by providing the SSID and WEP key for my network, but couldn't figure out how to supply the SSID and WEP to the WiFi driver so it connects automatically on boot.  Thus, I decided to build a standalone picture frame that reads photos off a compact flash card.  I used a compact flash PCMCIA adapter that I could plug into the laptop's PCMCIA slot.  The standalone picture frame should be easier to use by non-geeks and thus is ideal to gift to someone.
 
I then hacked together a BartPE plugin for gPhotoShow, my preferred slideshow application for picture frames.  The plugin instructs PE Builder to copy the gPhotoShow screensaver and a .reg file that has the screensaver settings customized to what I need (slideshow interval, path to photos, the transition effect to use, etc.)  BartPE natively doesn't have support for screensavers, i.e. launching them at a set interval of inactivity.  Thus, I used the autorun feature of BartPE to launch the gPhotoShow screensaver on bootup.  Screensaver's (.scr files) can be launched by passing the /s command line param to the .scr file, e.g. "logon.scr /s" will launch the logon screensaver.  The autorun cmd file I wrote for launching gPhotoShow is kinda hacky in that it first imports the .reg file using "regedit /s" and then launches the gPhotoShow screensaver.  A better approach would be to have the required reg settings in the inf file for the gPhotoShow plugin so that PE Builder populates the registry with it, but that was much more work, so I took the easy/hacky route.
 
The only other configuration I needed to do was to set the right display resolution and bits per pixel for my LCD display (1024x768, 24bpp at 80Hz) in plugins\!custom\custom.inf, before burning a CD.
 
It takes around a minute to bootup off the noisy and slow CDROM drive that my laptop has, but once booted it is super silent as the CDROM drive winds down and there are no other moving parts (besides the fan which comes on once in a while).  gPhotoShow launches as soon as BartPE boots up and starts displaying photos off the compact flash card.  To add new photos, I just have to pop out the CF card, add the photos and pop it back in.  gPhotoShow patiently waits while displaying the last photo on screen before the card was popped out.  This is perfect, since if gPhotoShow had barfed on a missing drive, I would've had to restart the picture frame each time I added photos to the CF card.
 
Now all I need to do is encase the guts of the laptop in a good photo frame and make it more robust than my last one, so I can gift it.

BartPE is cool!

Creating a BartPE Live CD is easy.  Point the PE Builder application to the Windows installables, select the Plugins you want installed (networking, anti-virus, Remote Desktop, etc.) and click Build.  It picks the minimal set of binaries off the Windows installable and burns a CD (if you choose to do so).  Pop the CD into your PC and boot into BartPE.  It comes with a custom shell called Nu2Shell that lets you launch applications.  You can run all Windows apps as long as the necessary supporting components have been copied over.  For instance, you need to install DirectX support (via a plugin) if your app requires DirectX.
 
There is a "super"-plugin called Reatogo X-PE that adds support for the Explorer shell, plug-n-play, MMC, WMI, etc.  Once you add X-PE, your experience is like pure Windows with the Explorer bar and Start menu, and you can open MMC applications, plug in devices, etc.  A bare minimum BartPE disk (for Windows XP) was around 158MB and with X-PE (including DirectX, PnP, Help, etc.) was around 260MB.  Even if you aren't making digital picture frames, having a BartPE disk (or USB key-fob[*]) handy would be very prudent.  It is the right tool to have to recover machines infected with spyware or to recover NTFS partitions if your primary disk crashes.
 
There is a large repository of plugins for Microsoft applications and components (like DirectX and WSH) commercial applications (like anti-virus software) and freeware (like Systernals utilities and Firefox).  One could thus create a disk with just the tools and applications one needs.
 
BartPE rules!
 
[*] Tom's Hardware has a writeup on creating a BartPE USB key-fob.
19/08/2006

Here I go again...

Almost a year-and-a-half after building my first digital picture frame, I decided to make one (or two) more of them.  One I will hang either in my study or elsewhere in my house to display portrait images (the previous frame displays landscape-oriented photos) and another I plan to gift to another photography afficionado in my family tree.
 
Just after I got the previous Tecra 8000 from eBay, I got my hands on another one in what was stated as "non-working condition" from a local source.  This laptop was opened by the previous owner in a haphazard way and he/she had ripped out parts from it. It didn't have a hard disk, memory, CDROM drive or power cable.  It was also missing other parts like the modem, sound card, batteries, etc.  The daughter-board hosting the CPU was without the heatsink and the heat spreader on the chips (CPU and GPU) were ripped out leaving just a bare Intel 266 MHz CPU with some thermal goo on it.
 
I put it all together and powered it, but as expected it didn't show any signs of starting - no display, no LEDs lighting up, nothing.  I thought it was DOA, but then I put in a stick of memory from my other Tecra, and voila, it booted up.
 
Since it didn't have an HDD, I decided to try to build a picture frame without using a hard disk.  The previous one I made uses a rather noisy hard disk to boot up Windows, but displays images stored on a network share.  I had the CDROM drive from the previous Tecra which I could use on this one, so booting off CD was the best choice.  Since I assumed I couldn't get Windows to run off a CD, I tried various Linux distros like Damn Small Linux (DSL), Puppy Linux and finally Ubuntu.  All of them let you create a Live CD.  I wanted to create one with Samba and have it map a drive on my network just like my Windows picture frame and render images off there.
 
Unfortunately, none of the distros I tried supported my graphics card - an old Neomagic.  Thus the best resolution I got was an inadequate 640x480 with low bits per pixel.  I looked around a bit, but couldn't find drivers for my card.  This was around 8 months back and since I didn't have enough spare time to tinker I put this on the back burner.
 
Then, a couple of days back I decided to give this another shot, this time with Windows, but without a hard disk.  The options I had were to boot from a CD, over the network or from USB.  Since the Tecra doesn't support USB boot and network didn't seem feasible, I looked at other options including an IDE to compact flash adapter (I didn't know these things existed until I saw one at the local Fry's).  This will let me have a CF card act like an IDE hard disk.  The only problem with this was that I would need a 2GB to 4GB CF card to host Windows.  I have a few 1GB cards at home, but those wouldn't be large enough and I wasn't ready to buy a new card.
 
I then looked at WinPE (Microsoft's Windows Preinstallation Environment) which is supposed to let you boot into a minimal version of Windows to let you bootstrap an installation.  Of course, this isn't free.  I then seem to have hit paydirt with BartPE - a preinstallation environment hacked together by an enterprising person named Bart Lagerweij.  It not only is free, but is customizable via "plugins" (and other means) and many have contributed various plugins including those for TightVNC, IrfanView, etc.
 
Time to give this a whirl.
30/04/2005

DIY Digital Picture Frame - The frame

With the laptop dismantled, I now needed a frame to mount it in.  A few days before I had completely dismantled the laptop, I had to make a trip to the local Aaron Brothers for framing a painting.  I hadn't spent any time determining the dimensions that the frame needed to be.  Though, I had a rough idea that I needed a box frame of approximately 1" depth and around 16"x14" dimensions.  I also knew I would need a custom cut matte.  BTW, box frames are those that allow mounting larger objects - baseball gloves, a tennis raquet, etc. - or for mounting pictures at a slight depth.  Thus, box frames, unlike regular frames, have the depth needed to mount a laptop and LCD panel inside.

Aaron Brothers had some kind of sale going on and there I found a 16"x12" box frame with around 1" of depth on a 70% discount.  The frame was black and had a nice finish and it had two good mattes (of course, not cut in the size I wanted).  Post discount it was for $19.95.  There was just one of them, and I snapped it up, hoping I could use it for mounting a photo if it didn't work for the digital frame.

 DSC_7818

When I bought the frame I didn't realize that the glass was slightly inset into the frame and the back cover too slid into a groove that was inset from the edge.  Thus, the effective depth was around 0.5" - not enough to contain the LCD panel and the laptop with enough buffer for cooling.  I noticed it only after I started looking at ways to mount the LCD panel inside.

I contemplated getting a deeper box frame and even went to Aaron Brothers and a few other stores, but the frames they had either looked ugly or were too deep and bulky.  None looked as elegant as the one I had.  I thus decided to improvise with it.

In general, I think one can be (and need to be) the most creative in determining how to mount the laptop contents into the frame.  There are various ways in which one can mount it - use foam boards, cork boards, screws, duct tape, etc.  The key things to keep in mind are the ease of opening it if necessary, providing adequate air flow for cooling and providing just enough rigidity.  It is going to be hanging in one place most of the time, so you really don't need it to be able to withstand a lot of shaking, tilting, vibrating or general misuse.  It should be strong enough so you can treat it like a normal picture frame but not any more.  I considered various approaches before picking a method which used most of the material that the frame had and was cheap and easy while providing good airflow, rigidity and ease of taking it apart when required.  If you are creating a digital frame, you really need to improvise on this.

The frame had a wooden grid inside to keep the two mattes separated.  This seemed like something I could use to mount the laptop onto, while allowing the LCD panel to be in between and well buffered from the laptop base.  The way I was mounting it, the CPU heatsink would be right atop the LCD panel.  I thus wanted a buffer between the LCD and the laptop since I wasn't sure how the heat from the CPU would affect the LCD (I later found that it does adversely affect it).  The grid wasn't of the right dimension to contain the LCD panel, so I took it apart and re-arranged it, in the process breaking one of them (though, nothing a little cyanoacrylate couldn't fix).  I also created a little notch to allow wires for the inverter to pass through.

DSC_7821 

Of course, no matter how I mounted it, I wouldn't have been able to close the back of the frame, leaving part of the laptop visible.  Though, since the frame is larger than the laptop and since the laptop wouldn't jut out too much, I figured it would be fairly inconspicuous when I hang it.  This had the added advantage of not requiring me to make provisions for adequate air flow.  If I had closed the back of the frame, I would've needed to either drill holes or cut vents so that the fan could circulate enough cool air over the CPU.  Further, I didn't need to drill a hole for the power cable to snake in.

The plan was to use duct tape to fix the LCD panel to the matte, lay the wooden grid above it and screw in the laptop base to the wooden grid.  After I broke the grid (while rearranging it) I realized it wasn't strong enough to let me screw in the laptop base and to bear its weight.  I also needed to affix it all to the frame itself.  Thus, I decided to use eye-ring loops on four corners of the frame and literally tie down the laptop base and the grid using a metal wire (the kind used to hang large picture frames).

Here are a few pictures of the eye-ring loops fixed to the frame:

DSC_7822DSC_7824 

I next swung by Aaron Brothers to cut the matte to the size I wanted.  I hoped that they would just re-cut the matte that came with the frame to the new size, thus saving me the cost of buying a matte. But, the gal at Aaron Bros. said that they don't re-cut mattes since it doesn't come out straight - I wonder why.  Buying a new matte and having it cut would cost me around $35.  Instead, I picked a beveled matte cutter for $21.95.  Since, I typically need custom cut mattes for my other printed photographs, I hoped to learn how to cut mattes with the new cutter and thus amortize my costs.

Before buying a new matte and cutting it, I decided to try my hand by re-cutting the existing matte.  After some very careful measurements, I managed to re-cut it neatly to the dimensions I needed.  It was my first try at matte cutting and I was pretty happy with the outcome - happy enough to use it as the matte for my digital frame.

I next had to mount the LCD panel to the matte.  It seemed like an easy thing to do, but this task took me the most amount of time to complete.  Getting the panel centered and aligned correctly was extremely difficult.  My first try looked perfect until I connected the laptop and booted it up - the rendered image was slightly tilted.  Note the Start button is clipped in the image below and the screen is slightly tilted to the left.  Of course, it was past midnight, so I decided to do it when I wasn't as tired - over the weekend.

 DSC_7838

To mount the LCD panel, I started off with packing tape (since I couldn't find duct tape in the middle of the night) but eventually ended up using insulation tape.  The insulation tape seemed to adhere better and didn't sag over time when the frame was held vertically.  Here is my first attempt using packing tape - rather ugly.

DSC_7833 

I realized that it would be easier to mount it correctly while having an image on the screen and instead of aligning it from behind, I had to align it while looking at the picture.  I ended up doing this lying on the floor with two pillows below me (for comfort and some height) with the frame, panel and laptop precariously perched on the edge of a table allowing me to see the image on the screen while aligning the panel.  Of course, the task would have been easier if I had a glass-top table.  Once I had something that looked aligned correctly, I would stand up and tape it down only to see that it moved a mm to one side requiring me to re-align it by lying down on the floor again.  It took me 15-20 tries before I got it right and I spent almost 3 hours on it.  I am sure I could do it faster if I try it again.

Below is a photo of the mount after one of the attempts.  I unfortunately don't have any photos of the panel mounted using insulation tape.  But, just imagine blue tape instead of brown below and you will get the picture. :)  Also, pretty obvious, but small strips of tape worked better than one large strip per side like my first attempt.

 DSC_7848

Here it is with the panel, wood frame and laptop above it.  I had the inverter in the gap between the picture frame and the wood frame.  It doesn't appear to heat up too much and the wood provides good (electrical) insulation to the motherboard.  I also didn't need to affix the inverter - it just hangs in the gap there.

DSC_7847

And finally, here is the laptop tethered to the frame using metal hanging wires.  The wire is tied to the eye-ring loop and it winds over the wood frame and winds through the screw holes in the laptop.  It keeps the frame and the laptop pretty snugly fixed to the picture frame while letting me easily take it all apart when needed.  I also use the eye-ring loops and another piece of hanging wire to hang the picture frame to the wall.  For my final mount, I replaced the packing tape with insulation tape since the former was sagging (very small amounts) when the frame was kept vertically for a while.  The insulation tape adhered better than packing tape to the LCD panel.  Duct tape probably would've been the best choice, but I couldn't find it and I was too lazy to go buy it.

DSC_7850

And here it is booted up post framing.

DSC_7882

11/04/2005

DIY Digital Picture Frame - Dismantling the laptop

After I had installed all the software I needed to have the picture frame running, the next step was dismantling the laptop.  The primary aim was to remove the LCD panel, reverse it and mount it in a photo/picture frame.  Thus, unless required, I didn't want to dismantle the whole thing, but I ended up doing just that.

After removing the peripherals - CDROM drive and battery - I start unscrewing the visible screws beneath the laptop that I assumed held the case in place.

DSC_7723 

Next, I pried open the case with a flat head screwdriver and unclipped all the plastic clips around the base, but something was still preventing the case from opening.  Consumer electronics typically have screws concealed beneath stickers.  I thus suspected a screw under the 'Toshiba' sticker under the laptop, but there wasn't one.  The next possible location was under the keyboard.  So, I pried out some of the keys and look between them for a screw or two.  None there either.  (BTW, the screws on laptop keyboards come off easily using a flat head screwdriver.  Just wedge the screwdriver under a key and apply a little force upwards and it will unclip.  To put it back you should align the clip correctly and press it in.)

I then noticed a little plastic strip just above the keyboard.  It was just clipped in place and came off easily.  Under it were two screws that held the top of the keyboard panel in place (while the bottom of the keyboard slid under the case).

DSC_7722 

The keyboard is connected to the motherboard via a thin wire strip (the white strip below).  The green strip controls the LED panel on the front (power, hard disk, charge indicator, etc.), the speakers and also the pointer buttons (left and right click).

DSC_7724 

I next had to remove the top of the case, but it appeared to be wrapped around the LCD hinge.  It seemed like I had to get the LCD panel out to get the case to open but that didn't seem possible since there were no accessible screws on the hinge.  After spending around 10 minutes on this, I realized that all I needed to do was open the laptop all the way until the LCD was horizontal like below.

DSC_7727 

As you can see, the screen hinges tuck into the case sleeves at the ends and one in between.  With the top of the case removed, the insides of the laptop was in plain view.

DSC_7730 

On the top left is the heat sink under which is the CPU and just to the left of it is the fan providing a good air flow over the CPU and GPU.  (The GPU - NeoMagic - is on the motherboard with a thin heatsink above it, above which is the CPU daughter board, above which is the heatsink that is visible above).  Just below the heat sink, in the image above, is the hard disk.  The gray rectangular box on the top right is the modem and below that the PCMCIA adapter.  Between the modem and the heat sink is the sound card.  The green thingy's on the bottom right with red wires streaking from them back to the motherboard are the NiMH batteries for the CMOS.

Next, I needed to get the LCD panel out, but I noticed the hinges for the laptop cover went under the motherboard.  So, even though I didn't want to remove the mobo, I had to, so that mounting into the picture frame would be easier without the hinges jutting out.  So, I removed the daughter boards for the modem and audio, detached the LCD cables, had to remove the CPU heatsink and the CPU board beneath it (since it had screws under it that affixed the mobo to the base) and the fan.  Then, after unscrewing all the screws holding the mobo to the case and some meticulous unclipping, I had the motherboard free of the base (seen below with the hard disk plugged in and without the CPU heatsink).

DSC_7742 

I plugged in the hard disk, connected a keyboard and the power adapter for a quick check to ensure everything was still in working condition.  Besides, a few errors (since I had the CMOS battery unplugged), it booted fine.

DSC_7738 

Next, I had to get the LCD panel out of its casing.  Almost all laptop screens have little stickers around the edge of the case and on the front, in the same color as the laptop case.  These little stickers conceal the screws that hold the case in place.

DSC_7747 

I removed these stickers, unscrewed the screws and with some more unclipping using a flat head screwdriver, the casing was out.

DSC_7748

A few more screws to get the inverter [*] and hinges out and the LCD panel was free of its casing.

DSC_7753

There are two cables that come off the LCD panel.  The top flat strip that connects to the top of the panel, is for the video signal and the bottom cable (to the right above) is the power cable that goes through the inverter (the flat circuit strip connected to the base of the LCD panel) to the lamps that power the LCD backlight.

Now that I had the mobo out, I considered mounting it into the photo frame as-is, but I decided against it.  The laptop cases are well designed to optimize airflow using the fan and it keeps the CPU (and GPU) from overheating.  Since the picture frame would be running 24x7, getting the cooling right was important.  Thus, I decided to mount the mobo back into the laptop base.  It also makes mounting into the picture frame easier imo, since you don't have to devise ways to mount the mobo, affix the hard disk, mount the fan to the frame to provide airflow, etc.

With the LCD panel out of its case, the next step was finding a suitable frame and mounting the laptop base and the LCD panel into it.

 

[*] LCD panels have fluorescent lamps that power the backlight.  These lamps are powered by AC (alternating current).  The power to the motherboard is DC (direct current), thus the need for an inverter to convert the DC to AC.

28/03/2005

DIY Digital Picture Frame - The software

Once I had the laptop booted into XP, the next step was getting the right software on it - for rendering the photos and to help me manage it.

I started off with Google's Picasa (which is what I envisioned using since I started this project).  A slight overkill since all I need is a slideshow viewer, but I love its alpha-blended transitions.  Unfortunately (for me), Picasa uses DirectX to render the images and the video card on my laptop (an old NeoMagic) doesn't support fullscreen DirectX rendering.  Despite the 1024x768 resolution, the images are rendered in a 640x480 box.  Bummer!

I tried the slideshow screensaver that Windows XP ships with.  It seemed nice, but despite configuring it to render fullscreen, it doesn't do it (!) and further, it doesn't render the image centered on the screen.  The image is always at a random offset.  I think it does this to prevent screen burn-in if the slideshow has only one image.  But, either disable this "feature" when I have more than one image in the slideshow or let me decide - what if I want to burn-in my favorite image onto my screen?!  And, when I select "100% of the screen" for the "How big should pictures be?" setting, I expect it to be 100%!  Lame!

I then tried various shareware and freeware before settling on IrfanView.  It has a decent slideshow viewer although without cool transitions a la Picasa.  I went ahead with IrfanView, but once I had the picture frame mounted and had it running for a few days, I wasn't too happy with it.  Primary reasons were not being able to auto-update the slideshow image list and the inability to start the slideshow from command line, thus requiring me to manually launch it each time I power cycled the picture frame.  The lack of a smooth transition effect between images also started to bother me (being able to see the image render top down wasn't so nice).  Before venturing into writing my own slideshow viewer, I Googled once more and found gPhotoShow, a free slideshow screensaver.  This had all the features I was looking for.  It can load images off a remote file share and it also has the option of refreshing the image list after each run.  Thus, to add or remove images from my picture frame I just have to add or remove it from the shared folder on my desktop PC.  It has a plethora of transition effects, but unfortunately, the Picasa-like fade-in transition, which I wanted, was too slow for my CPU.  I ended up chosing a similar one that was non-blended but much faster.  Lastly, since it is a screensaver, I can have it launch within a minute of powering on the picture frame (without manual intervention).  gPhotoShow is what my picture frame is currently running and I am happy with it.

Next up was software for remote administration.  I didn't want to unmount the picture frame off the wall and connect a keyboard and mouse to tweak it or to install the latest security patch.  I also wanted the remote administration software client to simultaneously display whatever the picture frame was rendering, so that tweaking was easier.  Windows XP ships with Remote Desktop which would've fit the bill, except, the PC requiring administration needs to initiate the session (for security reasons).  This obviously won't work for a picture frame.  If setup as a Terminal Server (remote administration), then I could've established the session remotely without the initiation, but in this mode, Remote Desktop switches the window station on the PC being administered, to the login screen.  Thus, the laptop wouldn't be rendering what I was seeing on my remote desktop client.

I had used AT&T's VNC many years back, which would allow me to have the client on my desktop PC render whatever was being rendered on my picture frame.  Googling for VNC gave me many potential VNC clients.  After reading about and trying a few of them, I settled for TightVNC - it had good reviews and good protocol optimizations.  I set it to run as a service on my picture frame and enabled password protection for remote client connections.

Now that the laptop had all the software I needed, I was ready to dismantle it.

27/03/2005

DIY Digital Picture Frame - The laptop

After a week of patient waiting, the well-packed package finally arrives via FedEx.  I open it and inspect the contents.  All items as stated in the eBay listing were there and it seemed to be in good physical condition as well.

I connect the power adapter and power it on, expecting either a DOA system or to hear weird beeps and system errors.  Instead, I hear the hard disk spin up with a rather loud whine, it POSTs well and starts booting into Win98!  Aha!  The hard disk wasn't as bad as stated in the listing.  Once it boots up, I inspect the LCD and it is in great condition - no scratches, no dead or hot pixels and it has good colors and brightness.  I next run scandisk and find only one bad sector - the rest of the disk was fine except for the loud whine (it sounded like a jetliner a hundred yards away).  I check sysinfo to find it has a 266MHz CPU (not 233MHz as stated in the listing) and 192MB of RAM (not 128MB as listed).  So far it seems like a great piece (much better than I had expected).  My first buy off eBay has been a good one and a pleasant experience overall - including PayPal.

After being ready to have a picture frame powered by DOS, now that I had a fully functioning laptop, I couldn't stand running it on 98.  So, I connect the CDROM drive and upgrade to XP, plug in an old WiFi [*] adapter I had lying at home and install the myriad SPs and security patches.

Here it is once it had booted into XP:

DSC_7721 

[*] I didn't include the cost of the WiFi adapter nor XP in my budget since I had these lying at home.  If I didn't have XP, I would've happily used Windows 98 (or DOS or Linux).  If I didn't have a WiFi adapter I would've either bought one off eBay or lived without it.  The WiFi adapter I have is a Cisco Aironet that I had bought 3 years back for my wife for $225!  You can find a used one on eBay for $50-$70, though the Cisco's are expensive compared to other manufacturers.

21/03/2005

DIY Digital Picture Frame - Buying off eBay

I was initially looking for laptops (and laptop parts [*]) in my CPU speed range - 166MHz to 350MHz - made by any of the manufacturers (IBM, Toshiba, NEC, etc.)  This gave me a large number of items that was on my watchlist and it was getting unwieldy.  Thus, I decided to narrow down to a particular model (this approach worked for me, but it does reduce the choices and thus the potential bargains.)  I picked the Toshiba Tecra 8000 as the laptop model to focus on.  Why?  It had a CPU that was in the speed range I was looking for, it had a 1024x768 native resolution, 12.1" active-matrix LCD panel and a large enough disk.  Further, I had seen these laptops in the past and knew its capabilities.

([*] I continued looking for laptop parts despite the associated shipping costs hoping to find a broken laptop for cheap that I could fix with the right part and still come within my budget.  Doing this across various laptop models can get unwieldy real fast, thus my decision to focus on the Toshiba Tecra.)

My eBay watchlist now had Tecra 8K motherboards, CPUs, disks, laptop bases, memory, etc. that I tracked, until I found two laptop bases (i.e. laptops without the screen) that looked interesting.  They had 266MHz CPUs, 128MB of RAM and a CDROM drive (no hard disk) and the seller had photos of the base working with an external monitor attached (proving that the video worked).  I chose a laptop without the LCD panel hoping to buy the laptop base and then finding a good deal on an LCD panel (a few of which were on my watchlist).  By now, I was working things in my head about selling some of the parts I wouldn't need for the picture frame (modem, sound card, etc.) back on eBay and recouping the cost, thus achieving my budget of $100.

The bidding on the items was to close 2 days later with one closing at 10.30pm and the other an hour later - perfect timing for me.  So, I created a PayPal account and two days later at 10.15pm I entered my first bid only to be outbid instantly.  I re-bid and ditto.  I re-bid and this time it sticks.  Then, I wait hitting refresh for the next 10+ mins.  As it reaches the minute mark, my baby starts crying and my prioritization logic kicked out eBay in favor of the little one.  I run upstairs, console the baby and put her back to sleep and rush downstairs but its too late.  The item sold for $46.10 - a great price!

An hour later I am on the second item with 30 seconds left and the bidding hits a feverish pace.  I keep getting outbid and it was nerve racking to get a bid in.  I finally got a price that stuck - $57 odd - but that was soon outbid and all I could do was try to get a bid in without luck.  The item sold for around $77 - not to me.  I started Googling for utilities to help me auto-bid on eBay and then found out that eBay does auto-bidding by increment amount to the maximum you set.  Darn!  I guess I should've at least read how bidding works on eBay before bidding on an item.  How stupid of me - I would've "won" that $46.10 laptop.  I bid on a few other items (motherboards and CPUs) following this, but didn't get them at the price I was looking for.

All this time, I was looking for items that were 2-3 days away from closing.  I instead decided to look for items that were just listed with the hope of "sniping" them before it reached the nerve racking bid frenzy stage.  eBay has an option called "Bid Now" that sellers can use to have the item be sold instantly without an auction, for the Bid Now price that the seller has set.  Here, I hoped to find items that sellers wanted to sell quickly at bargain prices.

Here, I notice interesting items being listed and disappearing within hours as somebody picked them at the Bid Now price.  I spend the next two nights looking for something of interest and then find 6 complete Tecra 8K laptops that were just listed by a seller.  Four of them with a Bid Now price of $110 and 2 on open auction with an opening price of $220.  The four laptops though, had non-working hard disks as stated on the listing.  But, besides that, the seller assured that it was in working condition, had a 233MHz CPU, 128MB RAM, a CDROM drive and a good LCD panel.  So, I quickly do the math to find out what my effective price would be once I sold the parts I didn't want and it fit within my budget.

By this time, 2 of them were already sold.  Wow!  So, I quickly bid on one of them at the Bid Now price and I was the "winner"!  (BTW, I did Google the seller despite the good eBay ratings and found that it was a PC leasing company that was profitable and in good standing, before I decided to buy the item.  Yeah, as I said, I am the paranoid types.)

The total cost for the laptop including shipping was $120.

20/03/2005

DIY Digital Picture Frame - Getting a feel for eBay

The specs I had in mind for the picture frame was a 500MHz+ CPU, a 10"+ LCD panel capable of at least 1024x768 with at least 64MB of RAM, a small hard disk (5GB+) and with onboard WiFi or a PCMCIA slot for WiFi.  The WiFi was optional, though ideal, so I could administer it without plugging in cables or taking the frame down.  The hard disk too, I thought, I could live without if it instead had a CDROM drive that I could boot off of.  For this, and for the picture frame I had a budget of $100.  I really did think that I could a laptop with similar specs for $80 odd and I hoped to get some bargain picture frame and matte for the remaining $20.

With this in mind, I started my quest on eBay.  I have to admit that I have never bought or sold anything off eBay in the past.  I didn't have an eBay or PayPal account.  Luddite?  No.  Just paranoid of buying something from someone I don't know and would potentially never meet.  Though, I have in the past bought at least one item (a Logitech webcam) off an auction site - uBid - but that was because of the safety of it being sold by a recognized retailer, rather than Joe Schmoe from somewhere in Texas (not that there is anything wrong with anybody named Joe or with Texas).

Anyways, to my utter dismay, I saw that most working laptops with the specs I had in mind were selling for $400+.  Even complete laptops that clearly said "does not power on" were selling for $150+.  Dejected, I started looking for laptops that fit my budget.  And, I didn't find a 300Mhz, not a 200MHz, but 486's!  What?!

With that dose of reality, I started to reconsider my options.  I looked into booting up into DOS and having some DOS app to render my images (forget about WiFi and all that.)  I look at Passive Matrix displays instead of Active Matrix and I consider running WinCE on the 486.  None of them are appealing for various reasons - picture quality, feasibility, etc.  I then consider getting an LCD panel and figuring out how to drive it.  I search on eBay for LCD panels and find them selling for around $70 (close to my price point), but driving it is another story entirely.  At this point, I leave the project on the backburner hoping to find a better alternative.

I restarted my quest, this time looking for laptop parts that I could reassemble.  This sounded like a good option as all I really needed was a motherboard (with CPU), an LCD panel and a drive (CD or HDD) to get going.  So, I started foraging for motherboards, laptop base units (laptops without the LCD panel) and other peripherals.  The problem with this approach was that even if the base price of the required items fit in my budget, once I added shipping costs, it skyrocketed.  I realized how some sellers were making money by inflating the shipping price ($5 item with $20 shipping).  I continued looking and even considered reassessing my budget, but I labored on.

I decided to look at a range of laptop types and get a feel for how the bidding works and what prices they fetch, hoping to spot and snag a bargain.  I no longer was looking for a 500MHz CPU, but was ready to buy one at 166MHz (that should be enough to render pictures I convinced myself.)  At 166MHz I could get a Thinkpad within my budget.  Though, the problem with older laptops (in the 166MHz range) was the lower display resolution and/or color depth.  But, something was better than nothing, so I started watching items in the 166MHz to 350MHz range.

I created an eBay account and started watching for items in this range that were closing their bids around midnight (10pm-1am).  This gave me time to watch them after work hours and after everybody (including my baby) had gone off to sleep.  I added items that looked interesting in my watch list and watched how the sell price swayed from the opening price.  I tried to gauge the price it sold at vs perceived quality of the item, price vs number of bids, opening price, etc.  I had a few search terms that I queried for, but primarily consisted of working motherboards, CPUs (166Mhz - 350Mhz), laptops with broken LCDs and just LCD panels.

I spent a couple of weeks doing this and found similar items selling for widely different prices.  As they say on the streets of Bangkok, the right price is what you think it is worth.  Luck matters as well - finding the right item at the right time when not many others with similar interests are bidding on it.  The initial bids, the number of bidders or the opening price didn't have much bearing on what it closed at.  The quality (or lack thereof) of the item (as perceived by me) didn't stop people from buying it and buying it at prices higher than similar items of better quality.

Spending this time gave me a good feel for what to look for and what range an item would close at.  On to bidding for an item.

03/03/2005

DIY Digital Picture Frame

For the past 5 years I have been clicking digital photographs, first with a Nikon Coolpix 950 and now with a Nikon D100.  I post a few of them on my website to share with friends and family.  I also print some of them at Costco (nice prints and nice price), mostly at 4x6 and some at 8x10 and larger that I matte and frame to hang at home.  Though, framing pictures is expensive (especially if you want custom mattes) and also, there are only so many pictures you can hang on walls.

So, over the holidays last year, I was thinking of a better way to display the umpteen photos I click.  Thus, I had, what I thought was a bright idea  - take an old laptop, rip it open, reverse the LCD panel, mount it to a picture frame and have a slideshow app (like Picasa) shuffle through the pictures.  Googling it shortly thereafter humbled me that many others had a similar bright idea (including one done at Microsoft using a top of the line laptop - definitely something I can't afford.)

I set myself a budget of $100 to build the picture frame.  I was hoping to build one at this price using an old 500MHz laptop (yeah, I really thought I would get a 500MHz laptop with a 10"+ LCD panel for $80 odd - naive!)

Around two months later, I did complete the picture frame and it now hangs in my study at home.  It isn't powered by a 500MHz CPU, but I came very close to my initial budget (after accounting for some of the laptop parts that I plan to sell back), without sacrificing on quality.

This is what it looks like:

In the next few posts I will detail the process I went through - from getting a laptop to building the frame.