Provided by: libsane-common_1.0.22-7ubuntu1_amd64 bug


       sane-pixma - SANE backend for Canon PIXMA Multi-Functions Printers
                    MP, MX, ImageCLASS and I-SENSYS series


       The  sane-pixma  library implements a SANE (Scanner Access Now Easy) backend that provides
       access  to  Canon  PIXMA  multi-function  devices  (All-in-one  printers).   The   backend
       implements  both  USB  interface  and  Network  LAN interface using Canon's BJNP protocol.
       Currently, the following models work with this backend:

              PIXMA MP140, MP150, MP160, MP170, MP180, MP190
              PIXMA MP210, MP220, MP240, MP250, MP260, MP270
              PIXMA MP360, MP370, MP390
              PIXMA MP450, MP460, MP470, MP480, MP490
              PIXMA MP500, MP510, MP520, MP530, MP540, MP550, MP560
              PIXMA MP600, MP600R, MP610, MP620, MP630, MP640, MP710
              PIXMA MP800, MP800R, MP810, MP830, MP960, MP970, MP980, MP990
              PIXMA MX300, MX310, MX330, MX340, MX350
              PIXMA MX700, MX850, MX860, MX870, MX7600
              PIXMA MP700, MP730, PIXMA MP750 (no grayscale)
              ImageCLASS MF3110, MF3240, MF4010, MF4018, MF4120, MF4122
              ImageCLASS MF4140, MF4150, MF4270, MF4350d, MF4370dn, MF4380dn
              ImageCLASS MF4660, MF4690, MF5770, MF6550, D480
              I-SENSYS MF4320d, MF4330d
              CanoScan 8800F

       The following models are not well tested and/or the scanner sometimes hangs  and  must  be
       switched off and on.

              PIXMA PIXMA MP760, PIXMA MP780

       The  following  models may use the same Pixma protocol as those listed above, but have not
       yet been reported to work (or not). They are declared in the  backend  so  that  they  get
       recognized and activated.  Feedback in the Sane-dev mailing list welcome.

              PIXMA MP375R, MP740
              PIXMA MX320
              ImageCLASS MF5630, MF5650, MF5730, MF5750, MF8170c

       The backend supports:

              * resolutions of 75, 150, 300, 600, 1200, 2400, and 4800 DPI (some maybe buggy),
              * color and grayscale mode, as well as lineart on certain models,
              * a custom gamma table,
              * Automatic Document Feeder, Simplex and Duplex.
              * Transparency Unit, 24 or 48 bits depth.

       The  device  name for USB devices is in the form pixma:xxxxyyyy_zzzzz where x, y and z are
       vendor ID, product ID and serial number respectively.  Example: pixma:04A91709_123456 is a

       Device  names  for BJNP devices is in the form pixma:aaaa_bbbbb where aaaa is the scanners
       model and bbbb is the hostname or ip-adress.

       This backend, based on cloning original Canon drivers protocols, is in a production stage.
       Designed  has been carried out without any applicable manufacturer documentation, probably
       never available. However, we have tested it as well as we could, but it may  not  work  in
       every situations. You will find an up-to-date status at the project homepage. (See below).
       Users feedback is essential to help improve features and performances.


       Besides "well-known" options (e.g. resolution, mode etc.) pixma backend also provides  the
       following options for button handling, i.e. the options might change in the future.
       Button  scan  is  disabled  on  MAC OS X due to darwin libusb not handling timeouts in usb
       interrupt reads.

              This option can be used in combination with scanadf(1) and  scanimage(1)  in  batch
              mode,  for example when you want to scan many photos or multiple-page documents. If
              it is enabled (i.e. is set to true or yes), the backend  waits  before  every  scan
              until  the user presses the "SCAN" button (for MP150) or the color-scan button (for
              other models). Just put the first page in the scanner, press the button,  then  the
              next  page,  press  the  button  and  so on. When you finished, press the gray-scan
              button. (For MP150 you have to stop the frontend by pressing Ctrl-C for example.)

       button-update button-1 button-2
              These options are interesting for developers.  To  check  button  status:  (1)  set
              button-1   and   button-2   to   zero,   (2)   set   button-update   (Its  type  is
              SANE_TYPE_BUTTON.), (3) get button-1 and button-2.  If the result is not zero,  the
              corresponding button was pressed.


              The static library implementing this backend.

              The  shared  library  implementing  this  backend  (present on systems that support
              dynamic loading).

              The backend configuration file (see also description of SANE_CONFIG_DIR below). The
              files contains an optional list of scanners. Normally only scanners that can not be
              auto-detected because they are on a different subnet shall be listed here. If  your
              OS  does  not  allow  enumeration  of  interfaces  (i.e.  it  does  not support the
              getifaddrs() function) you may need to add your scanner  here  as  well.   Scanners
              shall be listed as:

              where  host  is  the hostname or IP address of the scanner, e.g. bjnp:// or
              bjnp:// Define each scanner on a new line.


       USB scanners will be auto-detected and require no configuration.


       The pixma backend supports network scanners using  the  so  called  Canon  BJNP  protocol.
       Configuration  is  normally not required.  The pixma backend will auto-detect your scanner
       if it is within the same subnet as your computer if your OS does support this.

       If your scanner can not be auto-detected, you can add it to the pixma  configuration  file
       (see above).


       The  sane  pixma  backend  communicates with port 8612 on the scanner. So you will have to
       allow outgoing traffic TO port 8612 on the common subnet for scanning.

       Scanner detection is slightly more complicated. The pixma backend sends a broadcast on all
       direct  connected  subnets  it  can  find  (provided your OS allows for enumeration of all
       interfaces). The broadcast is sent FROM port 8612 TO port 8612 on the broadcast address of
       each  interface.   The  outgoing  packets  will  be  allowed  by the rule described above.
       Responses from the scanner are sent  back  to  the  computer  TO  port  8612.   Connection
       tracking  however  does  not  see a match as the response does not come from the broadcast
       address but from the scanners own address.  You will  therefore  have  to  allow  incoming
       packets TO port 8612 on your computer.

       So in short: open the firewall for all traffic from your computer to port 8612 AND to port
       8612 to your computer.

       With the firewall rules above there is no need to add the scanner to the pixma.conf  file,
       unless the scanner is on a network that is not directly connected to your computer.


              If  the  library was compiled with debug support enabled, this environment variable
              controls the debug level for this backend. Higher value increases the verbosity.

              0  print nothing (default)
              1  print error and warning messages (recommended)
              2  print informational messages
              3  print debug-level messages
              11 dump USB/BJNP traffics
              21 full dump USB/BJNP traffic

              Setting to a non-zero value will enable the support for experimental  models.   You
              should also set SANE_DEBUG_PIXMA to 11.

              This  environment  variable  specifies the list of directories that may contain the
              configuration file.  Under UNIX, the directories are separated by  a  colon  (`:'),
              under OS/2, they are separated by a semi-colon (`;').  If this variable is not set,
              the configuration file is searched in two default directories: first,  the  current
              working  directory  (".") and then in /etc/sane.d.  If the value of the environment
              variable ends with the directory separator character, then the default  directories
              are  searched  after  the  explicitly  specified directories.  For example, setting
              SANE_CONFIG_DIR to "/tmp/config:" would result in  directories  "tmp/config",  ".",
              and "/etc/sane.d" being searched (in this order).


       sane(7), sane-dll(5),,

       In  case  of trouble with a recent Pixma model, try the latest code for the pixma backend,
       available in the Sane git repository at:

       You can also post into the Sane-devel mailing list for support.


       Wittawat Yamwong, Nicolas Martin, Dennis Lou, Louis Lagendijk

       We would like to thank all testers and helpers. Without them we could not be able to write
       subdrivers for models we don't have. See also the project homepage.

                                            8 Jan 2010                              sane-pixma(5)