Hello, >Guillaume Gastebois schrieb: >> Hello, >> >> I see in genesys_gl841.c line 2503 : >> >> /* gpio part. here: for canon lide 35 */ >> >> r = sanei_genesys_get_address (reg, 0x6c); >> if (half_ccd) >> r->value &= ~0x80; >> else >> r->value |= 0x80;
I modified this in : /* gpio part. here: for canon lide 35 */ if (dev->model->gpo_type == GPO_CANONLIDE35) { r = sanei_genesys_get_address (reg, 0x6c); if (half_ccd) r->value &= ~0x80; else r->value |= 0x80; } /* gpio part. here: for canon lide 90 */ if (dev->model->gpo_type == GPO_CANONLIDE90) { r = sanei_genesys_get_address (reg, 0x6c); if (half_ccd) r->value |= 0x20; else r->value &= ~0x20; } correct ? >> >> Does it mean that for LiDE 35 GPIO16 is half CCD IO ? Because in LiDE 90, I >> identify GPIO 14 for that. > >The GPIO16 is used as half CCD IO. Correct. > >> Another thing : In windows snoop, only GPIO 14, 13, 12 and 11 changes state. >Is >> it possible that scanner need different gpio state between calibration and >> scanning (and different calibration phases) ? Where to add gpio state change >> code in backend to change gpio between different phases ? > >There is no way to know what GPIO 11, 12, 13 do without some experiments >(or tracing the wires on the pcb, which i advise against). > >For example, one GPIO could shut off the LED drivers(thus making black >level calibration easier), another could be used to save power(as is >GPIO 9 in Canon LiDE 35). > >Currently, i think the only possibly useful GPIOs for calibration and >scanning are the half ccd and the black led selectors, of which the >latter is not needed(At least my scanner does not need it, even when >doing black-level calibration on a white target). I make test with 0x1a=0x24 and 0x16=02 (like windows snoops) making 0x6c varying : 0x6c | description _______|_____________________________________________ 12 | says "Extremely low brightness detected......" 1a | says "Extremely low brightness detected......" 0e | no home position detected 0a | says sometimes "Extremely low brightness detected......" | or gives a black image 02 | black image 06 | no home position detected 16 | no home position detected 1e | no home position detected I think that GPIO11 is home switch and must be 0. After that I make test with 0x1a=0x00 and 0x16=20 (like sane yet) making 0x6c varying : 0x6c | description _______|_____________________________________________ 12 | image is half the width rest is black (half ccd problem ?) | result : http://ggastebois.free.fr/lide90_snoop/test_12.zip 1a | image like others since today (total width of page calibration problem) 0a | image with vertical lines (calibration big problem see 0x6c=0x02) 02 | like 0x6c=0x0a | result : http://ggastebois.free.fr/lide90_snoop/test_02.zip What to conclude about that ?Half CCD problem is strange ! It only remains only fuction of GPIO12 and GPIO13. > >> Thank you. >> >> Regards >> Guillaume > >Regards, > Pierre Regards Guillaume