[sane-devel] mustek_usb2 SQ113 Tevion MD 90070
albert.aribaud at free.fr
Sun Jun 24 10:21:19 UTC 2012
Le 23/06/2012 16:04, Jan Hauffa a écrit :
> Hi Albert,
> Am 22.06.12 23:55, schrieb Albert ARIBAUD:
>> I'd also like to get this running, as I own a HP ScanJet 4460 which
>> sane-find-scanner tells me has a SQ113 as well.
Oops. Typo here, I meant to type 4600, not 4460. Your answer fits only
> The first step is to identify the firmware of your scanner. In 2008,
> Triften Chmil did some research on the HP 4600 , which also contains
> a SQ113. While the low level protocol was the same as the one supported
> by the mustek_usb2 backend, the high level commands were different, so
> he wasn't able to reuse much of the mustek_usb2 code. As I've written in
> my previous mail, I suppose these commands are not hardwired in the
> SQ113, but implemented in firmware.
Ok, so identifying the firmware is probably somewhat moot now, as I have
the same model as Chmil already identified, but I went ahead anyway, as
it was a good simple test to see if my libusb devel was correctly
> I've attached a small C program that will dump the status registers of
> the SQ113. The last 4-8 bytes usually contain some kind of firmware ID.
> For the Mustek BearPaw 2448TA Pro this is "ESCAN01", for the Medion
> MD90093 it is "ES03". This corresponds to the name "EasyScan", which is
> mentioned several times in the mustek_usb2 source.
I had to modify the build line mentioned at the top of the file, as on
my Ubuntu 64-bit Precise option '-lusb-1.0' would work only if put after
the source file name, not before. I also made a crude "display also as
ascii if printable, otherwise as a dot" addition because I like to
overwork so I can be lazy afterward. :)
The result is:
0x51 Q 0x27 ' 0x27 ' 0x71 q 0xFE . 0xFF . 0x92 . 0x00 . 0x00 . 0xA9 .
0xFD . 0x0F . 0x32 2 0x37 7 0x00 . 0x96 .
0x10 . 0x00 . 0x00 . 0x00 . 0x71 q 0x00 . 0x00 . 0x00 . 0x00 . 0x00 .
0x00 . 0x71 q 0x53 S 0x31 1 0x32 2 0x30 0
Seems like the firmware identification is 'S120'. A perfunctory google
search for S120 in conjunction with any of HP 4600 or SQ113 did not show
any useable result.
> The next step is to obtain some dumps of the USB traffic  on Windows.
> Connecting and disconnecting the scanner (and maybe doing a preview
> scan) should be sufficient in the beginning. The USBDumpAnalyzer script
>  will help you interpret the data. If your scanner uses a variant of
> the EasyScan firmware, you'll probably be able to adapt the modified
> mustek_usb2 backend I've posted on github . Otherwise, I recommend
> you find out how big the differences to the "EasyScan protocol" actually
> are - you might be able to work with the mustek_usb2 backend anyway. If
> the protocol is too different, your best bet is to create a new backend,
> possibly using Triften's hp4600 code  as a reference. You should be
> able to reuse the low-level functions in mustek_usb2_asic.c and the
> boilerplate code in mustek_usb2.c at least.
Trften's code seems to have been generated from USBSnoop traces anyway,
so I guess the first thing is I'll compare his code to your mustek_usb2
backend (I could compare it to the original backend but I assume the one
most likely to get into stable sane is yours).
> Best regards,
>  http://www.pcausa.com/Utilities/UsbSnoop/
>  https://github.com/jhauffa/USBDumpAnalyzer
>  https://github.com/jhauffa/sane-sq113
>  http://www.chmil.org/hp4600linux/
Thanks a lot for your help and references!
More information about the sane-devel