[sane-devel] Update on status of unsupported mustek_usb 1200usb driver

Martin Guy martin@freaknet.org
Thu, 5 Aug 2004 16:28:25 +0200 (CEST)

   I've been looking at how the Mustek 1200 usb performs with the current
driver.  It doesn't work yet, but I have to give the scanner back to its
owner, so hope this analysis may be of some help to someone else.

All the best


Hi, I'm a .signature virus! Copy me to your .signature file and
help me propagate, thanks!

Notes on the problems with the Mustek 1200usb flavour of scanners.

The unsupported "1200usb" model (USB device code 0x055f:0x0003) which
corresponds to the Mustek 1200 USB scanner and the Mustek ScanImage 1200,
"almost works" with the mustek_usb driver.
It seems to have the same circuitry as the supported ones (MA1017 chip)
with a different optical sensor, called NEC600 in the code, but which is
really an NEC 3797, a CCD Charge Coupled Device instead of a CIS.

These tests were performed with an unbranded chinese scanner
"ScanMagic 1200 USB", reported by lsusb and /proc/bus/usb/devices
to have the right USB device codes and to be a
"Mustek Systems Inc. ScanExpress 1200 USB".  "sane-find-scanner"
reports it ok, but "scanimage -L" and "xsane" do not see it.

Having uncommented the "1200usb" line in /etc/sane.d/mustek_usb.conf,
"scanimage -d mustek_usb:/dev/usb/scanner0" with the 2.4.20 and .26
kernel scanner drivers works, as does "-d mustek_usb:libusb:001:006"
(or whatever USB slot it gets) with the scanner kernel module removed,
or with the 2.6.7 kernel (which no longer has a scanner module).

The motor driving code works fine, and the scanned area is correctly framed
and orientated, but the image data is corrupted: barely legible as if through
a mask of noise.

In the vertical direction it is heavily banded, though the banding disappears
if you disconnect the neon light and use daylight through a single sheet of
paper.  Conclusion: the neon flickers rapidly as it scans, and the image
sensing is not synchronised as it should be with the flashes.

In the horizontal direction, only two or three different values are ever
returned in "Gray" mode: 0, 255 and 245, with a three-pixel repeating
typically the first pixel of every three will be off (0) the third pixel
always on at 255, and the second either fully-on or fully-off according to
the shade at that point of the document being scanned.
Conclusion: again, the setup of the exposure timings (or contrast or whatever)
for the sensor is wrong.

Setting "dev->is_cis_detected" to SANE_TRUE in mustek_usb_high.c for
case MT_1200USB gives a better image, but still specked and with only
three different gray values present.

In the mustek_pp_ccd code there is mention of setting voltages and waiting
and stuff, so there may be something crucial that we are missing from our
whole way of driving the NEC sensor.

I got this far, then the person who had given me a "dead" scanner saying I
could do what I wanted with it, when they learned that it wasn't dead after
all, wanted it back to use it with Windows.  People!

    Martin Guy <martinwguy@yahoo.it>, August 2004