[sane-devel] Problems with Canon MP990 transparency unit

Rolf Bensch rolf at bensch-online.de
Tue Apr 7 20:48:15 UTC 2015


Hi Guillaume,

I just committed your patch to SANE's git repository. Many thanks for
your help.

Have you tried to scan with xsane? In xsane you can set the parameters
(gamma, brightness, contrast) separately for each color channel and you
can use|create different media definitions.

What are your experiences with dust and scratches on your positives?

Cheers,
Rolf



Am 06.04.2015 um 17:24 schrieb Guillaume Courtois:
> 
> Hi Rolf and the others on the list.
> 
> Sorry for not giving back news earlier. I tried to correct the problem
> by myself and it took me some time.
> Then I used the corrected version to be sure it was working well, and
> once I had begun, I wanted to finish all the stuff I had to scan.
> 
> Well, that is finished now and I can say my patch (which is very simple)
> seem to work quite well, as I was able to scan around 3.000 positives
> with the TPU without issues, at 4.800 DPI. For the record, that is not
> totally true as I have had that greenish color problem a couple of
> times, but I found a not-very-satisfying solution, but an easy one : I
> just scanned one positive from a Windows machine, and then the problem
> was gone and I was able to scan from linux, even when I turned the MP990
> off and on, and let some weeks pass without touching anything. So as it
> was a very-very rare situation, I was not able to find a clean way to
> correct it from linux.
> 
> So here is my patch, as It's very short I give it to you here, but I can
> provide a file if needed.
> 
> diff --git a/backend/pixma_mp810.c b/backend/pixma_mp810.c
> index 59e96eb..5f2588e 100644
> --- a/backend/pixma_mp810.c
> +++ b/backend/pixma_mp810.c
> @@ -657,6 +657,23 @@ static unsigned calc_shifting (pixma_t * s)
>        }
>        break;
> 
> +    case MP990_PID:
> +      if (s->param->xdpi == 4800)
> +      {
> +        if (is_scanning_from_tpu (s))
> +        {
> +          mp->stripe_shift = 6;
> +          mp->stripe_shift2 = 6;
> +        }
> +        else
> +        {
> +          mp->stripe_shift = 3;
> +          mp->stripe_shift2 = 3;
> +        }
> +        mp->jumplines = 34; /* better than 32 or 34 : applies to
> flatbed & TPU */
> +      }
> +      break;
> +
>      default: /* Default, and all CIS devices */
>        break;
>    }
> @@ -909,7 +927,7 @@ static int send_scan_param (pixma_t * s)
>      data[0x24] = 0x01;
> 
>      /* MG8200 addition */
> -    if (s->cfg->pid == MG8200_PID)
> +    if (s->cfg->pid == MG8200_PID || s->cfg->pid == MP990_PID)
>      {
>        if (is_scanning_from_tpu (s))
>        {
> 
> And that's all. Please tell me if there's a problem, as I have not
> updated my git repo for quite a long time, I'm not sure the patch will
> apply without errors, if that's the case please tell me.
> 
> Well, now that I have finished the positives, I'll try to have the
> negative stuff work with the MP990, as I have quite a large collection
> of pictures to scan, I hope it will not take too long :-) If I have
> something working, I'll send you a patch as well.
> 
> Overall, thanks for the nice work guys, SANE is really a nice piece of
> work.
> 
> Bye.
> 
> Le 15/11/2014 14:16, Rolf Bensch a écrit :
>> Hi Guillaume,
>>
>> Please set me on CC when you respond to the mailing list. I missed your
>> last emails.
>>
>> If possible, please fetch the usb traffic on a Windows machine for a tpu
>> scan. Then we can investigate the correct settings for the scan
>> parameters command.
>>
>> On the other hand it seems that your scanner has problems with image
>> post processing @ higher resolutions. Please scan a small detail of an
>> image for all resolutions and save them as pnm/png or tiff files.
>> Please send the files directly to me, the mailig list doesn't accept
>> large emails.
>>
>> Cheers,
>> Rolf
>>
>>
>> Am 11.11.2014 um 18:32 schrieb Guillaume Courtois:
>>>
>>> Hi,
>>>
>>> Progress here ! It turns out MP990 needs Data[0x25]=0x01 like some
>>> other scanners.
>>> Sadly, I now have a color problem, white is greenish. Is that a gamma
>>> table problem ?
>>>
>>> Bye.
>>>
>>> Le 09/11/2014 21:12, Guillaume Courtois a écrit :
>>>> Hi,
>>>>
>>>> Worked a few hours again on the problem. It seems like I don't get the
>>>> correct datas from the scanner (or it's being badly post-processed)
>>>> when I'm using bigger resolutions than 300 dpi with TPU unit. Flatbed
>>>> seems all ok.
>>>>
>>>> 300 dpi scans do not give me underruns, but all the others do, and
>>>> with bigger and bigger values. The resulting pictures are bigger and
>>>> bigger in size, but the image inside them is worse : it seems like the
>>>> bigger the resolution I choose, the less I get actual lines of datas.
>>>>
>>>> Again, if you have any ideas, that would be cool. I can provide datas,
>>>> logs, whatever you want.
>>>>
>>>> Thanks guys.
>>>>
>>>> Bye.
>>>>
>>>> Le 02/11/2014 16:47, Guillaume Courtois a écrit :
>>>>> Hi Rolf,
>>>>>
>>>>> I've just seen I sent my first response to you but not the list, sorry
>>>>> about that (but it contained nothing interesting in fact).
>>>>>
>>>>> I made some progress today, color shifting seem ok and I don't have
>>>>> the white columns anymore.
>>>>> I'll have to give a clean patch to the list for that, but first I have
>>>>> to solve my last problem, which is underrun.
>>>>>
>>>>> I tried to find the source of that problem but with no luck until now.
>>>>> It seem to happen only with TPU unit, strange ?
>>>>>
>>>>> Here is the result at 1200 dpi :
>>>>>
>>>>> pixma] **mp810_fill_buffer***** end of image *****
>>>>> [pixma] WARNING:image size mismatches
>>>>> [pixma]     859431936 expected (14032 lines) but 222452736 received
>>>>> (3632 lines)
>>>>> [pixma] pixma_read_image(): completed (underrun detected)
>>>>>
>>>>> (in debug :
>>>>> [pixma] *mp810_fill_buffer***** moving 504704 bytes into buffer *****
>>>>> [pixma] *mp810_fill_buffer***** 507904 bytes received by
>>>>> read_image_block *****
>>>>> )
>>>>>
>>>>> and at 600 dpi :
>>>>>
>>>>> [pixma] **mp810_fill_buffer***** end of image *****
>>>>> [pixma] WARNING:image size mismatches
>>>>> [pixma]     214857984 expected (7016 lines) but 111226368 received
>>>>> (3632 lines)
>>>>> [pixma] pixma_read_image(): completed (underrun detected)
>>>>>
>>>>> (in debug :
>>>>> [pixma] *mp810_fill_buffer***** moving 260096 bytes into buffer *****
>>>>> [pixma] *mp810_fill_buffer***** 245760 bytes received by
>>>>> read_image_block *****
>>>>> )
>>>>>
>>>>> Buffer size seem to be twice the size when raising the resolution.
>>>>> Shouldn't it be 4 times bigger ?
>>>>>
>>>>> I hope you have an idea here because my head is exploding...
>>>>>
>>>>> Thanks !
>>>>>
>>>>> Bye.
>>>>>
>>>>> Le 27/10/2014 16:57, Rolf Bensch a écrit :
>>>>>> Hi Guillaume,
>>>>>>
>>>>>> If you want to dig into the source code, you can look here:
>>>>>>
>>>>>> file: pixma_mp810.c
>>>>>> function: post_process_image_data()
>>>>>>
>>>>>> It's possible that post processing image data is broken. Please check
>>>>>> these git commits:
>>>>>> b4bb0062c5cbb77c895b439b5f47e70b506305b1 (2013-01-11 16:37:00) and
>>>>>> 1da5bcc2aa16a6382e5bd78a47cb3ec222a9aafc (2012-01-15 03:48:19)
>>>>>>
>>>>>> Many thanks for your help.
>>>>>>
>>>>>> Cheers,
>>>>>> Rolf
>>>>>>
>>>>>>
>>>>>> Am 19.10.2014 um 15:20 schrieb Guillaume Courtois:
>>>>>>>
>>>>>>> Hi guys,
>>>>>>>
>>>>>>> I'm currently trying to make the TPU correctly work on my MP990
>>>>>>> scanner. It seems like there are shifting problems both in datas and
>>>>>>> in the 3 colors (which seem to be 2 separate issues, but not sure).
>>>>>>>
>>>>>>> I'm currently testing on my debian SID with sane GIT version, but I
>>>>>>> have tested packages from SID and made tests on a Mint 17 netbook
>>>>>>> also. All seem to give the same results.
>>>>>>>
>>>>>>> It seems like datas are not shifted in 300 dpi but are more and more
>>>>>>> shifted when you choose higher resolutions (600, 1200, 2400 dpi).
>>>>>>>
>>>>>>> I'm happy to provide pictures if you want to see what it gives, but
>>>>>>> that gives vertical black stripes on the captured picture.
>>>>>>>
>>>>>>> Here is the output of xscanimage with some debug activated :
>>>>>>>
>>>>>>> Here is the 300 dpi correct scan :
>>>>>>>
>>>>>>> [pixma] pixma_scan(): start
>>>>>>> [pixma]   line_size=3378 image_size=9674592 channels=3 depth=16
>>>>>>> [pixma] Reader task id=140539733346048 (threaded)
>>>>>>> [pixma]   dpi=300x300 offset=(780,88) dimension=563x2864
>>>>>>> [pixma]   gamma_table=0xd939e0 source=2
>>>>>>> [pixma]   threshold=127 threshold_curve=0
>>>>>>> [pixma]   ADF page count: 0
>>>>>>> [pixma] Setting non-blocking mode
>>>>>>> [pixma] Current status: paper=0 cal=0 lamp=2 busy=0
>>>>>>> [pixma] Current status: paper=0 cal=0 lamp=2 busy=0
>>>>>>> [pixma] Current status: paper=0 cal=0 lamp=2 busy=0
>>>>>>> [pixma] Lamp status: 3 , timeout in: 19
>>>>>>> [pixma] pixma_read_image():completed
>>>>>>> [pixma] Reader task terminated
>>>>>>> [pixma] Reader task started
>>>>>>> [pixma] Reader task id=140539733346048 (threaded)
>>>>>>>
>>>>>>> Here is the not-so-correct 1200 dpi scan :
>>>>>>>
>>>>>>> [pixma] pixma_scan(): start
>>>>>>> [pixma]   line_size=13938 image_size=67376292 channels=3 depth=16
>>>>>>> [pixma]   dpi=1200x1200 offset=(282,446) dimension=2323x4834
>>>>>>> [pixma]   gamma_table=0xd939e0 source=2
>>>>>>> [pixma]   threshold=127 threshold_curve=0
>>>>>>> [pixma]   ADF page count: 0
>>>>>>> [pixma] Setting non-blocking mode
>>>>>>> [pixma] Current status: paper=0 cal=0 lamp=2 busy=0
>>>>>>> [pixma] Current status: paper=0 cal=0 lamp=2 busy=0
>>>>>>> [pixma] Current status: paper=0 cal=0 lamp=2 busy=0
>>>>>>> [pixma] Lamp status: 3 , timeout in: 19
>>>>>>> [pixma] WARNING:image size mismatches
>>>>>>> [pixma]     67376292 expected (4834 lines) but 44044080 received
>>>>>>> (3160
>>>>>>> lines)
>>>>>>> [pixma] pixma_read_image(): completed (underrun detected)
>>>>>>>
>>>>>>> As you can see, mismatch and underrun tells me I have to dig
>>>>>>> around that.
>>>>>>>
>>>>>>> Also, it seems like data coming from the preview window is
>>>>>>> mis-interpreted : I have to pick a smaller and decaled window in
>>>>>>> order
>>>>>>> to get the actual correct part of the scan I want to have (I don't
>>>>>>> know if I'm pretty clear on that one ?).
>>>>>>>
>>>>>>> I'm still digging into the code to see if I can correct that but if
>>>>>>> you guys could point me to the right direction, that would save me
>>>>>>> lots of time.
>>>>>>>
>>>>>>> Thanks for your attention, keep up the nice work on sane !
>>>>>>>
>>>>>>> Bye.
>>>>>>>
>>>>>>>
>>>
>>>
> 



More information about the sane-devel mailing list