KitcheNET is a project which aims to provide an easy method to reuse obsolete laptops and desktops as a low power, limited feature, dedicated internet appliance for home use in say a kitchen.
Inspired by the whole Chumby sensation, I began searching for a cheap and easy solution to getting some level of internet connectivity in my kitchen. It needed to be small, quite and out of the way. I was essentially looking for a thin client or kiosk to the Internet.
Initially I was assuming this device would have to be based on a mini-itx-like board and an LCD monitor, both which are more expensive then just buying a Chumby or real Internet Appliance.
However, It wasn’t until I read “Give and Old Laptop New Life with Cheap (or free) Projects” on LifeHacker did I think to consider just using my old Dell Latitude CPx for this. Specifically the digital picture frame instructable.
I figured with the display panel flipped I could mount it upside down underneath my kitchen cupboards. Currently we have a hideous, vomit-beige GE spacesaver clock-radio mounted there that I hate. Not only does it look ugly, but it only gets one radio station.
But that’s really besides the point since all the radio stations around Flint, Mi are absolutely atrocious. And this is about piping personalized music stations, like Pandora, into my kitchen .
*I apologize for the quality of these photos in advance. The G1 has a great OS, but a terrible camera.
The first thing I did was find out if a tiny linux distro would even run on this thing. I knew Ubuntu runs on it, rather sluggishly, so I did a quick wikipedia of the more mature mini-distros out there.
At first I tried Damn Small Linux and I was pleasantly surprised at how insanely fast this OS was. Even the version of Firefox they had on it was pretty fast ( for FireFox ). But unfortunately I really wanted Flash support for my Pandora stations and getting it on DSL was more of a pain then i was willing to deal with.
Next was PuppyLinux. It was about twice as big as DSL but had GTK-2 libraries and support for Adobe Flash. Firefox was a bit slower than DSL but still much faster then Windows. Plus it was very user friendly for those of us who get annoyed by Linux’s level of “user assumed knowledge”.
After testing sound, wi-fi, FireFox and flash I knew I found my OS.
I wanted the most minimalistic version of puppy to cut down on all unneccesary fat so I downloaded Barebones Pup 4.1.2 and added FireFox and Adobe’s Flash player to the OS.
What is really cool about PuppyLinux is its easy to get the whole OS installed on flash drive so you wouldn’t even need a CDROM or hard drive in the laptop. However, my laptop’s only USB port suffered prong damage during the last zombie hoard attack. So I had to suffice with a “Frugal Install” where it boots off a LiveCD and saves a subset of customized files to the hard drive.
Next I needed to make sure I could finagle Xorg to invert my screen. This took some time. Xorg worked perfect however it refused to flip my screen. So I ended up using the Xvesa server and flipping my screen on startup using xrandr. Not ideal since I couldn’t invert my mouse axis or take advantage of my video hardware but is close enough.
After switching to Xvesa I noticed my sound wouldn’t work after I would restart. After a little debugging I discovered it just wasn’t starting so I just added a start command to my startup script.
xrandr --output default --rotate inverted
So far so good. Everything seemed to work so the next step was to make sure I could mod my laptop screen to face outwards.
The keyboard screws gave me a tough time. Not only were there a ton, but they all seemed cemented in the laptop. Either that or I’m a weakling.
After getting most of the case off and disconnecting the LCD from the laptop, I noticed the ribbon cable wouldn’t reach the port on the board if the LCD was flipped. So I dismantled the LCD casing to see if there was any slack i could use.
I reassembled the case with an ugly looking ribbon cable sticking out.
Next I to pried the bottom hinges off their pivot points and swapped them. Then stuck the whole piece back into my laptop chassis. Perfect.
The LCD ribbon reached the board but i had to kind of do some careful bending and folding to get it routed correctly. After I to got relatively flattened down, I tapped it down to keep it out of the way.
I powered up the laptop just to make sure i didn’t damage anything in the process. So far so good.
I reattached the keyboard and moved on to the software.
The goal of the whole project was to basically have a FireFox/XUL-only machine. I didn’t care about any other application other than a good browser and Flash. Being a XUL developer, I whipped up a very small XUL application (KitcheNET) which is just a headless browser powered by an external XOXO standard outline made up of text and links.
I wanted to minimize the input required to the bare minimum so designed the browser to be worked by only a mouse. The browser title bar doubles as a one-way “next” button to load up the next XOXO linked item in the list. The thinking behind this externally managed playlist of webpages is that you don’t have to depend on the appliance itself to provide the interface for management.
After getting the basic KitcheNET software developed and installed, I added it to my startup script so it starts soon after X does and the screen is inverted.
I ended up having to cut a little 3/4 inch piece of board to space the laptop from the bottom of the cupboard because it didn’t give me enough room for the power and PS/2 plugs.
I straightened the hangers and bent them across the keyboard portion of the laptop so they would mount against the laptop with no slack.
I snipped and fashioned the ends into a circle with needle-nose pliers.
After a little careful placement I got the hangers mounted to the board with the laptop underneath.
After that the rest was a breeze. I mounted the board and laptop underneath my cupboards and velcro’d power pack next to it.
So far so good. I’ve been noticing a few bugs here and there, particularly with flash. Sometimes when I switch to on my my items with flash the software would die and I’d have to restart it.
Other then that I’d say this was a pretty successful prototype.
What i would like to do is take a closer look at some other mini-linux distros and window managers such as TWM to manage a single dedicated window for the KitcheNET software.
It would be ideal to have a single liveCD which does everything for a user and just prompts them for a username account for a web portal or a straight url holding their XOXO feed.
Some other features and thoughts i had about the KitcheNET XUL software:
Please feel free to email me (bryan AT bluelinecity DOT com) regarding this project.