The Photo Frame
My grandmother asked for a picture of my son, and that’s how it began.
She loves him so much, it’s endearing. It would seem that with every passing generation, she loves the next one more. Since he is the first of the third one down that she can see growing up, she is absolutely smitten with him.
I chose 3 photographs and printed them out, forgetting to render them in AdobeRGB so the colors looked terribly faded and I chose too large a size to be of any practical use. But she had them at least, one in a picture frame and the others curling up on her living room cupboard.
As happens easily with photos of children, they are now outdated. He couldn’t even walk back then, and his face has changed. I figured she would need new photos soon, if she still wanted to feel that closeness that pictures can bring her. I was already dreading the whole process of getting that digital image on paper and delivered at her house in a timeframe small enough to not make me feel like a failure of a grandson.
Just how easy would it be to have one of those digital photo frames for her, I thought. But then I’d have to remember to carry a memory stick with updated pictures, and we all know how easily those get lost. The probability of her being stuck with the same old photos for months was still high. So how about one that updated over the internet? They’ve been making these horrible things for ages now, and although their popularity has all but faded, surely some clever little employee somewhere must have come up with the idea of putting a wifi adaptor inside one of them?
Turns out, they did. And they must have gotten promoted for it because the minimum price for a single wirelessly connected photo frame was over 1,000 euro. One thousand euros. Two thirds of my monthly pay for a screen and a PCB with an antenna.
So what does one do when one really wants a thing but it is too expensive?
Except there isn’t a physical product anywhere in sight, so on to plan C:
This seemed like the perfect thing for a Raspberry Pi to do. My friend has experience with those so I ran the idea past him, and his superior intellect enabled him to do what I could not:
Google the fucking thing. Within seconds he came up with a step-by-step guide on how to make exactly what I was looking for.
For the initiates: The Raspberry Pi is a fully equipped computer in a tiny, tiny package. It is literally smaller than the palm of your hand and if you run 4 tabs of Google Chrome on it, it crashes and dies. It does literally nothing until you install an operating system on a micro-SD card and shove it in. And even then, it does very little. But what it does, it does well.
The idea was that I write a few scripts in Python and have them run at set times. One for running a slideshow when the Pi boots up, and one for checking a public server with pictures on it, downloading onto or removing from the SD card as required, and rebooting the slideshow.
Due to the outdated guide, missing information and fumbling on my part, none of the above steps worked.
I don’t know how to code. I don’t know the first thing about Linux or Python. Tracing the problem and correcting the mistakes was like reverse-engineering Simplified Chinese using a guide written in Mandarin. The simplest issues took me hours upon hours to fix. I wish I could say I learned a lot, but if you find an oak tree by looking at a picture of it, can you really say you understand the forest?
But I pushed on, and I made it work. Minutes before leaving for the christmas party where I would show it to her, I managed to finish it. I had gotten a few cryptic tips from friends, but I did it by myself. It was hard not to launch off into a fully detailed explanation about vague error logs when I showed her the end result. She understood none of it but she was very excited that she was seeing pictures of Little K.
But then there was another problem: The touchscreen I got with the Pi was tiny and ugly. I wanted this thing to stand proudly on her cupboard, not lie limply with cables showing. At first I wanted to install it behind her TV so that she could bring up the photos using the remote, but my sister pointed out that switching inputs was probably too technical for her. My sister is smart that way. I am not.
The only option was the hard way: Make a filly equipped frame from scratch. I found a 9-inch screen on beetronics.be, I suppose these are mainly used for watching DVDs in a car or something.
It comes with 2 years of warranty, but I just laughed at that and drew my trusty screwdriver set. I wanted to check if I could cram my Pi inside the considerably large case of the screen. After brutally yanking out the built-in speakers and car connectors, it appeared that I could. If I wanted to make this frame look awesome, I couldn’t have its brain hanging out.
I hired my girlfriend and her education as a wood worker to be my sidekick, and after a brief stop at the DIY store, set off for a 4-hour marathon in the workshop at the city theater. I just knew that having one of those at work would come in handy sooner or later.
I can’t really express how jealous I am of her skill and know-how when it comes to wood. I listen with interest when she explains how to recognise wood types, and saw her point when she told me how she would overcome the challenges we were facing. Together, we made a simple but elegant wooden frame that fits snugly onto the screen, hiding the plastic beautifully.
I wanted access to the USB ports on the Pi after cramming it in there, so I used a Dremel tool to cut out part of the back of the picture frame. It seemed like it would work perfectly but I got royally fucked by the bulky HDMI cable. The plug was huge and the cable stiff, but it had been the only option if I didn’t want to spend more on the video cable than the computer itself- I shit you not. HDMI cables are a global scam.
In the end I managed to fit everything in the case, but not without bending cable plugs, pressing PCBs together painfully hard (no short-circuits, though) and something I had vowed not to do: Maiming my beloved Pi. Its connector pins were just in the way too much and I had to cut 6 of them off, coincidentally the ones used for attaching a touchscreen so I could forget about ever recycling that Pi for personal use. And even then, it only fitted in crookedly. Good thing the case is well hidden because it looks monstrous now. Whoopsie.
I realised too late that a few of those pins could maybe serve as a video output, allowing me to solder wires from the Pi to the screen. Instead, I had to run the HDMI cable to the connector on the outside of the case. The cable running along the outside is the only thing that still bothers me, but I hope that I’ll be able to hide it behind the wooden frame.
Despite this, the finished product is a thing of beauty. About 20 hours of work and 250 euro poured into what must be the best christmas gift I have ever made someone. Now, literally seconds after I upload a brand new photo from my camera in Czech Republic, it will show on the screen in her living room. I think my grandmother will love it, and perhaps for once, I will not fail in my being a considerate grandson.
I call that a win-win. Minus 250 shmuckers.
Expect photos (and more boasting) on Facebook soon.