sane-gt68xx(5) SANE Scanner Access Now Easy sane-gt68xx(5)
sane-gt68xx - SANE backend for GT-68XX based USB flatbed scanners
The sane-gt68xx 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
sane-find-scanner(1) or syslog) to me. Even if the scanner's name is
only slightly different from the models already listed as supported,
please let me know.
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(1) without further actions. For setting per-
missions and general USB information, look at sane-usb(5).
You need a firmware file for your scanner. That's a small file contain-
ing software that will be uploaded to the scanner's memory. It's usu-
ally 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(1) to unpack. If everything else fails, you must install
the Windows driver and get the firmware from there (usually in the win-
dows/system or system32 directories). Put that firmware file into
/usr/local/share/sane/gt68xx/. Make sure that it's readable by every-
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
The override, firmware, vendor, model, and afe options must be placed
after the usb line they refer to.
Option override 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-scanex-
press-1200-ub-plus is necessary for the Mustek Scanexpress 1200 UB
Plus, the Medion/Lifetec/Tevion LT 9452, and the Trust Compact Scan USB
19200. override artec-ultima-2000 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 mustek-bearpaw-2400-cu is necessary for the
Mustek BearPaw 2400 CU and the Fujitsu 1200CUS. The override option
must be the first one after the usb line.
Option firmware 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/local/share/sane/gt68xx/. You may need to
create this directory. If you want to place the firmware files at a
different path, use a firmware line.
The vendor and model options are not absolutely necessary but for con-
venience. Quite a lot of scanners from different manufacturers share
the same vendor/product ids so you can set the "correct" name here.
The afe option allows one to set custom offset and gain values for the
Analog FrontEnd of the scanner. This option can be either used to se-
lect 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 parame-
ters: red offset, red gain, green offset, green gain, blue offset, and
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. On *NIX systems, the direc-
tories are separated by a colon (`:'), under OS/2, they are sep-
arated 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 /usr/lo-
cal/etc/sane.d. If the value of the environment variable ends
with the directory separator character, then the default direc-
tories are searched after the explicitly specified directories.
For example, setting SANE_CONFIG_DIR to "/tmp/config:" would re-
sult in directories tmp/config, ., and /usr/local/etc/sane.d be-
ing searched (in this order).
If the library was compiled with debug support enabled, this en-
vironment 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
sane(7), sane-usb(5), sane-artec_eplus48u(5) sane-plustek(5),
sane-ma1509(5), sane-mustek_usb(5), sane-mustek(5), sane-mustek_pp(5),
Henning Meier-Geinitz <firstname.lastname@example.org>
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 Y-resolution differ.
Support for buttons is missing.
More detailed bug information is available at the gt68xx backend home-
Please contact us if you find a bug or missing feature: <sane-de-
Please send a debug log if your scanner isn't detected correctly (see
13 Jul 2008 sane-gt68xx(5)
Man(1) output converted with