Reducing the Kludge Factor
Like a lot of cheap electronics, the frame sports a fairly clunky user interface, so drilling down to the option to grab the image from the UPnP server requires about 15 clicks, and you must “re-drill” every time you turn on the frame. Not terribly onerous, but it made a kludgy project feel even kludgier. The RM-VL600 had several unused macro buttons, so I programmed a couple of them to reduce the number of button presses required to get the frame in order from 15 to two.
I was already using KDF’s Execute Script plug-in to launch scripts that display what the Squeezebox is playing on our web site, so I piggybacked on those scripts to launch the console application every time the Squeezebox powers up; powers down; and starts or stops playing. To serve up the images, I first used Windows Media Player 11 which includes a built-in UPnP server. However, it’s pretty limited in functionality and it’s picky about the folder from which you share your images. I ended up spending $20.00 for a copy of
Twonky Server. Twonky was a bit of overkill as it offered quite a bit more functionality than I actually needed, but at least it gave me some flexible sharing options.
Watching the visuals update as the Squeezebox changed selections was a very pleasing experience. It made it feel like we had a whole new Squeezebox. Almost like having a new Squeezebox Touch — minus the touch part, of course. And the fingerprints.
But my self-congratulatory gloating was to be short-lived …
What Is It With This Piece of Crap?!
It didn’t take long to realize that my clever little project still had a big problem. After happily churning away for a while, the frame would suddenly freeze on one image and no longer display updated content. The period of time it took for the freeze to occur seemed random — five hours one day and five minutes the next.
I spent the next couple of weeks banging my head against the wall trying to track down whatever bug there might be in my program that would result in this behavior. Ultimately, I came to the conclusion that the embedded software within the frame itself was buggy, at least as far as its wireless connection was concerned. I wasn’t sure if the problem was within the wireless adapter itself or the frame but it didn’t really matter because there was nothing I could do about the problem itself, and it was a real showstopper.
If I couldn’t get at the software inside the frame itself, I would have to tackle this problem from another angle. It appeared the only way to rectify the situation once the frame froze was to reboot it. So I set about coming up with a process to monitor the frame for freezes, and then reboot it if necessary.