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 corresponds 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 set-
tings:
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.
sane-backends 1.0.19Last change: 21 Nov 2000 1
SANE Scanner Access Now Easy sane-sharp(5)
Halftone Pattern (parameter --halftone-pattern for scanim-
age). Available only for the JX-330 series scanners. Possi-
ble 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 scanner 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 (paramter --green-gamma-table for scanim-
age). Allowed values: 0..255; 256 numbers must be defined.
The default values are 0, 1, 2, .. 255 (i.e., gamma == 1).
Blue Gamma Table (paramter --blue-gamma-table for scanim-
age). 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.
sane-backends 1.0.19Last change: 21 Nov 2000 2
SANE Scanner Access Now Easy sane-sharp(5)
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 commands:
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
scanimage);
bottom right y position of scan area (parameter -y for
scanimage);
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. Possi-
ble values:
1..255
The default value is 128. This option is only available in
scan mode lineart.
Threshold Red (parameter --threshold-red for scanimage).
sane-backends 1.0.19Last change: 21 Nov 2000 3
SANE Scanner Access Now Easy sane-sharp(5)
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 beginning 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, fol-
lowed 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 dev-
ices; options defined after a device name apply to this dev-
ice.
sane-backends 1.0.19Last change: 21 Nov 2000 4
SANE Scanner Access Now Easy sane-sharp(5)
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 USEFORK in sharp.c ). This pro-
cess 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 smal-
lest 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 limited 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 scanner are queued. At present, the Sane SCSI library
supports queued read commands only for for Linux. For other
operating systems, option readqueue 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 read-
queue.
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 scanner 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 rea-
sons:
- too much "traffic" on the SCSI bus
- slow responses by the backend to the scanner,
- a program which processes the data acquired by the
sane-backends 1.0.19Last change: 21 Nov 2000 5
SANE Scanner Access Now Easy sane-sharp(5)
backend too slow.
Too much "traffic" on the SCSI bus: This happens for exam-
ple, 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 USEFORK is defined when you com-
pile 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 recommended, because it supports, in com-
bination with the SCSI library of Sane version 1.0.2, com-
mand queueing within the kernel. This queueing implementa-
tion, 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 situa-
tion 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 processing of the data is too slow, set the environ-
ment variable SANEDEBUGSHARP to 1. When a scan is fin-
ished, 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 fron-
tend. (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
sane-backends 1.0.19Last change: 21 Nov 2000 6
SANE Scanner Access Now Easy sane-sharp(5)
The backend configuration file.
/usr/lib/sane/libsane-sharp.a
The static library implementing this backend.
/usr/lib/sane/libsane-sharp.so
The shared library implementing this backend (present
on systems that support dynamic loading).
ENVIRONMENT
SANEDEBUGSHARP
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 posi-
tion, 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 sup-
ported 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 posi-
tion, 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 car-
riage 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 sup-
ported, 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
sane-backends 1.0.19Last change: 21 Nov 2000 7
SANE Scanner Access Now Easy sane-sharp(5)
Helmut Koeberle
Parts of this man page are a plain copy of sane-mustek(5) by
David Mosberger-Tang, Andreas Czechanowski and Andreas
Bolsch
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
ATRIBUTE TYPE ATRIBUTE VALUE
Availability SUNWsane-backend
Interface Stability Uncommitted
NOTES
Source for SANE is available on http:/opensolaris.org.
sane-backends 1.0.19Last change: 21 Nov 2000 8
|