I now have a Trac site (with associated subversion repository) setup at my University (https://projects.cecs.pdx.edu/~kellyt/SANE-FS2720U). I have text files in the repository that is browsable here (https://projects.cecs.pdx.edu/~kellyt/SANE-FS2720U/index.cgi/browser/sniffs) that explain in English what is going on with the scanner. There are things I find odd, like executing the RESERVE UNIT or RELEASE UNIT command over and over again. When you change the film type it is particularly amusing: it calls RESERVE UNIT 11 times (and that is all it doesn, it doesn't send any command to acutally change the film type).
Is this at all normal? I assume it just borked commercial software. What I would love for someone to take a look at is URB 289-300 in this file (https://projects.cecs.pdx.edu/~kellyt/SANE-FS2720U/index.cgi/browser/sniffs/just_preview_color_negative_bw.LOG). It looks like the windows driver writes 24kB of data to the scanner. But look at the data, it isn't firmware, it is a pretty pattern. Any idea? Was the developer who wrote this driver just having a little fun at my expense? I think next I am going to write some libusb code (my first) and try cutting out some of these steps. The scanner has flash memory on the mainboard, I don't understand why it would need its firmware upgraded every time. Maybe Canon didn't build in a facility to actually upgrade the firmware and they are writing over active memory every time you turn it on? Thanks, Tabor PS- My entire project is availabe for checkout from the subversions repository at https://projects.cecs.pdx.edu/svn/SANE-FS2720U/.