[sane-devel] Re: HP 4570c - any progress?
Bertrik Sikken
bertrik at zonnet.nl
Tue Sep 13 17:36:19 UTC 2005
Daniel Franke wrote:
> On Sunday 11 September 2005 18:29, I wrote:
>
>>Is currently anyone working on this specific driver? If not, is there any
>>code to pick up? Any docs from HP someone already acquired? I would also
>>appriciate some hints/documentation about "GL841/GL646" (which seems to be
>>related) [3].
>
>
>
> Re-hi all,
>
> in reply to my own mail: no answer within 48 hours presumely means that nobody
> works on this specific driver, that there are no docs available and that
> there's no code to pick up - correct?!
The stuff in the snoopy log looks similar to the protocol used by
the hp5400 scanner, but in a weird way.
For example, the scanner sends the "SILITEK" string in response
to a USB transfer that contains the bytes 0x1200. For the HP5400
this is the command to read the version string.
On the hp5400, command 0xc500 is used to read back the previously
issued command. These bytes can also be seen in the snoopy log
in USB transfers with apparently the same meaning as for the hp5400.
The protocol is weird because it seems to implement some kind of
'USB-over-USB', i.e. the data payload of the USB control packets
looks like another USB control packet. The payload size never
appears to exceed 8 bytes.
For example, URB #6 has a data payload of c0 04 00 12 00 00 32 00.
This looks exactly like the setup packet from a hp5400 log:
0.84643495 >>>>>>> URB 5 going down...
0.84644613 -- URB_FUNCTION_VENDOR_DEVICE:
0.84645954 TransferFlags = 00000001
(USBD_TRANSFER_DIRECTION_IN, ~USBD_SHORT_TRANSFER_OK)
0.84647127 TransferBufferLength = 00000032
0.84648244 TransferBuffer = 811e5a88
0.84649250 TransferBufferMDL = 00000000
0.84650312 UrbLink = 00000000
0.84651345 RequestTypeReservedBits = c0
0.84652351 Request = 04
0.84653385 Value = 1200
0.84654390 Index = 0000
0.85850408
0.85850967 <<<<<<< URB 5 coming back...
0.85852085 -- URB_FUNCTION_CONTROL_TRANSFER:
0.85853202 PipeHandle = 81411314
0.85854459 TransferFlags = 00000003
(USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK)
0.85855605 TransferBufferLength = 00000032
0.85856666 TransferBuffer = 811e5a88
0.85857700 TransferBufferMDL = 813f88a8
0.85858594
0.85871417 0000: 00 53 69 6c 69 74 65 6b 49 42 6c 69 7a 64 20 43
0.85884184 0010: 33 20 53 63 61 6e 6e 65 72 56 30 2e 38 34 09 60
0.85897565 0020: 09 60 4f b0 6d b0 00 00 00 00 00 00 00 00 00 0a
0.85900135 0030: 00 64
0.85901085 UrbLink = 00000000
0.85908377 SetupPacket : c0 04 00 12 00 00 32 00
I am pretty sure that Silitek makes the niash types of chips.
The HP5400 also uses a niash scanner control chip.
I think you can try to understand this weird protocol a little
better and see where the differences and similarities are with the
HP5400 protocol, then try modify the lower layers of the hp5400 backend.
> If so, I should try to get some docs first. Does someone know something about
> HP's doc-sharing policy? Are there any established connections to HP? Please
> let me know any positive and/or negative experiences you had with
> HP-(developer)-support before, off-list if preferred.
I tried and at least I got an answer although not a very useful one.
HP may not even be able to give you docs if they didn't make the
scanner control chip.
Kind regards,
Bertrik Sikken
More information about the sane-devel
mailing list