[sane-devel] [Update] Canon 4200F USB chip location

Ralph Little skelband at gmail.com
Mon Nov 22 06:16:06 GMT 2021


Hi,

On 2021-11-20 2:56 p.m., LUH LAH wrote:
> Hello there!
>
> It's been over a month since I last inquired about this, but I have an
> update and need some more guidance.
>
> I installed Windows 7 on another computer I had and captured packets
> from when I pressed the 'Scan' button in the CanoScan tool.
>
> Now that I've got the packets captured in a .pcapng file
> (https://drive.google.com/file/d/1E0zErjd0PB3Ggmeop6iI43Gi0SCZ8K9m/view?usp=sharing),
> how do I analyze the packets and figure out the USB chip model?
>
> Thanks,
>
> -[K] IMSOASIAN
>
>
> (This is a continuation of a previous thread. Said thread can be found
> here: https://alioth-lists.debian.net/pipermail/sane-devel/2021-October/thread.html
> [Look for a thread mentioning a Canon 4200F by LUH LAH])
>
This is a difficult question to answer simply.

The first step would be to determine if the protocol is supported by an 
existing backend.
Unfortunately, we do not have much documentation about the protocols 
that are currently supported with which to compare.
We usually get hints based on the chippery found inside. For this 
machine, it sounds like it is just a standard set of components that 
doesn't give us much of a clue.

It might be that since this is a Canon scanner, then it might borrow 
some heritage from one of their other models from the time that are not 
using one of the standard scanner all-in-one chips.

Failing that, if you want to start to look at writing a backend for this 
scanner from scratch, you need to look in the USB conversation for the 
various parts of the scanning process and the conversation would 
typically follow the following sequence:

1) Reset: some sequences to get the scanner into a known state. It might 
start with a sequence intended to get the scanner's attention.
2) Setting of parameters followed by calibration operations. Generally 
includes scans of a black and white area under the case to get the 
proper balance for each scan head pixel, since there is typically 
variation between them so correction is required. If the scanner is 
doing this, the you will notice the scan head make some short passes 
before the actual scan.
3) Scan proper: setting up of motor acceleration table, setting 
parameters for the scan head etc and the proceeding with the scan 
itself. This phase will be *very* obvious looking at the trace as there 
will be large blocks of data being transferred to the PC.
4) Instructions to bring the scanning head back to the parking position.

I would start with trying to split the trace into those rough sections.
One initial thing you can try is to extract the bytes from the trace 
during the scanning phase, assemble them into a file and try to view 
them as a graphic to figure out the format.
Dropping the bytes into a PNM format file is handy and then you can 
experiment with the header parameters to get an image that looks correct.

Cheers,
Ralph



More information about the sane-devel mailing list