1sane-pixma(5) SANE Scanner Access Now Easy sane-pixma(5)
2
3
4
6 sane-pixma - SANE backend for Canon Multi-Function Printers and
7 CanoScan Scanners
8
10 The sane-pixma library implements a SANE (Scanner Access Now Easy)
11 backend that provides access to Canon PIXMA / i-SENSYS / imageCLASS /
12 imageRUNNER multi-function devices (All-in-one printers) and the Canon
13 CanoScan Flatbed/TPU scanners. The backend implements both the USB in‐
14 terface and network interface (using Canon's BJNP and MFNP protocols).
15 The network interface supports scanners over IPv4 as well as IPv6 (MFNP
16 over IPv6 is untested).
17
18 Currently, the following models work with this backend:
19
20 PIXMA E410, E510
21 PIXMA G2000, G2010, G2100, G4000, G4511
22 PIXMA MG2100, MG2200, MG2400, MG2500, MG2900, MG3000, MG3100
23 PIXMA MG3200, MG3500, MG3600, MG4200, MG5100, MG5200, MG5300
24 PIXMA MG5400, MG5500, MG5600, MG5700, MG6100, MG6200, MG6300
25 PIXMA MG6400, MG7100, MG7500, MG7700, MG8200
26 PIXMA MP140, MP150, MP160, MP170, MP180, MP190
27 PIXMA MP210, MP220, MP230, MP240, MP250, MP260, MP270, MP280
28 PIXMA MP360, MP370, MP390
29 PIXMA MP450, MP460, MP470, MP480, MP490, MP495
30 PIXMA MP500, MP510, MP520, MP530, MP540, MP550, MP560
31 PIXMA MP600, MP600R, MP610, MP620, MP630, MP640
32 PIXMA MP700, MP710, MP730, PIXMA MP750 (no grayscale)
33 PIXMA MP800, MP800R, MP810, MP830
34 PIXMA MP960, MP970, MP980, MP990
35 PIXMA MX300, MX310, MX330, MX340, MX350, MX360, MX370
36 PIXMA MX410, MX420, MX470, MX510, MX520, MX530, MX700, MX720
37 PIXMA MX850, MX860, MX870, MX882, MX885, MX890, MX920, MX7600
38 PIXMA TR4500
39 PIXMA TS3100, TS3300, TS5000, TS5100, TS6100, TS6200, TS8000
40 PIXMA TS8200
41 PIXUS MP10
42 imageCLASS MF634Cdw, MF733Cdw
43 imageCLASS MF3110, MF3240, MF4010, MF4018
44 imageCLASS MF4120, MF4122, MF4140, MF4150
45 imageCLASS MF4270, MF4350d, MF4370dn, MF4380dn
46 imageCLASS MF4410, MF4430, MF4570dw, MF4660, MF4690
47 imageCLASS MF5730, MF5770, MF6550, MPC200
48 imageCLASS D420, D480, D530, D570
49 i-SENSYS MF210, MF230, MF240, MF440, MF620, MF630, MF640
50 i-SENSYS MF645C, MF730, MF731/733, MF741/743
51 i-SENSYS MF3010, MF4320d, MF4330d, MF4500, MF4700, MF4800
52 i-SENSYS MF6100, MF8030, MF8200C, MF8300
53 imageRUNNER 1020/1024/1025, 1133
54 CanoScan 8800F, 9000F, 9000F Mark II
55 CanoScan LiDE 300, 400
56 MAXIFY MB2000, MB2100, MB2300, MB2700, MB5000, MB5100, MB5400
57
58 The following models are not well tested and/or the scanner sometimes
59 hangs and must be switched off and on.
60
61 PIXMA MP760, MP770, MP780, MP790
62
63 The following models may use the same Pixma protocol as those listed
64 above, but have not yet been reported to work (or not). They are de‐
65 clared in the backend so that they get recognized and activated. Feed‐
66 back in the sane-devel mailing list welcome.
67
68 PIXMA E400, E460, E470, E480, E500, E560, E600, E610
69 PIXMA E3100, E3300, E3400, E4200
70 PIXMA G2020, G2060, G3020, G3060, G7000, G7080
71 PIXMA MG4100, MG6500, MG6600, MG6800, MG6900, MG8100
72 PIXMA MP375R, MP493, MP740
73 PIXMA MX320, MX390, MX430, MX450, MX490, MX710
74 PIXMA G3000, G3010, G4010, G6000, G6080, G7000, GM4000, GM4080
75 PIXMA TR7500, TR7530, TR7600, TR8500, TR8530, TR8580, TR8600
76 PIXMA TR8630, TR9530
77 PIXMA TS3400, TS5100, TS6000, TS6130, TS6180, TS6230, TS6280,
78 TS6300
79 PIXMA TS6330, TS6330, TS6380, TS6400, TS7330, TS7400, TS7430,
80 TS8100
81 PIXMA TS8130, TS8180, TS8230, TS8280, TS8300, TS8330, TS8380,
82 TS9000
83 PIXMA TS9100, TS9180, TS9500, TS9580
84 PIXUS MP5, XK50, XK60, XK70, XK80, XK90
85 imageCLASS MF720, MF810/820, MF5630, MF5650, MF5750, MF8170c
86 imageCLASS MPC190, D550
87 i-SENSYS MF110, MF220, MF260, MF410, MF420, MF510, MF520, MF740
88 i-SENSYS MF5880dn, MF5900, MF6680dn, MF8500C
89 MAXIFY MB5300
90
91 The following models may use partly the same Pixma protocol as other
92 devices listed above, but may still need some work. They are declared
93 in the backend as experimental and need the environment variable
94 PIXMA_EXPERIMENT=1 to get recognized and activated. Snoop logs are re‐
95 quired to further investigate, please contact the sane-devel mailing
96 list.
97
98 -- none --
99
100 The backend supports:
101
102 * resolutions of 75, 150, 300, 600, 1200, 2400, 4800, and 9600
103 DPI (some maybe buggy),
104 * color and grayscale mode, as well as lineart on certain mod‐
105 els,
106 * a custom gamma table,
107 * Automatic Document Feeder, Simplex and Duplex.
108 * Transparency Unit, 24 or 48 bits depth. Infrared channel on
109 certain models.
110
111 The device name for USB devices is in the form pixma:xxxxyyyy_zzzzz
112 where x, y and z are vendor ID, product ID and serial number respec‐
113 tively.
114
115 Example: pixma:04A91709_123456 is a MP150.
116
117 Device names for BJNP/MFNP devices is in the form pixma:aaaa_bbbbb
118 where aaaa is the scanners model and bbbb is the hostname or ip-adress.
119
120 Example: pixma:MF4800_192.168.1.45 is a MF4800 Series multi-function
121 peripheral.
122
123 This backend, based on cloning original Canon drivers protocols, is in
124 a production stage. Designed has been carried out without any applica‐
125 ble manufacturer documentation, probably never available. However, we
126 have tested it as well as we could, but it may not work in all situa‐
127 tions. You will find an up-to-date status at the project homepage. (See
128 below). Users feedback is essential to help improve features and per‐
129 formances.
130
132 Besides "well-known" options (e.g. resolution, mode etc.) sane-pixma
133 backend also provides the following options, i.e. the options might
134 change in the future.
135 The button status can be polled i.e. with scanimage -A.
136 Button scan is disabled on MAC OS X due to darwin libusb not handling
137 timeouts in usb interrupt reads, but may work when using the network
138 protocol.
139
140 adf-wait
141 This option enables and sets the time in seconds waiting for a
142 document inserted into the Automatic Document Feeder. The maxi‐
143 mum allowed waiting time is 3600 sec (= 1 hour).
144
145 button-controlled
146 This option can be used by applications (like scanadf(1) and
147 scanimage(1)) in batch mode, for example when you want to scan
148 many photos or multiple-page documents. If it is enabled (i.e.
149 is set to true or yes), the backend waits before every scan un‐
150 til the user presses the "SCAN" button (for MP150) or the color-
151 scan button (for other models). Just put the first page in the
152 scanner, press the button, then the next page, press the button
153 and so on. When you finished, press the gray-scan button. (For
154 MP150 you have to stop the frontend by pressing Ctrl-C for exam‐
155 ple.)
156
157 button-update (deprecated)
158 (write only) In the past this option was required to be set to
159 force reading of the button status for button-1 and button-2.
160 The sane-pixma backend no longer requires this option to be
161 used: if no fresh data is available, it will be now requested
162 automatically from the scanner. This option is left for backward
163 compatibility reasons.
164
165 button-1 button-2
166 (read only) These options will return the value of the respec‐
167 tive buttons. value 0 means that the button was not pressed, 1
168 is returned when the button was pressed. Some scanners with more
169 than two buttons send the button number as target.
170
171 original
172 (read only) Returns the value of the type or size of original to
173 be scanned if the scanner provides that data. Known values of
174 type: 1 = document, 2 = photo, 5 = film. Known values of size: 1
175 = A4, 2 = Letter, 8 = 10x15, 9 = 13x18, b = auto. Not all scan‐
176 ners can provide this data.
177
178 target (read only) Returns the value of the target of the scan opera‐
179 tion if the scanner provides that data. The values depend on the
180 scanner type. Known values: 1 = save to disk, 2 = save to pdf, 3
181 = send to email, 4 = send to application or 1 = JPEG, 2 = TIFF,
182 3 = PDF, 4 = Compact PDF. For some scanners this value is equiv‐
183 alent to the number of the pressed button. Not all scanners can
184 provide this data.
185
186 scan-resolution
187 (read only) Returns the resolution of the scan operation if the
188 scanner provides that data. Known values: 1 = 75 dpi, 2 = 150
189 dpi, 3 = 300 dpi, 4 = 600 dpi. Not all scanners can provide this
190 data.
191
192 document-type
193 (read only) Returns the type of the scanned document if the
194 scanner provides that data. Known values: 1 = Document, 2 =
195 Photo, 3 = Auto scan. Not all scanners can provide this data.
196
197 adf-status
198 (read only) Returns the status of the document feeder if the
199 scanner provides that data. Known values: 1 = ADF empty, 2 = ADF
200 filled. Not all scanners can provide this data.
201
202 adf-orientation
203 (read only) Returns the scan orientation of the medium scanned
204 from ADF if the scanner provides that data. Known values: 1 =
205 Portrait, 2 = Landscape. Not all scanners can provide this data.
206
208 /usr/lib64/sane/libsane-pixma.a
209 The static library implementing this backend.
210
211 /usr/lib64/sane/libsane-pixma.so
212 The shared library implementing this backend (present on systems
213 that support dynamic loading).
214
215 /etc/sane.d/pixma.conf
216 The backend configuration file (see also description of
217 SANE_CONFIG_DIR below).
218
219 The file contains an optional list of networked scanners using
220 the BJNP or MFNP protools (See below for datails on networking
221 support for scanners). Normally only scanners that cannot be
222 auto-detected because they are on a different subnet shall be
223 listed here. If you do not use Linux and your OS does not allow
224 enumeration of interfaces (i.e. it does not support the getifad‐
225 drs() qfunction) you also may need to add your scanner here as
226 well.
227
228 Scanners shall be listed in the configuration file as follows:
229
230 <method>://<host>[:port][/timeout=<value>]
231
232 where method indicates the protocol used (bjnp is used for
233 inkjet multi-functionals and mfnp is used for laser multi-func‐
234 tionals).
235
236 host is the hostname or IP address of the scanner, e.g.
237 bjnp://10.0.1.4 for IPv4,
238 bjnp://[2001:888:118e:18e2:21e:8fff:fe36:b64a] for a literal
239 IPv6-address or bjnp://myscanner.mydomain.org for a hostname.
240
241 The port number is optional and in normally implied by the
242 method. Port 8610 is the standard port for mfnp, 8612 for bjnp.
243
244 A scanner specific timeout value for the network protocol can be
245 set using the bjnp-timeout parameter. The value is in ms.
246
247 Define scanners each on a new line.
248
249 More globally applicable timeouts can be set using the bjnp-
250 timeout parameter as follows:
251
252 bjnp-timeout=<value>
253
254 A timeout defined using bjnp-timeout will apply to the following
255 scanner definitions in the file. If required the bjnp-timeout
256 setting can be defined multiple times, where each setting will
257 apply only to the scanners that follow the setting. The last
258 setting is used for the auto discovered scanners. If not ex‐
259 plicitly set, the default 1000ms setting will apply.
260
261 Setting timeouts should only be required in exceptional cases.
262
263 If so desired networking can be disabled as follows:
264
265 - If the first non-commented line contains networking=no
266 all networking will be disabled. This will cause all
267 further statements in the configuration file to be ig‐
268 nored.
269
270 - A line that contains auto_detection=no will cause auto-
271 detection to be skipped. Explicitly defined network scan‐
272 ners will still be probed.
273
275 USB scanners will be auto-detected and require no configuration.
276
278 The sane-pixma backend supports network scanners using the so called
279 Canon BJNP and MFNP protocols.
280
281 Canon seems to be dropping support for these protocols in recent scan‐
282 ners. To verify if your scanner supports one of these protocols, check
283 the content of the _scanner._tcp service entry in mDNS/DNS-SD (using
284 for example avahi-discover(1)). If that does not list port 8610 or
285 8612 your scanner probably does not support the mfmp or bjnp protols.
286
287 Both IPv4 and IPv6 are supported, but IPv6 is as yet untested with
288 MFNP. Please report your results on the mailing list.
289
290 Configuration is normally not required. The sane-pixma backend will
291 auto-detect your scanner if it is within the same subnet as your com‐
292 puter if your OS does support this.
293
294 If your scanner can not be auto-detected, you can add it to the
295 sane-pixma configuration file (see above).
296
298 The sane-pixma backend communicates with port 8610 for MFNP or port
299 8612 for BJNP on the scanner. So you will have to allow outgoing traf‐
300 fic TO port 8610 or 8612 on the common subnet for scanning.
301
302 Scanner detection is slightly more complicated. The sane-pixma backend
303 sends a broadcast on all direct connected subnets it can find (provided
304 your OS allows for enumeration of all network interfaces). The broad‐
305 cast is sent FROM port 8612 TO port 8610 or 8612 on the broadcast ad‐
306 dress of each interface. The outgoing packets will be allowed by the
307 rule described above.
308
309 Responses from the scanner are sent back to the computer TO port 8612.
310 Connection tracking however does not see a match as the response does
311 not come from the broadcast address but from the scanners own address.
312 For automatic detection of your scanner, you will therefore have to al‐
313 low incoming packets TO port 8612 on your computer. This applies to
314 both MFNP and BJNP.
315
316 So in short: open the firewall for all traffic from your computer to
317 port 8610 (for MFNP) or 8612 (for BJNP) AND to port 8612 (for both BJNP
318 and MFNP) to your computer.
319
320 With the firewall rules above there is no need to add the scanner to
321 the pixma.conf file, unless the scanner is on a network that is not di‐
322 rectly connected to your computer.
323
325 SANE_DEBUG_PIXMA
326 If the library was compiled with debug support enabled, this en‐
327 vironment variable controls the debug level for this backend it‐
328 self. Higher value increases the verbosity and includes the in‐
329 formation printed at the lower levels.
330 0 print nothing (default)
331 1 print error and warning messages (recommended)
332 2 print informational messages
333 3 print debug-level messages
334 4 print verbose debug-level messages
335 11 dump USB traffic
336 21 full dump USB traffic
337
338 SANE_DEBUG_BJNP
339 If the library was compiled with debug support enabled, this en‐
340 vironment variable controls the debug level for the BJNP and
341 MFNP network protocols for this backend. Higher value increases
342 the verbosity and includes the information printed at the lower
343 levels.
344 0 print nothing (default)
345 1 Print error and warning messages (recommended)
346 2 Print high level function tracing information
347 3 Print more detailed protocol tracing information
348 4 Print protocol headers
349 5 Print full protocol contents
350
351 PIXMA_EXPERIMENT
352 Setting to a non-zero value will enable the support for experi‐
353 mental models. You should also set SANE_DEBUG_PIXMA to 11.
354
355 SANE_CONFIG_DIR
356 This environment variable specifies the list of directories that
357 may contain the configuration file. On *NIX systems, the direc‐
358 tories are separated by a colon (`:'), under OS/2, they are sep‐
359 arated by a semi-colon (`;'). If this variable is not set, the
360 configuration file is searched in two default directories:
361 first, the current working directory (".") and then in
362 /etc/sane.d. If the value of the environment variable ends with
363 the directory separator character, then the default directories
364 are searched after the explicitly specified directories. For
365 example, setting SANE_CONFIG_DIR to "/tmp/config:" would result
366 in directories tmp/config, ., and /etc/sane.d being searched (in
367 this order).
368
370 sane(7), sane-dll(5), scanimage(1), scanadf(1), gamma4scanimage(1),
371 getifaddrs(3)
372
373 In case of trouble with a recent Pixma model, try the latest code for
374 the sane-pixma backend, available in the Sane git repository at:
375 https://gitlab.com/sane-project/backends.git
376
377 You can also post into the Sane-devel mailing list for support.
378
379
381 Wittawat Yamwong, Nicolas Martin, Dennis Lou, Louis Lagendijk, Rolf
382 Bensch
383
384 We would like to thank all testers and helpers. Without them we could
385 not be able to write subdrivers for models we don't have. See also the
386 project homepage.
387
388
389
390 15 Aug 2020 sane-pixma(5)