sane-sharp.5



sane-sharp(5)            SANE Scanner Access Now Easy            sane-sharp(5)


NAME

       sane-sharp - SANE backend for SHARP scanners


DESCRIPTION

       The  sane-sharp  library  implements  a  SANE (Scanner Access Now Easy)
       backend that provides access to  Sharp  SCSI  scanners.   This  backend
       should be considered beta-quality software!  In the current state it is
       known to work with JX-610 and JX-250 scanners. It is prepared for usage
       with  the  JX-330  series scanners, but we are not able to test it with
       these devices.

       For other Sharp scanners, it may or may not work.

       At present, the following scanners are known to work with this backend.

              Vendor  Product id:
              -----   -----------
              Sharp   JX-610
              Sharp   JX-250
              Sharp   JX-320
              Sharp   JX-330
              Sharp   JX-350

       The following scanners are detected by the backend, but not tested:

              Vendor  Product id:
              -----   -----------
              Sharp   JX-325


DEVICE NAMES

       This backend expects device names of the form:

              special

       Where special is either the path-name for the special device that  cor‐
       responds  to  a SCSI scanner. 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/sge, for example.  See sane-scsi(5) for
       details.


SCAN OPTIONS

       Scan Mode (parameter --mode for scanimage). Possible settings:
              Lineart (1 bit black & white scans),
              Gray (8 bit gray scale scans),
              Lineart Color (bi-level color scans),
              Color (8 bit RGB scans).
       The default value is Color.

       Halftone Pattern (parameter --halftone-pattern for  scanimage).  Avail‐
       able only for the JX-330 series scanners.  Possible settings:
              none
              Dither Bayer
              Dither Spiral
              Dither Dispersed
              Error Diffusion
       The default value is none.

       Paper  Source  (parameter  --source for scanimage). This option is only
       available, if an automatic document feeder or a transparency adapter is
       installed. Possible settings:
              Flatbed
              Automatic Document Feeder
              Transparency Adapter
       If  an  ADF  or  a  transparency  adapter is installed, using it is the
       default selection.

       Custom Gamma (parameter  --custom-gamma  for  scanimage).  This  option
       determines  whether a builtin or a custom gamma-table is used. Possible
       settings:
              yes enables custom gamma tables
              no enables a built gamma table

       Gamma (parameter --Gamma for scanimage). This option is only available,
       if Custom Gamma is set to no.  Possible values:
              1.0
              2.2
       The default value is 2.2. (The JX-250 and JX-350 have no built in gamma
       correction; for these scanner, a gamma table is downloaded to the scan‐
       ner by the backend.)

       Gamma  Table  (parameter  --gamma-table for scanimage). Allowed values:
       0..255; 256 numbers must be defined.  The default values are 0,  1,  2,
       ..  255  (i.e.,  gamma  ==  1).  This table is only used for gray scale
       scans.

       Red Gamma Table (parameter --red-gamma-table  for  scanimage).  Allowed
       values: 0..255; 256 numbers must be defined.  The default values are 0,
       1, 2, .. 255 (i.e., gamma == 1).

       Green  Gamma  Table  (parameter  --green-gamma-table  for   scanimage).
       Allowed  values: 0..255; 256 numbers must be defined.  The default val‐
       ues are 0, 1, 2, .. 255 (i.e., gamma == 1).

       Blue Gamma Table (parameter --blue-gamma-table for scanimage).  Allowed
       values: 0..255; 256 numbers must be defined.  The default values are 0,
       1, 2, .. 255 (i.e., gamma == 1).

       Resolution in pixel per inch (parameter  --resolution  for  scanimage).
       Selects the resolution of the scanned image. Allowed values:
              30..600 (JX-330, JX-350 and JX-610) resp.  30..400 (JX-250)
       The default value is 150.

       Scan Window

       The  possible  settings depend on the scanner model and, for the JX-250
       and the JX-350, also on the usage  of  the  automatic  document  feeder
       resp.  the  transparency adapter. Please refer to the values allowed by
       xscanimage, or xsane. With scanimage, enter one of the  following  com‐
       mands:

              scanimage -d sharp --source "Automatic Document Feeder" --help

              scanimage -d sharp --source Flatbed --help

              scanimage -d sharp --source "Transparency Adapter" --help

       in order to see the allowed parameter values for the scan window.

       The scan window parameters are:

              Top-left x position of scan area (parameter -l for scanimage);
              Top-left y position of scan area (parameter -t for scanimage);
              bottom  right  x position of scan area (parameter -x for scanim‐
              age);
              bottom right y position of scan area (parameter -y  for  scanim‐
              age);

       Edge emphasis (parameter --Edge emphasis for scanimage). This option is
       not available for the JX-250 and the JX-350.  Possible settings:
              None
              Middle
              Strong
              Blur
       The default value is None.

       Threshold (parameter --threshold for scanimage). Sets the threshold for
       black and white pixels in lineart mode. Possible values:
              1..255
       The  default  value is 128.  This option is only available in scan mode
       lineart.

       Threshold Red  (parameter  --threshold-red  for  scanimage).  Sets  the
       threshold  for  the  red  component of a pixel in in lineart color scan
       mode. Possible values:
              1..255
       The default value is 128.  This option is only available in  scan  mode
       color lineart.

       Threshold  Green  (parameter --threshold-green for scanimage). Sets the
       threshold for the green component of a pixel in in lineart  color  scan
       mode. Possible values:
              1..255
       The  default  value is 128.  This option is only available in scan mode
       color lineart.

       Threshold Blue (parameter --threshold-blue  for  scanimage).  Sets  the
       threshold  for  the  blue component of a pixel in in lineart color scan
       mode. Possible values:
              1..255
       The default value is 128.  This option is only available in  scan  mode
       color lineart.

       Light  Color  (parameter --LightColor for scanimage). Sets the color of
       the light source. Possible values:
              white
              red
              green
              blue
       The default value is white.  This option  is  only  available  in  scan
       modes lineart color and color.


