am7xxx: add quirks for devices not supporting some operations
[libam7xxx.git] / README.asciidoc
index 0c2af4a..ef981d4 100644 (file)
@@ -1,6 +1,6 @@
 = libam7xxx
 
 = libam7xxx
 
-libam7xxx is an Open Source library to communicate via USB with Projectors and
+libam7xxx is an Open Source library to communicate via USB with projectors and
 Digital Picture Frames based on the Actions Micro AM7XXX family if ICs.
 
 libam7xxx makes it possible to use these devices as USB displays on
 Digital Picture Frames based on the Actions Micro AM7XXX family if ICs.
 
 libam7xxx makes it possible to use these devices as USB displays on
@@ -8,9 +8,12 @@ non-Windows Operating Systems like GNU/Linux or Android/Linux just to name
 a few, and on non-PC platforms like for instance mobile phones, tablets or
 game consoles.
 
 a few, and on non-PC platforms like for instance mobile phones, tablets or
 game consoles.
 
-The first driver supporting these devices was acerc11xdrv from Reto Schnider:
+The first driver supporting these devices was _acerc11xdrv_ from Reto Schneider:
 https://github.com/rettichschnidi/acerc11xdrv
 
 https://github.com/rettichschnidi/acerc11xdrv
 
+Another project with the same purpose is _acerc110_ from Thomas Baquet:
+https://github.com/lordblackfox/acerc110
+
 == AM7XXX
 
 An overview of some AM7XXX chips (AM7211A AM7212 AM7212P AM7318 AM7213D
 == AM7XXX
 
 An overview of some AM7XXX chips (AM7211A AM7212 AM7212P AM7318 AM7213D
@@ -21,34 +24,57 @@ is at: http://wenku.baidu.com/view/543c8b4d852458fb770b56ee.html
 
 == Supported devices
 
 
 == Supported devices
 
-The devices supported by libam7xxx use USB bulk trasfers and a simple packet
+The devices supported by libam7xxx use USB bulk transfers and a simple packet
 based protocol to exchange data and commands to and from a host system and the
 AM7XXX chip.
 
 based protocol to exchange data and commands to and from a host system and the
 AM7XXX chip.
 
-Those with USB VendorID ''1de1'' are devices based on Actions Micro/Action Media
-designs, usually having two modes:
+Devices based on Actions Micro/Action Media designs generally use the USB
+VendorID +1de1+, and they can have two operational modes:
+
+ - USB Mass Storage mode (e.g. ProductID: +1101+)
+ - Generic bulk data transfer mode, or Display mode (e.g. ProductID: +c101+)
+
+On recent GNU/Linux systems the switch from Mass Storage mode to Display mode
+is performed automatically by
+http://www.draisberghof.de/usb_modeswitch/[USB_ModeSwitch], or can be done
+manually with the command:
 
 
- - USB Mass Storage mode (ProductID: ''1101'')
- - Generic bulk data transfer mode (ProductID: ''c101'')
+ $ sudo usb_modeswitch \
+   --default-vendor 0x1de1 \
+   --default-product 0x1101 \
+   --message-content 55534243087052890000000000000cff020000000000000000000000000000
+
+Alternatively, on systems where libusb works but 'usb_mode_switch' is not
+easily available, the switch can be performed using the 'am7xxx_mode_switch'
+example program from libam7xxx.
 
 Examples of devices based on AM7XXX are:
 
 
 Examples of devices based on AM7XXX are:
 
-  - Acer Series C pico projectors (C20 C110 C112 C120):
+  - Acer Series C pico projectors (C20, C110, C112):
       * http://www.acer.it/ac/it/IT/content/models/projector-c
       * http://support.acer.com/product/default.aspx?modelId=3888
       * http://www.acer.it/ac/it/IT/content/models/projector-c
       * http://support.acer.com/product/default.aspx?modelId=3888
-    
+
   - Philips/SagemCom PicoPix projectors (PPX 1020, PPX 1230, PPX 1430, PPX
   - Philips/SagemCom PicoPix projectors (PPX 1020, PPX 1230, PPX 1430, PPX
-    1630):
+    1630, PPX 2055, PPX 2330):
       * http://www.philips.co.uk/c/pocket-projector/179840/cat/
       * http://www.sagemcom.com/EN/products/image-sound/pico-video-projectors.html
 
   - CEL-TEC MP-01:
       * http://www.kabelmanie.cz/miniprojektor-cel-tec-mp-01/
 
       * http://www.philips.co.uk/c/pocket-projector/179840/cat/
       * http://www.sagemcom.com/EN/products/image-sound/pico-video-projectors.html
 
   - CEL-TEC MP-01:
       * http://www.kabelmanie.cz/miniprojektor-cel-tec-mp-01/
 
+  - Top-Height/TEC PP700
+      * http://www.ishopiwin.com/en/appliances-electronics/electronics/projectors/pico-projector-pp-700.html
+
+  - Royaltek PJU-2100:
+      * http://www.royaltek.com/index.php/pju-2100-pico-projector
+  
+  - Aiptek PocketCinema T25:
+      * http://www.aiptek.eu/index.php/en/products/pico-projectors/pocketcinema-t25
+
   - Other unbranded projectors:
       * http://www.dealextreme.com/p/portable-home-office-mini-usb-2-0-lcos-projector-16-9-45019
 
   - Other unbranded projectors:
       * http://www.dealextreme.com/p/portable-home-office-mini-usb-2-0-lcos-projector-16-9-45019
 
-  - HannSpree Digital picture frames (but it has not been verified yet if
+  - HannSpree digital picture frames (but it has not been verified yet if
     those can be actually used as USB displays):
       * http://europe.hannspree.net/onweb.jsp?prod_no=3333333621&webno=3333333317
       * http://europe.hannspree.net/onweb.jsp?prod_no=33333337:4&webno=3333333317
     those can be actually used as USB displays):
       * http://europe.hannspree.net/onweb.jsp?prod_no=3333333621&webno=3333333317
       * http://europe.hannspree.net/onweb.jsp?prod_no=33333337:4&webno=3333333317
@@ -56,3 +82,36 @@ Examples of devices based on AM7XXX are:
 Maybe other devices reported as supporting "Display over USB (DoUSB)" like
 Acer K330 or some Optoma projectors could be used with this library, but
 this needs still needs to be verified.
 Maybe other devices reported as supporting "Display over USB (DoUSB)" like
 Acer K330 or some Optoma projectors could be used with this library, but
 this needs still needs to be verified.
+
+== Testing libam7xxx on MS Windows
+
+All the needed files need to be in the same location:
+  
+  - 'libusb-1.0.dll' from http://sourceforge.net/projects/libusbx/files/releases/1.0.11/Windows/libusbx-1.0.11-win.7z
+
+  - 'libssp-0.dll' from MinGW;
+
+  - 'am7xxx_mode_switch.exe', 'libam7xxx.dll' and 'picoproj.exe' which can all
+    be built by following the instructions in the HACKING.asciidoc document
+    from libam7xxx.
+
+  - 'am7xxx-play.exe' and the '.dll' files from the 'usr/bin/' dir in libav-win32:
+    http://win32.libav.org/win32/libav-win32-20120521.7z
+
+In order to use the device on MS Windows the WinUSB drivers must be installed
+for both the mass storage device and the display device:
+
+  - Download http://sourceforge.net/projects/libwdi/files/zadig/[Zadig], it is
+    a tool to install and replace USB devices filter drivers on MS Windows.
+
+  - From Zadig, select the USB Mass Storage Device relative to the projector
+    and replace the +USBSTOR+ driver with the +WinUSB+ one; keep in mind that
+    from now on the virtual CD-ROM can't be accessed anymore until the
+    +USBSTOR+ Driver is restored.
+
+  - Run 'am7xxx_mode_switch.exe'
+
+  - When the new (display) device shows up, run Zadig and install the +WinUSB+
+    driver for it too.
+
+Now it is possible to run 'picoproj.exe' or 'am7xxx-play.exe' on Windows.