sane-microtek2 - SANE backend for Microtek scanners with SCSI-2 command set
The sane-microtek2 library implements a SANE (Scanner Access Now Easy) backend that pro-
vides access to Microtek scanners with a SCSI-2 command set. This backend can be consid-
ered alpha to beta. Some scanner models are reported to work well, others not. New devel-
opment versions of this backend can be obtained from http://karstenfestag.gmxhome.de
There exists a different backend for Microtek scanners with SCSI-1 command set. Refer to
sane-microtek(5) for details.
And there is work in progress for the ScanMaker 3600. See http://source-
At present, the following scanners are known positively to work with this backend:
Vendor Product id: Remark
-------- -------------- -------------
Microtek E3+ Parport and SCSI
Microtek X6 SCSI
Microtek X6EL SCSI
Microtek X6USB USB
Microtek ScanMaker V300 Parport and SCSI
Microtek ScanMaker V310 Parport and SCSI
Microtek ScanMaker V600 Parport and SCSI
Microtek ScanMaker 330 SCSI
Microtek ScanMaker 630 SCSI
Microtek ScanMaker 636 SCSI
Microtek ScanMaker 9600XL SCSI; only flatbed mode?
Microtek Phantom 330CX Parport
Microtek SlimScan C3 Parport
Microtek SlimScan C6 USB
Microtek Phantom 636 SCSI
Microtek Phantom 636CX Parport
Microtek V6USL SCSI and USB
Microtek V6UPL USB; not stable
Microtek X12USL SCSI; only 8bit color, work in progress
Vobis HighScan SCSI (E3+ based models)
Scanport SQ300 Parport?
Scanport SQ4836 SCSI
Scanpaq SQ2030 Parport
Additional information can be found at http://www.mostang.com/sane/ .
If you own a Microtek scanner other than the ones listed above, it may or may not work
with SANE! Because equal scanners are sold under different names in different countries
your model may be equivalent to one of the above.
The parport scanners work with the ppscsi + onscsi kernel modules. See
The USB scanners work with the microtek kernel module. You may have to add the vendor and
model codes to microtek.c if they aren't yet listed there.
Both parport and USB scanners need the generic SCSI support, so check if you have loaded
the scsi_mod and sg modules!
If you try your scanner for the first time keep an eye on it. If it gets commands that it
doesn't understand the scanhead may go beyond the scan area. The scanner then makes
strange noises. In this case immedieately switch off the scanner or disconnect its power
cable to prevent damages!
If your scanner is a different one than the models mentioned above and it is working
please tell the author about it. It would be nice if you add a logfile to this information
(creation of the logfile: see below).
If your scanner is not working properly you also should create a logfile and send it to
the author. He will use the information to improve the backend and possibly make your
How to create the logfile?
- put the line
"option dump 2" into your microtek2.conf
file or change the existing "option dump" to "2"
- in a terminal (bash) type
"export SANE_DEBUG_MICROTEK2=30" and then
"scanimage -l0 -t0 -x100 -y20 2>scan.log >sout.pnm"
You get two files: scan.log contains the logfile and sout.pnm the scanned image (if
there was scanned something). Zip them before sending.
This backend dynamically enables the options for the frontend, that are supported by the
scanner in dependence of the scanning-mode and other options. Not supported options are
The following options are supported by the Microtek2-driver:
Color, grayscale, halftone and lineart scans.
Highlight, midtone, shadow, contrast, brightness, exposure time control, gamma correction,
threshold (dependent of the scan mode and the scanner capabilities)
Transparency media adapter, automatic document feeder
Additional options can be enabled or disabled in the microtek2.conf file. See the configu-
ration section of this manpage.
This backend expects device names of the form:
Where special is the UNIX path-name for the special device that corresponds to the scan-
ner. 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.
The configuration file for this backend resides in /etc/sane.d/microtek2.conf Its contents
is a list of device names that correspond to Microtek scanners with SCSI-2 interface.
Empty lines and lines starting with a hash mark (#) are ignored.
The configuration file may also contain options. Global options that are valid for all
devices are placed above the device names. Device-specific options are placed under the
device name. Note that, except for option dump <n> and option strip-height <n>, the entry
in the microtek2.conf file only enables the corresponding option for being showed in the
frontend. There, in the frontend, you can switch the options on and off. Currently the
following options are supported:
option dump <n>
option strip-height <n>
option no-backtrack-option <on/off>
option lightlid-35 <on/off>
option toggle-lamp <on/off>
option lineart-autoadjust <on/off>
option backend-calibration <on/off>
option colorbalance-adjust <on/off>
option dump <n> enables printing of additional information about the SCSI commands that
are sent to the scanner to stderr. This option is primarily useful for debugging purpose.
This option has to be a global option and is best placed at the top of the microtek2.conf
If n=1 the contents of the command blocks and the results for the INQUIRY and READ SCANNER
ATTRIBUTES command are printed to stderr.
If n=2 the contents of the command blocks for all other SCSI commands are printed to
stderr, too. If n=3 the contents of the gamma table is printed, too. If n=4 all scan data
is additionally printed to stderr.
The default is n=1.
option strip-height <n> , where <n> is a floating point number, limits the amount of data
that is read from the scanner with one read command. The unit is inch and <n> defaults to
1.0, if this option is not set in the configuration file. If less than <n> inch of data
fit into the SCSI buffer, then the smaller value is used and this option has no effect.
If your system has a big SCSI buffer and you want to make use of the whole buffer,
increase the value for <n>. For example, if <n> is set to 14.0, no restrictions apply for
scanners with a letter, legal or A4 sized scan area.
The following options enable or disable additional frontend options. If an option is set
to <on> an appropriate option will appear in the frontend.
option no-backtrack-option <on/off> prevents the scanner head from moving backwards
between the read commands. This speeds up scanning. Try it.
option lightlid-35 <on/off> If you use the LightLid-35 transparency adapter you get an
advanced option which switches off the flatbed lamp during the scan.
option toggle-lamp <on/off> You get a button in the frontend where you can switch on and
off the flatbed lamp.
option lineart-autoadjust <on/off> You can tell the backend to try to determine a good
value for the lineart threshold.
option backend-calibration <on/off> Some scanners (e.g. Phantom 330CX and 636CX) need to
have calibrated the data by the backend. Try this option if you see vertical stripes in
option colorbalance-adjust <on/off> Some scanners (e.g. Phantom 330CX and 636CX) need to
have corrected the color balance. If this option is enabled you get advanced options where
you can balance the colors. And you will have a button to use the values that the firmware
of the scanner provides.
A sample configuration file is shown below:
option dump 1
option strip-height 1.0
option no-backtrack-option on
# this is a comment
option lightlid-35 on
This backend also supports the new configuration file format which makes it easier to
detect scanners under Linux. If you have only one scanner it would be best to use the fol-
lowing configuration file for this backend:
option dump 1
option strip-height 14.0
option no-backtrack-option on
option backend-calibration on
option lightlid-35 on
option toggle-lamp on
option lineart-autoadjust on
option colorbalance-adjust off
scsi * * Scanner
In this case all SCSI-Scanners should be detected automatically because of the
scsi * * Scanner
The backend configuration file.
The static library implementing this backend.
The shared library implementing this backend (present on systems that support
If the library was compiled with debug support enabled, this environment variable
controls the debug level for this backend. E.g., a value of 255 requests all debug
output to be printed. Smaller levels reduce verbosity. To see error messages on
stderr set SANE_DEBUG_MICROTEK2 to 1 (Remark: The whole debugging levels should be
E.g. just say:
Bernd Schroeder (not active anymore)
Karsten Festag firstname.lastname@example.org
28 Jan 2002 sane-microtek2(5)