[sane-devel] Adding 700F/5600F to the gensys backend

Denis Jallat jallat at unistra.fr
Tue Dec 28 22:14:37 UTC 2010

Thank you very much for all you have done to help us. I do not have 
enough time these days to test the configuration but I'll try it this 
end of week. I'll let you know if everything is ok


Le 28/12/2010 21:53, stef a écrit :
> 	Hello,
> 	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
> table
> 	- 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
> new entry.
> 	- 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...).
> Regards,
> 	Stef

More information about the sane-devel mailing list