Using a Parrot DF3120 Picture Frame as a Status Display

The Parrot DF3120 is a rather old 3.5″ LCD picture frame with a 320×240 64K colour display, nothing to shout about but there are a few things that make it a bit more interesting. For starters it has built in bluetooth, USB, an SD card reader, a tilt sensor, a light sensor and three buttons on the back. The CPU is an ARM9 based Samsung s3c2412 running at 266 mhz and there is 8MB RAM and 32MB Flash, best of all it has long ago been hacked to run Linux.

Unfortunately they don’t seem to be sold new any more and eBay seems the only place they sometimes come up, they are cheap though, I picked a brand new one up for £10 + postage.

Here is how I have set one up to connect to a Linux box via USB for use as a status display. The picture to the right shows it running htop on a Raspberry Pi but there is nothing Pi specific here.

Quick install instructions:

First install the U-boot bootloader on the Parrot:

1. Switch on the frame without any SD card inserted, with a USB cable connecting it to your PC.
2. When it shows up, mount the device somewhere (not the partition), e.g. mount /dev/sdc /mnt/hd
3. Create a directory on the USB storage device called ‘update’.
4. Copy parrotDF3120.plf to the ‘update’ directory you created.
5. Leaving the power connected and the frame on, unplug the USB cable.
6. You should see four squares appear on the screen, the top left one will be blue and the others green. This means the firmware has been updated correctly.

Prepare an SD card for the Linux OS:

The card needs one partition, eg. sdb1
Write minifs-full-ext.img to the partition not the device with dd, eg. dd if=minifs-full-ext.img of=/dev/sdb1

Usage:

When turning the screen on as normal you will still go into the original firmware for displaying pictures so you aren’t losing anything in this process, U-boot only gets run if you press and hold the centre and left buttons while turning it on. After a few seconds you should see a black screen with the Tux logo in the top left corner.

Now you need to log into the screen via the Linux box you want to use it as a display for, connect the USB lead and run:

ifconfig usb0 172.16.61.3 netmask 255.255.255.0 up
telnet 172.16.61.1

for a quick demo now try running:

plasma

You should see swirly coloured patterns on the DF3120.  Do a Ctrl-C to quit.

To get the htop display in the picture above I am using VNC. To do this you will need to install a VNC server on the host Linux box and customise what you want to run on start up in ~/ .vnc/xstartup
eg. for the htop screen shown I am opening an xterm with the following command: /usr/bin/xterm -bg black -fg white -hold -e htop

Now start the VNC server with:

vncserver -geometry 320×240 :1

then once logged into the screen run:

SDLvncviewer 172.16.61.3:1

You should now see the frame showing your chosen display.

I’ve since found a nice blog post on doing this over Bluetooth which could be useful in some cases.

7 thoughts on “Using a Parrot DF3120 Picture Frame as a Status Display

  1. Too bad these are rare to find. Nathan, does it have serial input? Maybe the BT can be bypassed and the serial connection used? I am asking because hooking up a RFM12B to serial board to the DF3120 would make a nice bundle

  2. Hi,
    very intersting and very well explained in simple terms!
    I’m going to do the same thing!
    But there’s is somtething annoying : can’t the parrot start automaticaly linux without to have to press the 2 keys while tuning it on? (without a serial cable if possible…)
    Thanks!

  3. Ok, i found it *** but dangerous ***, and no wait for 5s in uboot, no more access to the original firmware, but boot quickely on power on to linux <2s), connected from telnet to the parrot in busybox (be sure u-boot.bin is present in / !!!!!!!!) :
    cd /
    flash_eraseall /dev/mtd0
    nandwrite -p /dev/mtd0 u-boot.bin

    That's all…
    the source for this method :
    https://sites.google.com/site/repurposelinux/df3120/editing-uboot-and-unbricking-after-a-ram-upgrade
    i applied this method but without adding ram and without modify the u-boot.bin present in /
    it works fin with the busybox downloaded from the same site (it did not work with on compiled by myself!!??)

  4. I am really struggling with preapring the sd card for the minifs-full-ext.img file. I am on a mac and am following instructions for those based around installing raspberry pi on a sd card but using the minifs-full-ext.img instead of the raspberry one. But when I try booting the frame I get four green squares. (Installing the bootloader worked fine though I got the blue in the top left and 3 green). Is there a specific format that I need to have the sd card in?

  5. Hi Joe, The trick is it needs to be written to the partition (an SD normally has one partition) not to the device, when you write an image for the Raspberry Pi you are writing to the device which images the whole thing including partitions. Unfortunately I don’t know how you do this on a mac as I’m a Linux guy but hopefully it will give you a pointer to find the solution.

  6. Nathan, this was a very informative and easy to follow article, thanks!

    Unfortunately I am having a problem. When I press the two buttons the screen goes black BUT does not show a picture of Tux. Can anyone help?

Leave a Reply

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.