Section: SANE Scanner Access Now Easy (5)
Updated: 10 Feb 2010
sane-cardscan - SANE backend for Corex CardScan usb scanners
library implements a SANE (Scanner Access Now Easy) backend which
provides access to the Corex CardScan 800c & 600c small-format scanners.
The backend supports only grayscale and color modes and media of
(theoretically) infinite length.
This backend may support other scanners. The best
way to determine level of support is to get a trace of the windows
driver in action, and send it to the author.
The cardscan backend supports the following options:
Selects the mode for the scan. Options are "Gray" and "Color".
The configuration file "cardscan.conf" is used to tell the backend how to look
for scanners, and provide options controlling the operation of the backend.
This file is read each time the frontend asks the backend for a list
of scanners, generally only when the frontend starts. If the configuration
file is missing, the backend will use a set of compiled defaults, which
are identical to the default configuration file shipped with SANE.
Scanners can be specified in the configuration file in 2 ways:
"usb 0x04c5 0x1042" (or other vendor/product ids)
Requests backend to search all usb busses in the system for a device
which uses that vendor and product id. The device will then be queried
to determine if it is a cardscan scanner.
"usb /dev/usb/scanner0" (or other device file)
Some systems use a kernel driver to access usb scanners. This method is untested.
Additionally, there are two configuration options that control the protocol
used by the backend:
"lines_per_block 16" (or other number from 1 to 32)
Controls the number of lines of image data which will be acquired in each pass.
Older scanners will require this number set lower, often 1.
"has_cal_buffer 1" (1 or 0)
Causes the backend to get calibration data from scanner during initialization.
Older scanners do not support this request, and must be set to 0.
The backend uses a single environment variable, SANE_DEBUG_CARDSCAN, which
enables debugging output to stderr. Valid values are:
10 Function trace
15 Function detail
20 Option commands
25 SCSI/USB trace
30 SCSI/USB detail
35 Useless noise
The scanner does not seem to have much control possible, so the backend
cannot set x/y coordinate values, resolutions, etc. These things could
be simulated in the backend, but there are plenty of command line tools.
The backend also does not send all the commands that the windows driver
does, so it may not function the same.
The backend does not have the calibration or ejection options of the
The hardware to build this driver was provided to the author by:
Jeff Kowalczyk <jtk a t yahoo d o t com>
m. allan noah: <kitno455 a t gmail d o t com>