[sane-devel] CanoScan 3000F
Braken
braken@void-star.net
Sun, 12 Dec 2004 05:02:33 +1100
Hi everyone,
I'm considering writing a driver for the CanoScan 3000F.
That's really where the problems start. I know basic C/C++ (am 3rd year
uni), but I've never worked with devices before, I don't know assembly
language (so no disassembling for me, ATM anyway), and all in all really
don't know where to start.
AFAIK, there really isn't much info about the 3000F around. I've googled
and gone through the sane-devel archives, and other than a 'is anyone
writing one' there doesn't seem to be any mention of it. Because it's a
Canon scanner, and from what I've read they're not very helpful as far
as releasing information about their scanner goes, I'm assuming I'm
going to have to go the USB snooping route. I've read the Contributing
page, as well as the 'Developing drivers without documentation' page,
but it really hasn't helped much.
So I suppose what I'm really asking is some information on where to
start. What should I be looking for in the snooping logs, how to I
decipher them? How does scanner communication usually work, what kind of
commands are common in communication with scanners and what do the
commands actually do? Are these even the questions I should be asking? I
don't expect people to answer these questions here, but links to pages
with this kind of information would be helpful, as I can't seem to find
anything in my searching (I'm probably just not searching for the right
thing).
I've saved a log of a single small scan, and it was 7800 lines long. Is
this normal? I found out the endpoints from the logs --
0x00 control
0x81 bulk/interrupt transfer in
0x02 buld/interrupt transfer out
-- but that really is all I've been able to work out, other than that
there seems to be a constant stream of control commands when there's no
scanning taking place, which I'm assuming is the driver checking for
button presses.
Any help would be greatly appreciated.
Regards,
-- Ben
-@ braken@void-star.net