sane-coolscan2 - SANE backend for Nikon Coolscan film scanners
The library implements a SANE (Scanner Access Now Easy) backend that provides access to
Nikon Coolscan film scanners. Some functions of this backend should be considered beta-
quality software. Most functions have been stable for a long time, but of course new
development can not and will not function properly from the very first day. Please report
any strange behaviour to the maintainer of the backend.
At present, the following scanners are known to work with this backend:
Model: Connection Type
LS-30 (Coolscan III) SCSI
LS-40 ED (Coolscan IV) USB
LS-4000 ED IEEE 1394
LS-8000 ED IEEE 1394
Please send mail to the backend author (email@example.com) to report successes
The options the backend supports can either be selected through command line options to
programs like scanimage or through GUI elements in xscanimage or xsane.
Valid command line options and their syntax can be listed by using
scanimage --help -d coolscan2:<interface>:<device>
where <interface> and <device> specify the device in question, as in the configuration
file (see next section). The "-d" parameter and its argument can be omitted to obtain
information on the first scanner identified. Use the command
to list all devices recognized by your SANE installation.
The options should be fully described by the description or tooltips given by frontend.
Here is a description of some of the most important options, in the syntax with which they
must be supplied to scanimage:
This option specifies which frame to operate on, if a motorized film strip feeder
or APS adapter are used. The frame number <n> ranges from 1 to the number of frames
available, which is sensed each time the backend is initialized (usually each time
you start the frontend).
This option shifts the scan window by the specified amount (default unit is mm).
--infrared=yes/no If set to "yes", the scanner will read the infrared channel, thus
allowing defect removal in software. The infrared image is read during a second
scan, with no options altered. The backend must not be restarted between the scans.
If you use scanimage, perform a batch scan with batch-count=2 to obtain the IR
Here <n> can either be 8 or the maximum number of bits supported by the scanner
(10, 12, or 14). It specifies whether or not the scanner reduces the scanned data
to 8 bits before sending it to the backend. If 8 bits are used, some information
and thus image quality is lost, but the amount of data is smaller compared to
higher depths. Also, many imaging programs and image formats cannot handle depths
greater than 8 bits.
Perform autofocus operation. Unless otherwise specified by the other options (
--focus-on-centre and friends), focusing is performed on the centre of the selected
--ae Perform a pre-scan to calculate exposure values automatically. --ae-wb will main-
tain the white balance, while --ae will adjust each channel separately.
Multiply all exposure times with this value. This allows exposure correction with-
out modifying white balance.
--load Load the next slide when using the slide loader.
Eject the film strip or mounted slide when using the slide loader.
Reset scanner. The scanner will perform the same action as when power is turned on:
it will eject the film strip and calibrate itself. Use this whenever the scanner
refuses to load a film strip properly, as a result of which --eject does not work.
The configuration file /etc/sane.d/coolscan2.conf specifies the device(s) that the backend
will use. Owing to the nature of the supported connection types SCSI, USB, and IEEE 1394,
the default configuration file supplied with the SANE distribution should work without
Each line in the configuration file is either of the following, where all entries are
blank or starting with a '#' character
These lines are ignored, thus '#' can be used to include comments.
containing only the word "auto"
This instructs the backend to probe for a scanner by scanning the buses for devices
with know identifiers. This is the action taken when no configuration file is
a line of the form <interface>:<device>
Here <interface> can be one of "scsi" or "usb", and <device> is the device file of
the scanner. Note that IEEE 1394 devices are handled by the SBP-2 module in the
kernel and appear to SANE as SCSI devices.
The static library implementing this backend.
The shared library implementing this backend (present on systems that support
Configuration file for this backend, read each time the backend is initialized.
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.
sane-scsi(5), sane-usb(5), scanimage(1), xscanimage(1), xsane(1)
Currently, the SANE protocol does not allow automatically updating options whenever the
hardware changes. Thus the number of choices for the --frame option will be fixed when the
backend is initialized (usually when the user runs the frontend). In particular, if there
is no film strip in the automatic film strip feeder when the backend is initialized, the
frame option will not appear at all. Also, restarting the frontend after swapping film
adapters is strongly recommended.
Linux kernels prior to 2.4.19 had a patch that truncated INQUIRY data from IEEE 1394 scan-
ners to 36 bytes, discarding vital information about the scanner. The IEEE 1394 models
therefore only work with 2.4.19 or later.
No real bugs currently known, please report any to the backend maintainer or the SANE
developers' email list.
The backend is written and maintained by Andras Major (firstname.lastname@example.org).