Steffest Digitale Pulptuur

Pimp your Picture Frame - part 1

a picture called imate_momento.jpg (click to enlarge)

Last week I bought one of those digital I-mate Momento Pictures frames from iBood.
As with most of the stuff you find on iBood, this item is part of some left-over stock because i-mate has decided to discontinue their picture frames service, but for a price of 50 euros, what can go wrong, especially as the frame sports a cool feature like Wifi!
Yep, it claims to load your images right of your local network or from the web.

As some reviews al ready prove to be very negative, I didn't expect much but in the end it's quite alright except for one mayor flaw: the thing doesn't load standard RSS feeds but instead relies on their propriety Momentum Live service to feed the device online content.
I could have lived with that except .... that service is discontinued :-)
Bummer, there goes my intention of having a cheap Picture frame for my mum to automatically show the latest updates pics of the kids ...

There are some ways to get the thing to connect to the web, but it involves tinkering with DNS-servers and mimicking the Momento live service with your own scripts but that's way too much trouble to be useful.

Still, I was intrigued and when that happens I know myself good enough to just pursue the possibilities or else it will be haunting my head for some weeks. Better to just get rid of it :-)

I decided I wanted a picture frame that not only loads pictures from an arbitrary RSS feed but also could show other "sidebar gadget" like content like twitter updates, resource monitors, textual RSS items ...
The momento frame does support Windows Sideshow, which means you can push little info snippets from your (windows) PC to the device to be displayed. This is very easy to setup and is also very easy to develop for, but it's also very limited as you have no control of the layout, the rate of updates or the amount of text that gets displayed.

In fact, the only thing the device does well is displaying jpg images - it IS a picture frame after all !
Luckily, loading pictures over wifi from your network works really well and is very easy to setup.
It works with the "shared media" function of Windows Media player - actually a pretty cool feature.
I hit another snag when Windows Media Player turned out to be notoriously flaky to update its media library when new pictures are being added so new items sometimes took several hours to show up ; so much for fast twitter updates :-)
After some experiments I found the solution: the Momento frame does store some pictures in its cache, but when a network connection is present it always fetches a fresh copy from your pc. Thank god for that as it means that when you update or replace an image keeping the same filename, the new picture get instantly loaded on the frame (the next time the playlist reaches that image)

Great! Now if I had a program that would update the same set of pictures with new stuff coming from my picture library AND the web, I was all set.
I didn't want to spend too much time with rendering textual items to images, after all, that's what HTML is for no?
If a screenshot of a webpage could be feed to the device, that would allow everything we need. 
Witness the birth of a new project: the "PictureFrame-o-matic" !

After some fiddling in Visual Studio I now have a program that

  • Can read standard RSS feeds
  • Takes any image enclosure it finds in the RSS, resamples it to 800x600 and stores it a folder, numbered with the name of the feed.
  • Can retrieve a screenshot of a  webpage and stores it as a jpg
  • Can combine 2 images (a webpage and a picture) with some overlay options to render some (web)content on top of the image.

the images are not added to the folder, but the existing images simply get replaced with new ones
the Momento device points to that folder and essentially displays the same playlist over and over again, only with updated pictures.

It works really well !
The layout is completely open as it is just HTML and/or flash content being saved as an image, the content is completely customisable as you can take any webpage or RSS feed as your source (e.g. news items or  Poetry lines, ...) and the rate of updates is instantly.

I'll leave it be for now, but it's certainly a project I want to continue some day.
There still are some drawbacks:

  • Webpages that require a login don't work (twitter e.g. so I had to create a custom page that shows my tweets from the twitter API)
  • Updates only work when your PC is on and the PictureFrame-o-matic program is running.
    The momento does have a good fallback system: if the PC is off or otherwise not reachable, it displays the last 50 pictures from it's cache.
  • it's a bit resource hungry for the hosting PC
  • It would be cool to integrate the existing windows sidebar gadgets but I have no idea (yet) how to accomplish that. (apart from taking a screenshot of the desktop and cropping it around the gadget, but that's lame)

Thing to do in the next future

  • create some dedicated webpages to be displayed on the device
  • create a website to configure each picture frame, setting what content should be displayed (which would allow you to configure the picture frame using your phone) sounds a lot like the interface i did for Tweetshirt.
  • post some screenshots
  • clean up the source code and post it here.
  • Maybe demo it on some barcamp or something (after all - the same engine could be used to feed the tweetshirt)

It's still not a good solution for my mum (as a PC has to be running all the time) but it's a nice gadget and I think this setup really gives a lame half-ass picture frame as the i-mate Momento a huge makeover.

On a technical side, Maybe this is the tipping point that I start liking .net and Visual Studio more then Delphi ... (never though I would say that)
It's just that pulling webcontent into your program, working with xml and juggling images around is soooooo much easier in .net then it is in Delphi. (sure, you can write .net in Delphi too, but let's not go there :-) )
Oh well ...

There, that's out of my system.
On to the next project.

Tags: Gadgets, in English, Programming, TwitterGeef je reactie (7)