Coder Social home page Coder Social logo

dreamlayers / dpf-ax Goto Github PK

View Code? Open in Web Editor NEW
26.0 8.0 8.0 496 KB

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

Makefile 1.85% Shell 0.32% C 37.98% C++ 2.00% Python 16.04% Assembly 39.81% HTML 1.99%
photoframe lcd ax206

dpf-ax's Introduction

----------------------------------------------------------------------------
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

dpf-ax's People

Contributors

dreamlayers avatar korneliuszo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dpf-ax's Issues

Code modernization

I recently came across this project and I was noticing how reliant it is on legacy tool-chains and libraries. I was thinking of trying to update the code to work with current software so you don't need to setup a legacy environment just to use it all.

Specifically, I noticed that these 3 things are an issue:

  • libusb 0.1
  • Python 2
  • SDCC 2.9

@dreamlayers Would you be willing to accept PRs that attempt to address this?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.