sane-find-scanner shows: found USB scanner (vendor=0x04a9 [Canon], product=0x221f [CanoScan], chip=GL841) at libusb:004:010 - so I hope, it's possible to find a solution.
redouble the section for canon_lide_60_model in backend/genesys_devices.c and change values:
static Genesys_Model canon_lide_500f_model = { "canon-lide-500f", /* Name */ "Canon", /* Device vendor string */ "LiDE 500F", /* Device model name */ GENESYS_GL841, NULL, {2400, 1200, 600, 300, 150, 75, 0}, /* possible x-resolutions */ {4800, 2400, 1200, 600, 300, 150, 75, 0}, /* possible y-resolutions */ ...and add at the end:
{0x04a9, 0x221f, &canon_lide_500f_model}Then scanimage -L shows:
device `genesys:libusb:001:010' is a Canon LiDE 500F flatbed scanner
But this is natural not enough. After boot the scanner don't work with linux/sane. After work with Windows 98 and qemu (It works for small images. If the images are bigger, it is to slow and the driver finishes.), the scanner scans also with scanimage, but produces noise. So the initialisation is wrong.
It's necessary to analyse the log-Files ...
There are some very usefull hints: http://john.daltons.info/lide60/.
8. 5. 2006
Got a first patch from Pierre Willenbrock.
15. 5. 2006
We need more calibration information. So I setup a new W98, because calibration
is done once at startup, and made a new logfile. I've got a lot of data ...
I've used the scripts from Pierre Willenbrock from http://pirsoft-dsl-dropzone.de for the first step of analyzing.
16. 5. 2006
It seem's, the chip is a GL843:
The scanner has 2400x4800 dpi, but the data sheet for the GL841
says: "Available sensor types: 600, 1200, 2400 dpi color CIS or CCD."
The GL843-3x-data-sheet says:
"Available sensor types: 600, 1200, 2400, 3200, 3600, 4800dpi color CIS or CCD."
(See http://www.genesyslogic.com/jimages_product/GL843-3X%20Datasheet_102.pdf)
17. 5. 2006
I made a scan with calibration under XP. The logs from W98 and XP are nearly
the same - so I think, I have the necessary data.
22. 5. 2006
The debugging output (sane with patch from Pierre Willenbrock) and W98/XP
are very different during register settings:
diff = different values
Green color means "identical values" - at least during initialisation or default value
Reg. Sane WIN GL 843-3X-Datasheet 7 6 5 4 3 2 1 0 0x01 0xa0 0x02 CISSET DOGENB DVDSET STAGGER COMPENB TRUEGRAY SHDAREA SCAN 0x02 0x38 - NOTHOME ACDCDIS AGOHOME MTRPWR FASTFED MTRREV HOMENEG LONGCURV 0x03 0x5f 0x50 LAMPDOG AVEENB XPASEL LAMPPWR LAMPTIM3 LAMPTIM2 LAMPTIM1 LAMPTIM0 0x04 0x10 - LINEART BITSET AFEMOD1 AFEMOD0 FILTER1 FILTER0 FESET1 FESET0 0x05 0x40 - DPIHW1 DPIHW0 MTLLAMP1 MTLLAMP0 GMMENB ENB20M MTLBASE1 MTLBASE0 0x06 0x18 0x10 SCANMOD2 SCANMOD1 SCANMOD0 PWRBIT GAIN4 OPTEST2 OPTEST1 OPTEST0 0x07 0x00 - LAMPSIM CCDCTL DRAMCTL MOVCTL RAMSEL FASTDMA DMASEL DMARDWR 0x08 0x00 - X DECFLAG BMMFFR GMMFFG GMMFFB GMMZR GMMZG GMMZB 0x09 0x10 - MCNTSET1 MCNTSET0 EVEN1ST BLINE1ST BACKSCAN ENHANCE SHORTTG NWAIT 0x0a 0x00 - LCDSEL LCMSEL ADFSEL LPWMEN EPROMSEL R232SEL BAUDRAT1 BAUDRAT0 0x0b - - CLKSET2 CLKSET1 CLKSET0 RFHDIS ENBDRAM DRAMSEL2 DRAMSEL1 DRAMSEL0 0x0c - - SWSH4 SWSH3 SWSH2 SWSH1 SWSH0 CCDLMT2 CCDLMT1 CCDLMT0 0x0d - 0x01 JAMPCMD DOCCMD CCDCMD FULLSTP SEND CLRMCNT CLRDOCJM CLRLNCNT 0x0e - 0x01 SCANRESET 0x0f - - MOVE 0x10 0x04 0x06 EXPR15 EXPR14 EXPR13 EXPR12 EXPR11 EXPR10 EXPR9 EXPR8 0x11 0x00 0x13 EXPR7 EXPR6 EXPR5 EXPR4 EXPR3 EXPR2 EXPR1 EXPR0 0x12 0x04 0x55 EXPG15 EXPG14 EXPG13 EXPG12 EXPG11 EXPG10 EXPG9 EXPG8 0x13 0x00 0x02 EXPG7 EXPG6 EXPG5 EXPG4 EXPG3 EXPG2 EXPG1 EXPG0 0x14 0x04 0x34 EXPB15 EXPB14 EXPB13 EXPB12 EXPB11 EXPB10 EXPB9 EXPB8 0x15 0x00 0x04 EXPB7 EXPB6 EXPB5 EXPB4 EXPB3 EXPB2 EXPB1 EXPB0 0x16 0x00 - CTRLHI TOSHIBA TGINV CK1INV CK2INV CTRLINV CKDIS CTRLDIS 0x17 0x02 - TGMODE1 TGMODE0 TGW5 TGW4 TGW3 TGW2 TGW1 TGW0 0x18 0x00 - CNSET DCKSEL1 DCKSEL0 CKTOGGLE CKDELAY1 CKDELAY0 CKSEL1 CKSEL0 0x19 0x50 - EXPDMY7 EXPDMY6 EXPDMY5 EXPDMY4 EXPDMY3 EXPDMY2 EXPDMY1 EXPDMY0 0x1a 0x00 - TGLSW2 TGLSW1 MANUAL3 MANUAL1 CK4INV CK3INV LINECLP X 0x1b 0x00 - GRAYSET CHANSEL BGRENB ICGENB ICGDLY3 ICGDLY2 ICGDLY1 ICGDLY0 0x1c 0x00 - CK4MTGL CK3MTGL CK1MTGL CKAREA MTLWD TGTIME2 TGTIME1 TGTIME0 0x1d 0x02 - CK4LOW CK3LOW CK1LOW TGSHLD4 TGSHLD3 TGSHLD2 TGSHLD1 TGSHLD0 0x1e 0xf0 - WDTIME3 WDTIME2 WDTIME1 WDTIME0 LINESEL3 LINESEL2 LINESEL1 LINESEL0 0x1f 0x01 - SCANFED7 SCANFED6 SCANFED5 SCANFED4 SCANFED3 SCANFED2 SCANFED1 SCANFED0 0x20 0x20 - BUFSEL7 BUFSEL6 BUFSEL5 BUFSEL4 BUFSEL3 BUFSEL2 BUFSEL1 BUFSEL0 0x21 0x00 - STEPNO7 STEPNO6 STEPNO5 STEPNO4 STEPNO3 STEPNO2 STEPNO1 STEPNO0 0x22 0x00 - FWDSTEP7 FWDSTEP6 FWDSTEP5 FWDSTEP4 FWDSTEP3 FWDSTEP2 FWDSTEP1 FWDSTEP0 0x23 0x00 - BWDSTEP7 BWDSTEP6 BWDSTEP5 BWDSTEP4 BWDSTEP3 BWDSTEP2 BWDSTEP1 BWDSTEP0 0x24 0x00 - FASTNO7 FASTNO6 FASTNO5 FASTNO4 FASTNO3 FASTNO2 FASTNO1 FASTNO0 0x25 0x00 - X X X X LINCNT19 LINCNT18 LINCNT17 LINCNT16 0x26 0x00 - LINCNT15 LINCNT14 LINCNT13 LINCNT12 LINCNT11 LINCNT10 LINCNT9 LINCNT8 0x27 0x00 0x00 LINCNT7 LINCNT6 LINCNT5 LINCNT4 LINCNT3 LINCNT2 LINCNT1 LINCNT0 0x28 0x00 ? GMMWRDATA 0x29 0xff - X X X RAMADDR20 RAMADDR19 RAMADDR18 RAMADDR17 RAMADDR16 0x2a diff diff RAMADDR15 RAMADDR14 RAMADDR13 RAMADDR12 RAMADDR11 RAMADDR10 RAMADDR9 RAMADDR8 0x2b diff diff RAMADDR7 RAMADDR6 RAMADDR5 RAMADDR4 RAMADDR3 RAMADDR2 RAMADDR1 RAMADDR0 0x2c 0x00 - X X DPISET13 DPISET12 DPISET11 DPISET10 DPISET9 DPISET8 0x2d 0x00 - DPISET7 DPISET6 DPISET5 DPISET4 DPISET3 DPISET2 DPISET1 DPISET0 0x2e 0x80 - BWHI7 BWHI6 BWHI5 BWHI4 BWHI3 BWHI2 BWHI1 BWHI0 0x2f 0x80 - BWLOW7 BWLOW6 BWLOW5 BWLOW4 BWLOW3 BWLOW2 BWLOW1 BWLOW0 0x30 0x00 0x06 STRPIXEL15 STRPIXEL14 STRPIXEL13 STRPIXEL12 STRPIXEL11 STRPIXEL10 STRPIXEL9 STRPIXEL8 0x31 0x00 0x13 STRPIXEL7 STRPIXEL6 STRPIXEL5 STRPIXEL4 STRPIXEL3 STRPIXEL2 STRPIXEL1 STRPIXEL0 0x32 0x00 0x55 ENDPIXEL15 ENDPIXEL14 ENDPIXEL13 ENDPIXEL12 ENDPIXEL11 ENDPIXEL10 ENDPIXEL9 ENDPIXEL8 0x33 0x00 0x02 ENDPIXEL7 ENDPIXEL6 ENDPIXEL5 ENDPIXEL4 ENDPIXEL3 ENDPIXEL2 ENDPIXEL1 ENDPIXEL0 0x34 0x00 0x34 DUMMY7 DUMMY6 DUMMY5 DUMMY4 DUMMY3 DUMMY2 DUMMY1 DUMMY0 0x35 0x00 0x04 MAXWD24 MAXWD23 MAXWD22 MAXWD21 MAXWD20 MAXWD19 MAXWD18 MAXWD17 0x36 0x00 0xb0 MAXWD16 MAXWD15 MAXWD14 MAXWD13 MAXWD12 MAXWD11 MAXWD10 MAXWD9 0x37 0x00 0xc2 MAXWD8 MAXWD7 MAXWD6 MAXWD5 MAXWD4 MAXWD3 MAXWD2 MAXWD1 0x38 0x4f 0x5a LPERIOD15 LPERIOD14 LPERIOD13 LPERIOD12 LPERIOD11 LPERIOD10 LPERIOD9 LPERIOD8 0x39 0xc1 0xf0 LPERIOD7 LPERIOD6 LPERIOD5 LPERIOD4 LPERIOD3 LPERIOD2 LPERIOD1 LPERIOD0 0x3a - - X X X X X X X FEWRDATA8 0x3b diff diff FEWRDATA7 FEWRDATA6 FEWRDATA5 FEWRDATA4 FEWRDATA3 FEWRDATA2 FEWRDATA1 FEWRDATA0 0x3c - ? RAMWRDATA 0x3d 0x00 - X X X X FEEDL19 FEEDL18 FEEDL17 FEEDL16 0x3e 0xff - FEEDL15 FEEDL14 FEEDL13 FEEDL12 FEEDL11 FEEDL10 FEEDL9 FEEDL8 0x3f 0x86 - FEEDL7 FEEDL6 FEEDL5 FEEDL4 FEEDL3 FEEDL2 FEEDL1 FEEDL0 0x40 - read DOCSNR ADFSNR COVERSNR CHKVER DOCJAM HISPDFLG MOTMFLG DATAENB 0x41 read read PWRBIT BUFEMPTY FEEDFSH SCANFSH HOMESNR LAMPSTS FEBUSY MOTORENB 0x42 - read VALIDWORD24 VALIDWORD23 VALIDWORD22 VALIDWORD21 VALIDWORD20 VALIDWORD19 VALIDWORD18 VALIDWORD17 0x43 - read VALIDWORD16 VALIDWORD15 VALIDWORD14 VALIDWORD13 VALIDWORD12 VALIDWORD11 VALIDWORD10 VALIDWORD9 0x44 - read VALIDWORD8 VALIDWORD7 VALIDWORD6 VALIDWORD5 VALIDWORD4 VALIDWORD3 VALIDWORD2 VALIDWORD1 0x45 - ? RAMRDDATA 0x46 - - X X X X X X X FERDDATA8 0x47 - - FERDDATA7 FERDDATA6 FERDDATA5 FERDDATA4 FERDDATA3 FERDDATA2 FERDDATA1 FERDDATA0 0x48 - - X X X X FEDCNT19 FEDCNT18 FEDCNT17 FEDCNT16 0x49 - - FEDCNT15 FEDCNT14 FEDCNT13 FEDCNT12 FEDCNT11 FEDCNT10 FEDCNT9 FEDCNT8 0x4a - - FEDCNT7 FEDCNT6 FEDCNT5 FEDCNT4 FEDCNT3 FEDCNT2 FEDCNT1 FEDCNT0 0x4b - - X X X X SCANCNT19 SCANCNT18 SCANCNT17 SCANCNT16 0x4c - - SCANCNT15 SCANCNT14 SCANCNT13 SCANCNT12 SCANCNT11 SCANCNT10 SCANCNT9 SCANCNT8 0x4d - - SCANCNT7 SCANCNT6 SCANCNT5 SCANCNT4 SCANCNT3 SCANCNT2 SCANCNT1 SCANCNT0 0x4e - - GMMRDDATA 0x4f - - X X X ROMBSY LCMBSY TX232BSY RX232BSY RXREADY 0x50 - - X X FERDA5 FERDA4 FERDA3 FERDA2 FERDA1 FERDA0 0x51 - diff X X FEWRA5 FEWRA4 FEWRA3 FEWRA2 FEWRA1 FEWRA0 0x52 0x05 - X X X RHI4 RHI3 RHI2 RHI1 RHI0 0x53 0x07 - X X X RLOW4 RLOW3 RLOW2 RLOW1 RLOW0 0x54 0x00 - X X X GHI4 GHI3 GHI2 GHI1 GHI0 0x55 0x00 - X X X GLOW4 GLOW3 GLOW2 GLOW1 GLOW0 0x56 0x00 - X X X BHI4 BHI3 BHI2 BHI1 BHI0 0x57 0x00 - X X X BLOW4 BLOW3 BLOW2 BLOW1 BLOW0 0x58 0x3a - VSMP4 VSMP3 VSMP2 VSMP1 VSMP0 VSMPW2 VSMPW1 VSMPW0 0x59 0x03 - BSMP4 BSMP3 BSMP2 BSMP1 BSMP0 BSMPW2 BSMPW1 BSMPW0 0x5a 0x40 - ADCLKINV RLCSEL CDSREF1 CDSREF0 RLC3 RLC2 RLC1 RLC0 0x5b - diff X MTRTBL GMMADDR13 GMMADDR12 GMMADDR11 GMMADDR10 GMMADDR9 GMMADDR8 0x5c - 0x00 GMMADDR7 GMMADDR6 GMMADDR5 GMMADDR4 GMMADDR3 GMMADDR2 GMMADDR1 GMMADDR0 0x5d 0x00 - HISPD7 HISPD6 HISPD5 HISPD4 HISPD3 HISPD2 HISPD1 HISPD0 0x5e 0x02 - DECSEL2 DECSEL1 DECSEL0 STOPTIM4 STOPTIM3 STOPTIM2 STOPTIM1 STOPTIM0 0x5f 0x1f - FMOVDEC7 FMOVDEC6 FMOVDEC5 FMOVDEC4 FMOVDEC3 FMOVDEC2 FMOVDEC1 FMOVDEC0 0x60 0x00 0x06 X X X Z1MOD20 Z1MOD19 Z1MOD18 Z1MOD17 Z1MOD16 0x61 0x00 0x13 Z1MOD15 Z1MOD14 Z1MOD13 Z1MOD12 Z1MOD11 Z1MOD10 Z1MOD9 Z1MOD8 0x62 0x00 0x55 Z1MOD7 Z1MOD6 Z1MOD5 Z1MOD4 Z1MOD3 Z1MOD2 Z1MOD1 Z1MOD0 0x63 0x00 0x02 X X X Z2MOD20 Z2MOD19 Z2MOD18 Z2MOD17 Z2MOD16 0x64 0x00 0x34 Z2MOD15 Z2MOD14 Z2MOD13 Z2MOD12 Z2MOD11 Z2MOD10 Z2MOD9 Z2MOD8 0x65 0x00 0x04 Z2MOD7 Z2MOD6 Z2MOD5 Z2MOD4 Z2MOD3 Z2MOD2 Z2MOD1 Z2MOD0 0x66 0x00 0x00 PHFREQ7 PHFREQ6 PHFREQ5 PHFREQ4 PHFREQ3 PHFREQ2 PHFREQ1 PHFREQ0 0x67 0x3f - STEPSEL1 STEPSEL0 MTRPWM5 MTRPWM4 MTRPWM3 MTRPWM2 MTRPWM1 MTRPWM0 0x68 0x3f - FSTPSEL1 FSTPSEL0 FASTPWM5 FASTPWM4 FASTPWM3 FASTPWM2 FASTPWM1 FASTPWM0 0x69 0x00 - FSHDEC7 FSHDEC6 FSHDEC5 FSHDEC4 FSHDEC3 FSHDEC2 FSHDEC1 FSHDEC0 0x6a 0x1f - FMOVNO7 FMOVNO6 FMOVNO5 FMOVNO4 FMOVNO3 FMOVNO2 FMOVNO1 FMOVNO0 0x6b 0x02 diff MULTFILM GPOM13 GPOM12 GPOM11 GPOCK4 GPOCP GPOLEDB GPOADF 0x6c 0x00 diff GPIO16 GPIO15 GPIO14 GPIO13 GPIO12 GPIO11 GPIO10 GPIO9 0x6d 0x8f diff GPIO8 GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 0x6e 0x6d 0x6d GPOE16 GPOE15 GPOE14 GPOE13 GPOE12 GPOE11 GPOE10 GPOE9 0x6f 0x80 0x80 GPOE8 GPOE7 GPOE6 GPOE5 GPOE4 GPOE3 GPOE2 GPOE1 0x70 0x00 - X X X RSH4 RSH3 RSH2 RSH1 RSH0 0x71 0x00 - X X X RSL4 RSL3 RSL2 RSL1 RSL0 0x72 0x00 - X X X CPH4 CPH3 CPH2 CPH1 CPH0 0x73 0x00 - X X X CPL4 CPL3 CPL2 CPL1 CPL0 0x74 0x00 - X X X X X X CKIMAP17 CKIMAP16 0x75 0x00 - CKIMAP15 CKIMAP14 CKIMAP13 CKIMAP12 CKIMAP11 CKIMAP10 CKIMAP9 CKIMAP8 0x76 0x00 - CKIMAP7 CKIMAP6 CKIMAP5 CKIMAP4 CKIMAP3 CKIMAP2 CKIMAP1 CKIMAP0 0x77 0x00 - X X X X X X CK3MAP17 CK3MAP16 0x78 0x00 - CK3MAP15 CK3MAP14 CK3MAP13 CK3MAP12 CK3MAP11 CK3MAP10 CK3MAP9 CK3MAP8 0x79 0x00 - CK3MAP7 CK3MAP6 CK3MP5 CK3MAP4 CK3MAP3 CK3MAP2 CK3MAP1 CK3MAP0 0x7a 0x00 - X X X X X X CK4MAP17 CK4MAP16 0x7b 0x00 - CK4MAP15 CK4MAP14 CK4MAP13 CK4MAP12 CK4MAP11 CK4MAP10 CK4MAP9 CK4MAP8 0x7c 0x00 - CK4MAP7 CK4MAP6 CK4MP5 CK4MAP4 CK4MAP3 CK4MAP2 CK4MAP1 CK4MAP0 0x7d 0x00 - CK1NEG CK3NEG CK4NEG RSNEG CPNEG BSMPNEG VSMPNEG DLYSET 0x7e 0x00 - GPOLED25 GPOLED24 GPOLED23 GPOLED22 GPOLED21 GPOLED10 GPOLED9 GPOLED8 0x7f 0x00 - BSMPDLY1 BSMPDLY0 VSMPDLY1 VSMPDLY0 LEDCNT3 LEDCNT2 LEDCNT1 LEDCNT0 0x80 0x00 - VRHOME1 VRHOME0 VRMOVE1 VRMOVE0 VRBACK1 VRBACK0 VRSCAN1 VRSCAN0 0x81 0x00 - X X X LOADSET4 LOADSET3 LOADSET2 LOADSET1 LOADSET0 0x82 0x00 - CONTB3 CONTB2 CONTB1 CONTB0 CONTA3 CONTA2 CONTA1 CONTA0 0x83 0x00 - IMGSET7 IMGSET6 IMGSET5 IMGSET4 IMGSET3 IMGSET2 IMGSET1 IMGSET0 0x84 0x00 0x0e PACK1 PACK0 PACKCNT5 PACKCNT4 PACKCNT3 PACKCNT2 PACKCNT1 PACKCNT0 0x85 0x00 - . . . . . . . . 0x86 0x00 - . . . . . . . . 0x87 0x00 - X YENB YBIT ACYCNRLC ENOFFSET LEDADD CK4ADC AUTOCONF 0x88 - - X X X RDNUM4 RDNUM3 RDNUM2 RDNUM1 RDNUM0
File | Description | Size | Date |
---|---|---|---|
scanimage-debug.log | debug-output of scanimage, first try to patch ... | 704 k | |
scanimage-scan-grey.png | scanimages produces noise | 9 M | |
usbsnoop.log.1.gz | usbsnoop under W98 | 1,8 M | |
usbsnoop.log.2.gz | usbsnoop under W98 | 3,4 M | |
usblog-xp/00index.html | analysed files from XP | 500 k | 8. 5. 2006 |
usbsnoopxp.bz2 | raw file from XP | 770 k | 8. 5. 2006 |
usbsnoop-w98-cal.collect.log.bz2 | file with calibration, after usbsnoop-stage1.pl, grep -v unknown, usbsnoop-collect.pl | 21 M | 15. 5. 2006 |