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


       sane-canon_dr - SANE backend for Canon DR-series scanners


       The  sane-canon_dr  library  implements  a  SANE  (Scanner  Access Now Easy) backend which
       provides access to some Canon DR-series scanners.

       This document describes backend version 37, which shipped with SANE 1.0.22.


       This  version  has  only  been  tested   with   a   few   scanner   models.   Please   see for the most recent list.

       This  backend may support other Canon scanners. The best way to determine level of support
       is to test the scanner directly, or to collect a trace of the windows  driver  in  action.
       Please contact the author for help or with test results.

       In  general,  the  larger  machines  (DR-4000  and up) which have been tested use a fairly
       complete protocol, with hardware support for many modes,  resolutions  and  features.  The
       smaller  machines  have  many  limitations,  like  missing horizontal resolutions, missing
       binary mode, always scanning full-width, etc.  There is code in  the  backend  to  address
       these  problems, but there seems to be no way to detect if they are required, so they must
       be hard-coded.


       Effort has been made to expose most hardware options, including:

       source s
              Selects the source for the scan. Options may include "Flatbed", "ADF  Front",  "ADF
              Back", "ADF Duplex".

       mode m
              Selects  the  mode for the scan. Options may include "Lineart", "Halftone", "Gray",
              and "Color".

              Controls scan resolution.

       tl-x, tl-y, br-x, br-y
              Sets scan area upper left and lower right coordinates. These are renamed t, l, x, y
              by some frontends.

       page-width, page-height
              Sets  paper  size.  Used by scanner to determine centering of scan coordinates when
              using ADF and to detect double feed errors.

       Other options will be available based on the capabilities  of  the  scanner:  enhancement,
       compression, buttons and sensors, etc.

       Additionally,   several   'software'  options  are  exposed  by  the  backend.  These  are
       reimplementations of features provided natively by larger scanners,  but  running  on  the
       host computer. This enables smaller machines to have similar capabilites. Please note that
       these features are somewhat simplistic,  and  may  not  perform  as  well  as  the  native
       implementations.  Note  also  that  these  features  all require that the driver cache the
       entire image in memory. This will almost certainly  result  in  a  reduction  of  scanning

              Requests the driver to detect the extremities of the paper within the larger image,
              and crop the empty edges.

              Requests the driver to detect the rotation of the paper within  the  larger  image,
              and counter the rotation.

       swdespeck X
              Requests  the  driver  to  find  and  remove dots of X diameter or smaller from the
              image, and fill the space with the average surrounding color.

       Use 'scanimage --help' to get a list, but be aware that some options may be settable  only
       when another option has been set, and that advanced options may be hidden by some frontend


       The configuration file "canon_dr.conf" is used  to  tell  the  backend  how  to  look  for
       scanners, and provide options controlling the operation of the backend.  This file is read
       each time the frontend asks the backend for a list of scanners, generally  only  when  the
       frontend starts. If the configuration file is missing, the backend will fail to run.

       Scanners can be specified in the configuration file in 4 ways:

       "scsi CANON DR"
              Requests backend to search all scsi busses in the system for a device which reports
              itself to be a scanner made by 'CANON', with a model name starting with 'DR'.

       "scsi /dev/sg0" (or other scsi device file)
              Requests backend to open the named scsi device. Only useful if  you  have  multiple
              compatible  scanners  connected  to  your system, and need to specify one. Probably
              should not be used with the other "scsi" line above.

       "usb 0x04a9 0x1603" (or other vendor/product ids)
              Requests backend to search all usb busses in the system for  a  device  which  uses
              that vendor and product id. The device will then be queried to determine if it is a
              Canon scanner.

       "usb /dev/usb/scanner0" (or other device file)
              Some systems use a kernel driver to access usb scanners. This method is untested.

       Besides the 'scsi' and 'usb' lines, the configuration file supports the following 'option'

       "option buffer-size [number of bytes]"
              Set  the number of bytes in the data buffer to something other than the compiled-in
              default of 4MB. Large values may cause timeouts or hangs, small  values  may  cause
              slow scans.

              Note:  The  backend  does  not  place  an  upper bound on this value, as some users
              required it to be quite large. Values above the default are  not  recommended,  and
              may crash your OS or lockup your scsi card driver. You have been warned.

       "option vendor-name [string of text]"
       "option model-name [string of text]"
       "option version-name [string of text]"
              These  options  can  be  used  collectively  to override the values provided by the
              scanner, or to provide the values when the scanner cannot.

       "option padded-read [0|1]"
              Some scanners prepend all data transmitted to  host  with  12  bytes.  Enable  this
              option if the scanner fails to respond to commands.

       Note: 'option' lines may appear multiple times in the configuration file.  They only apply
       to scanners discovered by the next 'scsi/usb' line.


       The backend  uses  a  single  environment  variable,  SANE_DEBUG_CANON_DR,  which  enables
       debugging output to stderr. Valid values are:

              5  Errors
              10 Function trace
              15 Function detail
              20 Option commands
              25 SCSI/USB trace
              30 SCSI/USB detail
              35 Useless noise


       This  backend  was  entirely reverse engineered from usb traces of the proprietary driver.
       Various advanced features of the machines may not be enabled. Many machines have not  been
       tested. Their protocol is unknown.


       The various authors of the sane-fujitsu backend provided useful code
       Yabarana Corp. provided significant funding
       EvriChart, Inc. provided funding and loaned equipment
       Canon, USA. loaned equipment
       HPrint provided funding and testing for DR-2510 support
       Stone-IT provided funding for DR-2010 and DR-2050 support
       Special  thanks  to:  Alejandro  Imass,  Andre  Shimakawa,  Martijn  van Brummelen, Thanos
       Diacakis and Junren Shi for testing and feedback.


       sane(7), sane-scsi(5), sane-usb(5)


       m. allan noah: <kitno455 a t gmail d o t com>

                                           26 Jan 2011                           sane-canon_dr(5)