[sane-devel] Adding 700F/5600F to the gensys backend
stef.dev at free.fr
Tue Dec 28 20:53:59 UTC 2010
the canon LiDE 700F and 5600F are GL847 based and such can be added to
the genesys backend. The files handling this asic are genesys_gl847.[ch] .
Each device is described in genesys_devices.c . I have added provisional
entries that are mere clone of the LiDE 200 for these models. I have also
added their USB ids to genesys.conf.in. So now the backend will detect them
and try to use them the same way than the LiDE 200.
The LiDE 700F is a CIS scanner like the LiDE 200, so it may just work
without touching anything. The 5600F case is different, it is using a CCD.
Adding it will represent the same amount of work than done to add the
Opticbook 3600 to the GL841 code. So reviewing the git history in the last
days will show you a working example of how doing it.
Since these scanners may differ in motor, sensor, GPIO, etc .. you may
have to change these functions:
- registers values for d0-d2, e0-e7 in genesys_gl847.h memory_layout
- GPIO definitions in genesys_devices.c, in this case, you'll have to
create a new define and a new entry.
- motor definition in genesys_devices.c, here again you'll have to add a
- sensor definition in genesys_devices.c, here again you'll have to add a
new entry. The 5600f will need a new one.
- gl847_init_registers() for power-on default register settings
All the values can be extracted from USB logs recorded under windows with
http://www.pcausa.com/Utilities/UsbSnoop/ and processed with the 'decode.sh'
in the appended archive.
The 700F up to 1200 dpi seems an easy target, while the 5600F will need
more work. One thing you must be aware is that the LiDE devices use a sensor
which is composed of several 600 dpi segments slightly shifted. Once
interleaved this gives higher resolution that the 600 dpi base. But it needs
some special code to cope with (see ODD_EVEN_CIS flag in code). For now this
code only handles 2 segments. If the sensor is made of more than 2 segments,
the interleaving code will have to be changed.
The development process consist in tuning the register values, run a test
with full debug and compare it to the decode log of a scan done under windows,
fixing all the differences.
I'll be happy to answer any question you'll have or review any patch you
would submit on the list (git diff against recent git prefered...).
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 3517 bytes
Desc: not available
More information about the sane-devel