ADF USAGE

       If  a  paper  jam  occurred,  the  maintenance cover must be opened and
       closed, even if the jammed paper can be  removed  without  opening  the
       maintenance cover. Otherwise, the error condition cannot be cleared.


CONFIGURATION

       The  contents  of  the  sharp.conf file is a list of options and device
       names that correspond to Sharp scanners. Empty lines and  lines  begin‐
       ning  with  a  hash  mark (#) are ignored. See sane-scsi(5) for details
       about device names.

       Lines setting an option start with the key word option, followed by the
       option's  name  and  the  option's value. At present, three options are
       defined: buffers, buffersize, and readqueue.

       Options defined at the  start  of  sharp.conf  apply  to  all  devices;
       options defined after a device name apply to this device.

       The  options  buffers and readqueue are only significant if the backend
       has been compiled so that for each scan  a  second  process  is  forked
       (switch  USE_FORK  in  sharp.c ). This process reads the scan data from
       the scanner and writes this data into a block of  shared  memory.   The
       parent process reads the data from this memory block and delivers it to
       the frontend. The options control the size and  usage  of  this  shared
       memory block.

       option  buffers defines the number of buffers used. The smallest number
       allowed is 2.

       option buffersize defines the size of one buffer. Since each buffer  is
       filled with a single read command sent to the scanner, its size is lim‐
       ited automatically to the size allowed by the operating  system  or  by
       the  Sane  SCSI library for SCSI read commands. A buffer size of 128 kB
       or 256 kB is recommended for scan resolutions of 300 dpi and above.

       option readqueue defines how many read commands to be sent to the scan‐
       ner  are queued. At present, the Sane SCSI library supports queued read
       commands only for for Linux. For other operating systems, option  read
       queue  should be set to 0. For Linux, option readqueue should be set to
       2. Larger values than 2 for option readqueue are not reasonable in most
       cases.  option buffers should be greater than option readqueue.


Performance Considerations

       This  section focuses on the problem of stops of the scanner's carriage
       during a scan. Carriage stops happen mainly with the JX-250. This scan‐
       ner  has  obviously only a small internal buffer compared to its speed.
       That means that the backend must read the data as fast as possible from
       the scanner in order to avoid carriage stops.

       Even  the  JX-250 needs only less than 10 seconds for a 400 dpi A4 gray
       scale scan, which results in a data transfer rate of more than  1.6  MB
       per  second.  This  means that the data produced by the scanner must be
       processed fairly fast. Due to the small internal buffer of the  JX-250,
       the  backend  must issue a read request for the next data block as soon
       as possible after reading a block of data in order  to  avoid  carriage
       stops.

       Stops of the carriage can be caused by the following reasons:

              - too much "traffic" on the SCSI bus
              - slow responses by the backend to the scanner,
              - a program which processes the data acquired by the backend too
              slow.

       Too much "traffic" on the SCSI bus: This happens for example,  if  hard
       disks  are connected to the same SCSI bus as the scanner, and when data
       transfer from/to these hard disks requires a considerable part  of  the
       SCSI  bandwidth during a scan. If this is the case, you should consider
       to connect the scanner to a separate SCSI adapter.

       Slow responses by the backend to the scanner: Unfortunately,  Unix-like
       operating systems generally have no real time capabilities.  Thus there
       is no guarantee that the backend is under  any  circumstances  able  to
       communicate  with  the  scanner  as  fast as required. To minimize this
       problem, the backend should be  compiled  so  that  a  separate  reader
       process  is forked: Make sure that USE_FORK is defined when you compile
       sharp.c.  If slow responses of the backend remain to  be  problem,  you
       could  try to reduce the load of the system. Even while the backend and
       the reader process need only a minor amount of  processor  time,  other
       running  processes  can cause an increase in the time delay between two
       time slices given to the reader process. On  slower  systems,  such  an
       increased delay can be enough to cause a carriage stop with the JX-250.
       For Linux, the usage of the SG driver version 2.1.36 or above is recom‐
       mended,  because  it  supports, in combination with the SCSI library of
       Sane version 1.0.2, command queueing within the kernel.  This  queueing
       implementation,  combined with a buffer size of at least 128 kB, should
       avoid most carriage stops.

       Slow processing of the scan data: An example for this situation is  the
       access  to  the scanner via a 10 MBit Ethernet, which is definitely too
       slow to transfer the scan data as fast as  they  are  produced  by  the
       scanner.  If  you have enough memory available, you can increase option
       buffers, so that an entire image can be stored in these buffers.

       In order to see, if the backend is too slow or if the further  process‐
       ing   of   the   data   is  too  slow,  set  the  environment  variable
       SANE_DEBUG_SHARP to 1. When a scan is finished, the backend writes  the
       line  "buffer  full  conditions: nn" to stderr. If nn is zero, carriage
       stops are caused by too slow responses  of  the  backend  or  too  much
       "traffic"  on the SCSI bus. If nn is greater than zero, the backend had
       to wait nn times until a buffer has been  processed  by  the  frontend.
       (Please  note that option buffers must be greater than option readqueue
       in order to get useful output for "buffer full conditions".)


FILES

       /etc/sane.d/sharp.conf
              The backend configuration file.

       /usr/lib64/sane/libsane-sharp.a
              The static library implementing this backend.

       /usr/lib64/sane/libsane-sharp.so
              The shared library implementing this backend (present on systems
              that support dynamic loading).


ENVIRONMENT

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


KNOWN PROBLEMS

       1. ADF Mode
              After several ADF scans, the scanner moves the carriage back  to
              the  idle  position and back to ADF scan position, before a scan
              starts. We do not know, if this is a problem of the scanner,  or
              if  this  is  a bug of the backend. At present, the scanner must
              power off and on to stop this annoying behaviour.

       2. Threshold level does not work (only JX-610)

       3. The maximum resolution is limited to  600  dpi(JX-610  supported  to
       1200 dpi) resp. 400 dpi (JX-250)

       4. If the JX250 is used with an ADF, the following situation can occur:
       After several scans, the scanner moves, after loading a  new  sheet  of
       paper, the carriage to the idle position, and then back to the position
       used for ADF scans. This happens for every scan,  in  contrast  to  the
       calibration,  which  is  done after 10 scans. (For the calibration, the
       carriage is also moved to the idle position.) We do not know,  if  this
       behavior is caused by the backend, or if it is a bug in the firmware of
       the scanner.

       5. Usage of a transparency adapter (film scan unit) is  supported,  but
       not tested.


SEE ALSO

       sane(7), sane-scsi(5)


AUTHORS

       Kazuya Fukuda, Abel Deuring


CREDITS

       The  Sharp backend is based on the Canon backend written by Helmut Koe‐
       berle

       Parts of this man page are a plain copy of sane-mustek(5) by David Mos‐
       berger-Tang, Andreas Czechanowski and Andreas Bolsch

                                  11 Jul 2008                    sane-sharp(5)

Man(1) output converted with man2html