sane-hp - SANE backend for HP ScanJet scanners


   The sane-hp library implements a SANE (Scanner Access Now Easy) backend
   that provides access to HP ScanJet scanners which support SCL  (Scanner
   Control  Language  by HP).  The following scanners are known positively
   to work with this backend:

          Model:         Product id:     Interface:
          ----------     -----------     ----------
          ScanJet Plus   C9195A          HP Parallel Interface Card
          ScanJet IIc    C1750A 3226     SCSI
          ScanJet IIcx   C2500A 3332     SCSI
          ScanJet IIp    C1790A          SCSI
          ScanJet 3C     C2520A 3503     SCSI
          ScanJet 3P     C2570A 3406     SCSI
          ScanJet 4C     C2520A          SCSI
          ScanJet 4P     C1130A 3540     SCSI
          ScanJet 4100C  C6290A          USB
          ScanJet 5P     C5110A          SCSI
          ScanJet 5100C  C5190A          parallel port
          ScanJet 5200C  C7190A 3846     parallel port/USB
          ScanJet 6100C  C2520A 3644     SCSI
          ScanJet 6200C  C6270A 3828     SCSI/USB
          ScanJet 6250C  C6270A 3828     SCSI/USB
          ScanJet 6300C  C7670A          SCSI/USB
          ScanJet 6350C  C7670A          SCSI/USB
          ScanJet 6390C  C7670A          SCSI/USB
          PhotoSmart     C5100A R029,R030,R032    SCSI

   Support for models 5100C/5200C connected to the parallel port  requires
   the            ppSCSI           driver           available           at     and     http://penguin-

   Support  for  models 5200C/62X0C/63X0C connected to the USB require the
   kernel scanner driver or libusb. See sane-usb(5) for more details.

   The  "hp"  backend  no   longer   supports   OfficeJet   multi-function
   peripherals.   For  these  devices  use  the external "hpoj" backend in
   version 0.90 and later of the "HP OfficeJet Linux driver", available at

   Because Hewlett-Packard does no longer produce  scanners  that  support
   SCL  (beside  the  OfficeJets), the above list of supported scanners is
   complete.  Other HP scanners are not supported by the "hp" backend, but
   might  be  supported  by another one. See
   You   can   also    watch    the    sane-devel    mailing    list    at

   More  details  about  the  hp  backend  can  be  found  on its homepage


   This backend expects device names of the form:


   Where special is  the  UNIX  path-name  for  the  special  device  that
   corresponds  to the scanner.  For SCSI scanners the special device name
   must be a generic SCSI device or a symlink to  such  a  device.   Under
   Linux,  such  a device name could be /dev/sga or /dev/sg2, for example.
   If the special device name contains "usb", "uscanner" or "ugen", it  is
   assumed  that the scanner is connected by USB.  For the HP ScanJet Plus
   the special device name must be the  device  that  corresponds  to  the
   parallel  interface  card  that  was  shipped with the scanner. That is
   /dev/hpscan.   A  special  driver  is  required  for  this  card.   See for details. If the link does
   not work, try


   The contents of the hp.conf file is a list of options and device  names
   that correspond to HP ScanJet scanners.  Empty lines and lines starting
   with a hash mark (#) are ignored. See sane-scsi(5) and  sane-usb(5)  on
   details of what constitutes a valid device name.

   Options  specified  in  front  of the first line that contains a device
   name are defaults for all devices. Options specified below a line  that
   contains  a  device  name  apply  just  to  the most recently mentioned

   Supported      options      are      connect-scsi,      connect-device,
   enable-image-buffering, and dumb-read.

   Option  connect-scsi  specifies  that  the  scanner is connected to the
   system by SCSI.  Input/output is performed using SCSI-commands. This is
   the  default.   But if your SCSI device name contains "usb", "uscanner"
   or "ugen", option connect-scsi  must  be  specified.  Otherwise  it  is
   assumed that the scanner is connected by USB.

   Option  connect-device  specifies  that the scanner is connected to the
   system  by   a   special   device.   Input/output   is   performed   by
   read()/write()-operations  on  the device. This option must be used for
   HP ScanJet Plus or scanners connected to USB which are accessed through
   a named device (e.g. /dev/usb/scanner0).  For device names that contain
   "usb", "uscanner" or "ugen", it is  not  necessary  to  specify  option

   Option enable-image-buffering stores the scanned image in memory before
   passing it to the frontend. Could be used in case  of  forward/backward
   moving scanner lamp.

   Option dumb-read can be used to work around problems with "Error during
   device  I/O".  These  problems  may  occur  with  certain   SCSI-to-USB
   converters  or  Buslogic SCSI cards.  The option should not be used for
   SCSI  devices  which  are  working  correctly.   Otherwise  startup  of
   frontends and changing parameters might be slower.

   A sample configuration file is shown below:

          # this is a comment
            option connect-device

   /dev/scanner is typically a symlink to the actual SCSI scanner device.


          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).

          Calibration   data   for  HP  PhotoSmart  PhotoScanner  that  is
          retrieved from  the  scanner  after  calibration.  The  data  is
          uploaded  to  the  scanner  at  start of the backend if it is in
          media mode 'print media' or if the  media  mode  is  changed  to
          'print media'.


          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).

          If the library was compiled with  debug  support  enabled,  this
          environment  variable controls the debug level for this backend.
          E.g., a value of 128 requests all debug output  to  be  printed.
          Smaller levels reduce verbosity.

          Only  used  for  OS/2  and  along  with  use  of  HP  PhotoSmart
          PhotoScanner.  Must be set to the directory where the  directory
          .sane  is  located.   Is  used  to save and read the calibration



          For  each  type  of   connection   (connect-scsi,   connect-usb,
          connect-device)  it  can  be  specified if the connection to the
          device should be kept open ("1")  or  not  ("0").   Usually  the
          connections are closed after an operation is performed.  Keeping
          connection open to SCSI-devices  can  result  in  errors  during
          device  IO  when the scanner has not been used for some time. By
          default, USB-connections are kept open.  Other  connections  are

          Specifies  number of retries for read operation before returning
          an EOF error.  Only supported for non-SCSI devices.  Default:  1
          retry. Time between retries is 0.1 seconds.


   HP PhotoSmart PhotoScanner
          In  media  mode  'slide'  and  'negative',  scan resolutions are
          rounded to multiple of 300 dpi. The scanner does not  scale  the
          data correctly on other resolutions. Some newer models (firmware
          code  R030   and   later)   do   not   support   adjustment   of
          contrast/intensity   level  and  tone  map.   The  backend  will
          simulate this by software, but only for gray and 24 bit color.

   Automatic Document Feeder (ADF)
          For use of the ADF with xscanimage(1), first place paper in  the
          ADF  and  then change option scan source to 'ADF'. Press 'change
          document' to load a sheet. Then press 'scan' to  start  a  scan.
          Maybe it is sufficient to press 'scan' without 'change document'
          for repeated scans.  The  use  of  the  preview  window  is  not
          recommended when working with the ADF.  Setting a window to scan
          from ADF is not supported with xscanimage(1).  Try xsane(1).

   Immediate actions
          Some  actions  in  xscanimage(1)  (i.e.  unload,  select  media,
          calibrate)  have  an  immediate  effect  on  the scanner without
          starting a scan.  These options can not be used with scanimage.


   HP PhotoSmart PhotoScanner
          PhotoScanners with firmware release R030 and up have no firmware
          support  for  contrast/brightness/gamma  table.  In  the current
          backend  this  is  simulated  by  software  on  24  bits   data.
          Simulation on 30 bits should give better results.

   Data widths greater than 8 bits
          Custom gamma table does not work.

   Parallel scanner support
          Beside  the  ScanJet  Plus  which  came  with  its  own parallel
          interface card, currently only the HP  ScanJet  5100C/5200C  are
          supported.   These  scanners  are using an internal parallel-to-
          SCSI converter which is  supported  by  the  ppSCSI-driver  (see


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


   The  sane-hp  backend was written by Geoffrey T. Dairiki. HP PhotoSmart
   PhotoScanner support by Peter Kirchgessner.

                              13 Jul 2008                       sane-hp(5)


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.

Free Software

Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.

Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.

Free Books

The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.

Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.

Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.