sane-genesys(5)           (4 Jul 2012)            sane-genesys(5)

          sane-genesys - SANE backend for GL646, GL841, GL843, GL847
          and GL124 based USB flatbed scanners

          The sane-genesys library implements a SANE (Scanner Access
          Now Easy) backend that provides access to USB flatbed scan-
          ners based on the Genesys GL646, GL841, GL843, GL847 and
          GL124 chips.  At present, the following scanners are known
          to work with this backend:

               Canon LiDE 35/40/50/60/100/110/120/200/210/220/700
               Medion MD5345/MD6228/MD6274
               Panasonic KV-SS080
               Plustek OpticBook 3600
               Pentax DSmobile 600
               Syscan/Ambir DocketPORT 467/485/487/665/685
               Visioneer OneTouch 7100/Strobe XP100
               Xerox Travel Scanner 100, OneTouch 2400

          This is stable software for supported models. But if you
          test new or untested scanners, keep your hand at the
          scanner's plug and unplug it, if the head bumps at the end
          of the scan area.

          If you own a scanner other than the ones listed above that
          works with this backend, please let me know this by sending
          the scanner's exact model name and the USB vendor and device
          ids (e.g. from /proc/bus/usb/devices, sane-find-scanner or
          syslog) to the sane-devel mailing list. Even if the
          scanner's name is only slightly different from the models
          mentioned above, please let me know.

          If you own a scanner that isn't detected by the genesys
          backend but has a GL646, GL841, GL843, GL847 or GL124 chip-
          set, you can try to add it to the backend.

          To give correct image quality, sheet fed scanners need to be
          calibrated using the calibration sheet sold with the scan-
          ner. To do calibration, you must insert this target in the
          feeder then start calibration either by passing the --cali-
          brate option to scanimage or by clicking on the available
          'calibrate' button in the 'advanced options' in a graphical
          frontend. The result of the calibration is stored in a file
          in the home directory of the user doing it.  If you plug the

     Page 1                       Plan 9             (printed 5/26/22)

     sane-genesys(5)           (4 Jul 2012)            sane-genesys(5)

          scanner in another machine or use it with another account,
          calibration will have to be redone, unless you use the
          --calibration-file option.  If no home directory is defined,
          USERAPPPROFILE will be used, then TMPDIR or TMP.  If none of
          these directories exist, the backend will try to write in
          the current working directory. Flatbed scanners also make
          use of the calibration file as a cache to avoid calibration
          before each scan. Calibration file name is the name of the
          scanner model if only one scanner is detected. In the case
          of several identical model, the file name will be the name
          of the logical USB device name. The expiration time manages
          the time a calibration is valid in cache.  A value of -1
          means forever, 0 means no cache.

          --lamp-off-time number
               The lamp will be turned off after the given time (in
               minutes). A value of 0 means that the lamp won't be
               turned off.

          --threshold percent
               0..100% (in steps of 1). Select minimum brightness to
               get a white point. Pixels with brightness below that
               value will be scanned as black.

          --brightness value
               -100..100 (in steps of 1). Set the brightness enhance-
               ment. 0 for no enhancement, negative values to decrease
               brightness, and positive values to increase it.

          --contrast value
               -100..100 (in steps of 1). Set the contrast enhance-
               ment. 0 for no enhancement, negative values to decrease
               contrast, and positive values to increase it.

          --disable-interpolation yes|no
               When using high resolutions where the horizontal reso-
               lution is smaller than vertical resolution, data is
               expanded by software to preserve picture geometry. This
               can be disabled by this option to get real scanned

          --disable-dynamic-lineart yes|no
               Disable use of a software adaptive algorithm to gener-
               ate lineart and rely on hardware lineart.

     Page 2                       Plan 9             (printed 5/26/22)

     sane-genesys(5)           (4 Jul 2012)            sane-genesys(5)

          --color-filter None|Red|Green|Blue
               When using gray or lineart this option selects the used
               color. Using a color filter will give a monochrome
               scan. CIS based scanners can to true gray when no fil-
               ter (None value) is selected.

               The lamp will be turned off during the scan. Calibra-
               tion is still done with lamp on.

               Clear calibration cache data, triggering a new calibra-
               tion for the device when the next scan will happen.

               Specify the calibration file name to use. At least the
               directory containing the file must exist, since it
               won't be created. This option is disabled if the back-
               end is run as root. It maybe used in case of sheet-fed
               scanners to share a calibration file for several users.

               Specify the time (in minutes) a cached calibration is
               considered valid. If older than the given value, a new
               calibration is done. A value of -1 means no expiration
               and cached value are kept forever unless cleared by
               userwith the calibration clear option. A value of 0
               means cache is disabled.

          Additionally, several 'software' options are exposed by the
          backend. These are reimplementations of features provided
          natively by larger scanners, but running on the host com-
          puter. This enables smaller machines to have similar capa-
          bilities. Please note that these features are somewhat sim-
          plistic, and may not perform as well as the native implemen-
          tations. 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 speed.

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


     Page 3                       Plan 9             (printed 5/26/22)

     sane-genesys(5)           (4 Jul 2012)            sane-genesys(5)

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

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

          --swskip 0..100% (in steps of 1)
               Request driver to discard pages with low numbers of
               dark pixels.

          --swderotate[=(yes|no)] [no]
               Request driver to detect and correct 90 degree image

          This backend needs libusb-0.1.6 or later installed, and
          hasn't tested in other configuration than a linux kernel
          2.6.9 or higher. However, it should work any system with
          libusb where the SANE package can be compiled. For setting
          permissions and general USB information look at sane-usb(5).

          The contents of the genesys.conf file is a list of usb lines
          containing vendor and product ids that correspond to USB
          scanners. The file can also contain option lines.  Empty
          lines and lines starting with a hash mark (#) are ignored.
          The scanners are autodetected by usb vendor_id product_id
          statements which are already included into genesys.conf.
          "vendor_id" and "product_id" are hexadecimal numbers that
          identify the scanner.

               The backend configuration file (see also description of
               SANE_CONFIG_DIR below).

               The static library implementing this backend.

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


     Page 4                       Plan 9             (printed 5/26/22)

     sane-genesys(5)           (4 Jul 2012)            sane-genesys(5)

               This environment variable specifies the list of direc-
               tories 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 direc-
               tory separator character, then the default directories
               are searched after the explicitly specified directo-
               ries.  For example, setting SANE_CONFIG_DIR to
               "/tmp/config:" would result in directories tmp/config,
               ., and /etc/sane.d being searched (in this order).

               If the library was compiled with debug support enabled,
               this environment variable controls the debug level for
               this backend.  Higher debug levels increase the ver-
               bosity of the output. If the debug level is set to 1 or
               higher, some debug options become available that are
               normally hidden. Handle them with care. This will print
               messages related to core genesys functions.

               If the library was compiled with debug support enabled,
               this environment variable enables logging of intermedi-
               ate image data. To enable this mode, set the environ-
               mental variable to 1.

               Example (full and highly verbose output for gl646):
               export SANE_DEBUG_GENESYS=255

          Jack McGill for donating several sheetfed and flatbed scan-
          ners, which made possible to add support for them in the
          genesys backend:
               Hewlett-Packard HP3670
               Visioneer Strobe XP100 (rev3)/XP200/XP300/Roadwarrior
               Canon LiDE 200
               Pentax DSmobile 600
               Syscan/Ambir DocketPORT 467/485/487/665/685
               Xerox Travel Scanner 100, Onetouch 2400

               ( sponsored and sup-
               ported the work on the Panasonic KV-SS080.

     LiDE 700F.
          Brian Paavo from Benthic Science Limited for donating a Canoscan

     Page 5                       Plan 9             (printed 5/26/22)

     sane-genesys(5)           (4 Jul 2012)            sane-genesys(5)

          Dany Qumsiyeh for donating a Canoscan LiDE 210 and a LiDE 220.

          Luc Verhaegen for donating a Canoscan LiDE 120.

          sane(7), sane-usb(5)

          Oliver Rauch
          Henning Meier-Geinitz <>
          Gerhard Jaeger <>
          St['e]phane Voltz <>
          Philipp Schmid <>
          Pierre Willenbrock <>
          Alexey Osipov <> for HP2400 final support

          Powersaving isn't implemented for gl646 based scanner.
          Dynamic (emulated from gray data and with dithering) isn't
          enabled for gl646 scanners. Hardware lineart is limited up
          to 600 dpi for gl847 based scanners, due to the way image
          sensors are built.

          This backend will be much slower if not using libusb-1.0. So
          be sure that sane-backends is built with the
          --enable-libusb_1_0 option.

          For the LiDE 200, the scanned data at 4800 dpi is obtained
          "as is" from sensor.  It seems the windows driver does some
          digital processing to improve it, which is not implemented
          in the backend.

     Page 6                       Plan 9             (printed 5/26/22)