I'm no longer active in developing SANE drivers. Please send any comments or support requests to the sane-devel mailing list.
Zur deutschen Kurzanleitung (German introduction, the English page may be more current)
In Russian (The English page may be more current)
This page describes the gt68xx backend. The gt68xx backend is a SANE backend (driver) designed to support scanners based on the Grandtech GT-6801 and GT-6816 "System-On-Chip" scanner chipsets. The backend is based on the gt68xx driver written by Sergey Vlasov, Andreas Nowack, and David Stevenson. Thanks to them, and all the other contributors for all their work. Thanks to Mustek for providing the firmware files and answering questions. Thanks for answering questions, testing, giving comments and sending patches to everyone else. Without your support the backend wouldn't be possible.
Most scanners should work with sane-backends 1.0.17. Some scanners need the latest backend from this page, however.
The gt68xx backend is BETA software. That means that most features are implemented, but some bugs are remaining. When you try the backend, especially with a new or untested scanner, keep your finger at the USB or power connector of your scanner and unplug it if the scanner makes unusual sounds.
If you have additinal information that is not already mentioned on this page please contact the sane-devel mailing list. Please use the latest version of the gt68xx backend.
This is not about Microsoft Windows. I can't help you with this operating system. Don't ask questions about Windows drivers. No, I don't have drivers for XP.
These are the scanners that are supported or may be supported by the backend. White background means that I don't have reports. Red background: Is detected but doesn't scan anything useful. Yellow: Works in at least one mode. Green: basically works in all modes. See also the section about bugs that are present for all scanners. VID and PID are the USB vendor and product ids. They can be found in syslog (e.g. /var/log/messages) or for Linux in /proc/bus/usb/devices. sane-find-scanner will also print them. Firmware is the name of the firmware file that was provided by the vendor. I provide links to the files themselves wherever possible. The firmware files were provided by Mustek. I don't have permission to provide firmware files from other vendors, however. Testing is done with Linux. Scanning works with at least FreeBSD, NetBSD, and OpenBSD, too.
The status in the table refers to the latest backend version available on this page. For a list of scanners supported in the current official SANE release, see the SANE backend list.
The ScanExpress models are called "Plug-N-Scan" in North America apparently.
|Artec||Ultima 2000||CIS||6801||0x05d8||0x4002||ePlus2k.usb / Gt680xfw.usb||Product id 0x4002 works, use override "artec-ultima-2000". Product id 0x4001 does not work at all, that's a different chip.|
|Artec||Ultima 2000 e+||CIS||6801||0x05d8||0x4002||ePlus2k.usb||Only limited testing but seems to work. Use override "artec-ultima-2000".|
|Boeder||SmartScan Slim Edition||CIS||6801||0x05d8||0x4002||gt680xfw.usb||Same as Artec Ultima 2000, use override "artec-ultima-2000".|
|Fujitsu||1200CUS||CIS||6801||0x05d8||0x4002||ps2fw.usb||Works but has limited testing. Sold in Japan only. Use override "mustek-bearpaw-2400-cu".|
|Genius||Colorpage Slim 1200||CIS||6816||0x0458||0x20E1||Cis3r5b1.fw||Untested but should work. Please report if it works.|
|Genius||Colorpage SF600||CIS||6816||0x0458||0x2021||cism216.fw||Sheet-fed scanner, probably same problems as Plustek M12: Calibration is not available, area selection is limited - positioning does currently not work.|
|Genius||Colorpage Vivid3 V2||CCD||6801||0x0458||0x2011||ccd548.fw||Works.|
|Genius||Colorpage Vivid 1200 X||CCD||6816||0x0458||0x201d||ccd569.fw||Works. Same as 1200 XE, but with buttons.|
|Genius||Colorpage Vivid 1200 XE||CCD||6816||0x0458||0x201f||ccd569.fw||Works.|
|Googlegear||2000||CIS||6801||0x05d8||0x4002||gt680xfw.usb||Same as Artec Ultima 2000, use override "artec-ultima-2000".|
|Lexmark||X70||CCD||6816||0x043d||0x002d||OSLO3071b2.usb||Works, at 16 bits/color some resolutions don't work, sold by Plus, same as X73. The firmware is not hosted on my pages, so no guarantees...|
|Lexmark||X73||CCD||6816||0x043d||0x002d||OSLO3071b2.usb||Works. Same as the X70. The firmware is not hosted on my pages, so no guarantees...|
|Medion/Lifetec/Tevion/Cytron||MD 4394||CIS||6801||0x05d8||0x4002||ePlus2k.usb||Works with override "artec-ultima-2000". Maybe Artec Ultima 2000 E+ clone? If your scanner has product id 0x4003, use the artec_eplus48u backend instead.|
|Medion/Lifetec/Tevion/Cytron||MD/LT 9375||CIS||6801(?)||0x05d8(?)||0x4002(?)||Gt680xfw.usb||Untested but is reported to have the same ids as the Artec Ultima 2000. Try override "artec-ultima-2000", sold by Tesco (UK)|
|Medion/Lifetec/Tevion/Cytron||MD/LT 9385||CIS||6801||0x05d8||0x4002||Gt680xfw.usb / ePlus2k.usb||Works with override "artec-ultima-2000", sold by ALDI, Artec Ultima 2000 clone|
|Medion/Lifetec/Tevion||LT 9452||CIS||6801||0x05d8||0x4002||sbfw.usb||Use override "mustek-scanexpress-1200-ub-plus", sold by ALDI, probably Mustek ScanExpress 1200 UB Plus clone|
|Medion/Lifetec/Tevion||MD 9458||CIS||6801||0x05d8||0x4002||ePlus2k.usb||Works with override "artec-ultima-2000". Sold by ALDI, maybe Artec Ultima 2000 E+ clone?|
|Mustek||BearPaw 1200 CS||CCD||6816||0x055f||0x021e||A1fw.usb||Works in all modes.|
|Mustek||BearPaw 1200 CU||CIS||6801||0x05d8||0x4002||ps1fw.usb||8 and 12 bit work in all modes|
|Mustek||BearPaw 1200 CU Plus||CIS||6816||0x055f||0x021c||PS1Dfw.usb||works in all resolutions|
|Mustek||BearPaw 1200 CU Plus||CIS||6816||0x055f||0x021b||PS1Gfw.usb||Works.|
|Mustek||BearPaw 1200 TA||CCD||6816||0x055f||0x021e||A1fw.usb||Transparency adapter supported, 8, 12, 16 bit work in all modes|
|Mustek||BearPaw 2400 CS||CCD||6816||0x055f?||0x0218?||A2fw.usb?||Untested, probably works|
|Mustek||BearPaw 2400 CS Plus||CCD||6816||0x055f||0x0219||A2Dfw.usb||Works. Some problems reported with 12/16 bit modes, but they can't be reproduced here.|
|Mustek||BearPaw 2400 CU||CIS||6801||0x05d8||0x4002||ps2fw.usb||Works. Use override "mustek-bearpaw-2400-cu". High resolutions are slow.|
|Mustek||BearPaw 2400 CU Plus||CIS||6816||0x055f||0x021d||PS2Dfw.usb / PS2Dfw2.usb||8, 12, 16 bit works all modes. If you can only scan half of the page, use the PS2Dfw2.usb firmware and rename it to PS2Dfw.usb. In that case, you may also need backend 1.0-73 or later.|
|Mustek||BearPaw 2400 TA||CCD||6816||0x055f||0x0218||A2fw.usb||Transparency Adapter supported, 8, 12, 16 bit works in all modes|
|Mustek||BearPaw 2400 TA Plus||CCD||6816||0x055f||0x0219||A2Dfw.usb||Transparency Adapter supported, 8, 12, 16 bit works in color, gray is 8 bit only|
|Mustek||BearPaw 2448 CS Plus||CCD||6816||0x055f||0x021a||A2Nfw.usb||Works, but is slow.|
|Mustek||BearPaw 2448 TA Plus||CCD||6816||0x055f||0x021a||A2Nfw.usb||Works, but is slow.|
|Mustek||Plug-n-Scan 2400 M||CCD||6816||0x055f||0x0219||A2Dfw.usb||Works, but is slow at high resolutions. Same as BearPaw 2400 CS Plus.|
|Mustek||Plug-n-Scan 2400 MT||CCD||6816||0x055f||0x0219||A2Dfw.usb||Works, but is slow at high resolutions. Same as BearPaw 2400 TA Plus.|
|Mustek||ScanExpress 1200 UB Plus||CIS||6801||0x05d8||0x4002||sbfw.usb||8 and 12 bit work in all modes, 150 dpi 12 bit has "funny" colors, use override "mustek-scanexpress-1200-ub-plus".|
|Mustek||ScanExpress 1248 UB||CIS||6816||0x055f||0x021f||SBSfw.usb||Works.|
|Mustek||ScanExpress 2400 USB||CCD||6801||0x05d8||0x4002||P9fw.usb||Is detected, scanning may not work, try without calibration, use override "mustek-scanexpress-2400-usb"|
|Mustek||ScanExpress A3 USB||CCD||6816||0x055f||0x0210||a32fw.usb||Works. Stil vertical stripes, however.|
|NeatReceipts||Scanalizer Professional 2.5||CCD||6816||0x07b3||0x0412||cism216.fw?||Untested. Same as Plustek M12?|
|Nortek||My Scan1200||CCD||6816||0x07b3||0x040b||ccd548.fw||Untested but should work.|
|PC-World||PC Line PCL-3000||CIS||6816||0x055f||0x021f||SBSfw.usb||Works.|
|Packard Bell||Diamond 1200||CIS||6801||0x05d8||0x4002||ps1fw.usb||Works, probably a Mustek BearPaw 1200 CU clone.|
|Packard Bell||Diamond 1200 Plus||CIS||6816||0x055f||0x021c||PS1Dfw.usb||Works. Probably a Mustek BearPaw 1200 CU Plus clone.|
|Packard Bell||Diamond 1200 Plus||CIS||6816||0x055f||0x021b||PS1Gfw.usb||Works. Probably a Mustek BearPaw 1200 CU Plus clone.|
|Packard Bell||Diamond 2450||CCD||6816||0x055f||0x0219||A2Dfw.usb||Works. Same as Mustek BearPaw 2400 TA Plus.|
|Plustek||OpticPro 1248U||CCD||6801||0x07B3||0x0400/0x0401||ccd548.fw||Works upto 600 dpi. For product id 0x400, you need at least version 1.0-39.|
|Plustek||OpticPro U16B (+)||CCD||6816||0x07b3||0x0402 / 0x0403||ccd68861.fw||Works.|
|Plustek||OpticPro UT16B||CCD||6816||0x07b3(?)||0x0403(?)||ccd68861.fw(?)||Actually untested but should work. Transparency adapter not supported yet. Testers welcome.|
|Plustek||OpticPro S12||CCD||6816||0x07b3||0x040b||ccd548.fw||Should work, but is untested. Please send reports.|
|Plustek||OpticPro ST12||CCD||6816||0x07b3||0x040b||ccd548.fw||May work, but is untested. Transparency adapter not supported yet. Please send reports.|
|Plustek||OpticSlim 1200||CIS||6816||0x07b3||0x0413||cism216.fw||Works. High resolutions are slow. The firmware is not hosted on my pages, so no guarantees...|
|Plustek||OpticSlim 2400||CIS||6816||0x07b3||0x0422||cis3R5B1.fw||Works upto 1200 dpi.|
|Plustek||OpticSlim M12||CIS||6816||0x07b3||0x0412||cism216.fw||Sheet-fed scanner. Use the firmware file that comes with your scanner. Other firmware files (including the one linked from this page) may not work. Calibration is not available, area selection is limited - positioning does currently not work.|
|Revscan||19200i||CCD||6801||0x7B3||0x0400||ccd548.fw(?)||Works upto 600 dpi. Relabeled Plustek OpticPro 1248U?|
|ScanMagic||1200 UB Plus||CIS||6801||0x05d8||0x4002||sbfw.usb||8 and 12 bit work in all modes, 150 dpi 12 bit has "funny" colors, use override "mustek-scanexpress-1200-ub-plus". Same as Mustek ScanExpress 1200 UB Plus|
|Trust||240TH Easy Webscan Gold||CCD||6816||0x055f||0x0218||A2fw.usb||Same hardware as Mustek BearPaw 2400 TA Plus|
|Trust||Compact Scan USB 19200||CIS||6801||0x05d8||0x4002||sbfw.usb||Use override "mustek-scanexpress-1200-ub-plus". If you have vendor id 0x055f and product id 0x0006, use the mustek_usb backend instead. It's a Mustek ScanEpress 1200 UB (Plus) clone.|
|Trust||Direct WebScan 19200||CIS||6816||0x055f||0x021c||PS1Dfw.usb||Works. It's a Mustek Bearpaw 1200 CU Plus clone.|
|Trust||Flat Scan USB 19200||CIS||6801||0x05d8||0x4002||ePlus2k.usb / Gt680xfw.usb||Works up to 600 dpi. Use override "artec-ultima-2000". Same hardware as Artec Ultima 2000.|
|Visioneer||OneTouch 7300||CIS||6816||0x04a7||0x0444||Cis3r5b1.fw||Works upto 1200 dpi and 12 bits/color.|
If the scan head of your scanner doesn't move back to its home position (e.g. after a crash or power failure), try the gt68xx-home utility. You need a C-Compiler and libusb (+ header file) to get it running. Enter "make". Make sure that your scanner is the only one connected to the system. Run "xsane" or "scanimage --dont-scan". Then run ./gt68xx-home. The scan slider should move back now. This is a bug in the gt68xx-Backend that mostly happens with the Mustek BearPaw 1200 TA/CS. It's fixed in backend version 1.0.67.
For more bugs and missing features, see the TODO list.
If you use a precompiled binary e.g. from your distribution, you can skip this section. Precompiled packages are usually called "libsane" or "sane-backends".
There are two ways to get your scanner detected: The kernel scanner driver (scanner module) or libusb, the USB library. Both ways work. However, as the kernel scanner driver has been removed from Linux I will only describe how to use the scanner with libusb.
Libusb Version 0.1.8 or later is necessary. If it's not yet installed on your system (including its headerfile usb.h), you can get it from the libusb homepage. When building the backend, check that libusb was detected. configure will print a LIBS line that should contain "-lusb". If it's not done by your distribution, you may also need to mount the usbfs (/proc/bus/usb). For setting up usbfs and adjusting permissions, see man sane-usb for details.
If you want to compile your SANE yourself, I recommend removing old installations of SANE before proceeding. The source code and specific compilation instructions can be found at the download section.
To get your scanner running, you need a firmware file. The firmware is usually named *.usb (e.g. PS1Dfw.usb). You really need the firmware file for your specific scanner. E.g. the BearPaw 1200 CU's firmware will not work with the ScanExpress 1200 UB Plus. For most Mustek scanners the firmware can be downloaded from the status section. If your firmware isn't listed there, try one of the following methods:
Put your firmware file in /usr/local/share/sane/gt68xx/ (or /usr/share/sane/gt68xx/ if you use a SANE package that came with your distribution). You may need to create this directory. Or use whatever directory you want, but you must specify the path in gt68xx.conf later. Example:
su - mkdir /usr/share/sane/gt68xx/ cp PS1fw.usb /usr/share/sane/gt68xx/ chmod a+r /usr/share/sane/gt68xx/PS1fw.usb
Once you have installed the backend, have a look at man sane-gt68xx for backend-specific information and man sane-usb for general USB information, e.g. for how to set permissions.
After successful installation, you may need to setup gt68xx.conf (in /usr/local/etc/sane.d/). That's necessary for some GT-6801-based scanners like the Mustek ScanExpress 1200 UB Plus (and clones), the Mustek BearPaw 2400 CU, and the Artec Ultima 2000 (+ clones). Uncomment the right override for your scanner in gt68xx.conf. If you use a different path for your firmware file or the firmware has a different name, add/uncomment a firmware line in gt68xx.conf. See man sane-gt68xx.conf for details.
Also check that "gt68xx" is listed in dll.conf.
Try sane-find-scanner now. If it doesn't find your scanner, there is a problem with access to the USB kernel drivers, a permission problem or sane-backends wasn't built with libusb support.
scanimage -L should find your scanner now.
Try scanning with "scanimage >out.pnm". If it complains about not finding the firmware, check gt68xx.conf again, especially the override and firmware lines.
"scanimage --help" lists the available options like --mode and --resolution. If something doesn't work, use "export SANE_DEBUG_GT68XX=255" to get debug output. Reports are welcome.
If your scanner works but is recognized with the wrong vendor/model names you can adjust them in gt68xx.conf (vendor/model lines).
If you have compiled your own SANE from source and if you want to use XSane (or any other graphical frontend), I recommend removing the distribution's sane and xsane packages completely and compile XSane from source. An alternative and rather ugly way is to keep the distribution's sane and xsane packages and to overwrite the sane installation by running configure in the gt68xx package with arguments like this: "configure --prefix=/usr --sysconfdir=/etc". All files are in /usr now including the firmware location "/usr/share/sane/gt68xx/". You may need to add "gt68xx" to dll.conf. No guarantees for the second approach, you are on your own.
Have a look at the CHANGES file for recent changes in the gt68xx backend.
If you are a beginner and don't like to compile yourself I recommend to use a current RPM (or DEB for Debian) of sane-backends if the latest version isn't already included in your distribution. Please use sane-backends 1.0.17 or later. Have a look at the SANE download section for some links to binaries. Some scanners may not work with these binary packages because they weren't supported at the time 1.0.17 was packaged.
When you download the gt68xx backend for the first time, use SANE 1.0.17 (or later) or the latest SANE CVS snapshot from the CVS snapshots page. Unpack, run ./configure ; make ; make install.
For updating, you can also download the smaller packages (ca. 80 kb) linked below. They don't work stand-alone, e.g. there is no Makefile. So you need to get a snapshot at least once. When you want to update to a new version, just unpack the gt68xx backend in the sane-backends directory of a snapshot and run make distclean; ./configure ; make ; make install.
For more detailed instructions, read the sane-backends README file.
Latest update: V 1.0-84 (2007-08-19)
1.0-81 (included in
1.0-79 (included in
1.0-71 (included in
1.0-66 (included in
1.0-37 (included in sane 1.0.10 + 1.0.11),
Sergey Vlasov's gt68xx driver was used to create this backend. It was originally located at http://www.mivlgu.murom.ru/~vsu/gt68xx/ but the link doesn't seem to work anymore.
There is also a scan program from Mustek for the BearPaw 1200 CU which is on newer driver CDs. It needs an old kernel scanner driver which is supplied with the package. The normal kernel scanner driver won't work. It comes with source code for the higher level functions. The low level functions are binary-only, however. It's not a SANE backend but a stand-alone command line and graphical tool. It's probably Linux-i386-only.
Some information about the GrandTech (now Sunplus) chips can be found on the SUNPLUS website.
The artec_eplus48u backend supports some GT-6816 based Tevion and Artec USB scanners.
The Mustek BearPaw 1200 and BearPaw 2400 are supported by Gerhard Jaeger's Plustek backend.
Other Mustek USB scanners (most ScanExpress models) are supported by the mustek_usb backend.
Mustek SCSI scanners are supported by the mustek backend.
Mustek parallel port scanners are supported by Jochen Eisinger's mustek_pp backend.
Last modified: 2008-03-02 16:20:27 CET by Henning Geinitz.
Back to the general SANE page
To my homepage (in German)
Impressum (in German)