[sane-devel] reverse engineering advice.

Mbosowo I Sampson msampson@ic.sunysb.edu
Mon, 24 Jan 2005 13:59:19 -0500 (EST)


I'm in the process of sifting through USBSnoop generated logs for the HP 
3970, trying to decipher what's going on. I've hit a little bit of 
a wall. Reading the code for the hp5400 driver along with the USBSnoop 
logs posted at http://home.kabelfoon.nl/~bertrik/plugin_hp5470c.log
has really helped a lot. I would like to start writing my driver but I 
need some advice.

This is the log generated from my scanner after its plugged in:
http://www.ic.sunysb.edu/Stu/msampson/usbsnoop_pluggedin2.log

The first 4 URB transfers are easy, querying the device, choosing a 
configuration, etc... But after that it gets a little murky. I'm 
looking at the packets going down, and coming up, and I just have no way 
to telling what's doing what. I wanted to use usb-robot to send commands 
one at a time, but the program segfaults on my machine (debian sarge 
2.6.10)

I have the USB1.1 spec handy, so I understand the structure of the 
packets,  but how do you discern what the packets are doing? For example, 
Which of  those packets turns on the lamp? Which ones controls the stepper 
motors? Should  I just start from the top of the log and send the commands 
myself to see what happens? I'm really itching to get this thing working.

I would love to disassemble the windows driver, but I have no experience 
doing this. I was hoping to tap the collective experience of the group 
before I tried that.

Any help would be much appreciated.

                                           Mboso