/dpf-ax

Tools and firmware for AX206 photo frames, from http://sourceforge.net/projects/dpf-ax/

Primary LanguageAssembly

----------------------------------------------------------------------------
DPF remote display software distribution (dpf-ax)
----------------------------------------------------------------------------

This is a free software package to:

* Patch or reprogram digital picture frames (DPFs) based on the AX206 CPU
* Make them display system information using lcd4linux, VDR (Video Disk Recorder)
  and other linux based software.

This is a chaotically growing README. You'll have to gather some information
from here and there and probably use google, too. Sorry!


----------------------------------------------------------------------------
AX206 DPF firmware (also referred to as BSOH - blue screen of hack)
----------------------------------------------------------------------------

Read all the firmware details in src/README or src/README.developer

----------------------------------------------------------------------------
Firmware detection & flashing
----------------------------------------------------------------------------

You need:

- A proper Linux system with GCC, libusb-dev,
  Python 2 (note: Python 3 will *NOT* work!) and python-dev.

- The dpf-ax tools: dpf-ax_YYYYMMDD.tgz from http://sourceforge.net/projects/dpf-ax/files
  ("YYYYMMDD" is a timestamp - always use the newest one)

Usage
------

IMPORTANT: identify.py will put a copy of your dpf's firmware in the file
"tools/fulldump_TIMESTAMP.bin". It is strongly recommended to make a backup of 
this file, so you can re-flash the original firmware if something goes wrong.
Alternatively you can make a dump of the entire flash using the fulldump.py script.

LET ME SAY IT AGAIN: make a backup of your dpf's original firmware
                     before messing around!

1. Run 'make' to build the dpf access library, python modules and helpers.
   If you get an error that "usb.h" could not be found: install libusb-dev.
2. Connect your frame and enable USB transfer
   (Press "MENU" -> select "USB Connect", "Connect to PC" or whatever its called).
3. Wait a while and check dmesg for the /dev/sgX assignment (e,g. 'tail /var/log/syslog'.)
   Look for line containing something like .. Attached scsi generic sg2 type 5 .. --> X=2 here ;)
4. Go to the tools directory and run
   './identify.py /dev/sgX' as root.
   Replace 'X' with the number you found under 3.
5. If your dpf is supported, download the firmware package "dpf-ax_firmware_YYYYMMDD.zip" from
   http://sourceforge.net/projects/dpf-ax/files, extract it and use the fw_TYPE.bin
   that matches the TYPE identify.py detected.
6. Put your dpf in boot mode (press & hold MENU, press & release RESET, release MENU)
   and run as root
     ./hiddetach
     ./restore.py ../src/fw_<your DPF type>.bin -f

If your dpf is not supported, have a look at the picframe wiki at
http://picframe.spritesserver.nl/wiki/index.php/DPF_with_AppoTech_AX206
or you can try to contact me (superelchi) at sourceforge or post a request in
http://forum.doozan.com/read.php?9,10026

If restore.py is not working (or you prefer windows :-o), see tools/README.windows
for instructions howt to do the detection & flashing.

----------------------------------------------------------------------------
Building options
----------------------------------------------------------------------------

Verify that you have a decent development system (GCC, development libraries,
subversion -- if you want to build lcd4linux) installed.
  
You can build different targets, depending on your needs.

* The dpf access library, python modules and helpers:
  > make

* The curren SVN version of lcd4linux with dpf-ax support:
  You need an internet connection. because lcd4linux is pulled from their server.
  You might also have to install the package "pkg-config", or else the
  configure procedure will likely fail.
  > make lcd4linux

* The firmware for all known frames:
  Note: read src/README for more information about prerequisites for firmware building.
  > make firmware

* The full monty:
  > make all

----------------------------------------------------------------------------
Windows support
----------------------------------------------------------------------------

There is no Windows driver for hacked frames. Period.

But there is partial support for firmware detection and backup.
See tools/README.windows.

There is experimental Cygwin support. You need python and libusb-devel Cygwin
packages. Compile and install sg3_utils yourself because no Cygwin pacage is
available. To access DPF when it appears as a drive, run as Administrator
and specify the drive letter. To access DPF in bootloader mode, install
libusb-win32 filter driver for that USB device. There is no need to run
as Administrator for bootloader mode.

----------------------------------------------------------------------------
LCD4linux display notes
----------------------------------------------------------------------------
Usage:

* Configure lcd4linux: normally, the default settings will do. If you wish
  to use other drivers or cross compile, check build-dpf-lcd4linux.sh
  for configure options.

* Try it:
  > cd lcd4linux; ./lcd4linux -f ../dpf_128x128.conf -F

----------------------------------------------------------------------------
Notes about the lcd4linux dpf driver:

* Supported properties:
  - Property 'Backlight': Set the dpfs backlight/brightness.
    Values: 0-7 (0 = off, 7 = max).
  - Property 'Orientation': Set the dpfs *LOGICAL* orientation.
    Note: *PHYSICAL* orientation does not matter. Rotation is done in the driver.
    Value (height != width): 0 = landscape, 1 = portrait, 2 = reverse landscape, 3 = reverse portrait.
    Value (height == width): 0 = standard, 1 = rotate 90° CW, 2 = rotate 180°, 3 = rotate 90° CCW

---------------------------------------------------------------------------
Troubleshooting

If the lcd4linux build process fails, you may want to start over without
running the entire build procedure.
See build-dpf-lcd4linux.sh for the single steps. Right, this could also
be in a makefile to be more fool proof..

----------------------------------------------------------------------------
Features

For features of this firmware, see Changelog

----------------------------------------------------------------------------
Find updates, documentation and some help here:

http://sourceforge.net/projects/dpf-ax/
or
http://picframe.spritesserver.nl/wiki/index.php/DPF_with_AppoTech_AX206
(might be outdated)
or
http://ax206howtos.wikia.com/wiki/Main_Page
or
http://forum.doozan.com/list.php?9

For our german users, explanations can be found here:

http://geekparadise.de/2011/04/digitaler-bilderrahmen-von-pearl-als-statusdisplay-fur-dockstar/
(rather outdated)
or
http://www.vdr-portal.de/board18-vdr-hardware/board11-displays/109196-howto-pearl-dpf-easy-hacking/


(c) 3/2012, hackfin
    5/2013, superelchi