Skip to content

Add support for Canon MF743C

I've not had any luck getting network scanning working with this yet but connected via USB scanning is working most of the time after patching pixma_imageclass.c as follows

$ grep -n MF743C_PID pixma_imageclass.c
92:#define MF743C_PID 0x27FC
981:  DEV ("Canon i-SENSYS MF743C", "MF743C", MF743C_PID, 600, 0, 640, 1050, PIXMA_CAP_ADFDUP),

after the change

$ sudo scanimage -L
device `pixma:04A927FC_f4a997c9f68c' is a CANON Canon i-SENSYS MF743C multi-function peripheral

Dmesg

# dmesg |tail
[199656.888545] usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[199656.888547] usb 1-8: Product: MF741C/743C
[199656.888549] usb 1-8: Manufacturer: Canon
[199656.888551] usb 1-8: SerialNumber: f4a997c9f68c

Avahi

$ avahi-browse -rt _ipp._tcp
+ enp1s0 IPv4 Canon MF741C/743C (c9:f6:8c)                  Internet Printer     local
= enp1s0 IPv4 Canon MF741C/743C (c9:f6:8c)                  Internet Printer     local
   hostname = [Canonc9f68c.local]
   address = [192.168.2.131]
   port = [631]
   txt = ["mopria-certified=1.3" "print_wfds=T" "rfo=ipp/faxout" "kind=document,envelope,postcard" "URF=ADOBERGB24,CP255,DM1,PQ4,RS300,SRGB24,W8-16,FN3,IS1-4,OB10-40,V1.4" "Fax=T" "Scan=T" "TLS=1.2" "usb_CMD=LIPSLX,CPCA" "UUID=6d4ff0ce-6b11-11d8-8020-f4a997c9f68c" "PaperMax=legal-A4" "Punch=0" "Staple=F" "Sort=F" "Collate=F" "Bind=F" "PaperCustom=T" "Duplex=T" "Copies=T" "Color=T" "TBCP=F" "Binary=F" "Transparent=F" "usb_MDL=MF741C/743C" "usb_MFG=Canon" "adminurl=http://Canonc9f68c.local:80/airprint.html" "pdl=application/octet-stream,image/urf,image/pwg-raster,image/jpeg,application/pdf" "product=(CNMF741C/743C)" "ty=Canon MF741C/743C" "priority=10" "qtotal=1" "note=" "rp=ipp/print" "txtvers=1"]

$ avahi-browse -rt _uscan._tcp
+ enp1s0 IPv4 Canon MF741C/743C (c9:f6:8c)                  _uscan._tcp          local
= enp1s0 IPv4 Canon MF741C/743C (c9:f6:8c)                  _uscan._tcp          local
   hostname = [Canonc9f68c.local]
   address = [192.168.2.131]
   port = [80]
   txt = ["usb_MFG=Canon" "mopria-certified-scan=1.2" "duplex=T" "is=platen,adf" "UUID=6d4ff0ce-6b11-11d8-8020-f4a997c9f68c" "cs=color,grayscale" "pdl=application/octet-stream,application/pdf,image/jpeg" "representation=http://Canonc9f68c.local/en/media/dev_icon_128x128.png" "adminurl=http://Canonc9f68c.local:80/airprint.html" "rs=eSCL" "vers=2.63" "note=" "ty=Canon MF741C/743C" "txtvers=1"]

It does seem there needs to be a small delay between the scans at least with skanlite

sane-find-scanner -v -v -v

<device descriptor of 0x04a9/0x27fc at 001:060 (Canon MF741C/743C)>
bLength               18
bDescriptorType       1
bcdUSB                2.10
bDeviceClass          0
bDeviceSubClass       0
bDeviceProtocol       0
bMaxPacketSize0       64
idVendor              0x04A9
idProduct             0x27FC
bcdDevice             0.00
iManufacturer         1 (Canon)
iProduct              2 (MF741C/743C)
iSerialNumber         3 (f4a997c9f68c)
bNumConfigurations    1
 <configuration 0>
 bLength              9
 bDescriptorType      2
 wTotalLength         131
 bNumInterfaces       3
 bConfigurationValue  1
 iConfiguration       0 ()
 bmAttributes         192 (Self-powered)
 MaxPower             2 mA
  <interface 0>
   <altsetting 0>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   0
   bAlternateSetting  0
   bNumEndpoints      3
   bInterfaceClass    255
   bInterfaceSubClass 0
   bInterfaceProtocol 255
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x03 (out 0x03)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x84 (in 0x04)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 2>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x85 (in 0x05)
    bmAttributes      3 (interrupt)
    wMaxPacketSize    64
    bInterval         11 ms
    bRefresh          0
    bSynchAddress     0
   <altsetting 1>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   0
   bAlternateSetting  1
   bNumEndpoints      2
   bInterfaceClass    7
   bInterfaceSubClass 1
   bInterfaceProtocol 4
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x03 (out 0x03)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x84 (in 0x04)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
  <interface 1>
   <altsetting 0>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   1
   bAlternateSetting  0
   bNumEndpoints      2
   bInterfaceClass    7
   bInterfaceSubClass 1
   bInterfaceProtocol 2
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x01 (out 0x01)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x82 (in 0x02)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
   <altsetting 1>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   1
   bAlternateSetting  1
   bNumEndpoints      2
   bInterfaceClass    7
   bInterfaceSubClass 1
   bInterfaceProtocol 4
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x01 (out 0x01)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x82 (in 0x02)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
  <interface 2>
   <altsetting 0>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   2
   bAlternateSetting  0
   bNumEndpoints      2
   bInterfaceClass    7
   bInterfaceSubClass 1
   bInterfaceProtocol 2
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x06 (out 0x06)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x87 (in 0x07)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0

<trying to find out which USB chip is used>
    checking for LM983[1,2,3] ...
    this is not a LM983x (bcdUSB = 0x210)
    checking for GT-6801 ...
    this is not a GT-6801 (bDeviceClass = 0)
    checking for GT-6816 ...
    this is not a GT-6816 (bcdUSB = 0x210)
    checking for GLxxx ...
    this is not a GL646 (bDeviceClass = 0, bInterfaceClass = 255)
    this is not a GLxxx (bDeviceClass = 0, bInterfaceClass = 255)
<Couldn't determine the type of the USB chip (result from sane-backends 1.0.28-840-g4156fae1-dirty)>

found USB scanner (vendor=0x04a9 [Canon], product=0x27fc [MF741C/743C]) at libusb:001:060

I'll try testing all the supported resolutions later but 75 and 150 dpi worked when testing thus far

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information