Hi Will,

the ScanExpress A3 is known to use the same controller as the BearPaw 2448 TA Pro, a chip called SQ113. As you have seen, if you change the PID in the mustek_usb2 backend, it is able to communicate with the scanner. However, you have to consider that the SQ113 is a quite primitive thing: It's basically a microcontroller with a USB interface, a tiny amount of on-chip RAM, and firmware in ROM. It has to be paired with a number of external components: RAM for caching image data, an ADC for digitizing signals from the sensor column, and a stepper motor driver. The SQ113 has been used in many different scanners, and I've never seen two different models with the same set of external components. To make matters worse, the firmware only provides a set of very low-level commands, which expose all these HW implementation details to the driver writer. It is the driver's responsibility to provide motor acceleration tables and such. In consequence, a driver written for one specific scanner built around the SQ113 is unlikely to work out of the box with another SQ113-based scanner.

If you want to make the mustek_usb2 backend work with your device, you'll need to sniff the communication between the Windows driver and the scanner, and find out the correct motor tables, ADC parameters, etc. This is not trivial - I've tried to do this once, for a different scanner, but had to give up due to a lack of free time.

Best regards,
  Jan


Am 18.12.20 um 16:03 schrieb Will via sane-devel:
Dear all,

I never really succeed to use this scanner when I purchased it some years ago, but I wanted to give it a last try. Please don't suggest to use it in a windows VM, it brings me out in hives.

$ lsusb
Bus 001 Device 027: ID 055f:040b Mustek Systems, Inc. ScanExpress A3 USB 1200 PRO

It seems different from the Mustek ScanExpress A3 USB (usb 0x055f 0x0210) supported by the gt86xx backend. I suspect it is only USB1.0. I tried to override it with my modelid, created a dir /usr/share/sane/gt86xx, added the firmware a32fw.usb, but it fails when I try scanimage (a32fw.usb, error message : open of device gt68xx [vendor & dev id] failed Invalid argument).

Then I got another idea, as other posts suggest that my scanner I related to Mustek BearPaw 2448 TA Pro USB. As the mustek_usb2 backend that supports it is beta (since 2008...), there is no config file in /etc/sane.d for it. So I cloned the backends repo, changed the deviceid to mine (0409 -> 040b), recompiled with ./configure BACKENDS="muskted_usb2" and replaced /usr/lib/x86_64-linux-gnu/sane/libsane-mustek_usb2.so.1.0.31 with the recompiled binary.

When I plug the scanner, scanimage -L detects it as the BearPaw scanner. I just had a black image at output and bad noises (that might break my scanner, so I tried it only once). I guess I don't have the previous error because it is the same chipset (not indicated by sane-find-scanner nor scanimage -L), but all commands to the scanner must be bad as they are different devices.

My programming skills are far away from programming an extension of such a driver. Is there anyone out there that would be able to do this, or if I should definitively give up on this ?

$ uname -r

Linux [hostname] 5.9.0-4-amd64 #1 SMP Debian 5.9.11-1 (2020-11-27) x86_64 GNU/Linux

Related posts :

http://sane.10972.n7.nabble.com/Mustek-ScanExpress-A3-USB-1200-PRO-td8044.html

https://sane-devel.alioth.debian.narkive.com/I2GUPzAp/mustek-scanexpress-a3-usb-1200-pro

Best regards,
Will






Reply via email to