I have started some preliminary work on this, but I have not done enough to be worth publishing. You can find datasheets for the GL848 (and the 846 IIRC), but not the 847, which seems to be a canon specific model with integrated AFE?
You can get some sniff logs of windows driver in action, and attempt to decode them with pierre's tools: http://pirsoft-dsl-dropzone.de/ but the 847 uses many more registers than the 841, so you will have to do some forensics. allan On Sat, Sep 19, 2009 at 3:26 PM, Matt Hirsch <mhirsch at media.mit.edu> wrote: > I have a Canon CanoScan LiDE 100(b) scanner for which I'm interested in > helping develop sane support. I see there was a previous email about this > here: > > http://lists.alioth.debian.org/pipermail/sane-devel/2008-November/023133.html > > I can confirm lsusb -vv is the same on my scanner (see below) and the output > from sane-find-scanner -v -v is listed below. > > I've opened the scanner up, and the chip is actually a GL847 - picture of > the whole board here: > > http://web.media.mit.edu/~mhirsch/canon_lide_100.jpg > > What's a productive next step? Would the gensys backend be expected to > support this? Any ideas were to find a datasheet for this chip? > > Thanks, > Matt > > ========= > > #lsusb -vv > Bus 001 Device 026: ID 04a9:1904 Canon, Inc. > Device Descriptor: > ?bLength ? ? ? ? ? ? ? ?18 > ?bDescriptorType ? ? ? ? 1 > ?bcdUSB ? ? ? ? ? ? ? 2.00 > ?bDeviceClass ? ? ? ? ?255 Vendor Specific Class > ?bDeviceSubClass ? ? ? 255 Vendor Specific Subclass > ?bDeviceProtocol ? ? ? 255 Vendor Specific Protocol > ?bMaxPacketSize0 ? ? ? ?64 > ?idVendor ? ? ? ? ? 0x04a9 Canon, Inc. > ?idProduct ? ? ? ? ?0x1904 > ?bcdDevice ? ? ? ? ? ?6.03 > ?iManufacturer ? ? ? ? ? 1 Canon > ?iProduct ? ? ? ? ? ? ? ?2 CanoScan > ?iSerial ? ? ? ? ? ? ? ? 0 > ?bNumConfigurations ? ? ?1 > ?Configuration Descriptor: > ? ?bLength ? ? ? ? ? ? ? ? 9 > ? ?bDescriptorType ? ? ? ? 2 > ? ?wTotalLength ? ? ? ? ? 39 > ? ?bNumInterfaces ? ? ? ? ?1 > ? ?bConfigurationValue ? ? 1 > ? ?iConfiguration ? ? ? ? ?0 > ? ?bmAttributes ? ? ? ? 0xa0 > ? ? ?(Bus Powered) > ? ? ?Remote Wakeup > ? ?MaxPower ? ? ? ? ? ? ?500mA > ? ?Interface Descriptor: > ? ? ?bLength ? ? ? ? ? ? ? ? 9 > ? ? ?bDescriptorType ? ? ? ? 4 > ? ? ?bInterfaceNumber ? ? ? ?0 > ? ? ?bAlternateSetting ? ? ? 0 > ? ? ?bNumEndpoints ? ? ? ? ? 3 > ? ? ?bInterfaceClass ? ? ? 255 Vendor Specific Class > ? ? ?bInterfaceSubClass ? ?255 Vendor Specific Subclass > ? ? ?bInterfaceProtocol ? ?255 Vendor Specific Protocol > ? ? ?iInterface ? ? ? ? ? ? ?0 > ? ? ?Endpoint Descriptor: > ? ? ? ?bLength ? ? ? ? ? ? ? ? 7 > ? ? ? ?bDescriptorType ? ? ? ? 5 > ? ? ? ?bEndpointAddress ? ? 0x81 ?EP 1 IN > ? ? ? ?bmAttributes ? ? ? ? ? ?2 > ? ? ? ? ?Transfer Type ? ? ? ? ? ?Bulk > ? ? ? ? ?Synch Type ? ? ? ? ? ? ? None > ? ? ? ? ?Usage Type ? ? ? ? ? ? ? Data > ? ? ? ?wMaxPacketSize ? ? 0x0200 ?1x 512 bytes > ? ? ? ?bInterval ? ? ? ? ? ? ? 0 > ? ? ?Endpoint Descriptor: > ? ? ? ?bLength ? ? ? ? ? ? ? ? 7 > ? ? ? ?bDescriptorType ? ? ? ? 5 > ? ? ? ?bEndpointAddress ? ? 0x02 ?EP 2 OUT > ? ? ? ?bmAttributes ? ? ? ? ? ?2 > ? ? ? ? ?Transfer Type ? ? ? ? ? ?Bulk > ? ? ? ? ?Synch Type ? ? ? ? ? ? ? None > ? ? ? ? ?Usage Type ? ? ? ? ? ? ? Data > ? ? ? ?wMaxPacketSize ? ? 0x0200 ?1x 512 bytes > ? ? ? ?bInterval ? ? ? ? ? ? ? 0 > ? ? ?Endpoint Descriptor: > ? ? ? ?bLength ? ? ? ? ? ? ? ? 7 > ? ? ? ?bDescriptorType ? ? ? ? 5 > ? ? ? ?bEndpointAddress ? ? 0x83 ?EP 3 IN > ? ? ? ?bmAttributes ? ? ? ? ? ?3 > ? ? ? ? ?Transfer Type ? ? ? ? ? ?Interrupt > ? ? ? ? ?Synch Type ? ? ? ? ? ? ? None > ? ? ? ? ?Usage Type ? ? ? ? ? ? ? Data > ? ? ? ?wMaxPacketSize ? ? 0x0001 ?1x 1 bytes > ? ? ? ?bInterval ? ? ? ? ? ? ? 8 > Device Qualifier (for other device speed): > ?bLength ? ? ? ? ? ? ? ?10 > ?bDescriptorType ? ? ? ? 6 > ?bcdUSB ? ? ? ? ? ? ? 2.00 > ?bDeviceClass ? ? ? ? ?255 Vendor Specific Class > ?bDeviceSubClass ? ? ? 255 Vendor Specific Subclass > ?bDeviceProtocol ? ? ? 255 Vendor Specific Protocol > ?bMaxPacketSize0 ? ? ? ?64 > ?bNumConfigurations ? ? ?1 > Device Status: ? ? 0x0000 > ?(Bus Powered) > > =============== > /#sane-find-scanner -v -v/ > > <device descriptor of 0x04a9/0x1904 at 001:037 (Canon CanoScan)> > bLength ? ? ? ? ? ? ? 18 > bDescriptorType ? ? ? 1 > bcdUSB ? ? ? ? ? ? ? ?2.00 > bDeviceClass ? ? ? ? ?255 > bDeviceSubClass ? ? ? 255 > bDeviceProtocol ? ? ? 255 > bMaxPacketSize0 ? ? ? 64 > idVendor ? ? ? ? ? ? ?0x04A9 > idProduct ? ? ? ? ? ? 0x1904 > bcdDevice ? ? ? ? ? ? 6.03 > iManufacturer ? ? ? ? 1 (Canon) > iProduct ? ? ? ? ? ? ?2 (CanoScan) > iSerialNumber ? ? ? ? 0 () > bNumConfigurations ? ?1 > <configuration 0> > ?bLength ? ? ? ? ? ? ?9 > ?bDescriptorType ? ? ?2 > ?wTotalLength ? ? ? ? 39 > ?bNumInterfaces ? ? ? 1 > ?bConfigurationValue ?1 > ?iConfiguration ? ? ? 0 () > ?bmAttributes ? ? ? ? 160 (Remote Wakeup) > ?MaxPower ? ? ? ? ? ? 500 mA > <interface 0> > <altsetting 0> > ? bLength ? ? ? ? ? ?9 > ? bDescriptorType ? ?4 > ? bInterfaceNumber ? 0 > ? bAlternateSetting ?0 > ? bNumEndpoints ? ? ?3 > ? bInterfaceClass ? ?255 > ? bInterfaceSubClass 255 > ? bInterfaceProtocol 255 > ? iInterface ? ? ? ? 0 () > <endpoint 0> > ? ?bLength ? ? ? ? ? 7 > ? ?bDescriptorType ? 5 > ? ?bEndpointAddress ?0x81 (in 0x01) > ? ?bmAttributes ? ? ?2 (bulk) > ? ?wMaxPacketSize ? ?512 > ? ?bInterval ? ? ? ? 0 ms > ? ?bRefresh ? ? ? ? ?0 > ? ?bSynchAddress ? ? 0 > <endpoint 1> > ? ?bLength ? ? ? ? ? 7 > ? ?bDescriptorType ? 5 > ? ?bEndpointAddress ?0x02 (out 0x02) > ? ?bmAttributes ? ? ?2 (bulk) > ? ?wMaxPacketSize ? ?512 > ? ?bInterval ? ? ? ? 0 ms > ? ?bRefresh ? ? ? ? ?0 > ? ?bSynchAddress ? ? 0 > <endpoint 2> > ? ?bLength ? ? ? ? ? 7 > ? ?bDescriptorType ? 5 > ? ?bEndpointAddress ?0x83 (in 0x03) > ? ?bmAttributes ? ? ?3 (interrupt) > ? ?wMaxPacketSize ? ?1 > ? ?bInterval ? ? ? ? 8 ms > ? ?bRefresh ? ? ? ? ?0 > ? ?bSynchAddress ? ? 0 > > <trying to find out which USB chip is used> > ? ?checking for GT-6801 ... > ? ?this is not a GT-6801 (bcdUSB = 0x200) > ? ?checking for GT-6816 ... > ? ?this is not a GT-6816 (bDeviceClass = 255, bInterfaceClass = 255) > ? ?checking for GT-8911 ... > ? ?this is not a GT-8911 (check 1, bDeviceClass = 255, bInterfaceClass = > 255) > ? ?checking for MA-1017 ... > ? ?this is not a MA-1017 (bDeviceClass = 255, bInterfaceClass = 255) > ? ?checking for MA-1015 ... > ? ?this is not a MA-1015 (bcdUSB = 0x200) > ? ?checking for MA-1509 ... > ? ?this is not a MA-1509 (bcdUSB = 0x200) > ? ?checking for LM983[1,2,3] ... > ? ?this is not a LM983x (bcdUSB = 0x200) > ? ?checking for GL646 ... > ? ?this is not a GL646 (bDeviceClass = 255, bInterfaceClass = 255) > ? ?checking for GL646_HP ... > ? ?this is not a GL646_HP (bcdUSB = 0x200) > ? ?checking for GL660+GL646 ... > ? ?this is not a GL660+GL646 (bDeviceClass = 255, bInterfaceClass = 255) > ? ?checking for GL84x ... > <This USB chip looks like a GL843 (result from sane-backends 1.0.20)> > > found USB scanner (vendor=0x04a9 [Canon], product=0x1904 [CanoScan], > chip=GL843) at libusb:001:037 > > > -- > sane-devel mailing list: sane-devel at lists.alioth.debian.org > http://lists.alioth.debian.org/mailman/listinfo/sane-devel > Unsubscribe: Send mail with subject "unsubscribe your_password" > ? ? ? ? ? ?to sane-devel-request at lists.alioth.debian.org > -- "The truth is an offense, but not a sin"
