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.

Current Status

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.

VendorProductTypeChip VIDPIDFirmwareComment
ArtecUltima 2000CIS6801 0x05d80x4002ePlus2k.usb / Gt680xfw.usbProduct id 0x4002 works, use override "artec-ultima-2000". Product id 0x4001 does not work at all, that's a different chip.
ArtecUltima 2000 e+CIS6801 0x05d80x4002ePlus2k.usbOnly limited testing but seems to work. Use override "artec-ultima-2000".
BoederSmartScan Slim EditionCIS6801 0x05d80x4002gt680xfw.usbSame as Artec Ultima 2000, use override "artec-ultima-2000".
Fujitsu1200CUSCIS6801 0x05d80x4002ps2fw.usbWorks but has limited testing. Sold in Japan only. Use override "mustek-bearpaw-2400-cu".
GeniusColorpage Slim 1200CIS6816 0x04580x20E1Cis3r5b1.fwUntested but should work. Please report if it works.
GeniusColorpage SF600CIS6816 0x04580x2021cism216.fwSheet-fed scanner, probably same problems as Plustek M12: Calibration is not available, area selection is limited - positioning does currently not work.
GeniusColorpage Vivid3xCCD6801 0x04580x2011ccd548.fwWorks.
GeniusColorpage Vivid3 V2CCD6801 0x04580x2011ccd548.fwWorks.
GeniusColorpage Vivid3xeCCD6801 0x04580x2017ccd548.fwWorks.
GeniusColorpage Vivid4CCD6816 0x04580x2014ccd68861.fwWorks.
GeniusColorpage Vivid4xCCD6816 0x04580x201bccd548.fwWorks.
GeniusColorpage Vivid4xeCCD6816 0x04580x201accd548.fwWorks.
GeniusColorpage Vivid 1200 XCCD6816 0x04580x201dccd569.fwWorks. Same as 1200 XE, but with buttons.
GeniusColorpage Vivid 1200 XECCD6816 0x04580x201fccd569.fwWorks.
Googlegear2000CIS6801 0x05d80x4002gt680xfw.usbSame as Artec Ultima 2000, use override "artec-ultima-2000".
LexmarkX70CCD6816 0x043d0x002dOSLO3071b2.usbWorks, 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...
LexmarkX73CCD6816 0x043d0x002dOSLO3071b2.usbWorks. Same as the X70. The firmware is not hosted on my pages, so no guarantees...
Medion/Lifetec/Tevion/CytronMD 4394CIS6801 0x05d80x4002ePlus2k.usbWorks 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/CytronMD/LT 9375CIS6801(?) 0x05d8(?)0x4002(?)Gt680xfw.usbUntested 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/CytronMD/LT 9385CIS6801 0x05d80x4002Gt680xfw.usb / ePlus2k.usbWorks with override "artec-ultima-2000", sold by ALDI, Artec Ultima 2000 clone
Medion/Lifetec/TevionLT 9452CIS6801 0x05d80x4002sbfw.usbUse override "mustek-scanexpress-1200-ub-plus", sold by ALDI, probably Mustek ScanExpress 1200 UB Plus clone
Medion/Lifetec/TevionMD 9458CIS6801 0x05d80x4002ePlus2k.usbWorks with override "artec-ultima-2000". Sold by ALDI, maybe Artec Ultima 2000 E+ clone?
MustekBearPaw 1200 CSCCD6816 0x055f0x021e A1fw.usbWorks in all modes.
MustekBearPaw 1200 CUCIS6801 0x05d80x4002 ps1fw.usb8 and 12 bit work in all modes
MustekBearPaw 1200 CU PlusCIS6816 0x055f0x021c PS1Dfw.usbworks in all resolutions
MustekBearPaw 1200 CU PlusCIS6816 0x055f0x021b PS1Gfw.usbWorks.
MustekBearPaw 1200 TACCD6816 0x055f0x021e A1fw.usbTransparency adapter supported, 8, 12, 16 bit work in all modes
MustekBearPaw 2400 CSCCD6816 0x055f?0x0218? A2fw.usb?Untested, probably works
MustekBearPaw 2400 CS PlusCCD6816 0x055f0x0219 A2Dfw.usbWorks. Some problems reported with 12/16 bit modes, but they can't be reproduced here.
MustekBearPaw 2400 CUCIS6801 0x05d80x4002 ps2fw.usbWorks. Use override "mustek-bearpaw-2400-cu". High resolutions are slow.
MustekBearPaw 2400 CU PlusCIS6816 0x055f0x021d 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.
MustekBearPaw 2400 TACCD6816 0x055f0x0218 A2fw.usbTransparency Adapter supported, 8, 12, 16 bit works in all modes
MustekBearPaw 2400 TA PlusCCD6816 0x055f0x0219 A2Dfw.usbTransparency Adapter supported, 8, 12, 16 bit works in color, gray is 8 bit only
MustekBearPaw 2448 CS PlusCCD6816 0x055f0x021a A2Nfw.usbWorks, but is slow.
MustekBearPaw 2448 TA PlusCCD6816 0x055f0x021a A2Nfw.usbWorks, but is slow.
MustekPlug-n-Scan 2400 MCCD6816 0x055f0x0219 A2Dfw.usbWorks, but is slow at high resolutions. Same as BearPaw 2400 CS Plus.
MustekPlug-n-Scan 2400 MTCCD6816 0x055f0x0219 A2Dfw.usbWorks, but is slow at high resolutions. Same as BearPaw 2400 TA Plus.
MustekScanExpress 1200 UB PlusCIS6801 0x05d80x4002 sbfw.usb8 and 12 bit work in all modes, 150 dpi 12 bit has "funny" colors, use override "mustek-scanexpress-1200-ub-plus".
MustekScanExpress 1248 UBCIS6816 0x055f0x021fSBSfw.usbWorks.
MustekScanExpress 2400 USBCCD6801 0x05d80x4002 P9fw.usbIs detected, scanning may not work, try without calibration, use override "mustek-scanexpress-2400-usb"
MustekScanExpress A3 USBCCD6816 0x055f0x0210a32fw.usbWorks. Stil vertical stripes, however.
NeatReceiptsScanalizer Professional 2.5CCD6816 0x07b30x0412cism216.fw?Untested. Same as Plustek M12?
NortekMy Scan1200CCD6816 0x07b30x040bccd548.fwUntested but should work.
PC-WorldPC Line PCL-3000CIS6816 0x055f0x021fSBSfw.usbWorks.
Packard BellDiamond 1200CIS6801 0x05d80x4002 ps1fw.usbWorks, probably a Mustek BearPaw 1200 CU clone.
Packard BellDiamond 1200 PlusCIS6816 0x055f0x021c PS1Dfw.usbWorks. Probably a Mustek BearPaw 1200 CU Plus clone.
Packard BellDiamond 1200 PlusCIS6816 0x055f0x021b PS1Gfw.usbWorks. Probably a Mustek BearPaw 1200 CU Plus clone.
Packard BellDiamond 2450CCD6816 0x055f0x0219A2Dfw.usbWorks. Same as Mustek BearPaw 2400 TA Plus.
PlustekOpticPro 1248UCCD6801 0x07B30x0400/0x0401ccd548.fwWorks upto 600 dpi. For product id 0x400, you need at least version 1.0-39.
PlustekOpticPro U16B (+)CCD6816 0x07b30x0402 / 0x0403ccd68861.fwWorks.
PlustekOpticPro UT16BCCD6816 0x07b3(?)0x0403(?)ccd68861.fw(?)Actually untested but should work. Transparency adapter not supported yet. Testers welcome.
PlustekOpticPro S12CCD6816 0x07b30x040bccd548.fwShould work, but is untested. Please send reports.
PlustekOpticPro S24CCD6816 0x07b30x040eccd569.fwWorks.
PlustekOpticPro ST12CCD6816 0x07b30x040bccd548.fwMay work, but is untested. Transparency adapter not supported yet. Please send reports.
PlustekOpticSlim 1200CIS6816 0x07b30x0413cism216.fwWorks. High resolutions are slow. The firmware is not hosted on my pages, so no guarantees...
PlustekOpticSlim 2400CIS6816 0x07b30x0422cis3R5B1.fwWorks upto 1200 dpi.
PlustekOpticSlim M12CIS6816 0x07b30x0412cism216.fwSheet-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.
Revscan19200iCCD6801 0x7B30x0400ccd548.fw(?)Works upto 600 dpi. Relabeled Plustek OpticPro 1248U?
ScanMagic1200 UB PlusCIS6801 0x05d80x4002 sbfw.usb8 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
Trust240TH Easy Webscan GoldCCD6816 0x055f0x0218 A2fw.usbSame hardware as Mustek BearPaw 2400 TA Plus
TrustCompact Scan USB 19200CIS6801 0x05d80x4002sbfw.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.
TrustDirect WebScan 19200CIS6816 0x055f0x021cPS1Dfw.usbWorks. It's a Mustek Bearpaw 1200 CU Plus clone.
TrustFlat Scan USB 19200CIS6801 0x05d80x4002ePlus2k.usb / Gt680xfw.usbWorks up to 600 dpi. Use override "artec-ultima-2000". Same hardware as Artec Ultima 2000.
VisioneerOneTouch 7300CIS6816 0x04a70x0444Cis3r5b1.fwWorks upto 1200 dpi and 12 bits/color.

