Hacking the philips picture frame

A photo of the Philips 7FF1AW picture frame
The Philips 7FF1AW picture frame.

The plot

I recently gave to my wife a philips 7FF1AW picture frame as her Christmas present.

This little beast is able to contain around 150 photos, depending on the jpeg settings used. Its display is a 720x480 LCD.

Connecting the frame

I use Linux on my home computers, and I quickly wondered how to fill the frame with pictures.

Once you connect the frame through usb, a new scsi-like device is available. To my surprise, there is no partition presented by the frame, so that one must mount /dev/sda directly.

Loading the frame

Normally, one is supposed to drop the pictures in the top-level directory and let the frame do the resizing.

For various reasons, I quickly wondered if I could not perform the whole crop and resize business myself. I resized some pictures, and had a look more in-depth at the frame directories.

The layout of the files in the frame is the following:

   `-- DCIM
       `-- 100FRAME
           |-- DPD_0001.JPG
           |-- DPD_0013.JPG
           `-- DPD_0014.JPG
If you directly "drop" your picture under DCIM/100FRAME with a DPD_XXX.JPG name, they are indeed useable by the frame. (Note that firmware 1.51 wants the names in caps, or it will make a copy.)

But... sadly, they are not considered by the frame for its diaporama. You have to manually tell it to add them to the diaporama. Slow, and painful! Definitely not a solution.


After some reverse-engineering, I found some way to prepend normal jpeg files with the correct header, so that the frame recognizes them as beeing in the diaporama.

Et voila! No more manual operation required. Everything can now be scripted.

Wrapping it all together

I wrote this little script that resizes a given jpeg, and prepends it with the little binary header that makes it part of the diaporama without manual intervention.

You can use that script to convert any jpeg, and put them in DCIM/100FRAME/DPD_XXX.JPG directly.

Note that for the script to work, you need to copy the binary header that gets prepended to all jpeg files.


Feedback from 'Bob'

'Bob' tried this hack with his 7FFICMI model frame and it works for him:
From: Bob Date: 12/16/07 00:02 Subject: Hacking the phillips picture frame I read your write-up: http://vincent.stehle.free.fr/frame/ I purchased a different phillips model, but your hacks applied to that one as well. Thanks for the write-up and the script, it was nice not to have to install their software and use windows. Bob From: Bob Date: 12/27/07 04:26 Subject: Re: Hacking the phillips picture frame Here is the model from the box: 7FFICMI Happy New Year. Bob

Thanks for your feedback Bob, and sorry for being so slow updating the page!

Copyright © 2001-2008 Vincent Stehlé ( vincent.stehle@free.fr).
GNU Free Documentation License 1.2