1sane-canon_pp(5) SANE Scanner Access Now Easy sane-canon_pp(5)
2
3
4
6 sane-canon_pp - SANE backend for Canon CanoScan Parallel Port flatbed
7 scanners
8
10 The sane-canon_pp library implements a SANE (Scanner Access Now Easy)
11 backend that provides access to the following Canon flatbed scanners:
12
13 CanoScan FB320P
14 CanoScan FB620P
15 CanoScan FB330P
16 CanoScan FB630P
17 CanoScan N340P
18 CanoScan N640P
19 CanoScan N640P ex
20
21 No USB scanners are supported and there are no plans to support them in
22 the future. Other projects are working on support for USB scanners.
23 See the PROJECTS file for more detail. The FB310P and FB610P are re-
24 badged Avision scanners which use a different command set, so are un‐
25 likely to be supported by this backend in the future.
26
27 IMPORTANT: this is alpha code. While we have made every effort to make
28 it as reliable as possible, it will not always work as expected. Feed‐
29 back is still appreciated. Please send any bug reports to the main‐
30 tainers as listed on the web page (listed in SEE ALSO below).
31
32
34 This backend expects device names of the form presented by li‐
35 bieee1284(3). These names are highly dependent on operating system and
36 version.
37
38 On Linux 2.4 kernels this will be of the form parport0 or older (2.2
39 and before) kernels may produce names like 0x378 (the base address of
40 your port) or simply 0 depending on your module configuration. Check
41 the contents of /proc/parport if it exists. If you don't want to spec‐
42 ify a default port (or don't know its name), the backend should be able
43 to detect which port your scanner is on.
44
45
47 The contents of the canon_pp.conf file is a list of options for the
48 driver to use. Empty lines and lines starting with a hash mark (#) are
49 ignored.
50
51 The supported options are currently ieee1284, calibrate, init_mode, and
52 force_nibble
53
54 Option ieee1284 port-name defines which port to use. The format of
55 port-name is OS dependent, based on the names presented by libieee1284.
56 Please only have one of these lines, or all but one will be ignored.
57
58 Option calibrate cal-file [port-name] defines which calibration file to
59 use on a per-port basis. If you only have one parport, the port-name
60 argument may be omitted - but be careful as this will cause problems on
61 multi-scanner systems. You may have as many of these lines as you
62 like, as long as each has a unique port name. The tilde (`~') charac‐
63 ter is acceptable and will be expanded to the value of the HOME envi‐
64 ronment.
65
66 Option init_mode <AUTO|FB620P|FB630P> [portname] defines which initial‐
67 isation (wake-up) mode to use on a per-port basis. If you only have
68 one parport, the portname argument may be omitted - but be careful as
69 this may cause problems on multi-scanner systems. You may have as many
70 of these lines as you like, as long as each has a unique port name.
71 The valid initialisation modes are FB620P (which strobes 10101010 and
72 01010101 on the data pins), FB630P (which strobes 11001100 and 00110011
73 on the data pins) and AUTO, which will try FB630P mode first then
74 FB620P mode second. The FB620P mode is also used by the FB320P. The
75 FB630P mode is used by the FB330P, N340P, and N640P.
76
77 Option force_nibble forces the driver to use nibble mode even if ECP
78 mode is reported to work by libieee1284. This works-around the rare
79 issue of ECP mode being reported to work by the library, then not work‐
80 ing.
81
82
84 Hit the "Calibrate" button before scanning. It vastly improves the
85 quality of scans.
86
87 To enable automatic detection of your scanner, uncomment the "canon_pp"
88 line from /etc/sane.d/dll.conf
89
91 /etc/sane.d/canon_pp.conf
92 The backend configuration file (see also description of
93 SANE_CONFIG_DIR below).
94
95 /usr/lib64/sane/libsane-canon_pp.a
96 The static library implementing this backend.
97
98 /usr/lib64/sane/libsane-canon_pp.so
99 The shared library implementing this backend (present on systems
100 that support dynamic loading).
101
103 SANE_CONFIG_DIR
104 This environment variable specifies the list of directories that
105 may contain the configuration file. On *NIX systems, the direc‐
106 tories are separated by a colon (`:'), under OS/2, they are sep‐
107 arated by a semi-colon (`;'). If this variable is not set, the
108 configuration file is searched in two default directories:
109 first, the current working directory (".") and then in
110 /etc/sane.d. If the value of the environment variable ends with
111 the directory separator character, then the default directories
112 are searched after the explicitly specified directories. For ex‐
113 ample, setting SANE_CONFIG_DIR to "/tmp/config:" would result in
114 directories tmp/config, ., and /etc/sane.d being searched (in
115 this order).
116
117 SANE_DEBUG_CANON_PP
118 If the library was compiled with debug support enabled, this en‐
119 vironment variable controls the debug level for this backend.
120 Higher debug levels increase the verbosity of the output.
121
122 Example: export SANE_DEBUG_CANON_PP=4
123
125 Features available in the Windows interface
126
127 Brightness and Contrast
128 These are not implemented, and probably never will be. These
129 appear to be implemented entirely in software. Use GIMP or a
130 similar program if you need these features.
131
132 Descreen Mode
133 This appears on our first analysis to be just oversampling with
134 an anti-aliasing filter. Again, it seems to be implemented en‐
135 tirely in software, so GIMP is your best bet for now.
136
137 Gamma Tables
138 This is under investigation, but for now only a simple gamma
139 profile (ie: the one returned during calibration) will be
140 loaded.
141
142 Communication Problems
143
144 ECP mode in libieee1284 doesn't always work properly, even with new
145 hardware. We believe that this is a ppdev problem. If you change the
146 configuration file to include force_nibble , the problem will go away,
147 but you will only be able to scan in nibble mode.
148
149 Sometimes the scanner can be left in a state where our code cannot re‐
150 vive it. If the backend reports no scanner present, try unplugging the
151 power and plugging it back in. Also try unplugging printers from the
152 pass-through port.
153
154 The scanner will not respond correctly to our commands when you first
155 plug in the power. You may find if you try a scan very soon after
156 plugging in the power that the backend will incorrectly report that you
157 have no scanner present. To avoid this, give it about 10 seconds to
158 reset itself before attempting any scans.
159
160 Repeated Lines
161
162 Sometimes at high resolutions (ie. 600dpi) you will notice lines which
163 appear twice. These lines correspond to points where the scanner head
164 has stopped during the scan (it stops every time the internal 64kb buf‐
165 fer is full). Basically it's a mechanical problem inside the scanner,
166 that the tolerance of movement for a start/stop event is greater than
167 1/600 inches. I've never tried the windows driver so I'm not sure how
168 (or if) it works around this problem, but as we don't know how to
169 rewind the scanner head to do these bits again, there's currently no
170 nice way to deal with the problem.
171
172 Grey-scale Scans
173
174 Be aware that the scanner uses the green LEDs to read grey-scale scans,
175 meaning green coloured things will appear lighter than normal, and red
176 and blue coloured items will appear darker than normal. For high-accu‐
177 racy grey-scale scans of colour items, it's best just to scan in colour
178 and convert to grey-scale in graphics software such as the GIMP.
179
180 FB620P/FB320P Caveats
181
182 These models can not be reset in the same way as the others. The win‐
183 dows driver doesn't know how to reset them either - when left with an
184 inconsistent scanner, it will start scanning half way down the page!
185
186 Aborting is known to work correctly on the FB*30P models, and is known
187 to be broken on the FB*20P models. The FB620P which I tested on simply
188 returns garbage after a scan has been aborted using the method we know.
189 Aborting is able to leave the scanner in a state where it can be shut
190 down, but not where another scan can be made.
191
192
193
195 sane(7), sane-dll(5), libieee1284(3),
196 http://canon-fb330p.sourceforge.net/
197
198
200 This backend is primarily the work of Simon Krix (Reverse Engineering),
201 and Matthew Duggan (SANE interface).
202
203 Many thanks to Kevin Easton for his comments and help, and Kent A. Sig‐
204 norini for his help with the N340P.
205
206
207
208 11 Jul 2008 sane-canon_pp(5)