Scanners not supported by SANE

Manufacturer and model

Canon CanoScan 4200F

Bus type


Vendor ID


Product ID



Here are the numbers of the four major chips on the board.

chip 1
M12L16161A-  7T
LNS1P43ZE  0503
This is the DRAM module used inside this scanner:

chip 2
610800017919 D1
0521  TH07
This is a remarked ALI M5623D scanner controller. There is a
product brief describing its features.

chip 3
This scanner uses a Wolfson Electronics WM8196SCDS chip as ADC.
There is also a datasheet available:

chip 4
9913M V6
MYS 99 507
This is the controller of the scanner motor:

Photos of the chipset are available.


Output of /proc/bus/usb/devices or sane-find-scanner -v -v or lsusb -vv

T:  Bus=01 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  3 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs=  1
P:  Vendor=04a9 ProdID=221b Rev= 2.00
S:  Manufacturer=Canon
S:  Product=CanoScan
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 10mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=83(I) Atr=03(Int.) MxPS=   1 Ivl=16ms

<device descriptor of 0x04a9/0x221b at 001:003 (Canon CanoScan)>
bLength               18
bDescriptorType       1
bcdUSB                2.00
bDeviceClass          255
bDeviceSubClass       255
bDeviceProtocol       255
bMaxPacketSize0       64
idVendor              0x04A9
idProduct             0x221B
bcdDevice             2.00
iManufacturer         3 (Canon)
iProduct              4 (CanoScan)
iSerialNumber         0 ()
bNumConfigurations    1
 <configuration 0>
 bLength              9
 bDescriptorType      2
 wTotalLength         39
 bNumInterfaces       1
 bConfigurationValue  1
 iConfiguration       0 ()
 bmAttributes         192 (Self-powered)
 MaxPower             10 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 GL841 ...
    this is not a GL841 (writing register failed)
    checking for ICM532B ...
    this is not a ICM532B (check 2, bcdUSB = 0x200)
    checking for PV8630/LM9830 ...
    this is not a PV8630/LM9830 (bDeviceClass = 255)
    checking for M011 ...
    this is not a M011 (bcdUSB = 0x200)
    checking for RTS8822L-01H ...
    this is not a RTS8822L-01H (bDeviceClass = 255)
    checking for rts8858c ...
    this is not a rts8858c (bDeviceClass = 255)
    checking for SQ113 ...
    this is not a SQ113 (bDeviceClass = 255)
<Couldn't determine the type of the USB chip (result from sane-backends 1.0.18)>

found USB scanner (vendor=0x04a9 [Canon], product=0x221b [CanoScan]) at libusb:001:003


Want to add or correct information?

If anything is wrong or missing on this page please file a bug report or use the the form for adding an unsupported device.

If you own an unsupported scanner, please send as much information as possible. Especially the output of sane-find-scanner -v -v and/or cat /proc/scsi/scsi (for SCSI scanners) or cat /proc/bus/usb/devices (for USB scanners) can help. If you dare to open the scanner, have a look at the text that's printed on the chips. That may help to identify the chipset. If you know that the scanner is similar to another one (e.g. supported by the same Windows driver), please also mention this fact.

Information for Manufacturers

Are you a manufacturer or vendor of scanners and one of your scanners is not supported by SANE yet? In this case please have a look at our information for manufacturers.

SANE homepage