Digital Picture Frames and Linux

I know what you are thinking. The title of this page seems rather silly. But I am not talking about the picture frames made of wood or metal, though the product I am talking about comes with frames made of wood.

One of the coolest gadgets you can connect to a Linux machine is the Pandigital DPF70-2, which is basically a media player built into a picture frame.

As shipped from the factory, the DPF70-2 can be used without a PC. You can connect a digital camera directly to the device, you can use memory cards from digital cameras or Linux workstations, or you can connect the device to a USB 1.1 or USB 2.0 port.

This particular device embeds 64MB of memory and is a USB mass storage device.

So what does this picture frame do? It displays JPEG images similar to KDE's Slide Show screensaver or the GNOME screensaver module that comes with the F-Spot photo management package. It plays AVI and standard MPEG movies similar to Xine media player. It plays MP3 files similar to media players such as XMMS, Banshee or amaroK.

…and it does all of this either manually with the controls behind the frame, or with the remote that comes with the package.

Media Types

Since the DPF70-2 is essentially a media player wish USB mass storage capability, you can transfer JPEG, MPEG and MP3 files to/from the device as you would with any other USB mass storage device.

Like all such media players, the disk is formatted with the FAT32 filesystem, which is supported by the vfat module.

The picture that appears in the frame is a widescreen format image, similar to a frame from a Widescreen DVD movie. This means that for images to be displayed properly, they must be sized to a 16 to 9 ratio, or 16 pixels width for every 9 pixels in height.

Of course, the player will resize the images to fit the screen. If images are not resized to the 16 by 9 ratio, they will be distorted when displayed.

I recommend using the GIMP to process images to be uploaded to the DPF70-2.

As for MP3 files, I recommend using LAME to encode files for uploading to the device.

Transferring Files

There are two ways to do this from a Linux machine.

The first is to use a memory card reader/writer. It does not matter what type of memory card you use as the DPF70-2 can read all the major memory card types. One advantage to transferring files this way is that the capacity of the player is limited to the size of the memory card rather than the 64MB of internal memory (provided the memory card can hold more than 64MB to begin with).

Having a memory card reader/writer also eliminates the need for a USB cable connecting the picture frame to your Linux machine, freeing the picture frame to be mounted anywhere, and freeing the USB ports for other devices.

Just be sure the memory cards are formatted for FAT32.

If you need to reformat memory cards

On Fedora Core, SimplyMEPIS, Red Hat Enterprise Linux, Ubuntu (and its variants), and other modern Linux distributions, simply insert the memory card to be formatted into the memory card writer.

When the icon appears, right click on the icon and select Format from the menu. When the dialog box appears, make sure you have FAT32 or vfat selected before proceeding with the formatting of the memory card.

If for some reason the graphical interface does not work on your system, open a terminal and type in the following (with the memory card in the writer, of course)

dmesg | less

and scroll down the list of messages until you find a set of lines that tell you that the card writer has been detected, such as this set of lines below.

Vendor: Generic Model: STORAGE DEVICE Rev: 0119
Type: Direct-Access ANSI SCSI revision: 00
usb-storage: device scan complete
sd 0:0:0:0: Attached scsi removable disk sda

When you come to the lines, press q to exit to the command prompt. The sda here indicates the device name for the card writer. In this case, you would use /dev/sda1 to access the memory card, and /dev/sda to format the card.

Then type mkdosfs /dev/sda (or whatever device name has been detected for your system) to format the memory card.

If successful, your memory card is then ready to use.

Alternate Way of Transferring Files

The other way is to connect a USB cable to the picture frame. Current Linux distributions should automatically detect and mount the picture frame (to the UNIX file system, not to the physical wall) as /media/disk (or some other directory of a similar name). An icon will then appear, and if you are using KDE, a dialog box will appear asking if you want to open a new window, or if you are using GNOME, a new window will automatically open (without asking).

If you are using WindowMaker, Blackbox, FVWM, or another window manager, you will have to manually mount the picture frame by opening a terminal, logging in as the root user, then typing mkdir /media/disk && mount /dev/sda1 -t vfat /media/disk.

To transfer files on a command line, cd to the directory where your photographs are stored, then type cp *.jpg /media/disk (or whatever directory the picture frame has been mounted).

If you are using Konqueror (KDE) or Nautilus (GNOME), you can simply select the photographs you want to upload, and, holding down the Control key, drag them to the window representing the directory where the picture frame has been mounted.

Holding down the Control key while dragging ensures that the photographs will be copied rather than moved, which is the default action for this type of drag and drop event.

Unmount the Picture Frame When You Are Finished

When you are done transferring images to the DPF70-2, be sure to unmount the picture frame from the filesystem, or you will corrupt the memory on the picture frame, and the frame will fail to function.

To do this from KDE or GNOME, close the window representing the /media/disk directory, right click on the icon, then select unmount or Remove Safely (depending on your distribution and desktop implementation), wait for the icon to be removed from the desktop, then disconnect the USB cable.

If you are using a memory card, do the above procedure for the memory writer device, then insert the memory card into the picture frame.

if you have used a command line, login as root, then type umount /dev/sda1 or whatever device name you are using for your picture transfers.

Physically Mount the Picture Frame and Enjoy

If you have successfully transferred your media to the picture frame, you can then mount the frame, or place it wherever you want, then take the remote and start the show, all without tying up the Linux machine for slideshows or media playback.

Other Picture Frames

Since this page was first written, PanDigital, Kodak and others have come out with various digital photo frames. These frames work very much the same as the DPF70, and vary in features. Hence, the HOWTO presented here should work with any digital photo frame.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License