[sane-devel] Canon CanoScan LiDE 100

m. allan noah kitno455 at gmail.com
Sat Sep 19 20:05:50 UTC 2009


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"



More information about the sane-devel mailing list