There is a nice and cheap 320x240 DPF that can be used with your OpenWrt Box.
See some details at
http://tech.section5.ch/news/?p=68 and
https://forum.openwrt.org/viewtopic.php?id=30396
Step 1a – Flash your DPF (fast and easy Way, but windows required)
============================================
(German users see at http://www.vdr-portal.de/board18-vdr-ha … y-hacking/ )
Download http://freakshare.com/files/99m9ba9p/Pe … r.zip.html
The archive contains a program to flash the DPF, a patched firmware dump for portrait mode, a dump for landscape mode,
and a dump of the original firmware (if want to undo the DPF hack).
1. On windows start flash program
2. Connect your DPF (it's NOT recommended to use the cable delivered with the DPF due to bad quality)
3. press DPF's RESET button , keep it don't release it!
4. press MENU button and release RESET button
5. the display becames black AND the field "channel 1" of flash programmer becomes green
6. Check Settings of programmer: "Reset" is checked and "prgram" is selected
7. With "Browse" select desired firmware
8. Press "execute" , (select Winbond 25P16 if asked) and wait some minutes
9. When ready you'll see some nices picture.
10. Now you can press the menu buttom for about 2-4s and you'll enter a special BLUE SCREEN of your hacked DPF.
This screen is entered after some minutes automatically, too
Step 1b – Flash your DPF (LINUX required)
===========================
Download http://tech.section5.ch/files/dpfhack-0.12devel.tgz
Then
tar xzf dpfhack-0.12devel.tgz
cd dpf
make all
cd fw
Now we have to evaluate the DPF'S USB id: reconnect your DPF with usb (it's NOT recommended to use the cable delivered
with the DPF due to bad quality) ,select "connect with computer" via DPF menu and enter dmesg to get latest kernel msg output
fw> dmesg
[ 362.373699] sr1: scsi3-mmc drive: 40x/40x writer cd/rw xa/form2 cdda tray
[ 362.375448] sr 3:0:0:0: Attached scsi CD-ROM sr1
[ 362.378171] sr 3:0:0:0: Attached scsi generic sg3 type 5
fw>
For me "sg3" is the id I was looking for.
As test and to get a backup of your DPF original firmware try to dump it. This creates a new file full.bin:
fw> sudo python fulldump.py /dev/sg3
Opening generic SCSI device '/dev/sg3'
Manufacturer: Macronix
Size : 2 MB
Reading 200000 bytes...
The firmware hack is available as portrait mode (=default) and if you want to patch the landscape mode
you have to adapt the file profile.py and change the line with fw_pearl.ihx to fw_pearl_landscape.ihx
Now try to flash new firmware:
sudo python hackit.py /dev/sg3
Opening generic SCSI device '/dev/sg3'
Reading flash...
done
If you get an error like
No DPF found. Create a record or look for one
('20090504', 'Mar 27 2010\xff\xff\xff\xff\xff', 'ProcTbl5')
You have to edit profiles.py to adapt it to dpf's specific signature.
I had to change the Pearl profile signature from 'Mar 26' to 'Mar 27'
Otherwise you'll get
Opening generic SCSI device '/dev/sg3'
Reading flash...
done
Found matching version info
Identifier: pearl
Now patching. There is no 100% guarantee that your device will
work after doing this. You must never unplug the device from USB while
it is being updated.
Are you sure you take all risks and that you want to continue?
Press "Reset" and finally after pressing M-key for about 3s you'll enter a blue screen.
After reset , check the hack:
Press the menu button for about 2-3s and you'll enter a special BLUE SCREEN of your hacked DPF.
This screen is entered after some minutes automatically, too.
To undo the hack see step1a.
Step 2 - build your own package - lcd4linux r1184
=================================
Here we are: lcd4linux-r1184 and latest dpflib v0.2devel (released 03/2012 at sourceforge.net).
openwrt-dpf_r1184-2.tar.bz2
It’s running fine on my DPF, even with old firmware, larger fonts can be used, too !
I changed my lcd4linux.conf to
Display dpf {
Driver 'DPF'
Port 'usb0'
Font '12x16'
Foreground 'ffffff'
Background '000000'
Basecolor '000000'
Orientation 1 # Orientation value from 0-3
Backlight 5
}
Installation
-------------
Only if old lcd4linux-dpf is already installed:
Old extra dpflib package in libs is not required anymore and must be removed.
It’s recommend to delete old lcd4linux-dpf as well (at least all patch files)
rm -rf feeds/packages/libs/dpflib
rm -rf feeds/packages/utils/lcd4linux-dpf
Don’t forget to delete old “libdpf.a” in staging_dir/targetXYZ/usr/lib and staging_dir/targetXYZ/usr/include/dpf.h !
Otherwise just copy tarball to openwrt buildroot directory where trunk-dir is located and type
tar xjf openwrt-dpf_r1184-2.tar.bz2
Enter “make menuconfig” and check
[*]lcd4linux-dpf-->
with desired plugins.
Call “make”
or if already done try
make ./package/feeds/packages/lcd4linux-dpf/{clean,compile} V=99
pydpflib
=====
Above tarball openwrt-dpf_r1184-2.tar.bz2 also adds in section ->lang->python a new package called pydpflib.
This packages requires python but provides full python bindings to dpflib. When the package has been
built you'll find in ./build_dir/target*/pydpflib examples how to use it or unpack tarball located in your "dl"
directory. Look for "dpflib_c.py" resp. "dpflib_py.py"
You can upload jpg/png pictures onto your DPF screen directly or configure the backlight via python scripts.
Step 3 – Installation of LCD4Linux with dpf driver
================================
When ipk archive has been create (located in bin/.../packages/..) install it with opkg.
Following plugins are supported.
root@openwrt:lcd4linux -l
LCD4Linux 0.11.0-SVN-1092
Copyright (C) 2005, 2006, 2007, 2008, 2009 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
available display drivers:
DPF : generic hacked photo frame
available plugins:
cfg, math, string, test, time, apm, asterisk, button_exec, cpuinfo, diskstats, exec, event, fifo, file,
huawei, i2c_sensors, isdn, loadavg, meminfo, mpd, netdev, pop3, ppp, proc_stat, statfs, uname, uptime, w1retap
Some plugins could not be compiled due to uclibc dependencies of libm.
Same libs have to be installed manually:
opkg install libmpd
opkg install libiconv-full
opkg install libintl-full
The included configuration /etc/lcd4linux.conf still has to be optimized
Try one one these to start it
openwrt>lcd4linux -Fvv
openwrt>/etc/init.d/lcd4linux start
Have fun !
Feedback is welcome !
[last UPDATE: lcd4linux r1184-2 changes, pydpflib added]
(Last edited by irimi on 3 Apr 2012, 20:25)