[sane-devel] Newbie questions

Stef stef.dev at free.fr
Thu Jul 26 09:12:59 UTC 2012

On 07/25/2012 08:58 AM, Yury Tarasievich wrote:
> Talking generally of unwritten backends, it's quite a shame, that the 
> development cycle isn't "broken down" to some essential phases based 
> on what hardware is used in the scanner, and much better documented. 
> And yes, I've read backend-writing.txt, and everything in the doc/ 
> section, and sifted the list.
> At least that's how it looks to me after messing for a while with 
> backend for GL841-based OpticPro ST28 (which, I understand, has many 
> analogues w/r to its hardware composition -- processor, motor 
> controller, and ADC plus optical input piece).
> E.g., how many "protocols" would be there for the GL841 based 
> apparatus? Why do I need to mess with USB sniffing? There are only so 
> much registers in the controller, and those need to be programmed by 
> the similar pattern. The only significant differences would concern 
> the external memory size and geometry of the scanner bed, or would 
> they? I would need to know the principal routines in the already 
> existing code, which relate to the principal functions of the chip, as 
> per datasheet.
> Now, the motor controller isn't controlled directly, at least in the 
> modern pieces of hardware, and needs only to be taken into account w/r 
> to the type of control required (number of coils etc.).
> Programming of the optical input+ADC is also sort of indirect. Of 
> course, this sort of data input by its complexity constitutes a class 
> in itself (CCDs!), but that's what sanei/ section of code is for, I 
> believe.
> IF I were sufficiently proficient, I'd put into the SANE distribution 
> the following for the "starters-ups": step-by-step procedures and code 
> templates for 1) constructing the code starting up and shutting down 
> the scanner; 2) same for switching the lamp on and off; 3) same for 
> moving the caret up and down, for all speeds allowed by the 
> controller. Such templates would rely on the documented routines in 
> the "low-level" code. And so on, as I'm sure I'm missing a lot of 
> things here.
> Yury
> P.S.
> On 07/25/2012 02:46 AM, Clyde Shappee wrote:
>> It sounds to me like a backend is an awful lot
>> of work.  My scanner is a real orphan -- perhaps
>> that is why it sold for $19.
> ...
> Clyde, if that's one of those transparent jobs, looking sort of like a 
> TFT panel without a backlight unit, I'd assume for starters it has a 
> microprocessor as a principal controller and a really primitive set of 
> commands, meaning it *might* be deciphered fairly easily, by using a 
> USB sniffing technique as advised in this list.

     regarding the gl841, generating doc with doxygen will give you many 
information. The genesys backend uses low level operation like the one 
you describe (see genesys_low.h), but unfortunately this can't be 
generalized. Each hardware requires different things.


More information about the sane-devel mailing list