[sane-devel] rts8891: Umax Astra 4450 does not work

Ondrej Zary linux at rainbow-software.org
Fri Jun 12 21:45:39 UTC 2015


On Monday 08 June 2015 23:06:55 Ondrej Zary wrote:
> On Saturday 30 May 2015 23:54:28 Ondrej Zary wrote:
> > On Friday 29 May 2015 23:02:38 Ondrej Zary wrote:
> > > On Monday 11 May 2015 22:05:33 Stef wrote:
> > > > On 09/05/2015 00:32, Ondrej Zary wrote:
> > > > > On Friday 08 May 2015 21:46:36 Ondrej Zary wrote:
> > > > >> On Friday 08 May 2015 16:17:53 Ondrej Zary wrote:
> > > > >>> On Thursday 07 May 2015 23:32:28 Ondrej Zary wrote:
> > > > >>>> Hello,
> > > > >>>> I just got Umax Astra 4450 (same as 4400 except with UTA?) for a
> > > > >>>> while and tested it with SANE. Unfortunately, it does not work.
> > > > >>>> The lamp turns on and the head moves a bit, then goes back (two
> > > > >>>> times) and the scan ends with these errors:
> > > > >>>>
> > > > >>>> [rts8891] simple_scan: failed to wait for data
> > > > >>>> [rts8891] gain_calibration: failed scan data
> > > > >>>> [rts8891] sane_start: failed to do gain calibration!
> > > > >>>> scanimage: sane_start: Error during device I/O
> > > > >>>
> > > > >>> I've modified sane_start() in rts8891.c to not fail if
> > > > >>> gain_calibration() returns error. It now scans the complete area
> > > > >>> and the output resembles what's in the scanner (black template
> > > > >>> for UTA use with green text) but it's blurry, shifted
> > > > >>> horizontally (and the gain is wrong, of course):
> > > > >>> http://www.rainbow-software.org/linux_files/umax_astra_4450/no_ga
> > > > >>>in _c al ib ra tion.ppm.gz
> > > > >>> http://www.rainbow-software.org/linux_files/umax_astra_4450/no_ga
> > > > >>>in _c al ib ra tion.log
> > > > >>>
> > > > >>> Looks like there's a problem with the sensor type?
> > > > >
> > > > > Gain calibration fails because dev->left_offset (and thus xstart)
> > > > > is negative. If I set xstart to 4, gain calibration passes
> > > > > (although it's wrong: ends after first pass with 0x1f,0x1f,0x1f).
> > > > >
> > > > > So find_margin() does not work...
> > > >
> > > >      Hello,
> > > >
> > > >      you could try to hardcode gain values at the end of gain
> > > > calibration to see if scan is close to be correct.
> > >
> > > The dumps from Windows are very different. I've transferred the
> > > register settings to sane-rts8891 but with only partial success. 150dpi
> > > and 300dpi seems to work if I don't touch 0x7a register. 75dpi, 600dpi
> > > and 1200dpi are broken no matter what I tried.
> > >
> > > The experimental patch is available at
> > > http://www.rainbow-software.org/linux_files/umax_astra_4450/umax_astra4
> > >45 0- test.diff
> >
> > Found a bug causing 600dpi scans to return only solid color area. It was
> > a problem with 0xaa "escaping" - I misread the dump because of that and
> > used wrong registers. After fixing, it didn't work at all - because the
> > original sane-rts8891 code does not "escape" 0xaa values in registers
> > above 0xb3.
> >
> > After fixing that, 600dpi is still broken but at least some real data is
> > coming from the scanner now.
> >
> > New patch:
> > http://www.rainbow-software.org/linux_files/umax_astra_4450/umax_astra445
> >0- test2.diff
>
> Here's a new, more polished patch:
> http://www.rainbow-software.org/linux_files/umax_astra_4450/umax_astra4450-
>test3.diff
>
>  - buttons now work
>  - lamps work correctly (main lamp turns off at close, UTA lamp always off)
>  - xsane now works for scanning at 150 or 300 dpi
>  - preview (75dpi) is broken as well as 75dpi, 600dpi and 1200dpi

Found out that the Windows driver lies about resolution. It claims to support 
75, 100, 150, 200, 300, 400, 600, 800 and 1200 dpi but the reality is 
different:
        driver dpi      real dpi
        -------------------------
        75 (+preview)   200x100         very fast
        100             200x100         very fast
        150             150x150
        200             200x200
        300             300x300
        400             600x400
        600             600x600
        800             1200x1200
        1200            1200x1200

So there's no real 75 dpi support - removed it and introduced emulated 100dpi 
mode so xsane will choose it for preview (without that, xsane prefers slower 
150dpi). So preview now works, although it's too dark.

New patch available at:
http://www.rainbow-software.org/linux_files/umax_astra_4450/umax_astra4450-test4.diff

-- 
Ondrej Zary



More information about the sane-devel mailing list