IPFire and the AX206 display

Thanks to the lcd4linux project, Linux also offers the possibility to control LC display - e.g. to display status information. Some years ago, a very cheap digital picture frame was sold on mail-order houses like Pearl. Using an alternative firmware, this device is also capable of being controlled by lcd4linux. Since then, there have been a lot of similiar devices with this chipset called ax206. When you're looking for this chipset or "dpf lcd4linux", you should find comparable picture frames. A couple of years ago, I bought some of them and during the spring-cleaning I thought, I could use them again...

Because of my recent IPFire migration, I thought that I could use this for an status display. Fortunately, IPFire offers appropriate packages in their own package management PakFire.

Patching the frame

First of all, an alternative firmware needs to be flashed to the frame to use it along with lcd4linux. On Sourceforge there is a collection called dpf-ax - the following two files are needed:

  • dpf-ax_*.tgz
  • dpf-ax_firmware_*.zip

The first archive contains Tools for patching the frame, the second file contains various firmware files. Beside the ax206 display, also other frames (dpf, digital picture frame) are also supported. The project offers a list of supported devices in their wiki: [click me!]

By the way: CentOS and Red Hat Enterprise Linux 6 and 7 are not suitable for patching the frame. I think the libraries might be too old; so I've been using a current Ubuntu version for the next steps.

After the installation of Ubuntu (or a comparable distribution) USB and Python development headers need to be installed. Also, the archives need to be extracted:

1# apt-get install libusb-dev python-dev
2# tar xf dpf-ax_*.tgz
3# unzip dpx-ax_firmware_*.zip
4# cd dpf-ax

Afterwards, the frame is connected using USB and put into the bootloader mode. To do this, my devices requires the RESET button to be pressed and hold before pressing the MENU button and releasing both afterwards. As a result, the display turns black and is recognized like below:

 1# dmesg
 2...
 3[1227170.370053] usb 2-1: New USB device strings: Mfr=2, Product=1, SerialNumber=3
 4[1227170.370069] usb 2-1: Product: BL206v1.0.0
 5[1227170.370085] usb 2-1: Manufacturer: BUILDWIN
 6[1227170.370099] usb 2-1: SerialNumber: 000001
 7[1227180.381395] hid-generic 0003:1908:3318.0001: timeout initializing reports
 8[1227180.386240] hid-generic 0003:1908:3318.0001: hiddev0,hidraw0: USB HID v2.01 Device [BUILDWIN BL206v1.0.0] on usb-0000:00:0f.4-1/input0
 9
10# lsusb
11...
12Bus 002 Device 006: ID 1908:3318 GEMBIRD

The following commands put the device into a flashing mode for installing the firmware:

1# cd tools
2# ./hiddetach
3Detaching dpf at 1-1.2:1.0... done

For my device, the firmware is installed with the following command:

 1# ./restore.py ../src/fw_taobao.bin -f
 2Found AX206 DPF (bootloader)
 3Manufacturer: Macronix
 4Size        : 2 MB
 5Erase full flash...
 6Flashing sector 0...
 7Flashing sector 1...
 8Flashing sector 2...
 9Flashing sector 3...
10Flashing sector 4...
11Flashing sector 5...
12Executing applet..

For other devices, the firmware might be detected and installed automatically with the following command:

1# ./restore.py

After installing the firmware, the frame is detected as below:

1# dmesg
2...
3[1227170.370053] usb 2-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
4[1227170.370069] usb 2-1: Product: USB-Display
5[1227170.370085] usb 2-1: Manufacturer: **hackfin** [1227170.370099] usb 2-1: SerialNumber: 001
6
7# lsusb
8...
9Bus 002 Device 005: ID 1908:0102 GEMBIRD

Now, only a valid lcd4linux configuration is needed for controlling the frame.

IPFire configuration

AX206 display controlled by lcd4linux

To control the display under IPFire, the following software packages are needed:

  • dpfhack
  • lcd4linux-*-dpf

The packages can be installed using PakFire.

I uploaded the configuration from the picture on the right on GitHub.

1# curl -k https://raw.githubusercontent.com/stdevel/ipfire-tools/master/dpf/lcd4linux.conf -o /etc/lcd4linux.conf
2# curl -k https://raw.githubusercontent.com/stdevel/ipfire-tools/master/dpf/ipfire.png -o /etc/ipfire.png
3# curl -k https://raw.githubusercontent.com/stdevel/ipfire-tools/master/dpf/dpf_traf.sh -o /etc/dpf_traf.sh
4# chmod 0600 /etc/lcd4linux.conf # /etc/init.d/lcd4linux start

AX206 display board

Finally, lcd4linux should display the appropriate informaiton. Depending on your network configuration, you might need to alter the device names in the configuration file - so, have a look in the /etc/lcd4linux.conf file. ๐Ÿ™‚

Long long-term usage, it is recommended to remove the frame battery - using a wire cutter and duct tape or a soldering gun. On the internet, there are some reports that the cheap battery might explode after some time. ๐Ÿ˜‰

Translations: