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
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
for a quick demo now try running:
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:
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.