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

Stef stef.dev at free.fr
Mon Jun 15 20:19:14 UTC 2015


On 12/06/2015 23:45, Ondrej Zary wrote:
> 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
>

     Hello,

     nice work.

     Here are my remarks:
     - your patch applies with some fuzz, is it based on latest git ?
     - please include a signed-by and add your name to the copyright 
notice in rts8891.c file
     - no // comments this breaks C compile
     - why does the code bail out early in set_lamp_brigthness() ? You 
added code handling the SENSOR_TYPE_UMAX in it.
     - what the LAMP_REG value should be for your scanner. I see several :
-          dev->regs[LAMP_REG] = 0x8d;
-          sanei_rts88xx_write_reg (dev->devnum, LAMP_REG,
+          if (dev->sensor != SENSOR_TYPE_UMAX)
+        {
+          dev->regs[LAMP_REG] = 0x8d;
+          sanei_rts88xx_write_reg (dev->devnum, LAMP_REG,
                         &(dev->regs[LAMP_REG]));
+        }

     So 0x8d doesn't seem working for you, what should it be ?

     - the margin_level value of 32 in find_margin() is surely a sign 
that the scanner is either no set up correctly, or the inner image 
pattern is different. Could you send the find_margin.pnm file to compare 
with my scanner ?

    - what do you mean by no 75 dpi ? In windows or in backend ? I don't 
think an emulated 100 dpi is useful since we can operate other models at 
75 dpi.
    - in rts8891_devices.c, your are modifying a model, not adding 
another one, why ?

Regards,
     Stef



More information about the sane-devel mailing list