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