[sane-devel] question about the motor struct of genesys backend

Pierre Willenbrock pierre at pirsoft.dnsalias.org
Wed Sep 10 13:49:01 UTC 2008

stef schrieb:
> 	Hello Pierre,
> 	I am currently studying how to add support for the HP2400/G2410 to the gl646 
> part of the genesys backend. I am currently trying to figure out how to fill 
> the values for the motor struct in genesys_devices. How did you find the 
> current values, are they provisional for most models but exact for LiDE 35, 
> or are they ready to use ?
> 	In case they need to be changed, on which data may I base the changes ?

The values in the motor struct are specific to the mechanical design of 
the scanner. Currently, the gl841 part only supports devices that seem 
to be very similar(at least mechanical) to my LiDE 35, so the motor 
struct is just reused/copied.

Originally, the values were derived from the linear curves(only in step 
number domain, not in time domain...) sent by the windows driver. Later 
i experimentally improved them (and had to back off quite a bit after 
complaints). I ended up with a stepping slope that keeps the scanning 
head going, even when the scanner is held in such a way that the head 
must go upwards.

In absence of an initial curve, one could start with very slow stepping 
and improve that.

The values inside the motor struct are not critical to get "right", most 
of the time the maximum speed is capped by the maximum exposure time. 
Only during pure feeds(scanning head going back) or using low resolution 
scans the final speeds in the motor struct really improve anything. 
(This is probably not true for scanners that do multiple motor power modes.)


PS.: make sure you use an exposure calculation method and a slope 
generator that actually uses the values in the motor struct. Slope 
generation and exposure calculation is a mess, in part due to my changes.

More information about the sane-devel mailing list