SANE Scanner API Microtek maximum impact research meets
SANE meets Microtek at mir

Microtek Scanner backend for the SANE API

This page is the refuge of a SANE backend for Microtek scanners. SANE is a generic API for accessing imaging devices under UN*X, e.g. scanners. For more information on SANE, go to the SANE Homepage. For more information on the Microtek backend, keep reading.

Please note that there are two Microtek backends: microtek and microtek2. This web page is for the microtek backend only; see Current State for more information.

Breaking News:

  Oct. 3, 2002   No news is good news!
See the Latest Changes and Distribution for details (as usual).

Current State
Latest Changes
Troubleshooting and Feedback

Hints on Using the AVA-1502 SCSI Adapter
Hints on Using Parallel Port Scanners

Current State

Ok, it's about time to call this backend beta; it seems to be pretty stable for many people, with occasional hiccups here and there.

Currently it is known to work with:

and clones of those scanners. It supports the following features:

Other Microtek scanners pre-dating the E6 should work as well, but no testing has been reported yet. These include:

Newer Microtek scanners, post-dating the E6, use a completely different SCSI-II command set. They are supported by the microtek2 backend, instead (not written by me).

This page used to say:

There are no (known) parallel-port Microtek scanners which use the original command set, so this backend will never support parallel-port scanners. Bwah-hah-hah-hah!
I was mistaken! You might be able to use such scanners under Linux. See Hints on Using Parallel Port Scanners.

If you are curious to see what kind of controls it has, take a look at some screenshots of the control panels generated by xscanimage.

Latest Changes

October 1, 2002 - v0.13.1 (in SANE CVS)
Fixed bug in sane_read(). [had failed to set return length to zero in non-STATUS_GOOD conditions] (thanks to Witold Paluszynski)
Fixed bug in sane_set_io_mode(). [had returned SANE_STATUS_UNSUPPORTED if blocking mode was requested]
July 22, 2002 - v0.13.0
Replaced fprintf(stderr, ...) with various DBG() statements.
Updated .desc file.
Removed #include <stdio.h>.
Eliminated some age-old compiler warnings.
Updated copyright dates.
May 23, 2001 - v0.12.3 (in SANE v.1.0.8)
Added some missing 'static' declarations. Support for Agfa StudioStar. (thanks to Emil Assarsson)
May 23, 2001 - v0.12.2
'Properly' use expanded contrast/exposure settings to set option range
Support for Polaroid SprintScan 35LE. (thanks to Dick Bruijn)
- added "Polaroid" vendor string
- screwed around with 'brightness' setting
- attached 'negative scan' button
sane_exit() now frees the devlist allocated by sane_get_devices().
March 5, 2000 - v0.12.1
Quick patch to disable calibration quirks for anything but an E6.
Or, look at the entire recorded history in the Mini-Changelog.


This code is integrated into the SANE sources. Version 0.12.3 of the Microtek backend is contained in SANE release 1.0.8.

If you must have it, you can get the lastest (untested) SANE source tree from the SANE project CVS servers.

Troubleshooting and Feedback

If you are using an AVA-1502 SCSI card (the junk commonly supplied with these scanners), read the AVA-1502 Hints, to make sure that your card is actually working and recognizes the scanner.

First, RTFM!
That is "Read the manpages", especially sane-microtek, sane-scsi, sane-dll, scanimage, xscanimage. These are part of the SANE distribution, and should have been installed when you installed the software.

Second, some tips:

Now, some common problems:

It hangs my computer!!!
Sometimes other backends (especially brand new ones) can wreak havoc. Edit "dll.conf" to comment out all the backends which you don't need. (Read the sane-dll manual page.)
scanimage/xscanimage only works as root.
Check the permissions on the scsi generic device for your scanner (e.g. /dev/sgX for Linux). Make sure your userid has 'rw' privileges.
Scanning sometimes hangs in midscan.
Check that "disconnection" on your SCSI card is disabled for your scanner's SCSI ID, or perhaps for all devices (usually via the card's BIOS setup). This means that you can't access any other SCSI device on that controller while scanning --- including hard drives! Unfortunately, these scanners just don't support bus disconnect/reconnect.
Odd errors using the Tekram tmscsiw driver. (Linux)
This driver is for Tekram's NCR53c875 cards. Try using the standard NCR53c8xx driver instead.

Aside from these, and any bugs listed on the manpage, there are no other common problems. So, for other problems, please send me a debugging log. To be most helpful, do a

and send me a logfile of the stderr output, along with:

If you have a Microtek scanner not listed at the top of this page, try it out, tell me what happens, and please send a debug log so that I can record the specifications of that model.

Please send your feedback and bug reports to:


Kudos to Jan Schoenepaucke for his command-line mtekscan program. The basic scanner programming information for the backend came from deconstructing this program, and the program also served as the ever-crucial Working Example used to get the backend working.

Matt Marjanovic,, but write to

Last modified: Mon Dec 15 17:16:09 EST 2003
[powered by Gnu] [powered by Linux] [powered by WN] [SPEK extra] [MIR]