[sane-devel] CanoScan N1240U is working with plustek backend

Gerhard Jaeger gerhard@gjaeger.de
Mon, 18 Nov 2002 13:25:05 +0100


Hi Johann,

great to her from you!
First of all the whole backend is based on code I got from
Plustek, therefore it's sometimes not really clear what they've
done. Esp. the differences between the originally supported devices
are "hardcoded" by using CCD-type, PCD-id and motor type...

Anyway. Calibration is a problem for me so far, as this does not really
work for correctly for my 670 here. We might have to write new routines
for the CIS devices.=20

Before you continue, I suggest to use at least the 0.45-TEST2 version
from www.g-jaeger.de/scanner/plustek.html. This one provides a better
picture quality on the CanoScan devices even without calibration...

Your questions:

On Sonntag, 17. November 2002 16:58, Johann Philipp wrote:
> Hi
>
> I'm happy to post a definitely positive message: My CanoScan N1240U is
> working with the plustek backend. Some details:
> Scanner is a LM9833 based CIS type with 1200x2400dpi @ 48bit color dept=
h,
> Sane is version 1.0.9 taken from cvs yesterday,
> adaptions were made only to plustek-devs.c and plustek.conf.
> Great work, Gerhard! I have been working on a CanoScan backend within t=
he
> canonscanner project on sourceforge.net and were able to scan with it t=
oo.
> But your version is much more flexible and stable.
> I need to test some more on all the hardware settings, before I will
> provide you with a "non-dangerous" patch for the N1240U. Also I hope to=
 get
> the calibration working, but there are a few questions open:
>
> 1) Basically the routines seem to work, but I need some more control on=
 the
> Y-positions / sizes of the white and black part of the calibration stri=
p.
> As far as I have seen, I cannot control this completely in plustek.conf=
=2E
> Can you give some help, where and for what to start looking?

The X/Y positions of the strip can be set in plustek-devs.c at the DCapsD=
ef
entry, the size is currently fixed inside the calibration routines to the
width of the scanbed - see the four main calibration routines:
coarse calibration:
usb_AdjustGain()
usb_AdjustOffset()
fine calibration:
usb_AdjustDarkShading()
usb_AdjustWhiteShading()

At least the fine calibration is not yet activated as I have too much
trouble with it (disabled by the flag WAF_SKIP_FINE in DCapsDef
entry of the device...
For debugging the output of the calibration data, you might set
the debug-level of the backend to 20 and you'll get a bunch of
*.raw files...


> 2) What for do you need the "black optical pixels" (regs 0x1c and 0x1d)
> during calibration? Sniffed data says that my windows driver software n=
ever
> uses these during calibration.

Hmpf - good question! I thought I got those settings from the various
test-programs around, but nope! Well in fact I guess those are settings
from another scanner so far. They're used in function usb_AdjustOffset()
but aren't of much use so far...

I'd be happy if you can manage to provide some kind of calibration code
for this scanner type...

>
> Greetings
> Johann

Cheers
  Gerhard

BTW: I assume, that you're talking german and we might continue
in a private discussion...