[sane-devel] CANOSCAN 8400F

Myroslav Kavatsyuk m.kavatsyuk at yahoo.com
Mon Jun 23 13:51:55 UTC 2014


Dear Stef,

Thanks a lot for your suggestions. I have studied genesys documentation, and indeed it is helpful :)

I have collected usblogs for all useful scan modes. In case you would like to look at them, you can
download processed (with your script) logs at: CS8400F
 
   CS8400F
Shared with Dropbox  
View on www.dropbox.com Preview by Yahoo  
 
I made summary of all possible sensor profiles. For each profile I wrote at which "dpi" setting of windows driver
    it is used, value of the DPISET register, value of the AVEENB bit (average over few pixels or drop pixels):

 /*
        {CCD_CS8400F, dpi, 22000, 0x0, 0xff, 0x0, 5168, 0,0x2a,0x 0, 0x 0, 0x 0, -1, 0x07, 0x08, -1, -1,
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x0c, 0x10, 0x2a, 0x30, 0x00, 0x00, 0x9a},
        {0x01, 0x04, 0x07, 0x0a, 0x0d, 0x10, 0x1b, 0x00, 0x40, 0x00, 0x00, -1, 0x88},
        }, // Scanner init, DPISET=600; AVEENB=1
        {CCD_CS8400F, dpi, 10800, 0xe3f, 0x0, 0x1b6db, 5168, 0,0x2a,0x 0, 0x 0, 0x 0, -1, 0x01, 0x02, -1, -1,
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x0c, 0x13, 0x2a, 0x30, 0x00, 0x00, 0x84, },
        {0x0d,0x10,0x01,0x04,0x07,0x0a,0x6b,0x00,0x40,0x00,0x00,-1,0x88,},
        }, // Scanner init DPISET=2400, most probably TPU, AVEENB=1
        {CCD_CS8400F, dpi, 7200, 0xe3f, 0x0, 0x1b6db, 5168, 0,-1,0xfffffffffffffeff, 0xfffffffffffffeff, 0xfffffffffffffeff, -1, 0x01, 0x02, -1, -1,
        {-1, -1, -1, -1, -1, -1, 0x33, 0x0c, 0x13, -1, 0x30, -1, 0x00, 0x84},
        {0x0d,0x10,0x01,0x04,0x07,0x0a,0x6b,-1,0x40,0x00,0x00,-1,0x88},
        }, // 600 dpi DPISET=4800 (last value 0x88 -> 0x85); 400,300 dpi DPISET=2400, last number 0x85; 100 dpi DPISET=1200
        {CCD_CS8400F, dpi, 7200, 0xe3f, 0x0, 0x1b6db, 5168, 0,0x2a,0x 0, 0x 0, 0x 0, -1, 0x01, 0x02, -1, -1,
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x0c, 0x13, 0x2a, 0x30, 0x00, 0x00, 0x84},
        {0x0d, 0x10, 0x01, 0x04, 0x07, 0x0a, 0x6b, 0x00, 0x40, 0x00, 0x00,   -1, 0x85},
        }, // 800 dpi, DPISET=4800
        {CCD_CS8400F, dpi, 14400, 0x1ff, 0x0, 0x24924, 5168, 0,0x2a,0x 0, 0x 0, 0x 0, -1, 0x00, 0x01, -1, -1,
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x0c, 0x11, 0x2a, 0x30, 0x00, 0x00, 0x84},
        {0x0b, 0x0e, 0x11, 0x02, 0x05, 0x08, 0x63, 0x00, 0x40, 0x00, 0x00,   -1, 0x82},
        }, // 1200, 1600 dpi; DPISET=4800
        {CCD_CS8400F, dpi, 28800,   0x0, 0x0, 0x24924, 5168, 0,0x2a,0x 0, 0x 0, 0x 0, -1, 0x09, 0x0a, -1, -1,
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x0c, 0x10, 0x2a, 0x30, 0x00, 0x20, 0x84, },
        {0x02, 0x05, 0x08, 0x0b, 0x0e, 0x11, 0x1b, 0x00, 0x40, 0x00, 0x00,   -1, 0x88},
        }, // 3200,2400 scan; DPISET=4800 (last value can be 0x88 -> 0x81)
        //
        // AVEENB=1 for dpi from 100-400 range; AVEENB=0 for dpi 600-3200 range
         */
   This values are almost ready to be plugged into the code. I have to replace at some places "-1" values. What is strange for me
   that DPISET values are very high with respect to dpi setting reported by driver.

My questions are:
1) what does the second field (dpi) means in the scanner profile? Is this value of the DPISET register?
2) I did not manage to follow where actually sane decides which profile to use, which DPISET value to select?
   In other words how to make sure that the correct combination will be selected for scan if I pass resolution of dpi to scanimage.
3) From the logs I do not see how to extract motor tables (like one in the genesys_gl843.h at line 678). In the logs
I have seen setting up of the MTRTBL bit for downloading table (genesys_write_register(0x5b,0x01)genesys_write_register(0x5c,0x00))
This statements are followed by data. Is that data a motor table?

Best regards,
Myroslav
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/sane-devel/attachments/20140623/e551f67f/attachment.html>


More information about the sane-devel mailing list