SourceForge Logo

Microtek ScanMaker 3600 driver

Home | Hotplugging Howto | Technical drawings | The sourceforge project page | Subscribe to the developer mailing list

updated on 12.1.2002 (eichholz).

This project has produced an Open Source driver for the ScanMaker 3600 and possibly other Microtek scanners if there are any that are similar. The initial target OS is Linux, because that is what the developers currently use, but we will do our best to design the code so that it can be ported to other operating systems like the BSD's.


See the main sourceforge project page for various sources.

The plain SANE backend is incorporated in the SANE-backend package since version 1.0.5. So there is not always need to install the sm3600 package. There ist no kernel patch or driver required!. Only a recent libusb (>= 0.1.3b is ok) and USBFS is required.

This package privides some more material:

To get the source tree, please see the CVS page for instructions. You can also get a more or less recent source tarball here.

To keep current with progress check the "news" section at our sourceforge project page.

Compatible scanners


  1. The backend seems to work quite reliable for most of us. Some scanners cause problems with the slider return code in sm3600-homerun.c. If Your very scanner is one of them, Your help is apprechiated.
  2. Since we use usblib, You cannot scan as mere user without setting the file permissions of the kernel magic files each time You switch Your scanner on.
  3. See the hotplugging info for a comfortable solution fort the permission issue.

Useful links

Linux USB home page, Linux Hotplug home page and USB library home page.

The USB home page is where you can download the USB spec.

The SANE (scanner access now easy) home page.

usb-robot is couple of programs that allow you to send commands to usb devices. The usbsnoopy replay feature does not currently work with the ScanMaker 3600, but the 'usb-robot-slave' program works and usb-robot provides an example of how to use libusb.

The FTP site for Microtek SCSI command sets.

Jonathan Buzzard's Linux USB Scanner page.


USB snoopy is a couple of utilities that allow you to spy on a windows USB driver.

We have a few scripts that do various useful things to the usbsnoopy logs like extracting the relevant scanner protocol data and producing output suitable for usb-robot-slave. These are available from CVS.

Scanner information

The scanner is built around a Toshiba TC90A52F which is a Scanner Processor ASIC with intregal USB. The board in my scanner has part no. YG6U-9903 REV-D and contains the ASIC and an EliteMT M11B416256A RAM chip. I haven't found any info about the RAM chip yet. The inside of the cover has a calibration strip at the top end that can be seen in this picture.

The scanner does not use scsi-over-usb like some of the other Microtek USB scanners but instead uses a register transfer protocol to communicate directly with the scanner controller.

Getting the scanner to go requires two separate drivers, a USB protocol driver to handle the communications with the scanner and a scanner protocol driver to tell the scanner what to do. The hardest part will be reverse engineering the scanner protocol. Fortunately Microtek have come to the party and supplied the documentation for the scanner, thanks Microtek!, and the driver is now very usable.

The scanner protocol driver has been written as a SANE backend and the USB protocol driver we are currently using is libusb. The USB code is integrated into the SANE backend. There is also a version of a Linux kernel driver under development however at this stage (mid May 2001) the backend only uses libusb.

$Id: index.html,v 1.13 2002/01/12 15:38:40 eichholz Exp $