sane-hp.5




NAME

       sane-hp - SANE backend for HP ScanJet scanners


DESCRIPTION

       The  sane-hp library implements a SANE (Scanner Access Now
       Easy) backend that provides access to HP ScanJet  scanners
       and OfficeJet multi-function peripherals (MFPs) which sup�
       port SCL (Scanner Control Language by  HP).   At  present,
       the  following  scanners are known positively to work with
       this backend:

              Model:         Product id:     Interface:
              ----------     -----------     ----------
              ScanJet Plus   C9195A          HP  Parallel  Inter�
              face 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
              OfficeJet Pro 1150C            PTAL
              OfficeJet Pro 1170C/1175C      PTAL
              OfficeJet R series             PTAL
              PSC 500 series                 PTAL
              OfficeJet G series             PTAL
              PSC 700 series                 PTAL
              PSC 900 series                 PTAL
              OfficeJet K series             PTAL
              OfficeJet V series             PTAL

       Support  for  models 5100C/5200C connected to the parallel
       port   requires   the   ppSCSI   driver    available    at
       http://www.torque.net/parport/ppscsi.html  (under develop�
       ment)

       Support for models 5200C/6200C/6250C/6300C/6350C connected
       to   the   USB   requires   an  USB  driver  available  at
       http://www.jump.net/~dnelson/linux/usb (under development)

       Support  for  OfficeJet  MFPs  requires  the "HP OfficeJet
       Linux driver", available at "http://hpoj.sourceforge.net".
       The  "PTAL"  (peripheral  transport  abstraction  library)
       interface supports peripherals  connected  to  a  parallel
       port  or  USB (using the user-mode "ptal-mlcd" driver pro�
       vided with hpoj-0.8 or later), or to a LAN with an HP Jet�
       Direct  external  print  server.   Supported parallel-port
       JetDirects include the 70X, 170X,  300X,  and  500X  (with
       firmware  x.07.xx  or later; x.08.xx or later required for
       the G and K series).  The JetDirect 175X is supported  for
       USB peripherals.

       If  you  own  a ScanJet scanner other than the ones listed
       above, please let us know if your model  works  with  this
       backend.   To  do this, please subscribe to the sane-devel
       mailing list and send a mail with the relevant information
       for  your scanner to sane-devel@mostang.com.  For instruc�
       tions         how         to         subscribe         see
       http://www.mostang.com/sane/mail.html.


DEVICE NAMES

       This backend expects device names of the form:

              special

       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. 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 ftp://rvs.ctrl-
       c.liu.se/pub/wingel/hpscan for details. If the  link  does
       not    work,    try   ftp://sunsite.unc.edu/pub/Linux/ker�
       nel/patches/scanners.

       For OfficeJets connected to a parallel port  or  USB,  the
       format of special is
              mlc:par:0
       or
              mlc:usb:0
       respectively, substituting if necessary for "0" the suffix
       specified when invoking the ptal-mlcd driver.

       For OfficeJets connected to an HP JetDirect print  server,
       the format of special is
              hpjd:HOSTNAME_OR_IP_ADDRESS[:PORT_NUMBER]
       where
              HOSTNAME_OR_IP_ADDRESS
       is the hostname or dotted-decimal IP address of the JetDi�
       rect, and
              PORT_NUMBER
       is either 1, 2, or 3 to select the port number on a three-
       port JetDirect 500X.  The default is port 1.


CONFIGURATION

       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) on details of what constitutes a
       valid device name.

       Options  specified  infront of the first line that keeps a
       device name are defaults for all devices.  Options  speci�
       fied  below  a line that keeps a device name apply just to
       the most recently mentioned device.

       Supported options are connect-scsi,  connect-device,  con�
       nect-ptal and enable-image-buffering.

       Option  connect-scsi  specifies  that  the scanner is con�
       nected to the system by SCSI.  Input/output  is  performed
       using SCSI-commands.  This is the default.

       Option  connect-device  specifies that the scanner is con�
       nected 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 and scanners  con�
       nected  to the USB. However if the scanner requires an USB
       driver that simulates a SCSI device, connect-scsi might be
       used.

       Option  connect-ptal  specifies  that the scanner uses the
       PTAL interface  via  the  libptal  shared  library.   This
       option  must  be used for the OfficeJet MFPs.  Support for
       OfficeJet MFPs is added to the backend  at  compile  time.
       If you get the error message "hp-backend not compiled with
       PTAL support", you need to install PTAL  (see  above)  and
       rebuild SANE (running configure and make).

       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.

         A sample configuration file is shown below:

              /dev/scanner
              # this is a comment
              /dev/hpscan
                option connect-device

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

         A sample configuration  file  for  OfficeJets  is  shown
       below:

              # SCSI scanner:
              /dev/scanner
              # Parallel-port-connected MFP:
              mlc:par:0
              option connect-ptal

              # USB-connected MFP:
              mlc:usb:0
              option connect-ptal

              # JetDirect-connected MFPs:
              hpjd:my-jdex.my-domain.com
              option connect-ptal
              hpjd:my-500x.my-domain.com:3
              option connect-ptal
              hpjd:10.10.10.35:2
              option connect-ptal


