[sane-devel] check-usb-scanner: a tool to determine the chipset that's used by a USB scanner

Henning Meier-Geinitz henning@meier-geinitz.de
Mon, 17 Feb 2003 20:44:23 +0100


Hi everyone,

During the last years I've got quite some mails from users who wanted
to know, if their scanner may work with a specific backend. They
didn't know which chipset the scanner uses because they didn't want to
open it (warranty or possible destruction). So I thought a utility
that tries to find out the chipset that a scanner has may be useful.
With the knowledge about the chipset it's easier to decide if an
existing backend may support the scanner with some changes or if a
completely new one is necessary.

So I just hacked together "check-usb-scanner". This tool uses some
heuristics to check the USB descriptors of a device and send some
bulk/control messages to find out the chipset. The list of chipsets is
very limited currently, but these are the only ones I have:

Grandtech GT-6801 (e.g. Mustek BearPaw 1200 CU)
Grandtech GT-6816 (e.g. Mustek BearPaw 2400 CU Plus)
Mustek MA-1015 (Mustek ScanExpress 1200 USB)
Mustek MA-1017 (e.g. Mustek ScanExpress 1200 UB)
Mustek MA-1509 (Mustek BearPaw 1200F, SCSI-over-USB)

I know that there is a test program for lm983x based scanners, maybe
it can be added? 

The difficult stuff is to make the tests in a way they don't freeze
devices. You can't just send a control message that is understood by
one chipset until you are (almost) sure that you send it to the
correct device. Otherwise the device may be confused and won't react
to further communication.

Ok, here is the code and a little bit of documentation:
http://www.meier-geinitz.de/sane/check-usb-scanner/

Please test your scanners. If a scanner/chipset is misdetected, please
contact me. If you have a patch for a different chipset, I'll add it.

Bye,
  Henning