If you've been following this blog, then you know I've been writing cryptic snippets about a secret project. The secrecy was necessitated by the fact that this project was a gift for my wife and posting your plans for her gift to internet is not a good way to keep a secret. Her birthday is now passed, she is in possession of said item, and the secrecy can be diffused.
The gift: a DIY digital picture frame.
The project got its' start when my mother-in-law turned over to me a dead laptop, one that had died of a video card failure which was not economical to repair. This was quite unfortunate for her as the laptop had a 17" screen which I knew to be working perfectly fine. My response: do nothing with it for six years.
It was during a recent cleaning spree that I disassembled the laptop, scavenging for parts, and was able to completely remove the LCD panel from its' frame. I held in my hands a perfectly good panel and wondered, what would it take to make this into something useful?
I Googled around, talked to a friend, and thus was born my ambition to make a digital picture frame.
Problem one: I needed a way to plug a VGA, DVI, or HDMI signal into this panel. All I had was a mystery connector running out of the back of the pannel and that wasn't getting me anywhere. Upon advice from my friend, I found a place in China with an eBay store that sells a kit which plugs into the panel and provides a VGA and DVI port as input. Update 1 was made as a test of the kit shortly after I received it. I took the VGA out from my wife's computer and plugged it into the kit now connected to the panel. It worked; I was happy.
Problem two: I needed something to actually push the images up to the display, something like a really small computer. You know what? They make those. They go by the name "Raspberry Pi" (one of many products but this quite popular right now) and for not much money, I could have a computer slightly larger than a deck of cards with an HDMI output I could use to put images up on the display. The Pi's default OS is a Linux variant and I would need a way to make it display images from a folder of my choice on the screen in a slide-show fashion. The command-line program fbi fits the bill perfectly. Update 2 was my testing of the Raspberry Pi running fbi on a folder of test images. The display being used was our TV; the Pi has an HDMI and composite video output but no DVI or VGA.
Which brings us to problem three: putting the pieces together. The Raspberry Pi runs off of 5V, the display driver kit runs off of 12V. I needed to covert the HDMI output of the Pi to DVI or VGA. I wanted to add wireless network connectivity to the Pi but that required using a powered USB port as the power available on the Pi was widely documented to be inadequate for such an application. This is systems integration and the devil is in the details. How does this signal get there? What voltage needs to be here? What type of connector is needed here? Will this piece communicate with that? I spent several hours playing with different configurations and wirings and paper and when I physically put the pieces together, I ended up with this: Update 4.
In addition to the wireless network connectivity (which allows my wife to add and remove pictures from the pool the frame will display), I had the ambition to include a motion sensor that would turn the display on and off based on the presence of people. Again, more design decisions and playing around to try to figure out what would work best. Update 3 was a test of how low a voltage could be used on the display driver kit; it says it needs 12V but it worked at 9V and I'm pretty sure the voltage I'm using right now is a bit below 8V.
My plan was to write a little bit of code for the Pi that would read the sensor, keep track of how long it was since motion had been detected, and after a pre-programmed time, kill power to the display driver kit and effectively shut the display off. All of this required a bit of external hardware and Update 5 was the completed circuit I constructed to facilitate this. (This is the blank brown board in Update 4 now filled-in.) Oh, and the wonderful frame, I didn't make that. I took the display into Hobby Lobby and had them make a custom-sized shadow box frame.
There were glitches, set-backs, unexpected complications along with way that I'll fill in when I write about the full technical details in a forthcoming post, but the system is up and working as I write this. My wife loves it and is duly impressed. She thinks there is a market for something like this and so do I; my ambitions go beyond what I've built here. Maybe down the road I'll upgrade the system and see if I can make some of these other ideas a reality. Always more to do than I have time or money to try.
Wow. I'm impressed! This is much cooler than I expected.
ReplyDelete