FILES

       /usr/local/etc/sane.d/hp.conf
              The  backend  configuration file (see also descrip�
              tion of SANE_CONFIG_DIR below).

       /usr/local/lib/sane/libsane-hp.a
              The static library implementing this backend.

       /usr/local/lib/sane/libsane-hp.so
              The shared library implementing this backend  (pre�
              sent on systems that support dynamic loading).

       $HOME/.sane/calib-hp:<device>.dat
              Calibration  data  for  HP  PhotoSmart PhotoScanner
              that is retrieved from the scanner  after  calibra�
              tion.  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'.


ENVIRONMENT

       SANE_CONFIG_DIR
              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  /usr/local/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 spec�
              ified directories.  For example, setting  SANE_CON�
              FIG_DIR  to "/tmp/config:" would result in directo�
              ries "tmp/config", ".", and "/usr/local/etc/sane.d"
              being searched (in this order).

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


BUGS

       HP PhotoSmart PhotoScanner
              In  media mode 'slide' and 'negative', scan resolu�
              tions are rounded to multiple of 300 dpi. The scan�
              ner does not scale the data correctly on other res�
              olutions. Some newer models (firmware code R030 and
              later) do not support adjustment of contrast/inten�
              sity 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  docu�
              ment'  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 sup�
              ported 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.

       Advertised but unsupported commands
              Some actions, such as mirror, are advertised by the
              OfficeJets but actually have no  effect.   Contrast
              and  brightness  are  simulated  by the backend for
              these  devices.   >8-bit   scans,   which   require
              xsane(1) anyway, may not work.

       OfficeJet ADF issues
              The  OfficeJet  R and G series are capable of scan�
              ning 8.5"x14" documents in the ADF using a two-pass
              scanning  method,  but  this  is not currently sup�
              ported in the backend.  The OfficeJet  1175  and  R
              series  refuse  to  unload  an  ADF-loaded document
              after scanning, and instead display  a  message  on
              the  front  panel  prompting the user to remove the
              document from the glass and press a button to  con�
              tinue;  the  OfficeJet  G  series doesn't have this
              problem, however.  The OfficeJet G, K, and V series
              automatically  unload  an  ADF-loaded document when
              the scan channel is closed, particularly  after  an
              idle timeout when connected to an HP JetDirect.

       OfficeJet K series and V series
              The  K  and V series feature a "scrollfed" scanner,
              where the paper is fed across  a  stationary  scan�
              head,  as  opposed  to  flatbed, where the scanhead
              moves across the page.  A consequence of this  dif�
              ference is that the document length is not known in
              advance; the scan stops when the end of  the  docu�
              ment is reached.  To perform a scan, you must first
              click on "Change document",  and  then  start  your
              preview  or  regular  scan.  If necessary, click on
              "Cancel" when the scan stops.  If  there  are  more
              documents to scan, click on "Change document" again
              to advance to the next page and repeat  the  proce�
              dure;  otherwise,  click  on "Unload" to completely
              unload the page.  An  alternative  for  non-preview
              scans  is to set the page length (option "br-y") to
              slightly less than the known page length, for exam�
              ple,  10.5  inches for an 8.5"x11" page.  This will
              eliminate the need to  cancel  the  scan,  but  you
              still  need  to  click  on "Change document" before
              each scan and "Unload" after the last  page.   Note
              that  due  to  the use of the "Change document" and
              "Unload" options, you will probably not be able  to
              use the command-line "scanimage" program with the K
              or V series, not even the "-T" or "--test"  parame�
              ters.


TODO

       HP PhotoSmart PhotoScanner
              PhotoScanners  with  firmware  release  R030 and up
              have  no  firmware  support  for   contrast/bright�
              ness/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
              above).

       Scrollfed MFP support
              A separate backend is planned to  properly  support
              the OfficeJet K and V series, as well as other non-
              SCL HP MFPs, such as the OfficeJet 500,  600,  700,
              T, and PSC 300 series and the LaserJet 1100A, 1220,
              and 3200.   For  now,  scanning  on  these  non-SCL
              scrollfed models is supported by the "ptal-hp scan"
              command-line application in version 0.8 or later of
              the  HP  OfficeJet  Linux  driver,  available  from
              http://hpoj.sourceforge.net.

       LaserJet 3100 and 3150
              Support for the  LaserJet  3100  and  3150  is  NOT
              planned,  because programming information for these
              models is not available.  However, if  you  have  a
              LaserJet    3150    connected    to   a   JetDirect
              70X/170X/300X/500X with firmware x.08.xx or  later,
              you  can  scan  using  the JetDirect's embedded web
              server.


SEE ALSO

       sane(7), sane-scsi(5)


AUTHOR

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


Man(1) output converted with man2html