sane-gt68xx - SANE backend for GT-68XX based USB flatbed scanners
library implements a SANE (Scanner Access Now Easy)
backend that provides access to USB flatbed scanners based on the Grandtech
GT-6801 and GT-6816 chips. A list of supported scanners can be found on the
gt68xx backend homepage:
This is BETA software. Especially if you test new or untested scanners, keep
your hand at the scanner's plug and unplug it, if the head bumps at the end of
the scan area.
If you own a scanner other than the ones listed on the gt68xx homepage that
works with this backend, please let me know this by sending the scanner's
exact model name and the USB vendor and device ids (e.g. from
or syslog) to me. Even if the scanner's name is only
slightly different from the models already listed as supported, please let me
If you own a scanner that isn't detected by the gt68xx backend but has a GT-6801
or GT-6816 chipset, you can try to add it to the backend. Have a look at the
following web page:
Please use libusb-0.1.8 or later. Without libusb or with older libusb versions
all kinds of trouble can be expected. The scanner should be found by
sane-find-scanner without further actions. For setting permissions and general
USB information looks at sane-usb
You need a firmware file for your scanner. That's a small file containing
software that will be uploaded to the scanner's memory. It's usually named
*.usb, e.g. PS1fw.usb
. It comes on the installation CD that was
provided by the manufacturer, but it may be packaged together with the
installation program in an .exe file. For Mustek scanners, the file can be
downloaded from the gt68xx backend homepage. For other scanners, check the CD
for .usb files. If you only find *.cab files, try cabextract to unpack. If
everything else fails, you must install the Windows driver and get the
firmware from there (usually in the windows/system
directories). Put that firmware file into /usr/share/sane/gt68xx/
sure that it's readable by everyone.
The contents of the gt68xx.conf
file is a list of usb lines containing
vendor and product ids that correspond to USB scanners. The file can also
contain option lines. Empty lines and lines starting with a hash mark (#) are
ignored. The scanners are autodetected by usb vendor_id product_id
statements which are already included into gt68xx.conf
"vendor_id" and "product_id" are hexadecimal numbers that
identify the scanner.
options must be placed after the usb
line they refer to.
is used to override the default model parameters. That's
necessary for some scanners that use the same vendor/product ids but are
different. For these scanners there are already commented out override lines
in the configuration file. override mustek-scanexpress-1200-ub-plus
necessary for the Mustek Scanexpress 1200 UB Plus, the Medion/Lifetec/Tevion
LT 9452, and the Trust Compact Scan USB 19200. override
is used for the Artec Ultima 2000, the Boeder SmartScan
Slim Edition, the Medion/ Lifetec/ Tevion/ Cytron MD/LT 9385, the Medion/
Lifetec/ Tevion MD 9458, and the Trust Flat Scan USB 19200. override
is necessary for the Mustek BearPaw 2400 CU and the
Fujitsu 1200CUS. The override
option must be the first one after the
selects the name and path of the firmware file. It's only
necessary if the default (or override) doesn't work. The default firmware
directory is /usr/share/sane/gt68xx/
. You may need to create this
directory. If you want to place the firmware files at a different path, use a
options are not absolutely necessary but for
convenience. Quite a lot of scanners from different manufacturers share the
same vendor/product ids so you can set the "correct" name here.
option allows one to set custom offset and gain values for the
Analog FrontEnd of the scanner. This option can be either used to select the
AFE values if automatic coarse calibration is disabled, or to make automatic
coarse calibration faster. For the latter usage, enable debug level 3 (see
below), scan an image and look for debug line string with "afe".
Copy this line to gt68xx.conf
. The option has six parameters: red
offset, red gain, green offset, green gain, blue offset, and blue gain.
A sample configuration file is shown below:
usb 0x05d8 0x4002
model "Compact Scan USB 19200"
afe 0x20 0x02 0x22 0x03 0x1f 0x04
- The backend configuration file (see also description of
- The static library implementing this backend.
- The shared library implementing this backend (present on
systems that support dynamic loading).
- This environment variable specifies the list of directories
that may contain the configuration file. Under UNIX, the directories are
separated by a colon (`:'), under OS/2, they are separated by a semi-colon
(`;'). If this variable is not set, the configuration file is searched in
two default directories: first, the current working directory
(".") and then in /etc/sane.d. If the value of the environment
variable ends with the directory separator character, then the default
directories are searched after the explicitly specified directories. For
example, setting SANE_CONFIG_DIR to "/tmp/config:" would
result in directories "tmp/config", ".", and
"/etc/sane.d" being searched (in this order).
- If the library was compiled with debug support enabled,
this environment variable controls the debug level for this backend.
Higher debug levels increase the verbosity of the output. If the debug
level is set to 1 or higher, some debug options become available that are
normally hidden. Handle them with care.
Example: export SANE_DEBUG_GT68XX=4
Henning Meier-Geinitz <email@example.com>
The original gt68xx driver was written by Sergey Vlasov, Andreas Nowack, and
David Stevenson. Thanks for sending patches and answering questions to them
and all the other contributors.
The first few lines of the image are garbage for the 2400 TA Plus.
Interpolation should be used instead of just copying data, when the X- and
Support for buttons is missing.
More detailed bug information is available at the gt68xx backend homepage
. Please contact us if
you find a bug or missing feature: <firstname.lastname@example.org>.
Please send a debug log if your scanner isn't detected correctly (see