Known bugs and missing features

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.

How can you help?


Building the backend

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.

Getting the firmware

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

Using the gt68xx backend

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.

Changes and download

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.

Source code

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)

Older updates: 1.0-83 1.0-82 1.0-81 (included in sane-backends 1.0.18), 1.0-80, 1.0-79 (included in sane-backends 1.0.17), 1.0-78, 1.0-76, 1.0-75, 1.0-74, 1.0-73, 1.0-72, 1.0-71 (included in sane-backends 1.0.16), 1.0-70, 1.0-69, 1.0-68, 1.0-67, 1.0-66 (included in sane-backends 1.0.15), 1.0-65, 1.0-64, 1.0-63, 1.0-62, 1.0-61, 1.0-59, 1.0-58, 1.0-57, 1.0-56, 1.0-55, 1.0-54, 1.0-53, 1.0-52, 1.0-51, 1.0-50, 1.0-49, 1.0-48, 1.0-47, 1.0-46, 1.0-45, 1.0-44, 1.0-43, 1.0-42, 1.0-41, 1.0-40, 1.0-39, 1.0-38, 1.0-37 (included in sane 1.0.10 + 1.0.11), 1.0-36, 1.0-35, 1.0-34, 1.0-33, 1.0-32, 1.0-31, 1.0-30, 1.0-29, 1.0-28, 1.0-27, 1.0-26, 1.0-25, 1.0-24, 1.0-23, 1.0-22, 1.0-21

Other Software (not necessary for gt68xx)

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)