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"

Reply via email to