[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