3 libam7xxx is an Open Source library to communicate via USB with projectors and
 
   4 Digital Picture Frames based on the Actions Micro AM7XXX family if ICs.
 
   6 libam7xxx makes it possible to use these devices as USB displays on
 
   7 non-Windows Operating Systems like GNU/Linux or Android/Linux just to name
 
   8 a few, and on non-PC platforms like for instance mobile phones, tablets or
 
  11 The first driver supporting these devices was _acerc11xdrv_ from Reto Schneider:
 
  12 https://github.com/rettichschnidi/acerc11xdrv
 
  14 Another project with the same purpose is _acerc110_ from Thomas Baquet:
 
  15 https://github.com/lordblackfox/acerc110
 
  19 An overview of some AM7XXX chips (AM7211A AM7212 AM7212P AM7318 AM7213D
 
  20 AM7213V) can be found in http://www.actions-micro.com/dpf_psg.pdf
 
  22 An example of datasheet illustrating the functionalities of such ICs (AM7531)
 
  23 is at: http://wenku.baidu.com/view/543c8b4d852458fb770b56ee.html
 
  27 The devices supported by libam7xxx use USB bulk transfers and a simple packet
 
  28 based protocol to exchange data and commands to and from a host system and the
 
  31 Devices based on Actions Micro/Action Media designs generally use the USB
 
  32 VendorID +1de1+, and they can have two operational modes:
 
  34  - USB Mass Storage mode (e.g. ProductID: +1101+)
 
  35  - Generic bulk data transfer mode, or Display mode (e.g. ProductID: +c101+)
 
  37 On recent GNU/Linux systems the switch from Mass Storage mode to Display mode
 
  38 is performed automatically by
 
  39 http://www.draisberghof.de/usb_modeswitch/[USB_ModeSwitch], or can be done
 
  40 manually with the command:
 
  42  $ sudo usb_modeswitch \
 
  43    --default-vendor 0x1de1 \
 
  44    --default-product 0x1101 \
 
  45    --message-content 55534243087052890000000000000cff020000000000000000000000000000
 
  47 Alternatively, on systems where libusb works but 'usb-modeswitch' is not
 
  48 easily available, the switch can be performed using the 'am7xxx-modeswitch'
 
  49 example program from libam7xxx.
 
  51 Examples of devices based on AM7XXX are:
 
  53   - Acer Series C pico projectors (C20, C110, C112):
 
  54       * http://www.acer.it/ac/it/IT/content/models/projector-c
 
  55       * http://support.acer.com/product/default.aspx?modelId=3888
 
  57   - Philips/SagemCom PicoPix projectors (PPX 1020, PPX 1230, PPX 1430, PPX
 
  58     1630, PPX 2055, PPX 2330):
 
  59       * http://www.philips.co.uk/c/pocket-projector/179840/cat/
 
  60       * http://www.sagemcom.com/EN/products/image-sound/pico-video-projectors.html
 
  63       * http://www.kabelmanie.cz/miniprojektor-cel-tec-mp-01/
 
  65   - Top-Height/TEC PP700
 
  66       * http://www.ishopiwin.com/en/appliances-electronics/electronics/projectors/pico-projector-pp-700.html
 
  69       * http://www.royaltek.com/index.php/pju-2100-pico-projector
 
  71   - Aiptek PocketCinema T25:
 
  72       * http://www.aiptek.eu/index.php/en/products/pico-projectors/pocketcinema-t25
 
  74   - Other unbranded projectors:
 
  75       * http://www.dealextreme.com/p/portable-home-office-mini-usb-2-0-lcos-projector-16-9-45019
 
  77   - HannSpree digital picture frames (but it has not been verified yet if
 
  78     those can be actually used as USB displays):
 
  79       * http://europe.hannspree.net/onweb.jsp?prod_no=3333333621&webno=3333333317
 
  80       * http://europe.hannspree.net/onweb.jsp?prod_no=33333337:4&webno=3333333317
 
  82 Maybe other devices reported as supporting "Display over USB (DoUSB)" like
 
  83 Acer K330 or some Optoma projectors could be used with this library, but
 
  84 this needs still needs to be verified.
 
  86 == Testing libam7xxx on MS Windows
 
  88 All the needed files need to be in the same location:
 
  90   - 'libusb-1.0.dll' from http://sourceforge.net/projects/libusbx/files/releases/1.0.11/Windows/libusbx-1.0.11-win.7z
 
  92   - 'libssp-0.dll' from MinGW;
 
  94   - 'am7xxx-modeswitch.exe', 'libam7xxx.dll' and 'picoproj.exe' which can all
 
  95     be built by following the instructions in the HACKING.asciidoc document
 
  98   - 'am7xxx-play.exe' and the '.dll' files from the 'usr/bin/' dir in libav-win32:
 
  99     http://win32.libav.org/win32/libav-win32-20120521.7z
 
 101 In order to use the device on MS Windows the WinUSB drivers must be installed
 
 102 for both the mass storage device and the display device:
 
 104   - Download http://sourceforge.net/projects/libwdi/files/zadig/[Zadig], it is
 
 105     a tool to install and replace USB devices filter drivers on MS Windows.
 
 107   - From Zadig, select the USB Mass Storage Device relative to the projector
 
 108     and replace the +USBSTOR+ driver with the +WinUSB+ one; keep in mind that
 
 109     from now on the virtual CD-ROM can't be accessed anymore until the
 
 110     +USBSTOR+ Driver is restored.
 
 112   - Run 'am7xxx-modeswitch.exe'
 
 114   - When the new (display) device shows up, run Zadig and install the +WinUSB+
 
 117 Now it is possible to run 'picoproj.exe' or 'am7xxx-play.exe' on Windows.