1TS.CONF(5) tslib TS.CONF(5)
2
3
4
6 ts.conf - Configuration file for tslib, controlling touch screens for
7 embedded devices.
8
10 The idea of tslib is to have a core library that provides standard ser‐
11 vices, and a set of plugins to manage the conversion and filtering as
12 needed.
13
14 The plugins for a particular touchscreen are loaded automatically by
15 the library under the control of a static configuration file,
16 /etc/ts.conf. /etc/ts.conf gives the library basic configuration
17 information. Each line specifies one module, and the parameters for
18 that module. The modules are loaded in order, with the first one pro‐
19 cessing the touchscreen data first. For example:
20
21 module_raw input
22 module variance delta=30
23 module dejitter delta=100
24 module linear
25
26
28 Latest versions of the Xorg tslib input driver use hal to configure the
29 touchscreen within Xorg. Environment variables are only needed for the
30 tslib commands.
31
32 TSLIB_TSDEVICE
33 If the default touchscreen device cannot be found, set the
34 TSLIB_TSDEVICE environment variable to the touchscreen device to
35 use.
36
37 Default when using ts_setup(): We try to open /dev/input/ts,
38 /dev/input/touchscreen and /dev/touchscreen/ucb1x00 and on Linux,
39 we then scan /dev/input/event* for the first device with property
40 INPUT_PROP_DIRECT.
41
42 TSLIB_CONSOLEDEVICE
43 Tslib default console device.
44
45 Default: /dev/tty
46
47 TSLIB_CALIBFILE
48 Stores calibration data obtained using ts_calibrate.
49
50 Default: /etc/pointercal
51
52 TSLIB_CONFFILE
53 Set a different location for the ts.conf configuration file itself.
54
55 Default; /etc/ts.conf.
56
57 TSLIB_FBDEVICE
58 Framebuffer device to use for the touchscreen support.
59
60 Default: /dev/fb0.
61
62 TSLIB_PLUGINDIR
63 Plugin directory for tslib.
64
65 Default: /usr/lib/$triplet/ts0/ where triplet is the MultiArch
66 path, e.g. arm-linux-gnueabi.
67
69 dejitter
70 Removes jitter on the X and Y co-ordinates. This is achieved by
71 applying a weighted smoothing filter. The latest samples have most
72 weight; earlier samples have less weight. This allows one to
73 achieve 1:1 input->output rate.
74
75 · delta
76
77 Squared distance between two samples ((X2-X1)^2 + (Y2-Y1)^2)
78 that defines the quick motion threshold. If the pen moves
79 quick, it is not feasible to smooth pen motion, besides quick
80 motion is not precise anyway; so if quick motion is detected
81 the module just discards the backlog and simply copies input to
82 output.
83
84 linear
85 Linear scaling module, primarily used for conversion of touch
86 screen co-ordinates to screen co-ordinates.
87
88 · rot
89
90 Rotation of touch coorinates. 0=no, 1=CW, 2=UD, 3=CCW. Default:
91 the screen-rotation that was used with ts_calibrate (-r
92 option).
93
94 · xyswap
95
96 Interchange the X and Y co-ordinates -- no longer used or
97 needed if the new linear calibration utility ts_calibrate is
98 used.
99
100 · pressure_offset
101
102 Offset applied to the pressure value. Default: 0.
103
104 · pressure_mul
105
106 Factor to multiply the pressure value with. Default: 1.
107
108 · pressure_div
109
110 Value to divide the pressure value by. Default: 1.
111
112
113 iir
114 Infinite impulse response filter. Similar to dejitter, this is a
115 smoothing filter to remove low-level noise. There is a trade-off
116 between noise removal (smoothing) and responsiveness. The parame‐
117 ters N and D specify the level of smoothing in the form of a frac‐
118 tion (N/D).
119
120 · N
121
122 numerator of the smoothing fraction. Default: 0.
123
124 · D
125
126 denominator of the smoothing fraction. Default: 1.
127
128 pthres
129 Pressure threshold filter. Given a release is always pressure 0 and
130 a press is always >= 1, this discards samples below / above the
131 specified pressure threshold.
132
133 · pmin
134
135 Minimum pressure value for a sample to be valid. Default: 1.
136
137 · pmax
138
139 Maximum pressure value for a sample to be valid. Default:
140 INT_MAX.
141
142
143 debounce
144 Simple debounce mechanism that drops input events for the specified
145 time after a touch gesture stopped.
146
147 · drop_threshold
148
149 drop events up to this number of milliseconds after the last
150 release event. Default: 0.
151
152
153 skip
154 Skip nhead samples after press and ntail samples before release.
155 This should help if for the device the first or last samples are
156 unreliable.
157
158 · nhead
159
160 Number of events to drop after pressure. Default: 1.
161
162 · ntail
163
164 Number of events to drop before release. Default: 1.
165
166
167 median
168 Similar to what the variance filter does, the median filter sup‐
169 presses spikes in the gesture.
170
171 · depth
172
173 Number of samples to apply the median filter to. Default: 3.
174
175
176 invert
177 Invert values in X and/or Y direction around a given value.
178
179 · x0
180
181 X-axis (horizontal) value around which to invert. Default: 0.
182
183 · y0
184
185 Y-axis (horizontal) value around which to invert. Default: 0.
186
187
188 lowpass
189 simple exponential averaging lowpass filter
190
191 · factor
192
193 floating point values betwenn 0 and 1. Default: 0.4.
194
195 · threshold
196
197 x or y minimum distance between two samples to start applying
198 the filter. Default: 2.
199
200
201 evthres
202 Number of samples needed from the device after considered a valid
203 touch. This filter will drop a tapping when too little samples are
204 between "down" and "up".
205
206 · N
207
208 Minimum number of events needed between "down" and "up".
209 Default: 5.
210
211
212 variance
213 Tries to do it's best in order to filter out random noise coming
214 from touchscreen ADCs. This is achieved by limiting the sample
215 movement speed to some value (e.g. the pen is not supposed to move
216 quicker than some threshold).
217
218 This is a greedy filter, e.g. it gives less samples on output than
219 receives on input. There is no multitouch support for this filter.
220
221 · delta
222
223 Set the squared distance in touchscreen units between previous
224 and current pen position (e.g. (X2-X1)^2 + (Y2-Y1)^2). This
225 defines the criteria for determining whenever two samples are
226 near or far to each other.
227
228 If the distance between previous and current sample is far, the
229 sample is marked as potential noise. This doesn't mean yet that
230 it will be discarded; if the next reading will be close to it,
231 this will be considered just a regular quick motion event, and
232 it will sneak to the next layer. Also, if the sample after the
233 potential noise is far from both previously discussed samples,
234 this is also considered a quick motion event and the sample
235 sneaks into the output stream.
236
237 hardware support
238
239 On Linux, use the module_raw input if you can. The other raw access
240 modules are device specific userspace drivers. If you need one of
241 those, enable it explicitly when building tslib. The list of modules
242 enabled by default might shrink in the future. module_raw input sup‐
243 ports multitouch (MT) too.
244
245
246 ┌──────────────────┬───────────────────────────────────┬──────────────────────────┬─────────────────────────┬─────┬────────────────────────────┐
247 │module_raw │ supported devices │ interface │ platforms │ MT │ how to enable │
248 ├──────────────────┼───────────────────────────────────┼──────────────────────────┼─────────────────────────┼─────┼────────────────────────────┤
249 │input │ all with Linux evdev drivers │ any (driver) /dev/input/ │ Linux, FreeBSD │ yes │ enabled by default │
250 ├──────────────────┼───────────────────────────────────┼──────────────────────────┼─────────────────────────┼─────┼────────────────────────────┤
251 │arctic2 │ IBM Arctic II │ . │ Linux, BSD, Hurd, Haiku │ no │ --enable-arctic2 │
252 ├──────────────────┼───────────────────────────────────┼──────────────────────────┼─────────────────────────┼─────┼────────────────────────────┤
253 │collie │ Sharp Zaurus SL-5000d/SL-5500 │ . │ Linux, BSD, Hurd, Haiku │ no │ --enable-collie │
254 ├──────────────────┼───────────────────────────────────┼──────────────────────────┼─────────────────────────┼─────┼────────────────────────────┤
255 │corgi │ Sharp Zaurus SL-C700 │ . │ Linux, BSD, Hurd, Haiku │ no │ --enable-corgi │
256 ├──────────────────┼───────────────────────────────────┼──────────────────────────┼─────────────────────────┼─────┼────────────────────────────┤
257 │dmc_dus3000 │ DMC DUS Series (DUS3000, ...) │ UART │ Linux │ no │ --enable-dmc_dus3000 │
258 ├──────────────────┼───────────────────────────────────┼──────────────────────────┼─────────────────────────┼─────┼────────────────────────────┤
259 │dmc │ DMC (others) │ . │ Linux, BSD, Hurd, Haiku │ no │ --enable-dmc │
260 ├──────────────────┼───────────────────────────────────┼──────────────────────────┼─────────────────────────┼─────┼────────────────────────────┤
261 │galax │ eGalax 100, 112, 210 │ any (driver) │ Linux, BSD │ no │ --enable-galax │
262 ├──────────────────┼───────────────────────────────────┼──────────────────────────┼─────────────────────────┼─────┼────────────────────────────┤
263 │h3600 │ Compaq IPAQ │ . │ Linux, BSD, Hurd, Haiku │ no │ --enable-h3600 │
264 ├──────────────────┼───────────────────────────────────┼──────────────────────────┼─────────────────────────┼─────┼────────────────────────────┤
265 │mk712 │ Hitachi Webpad │ . │ Linux, BSD, Hurd, Haiku │ no │ --enable-mk712 │
266 ├──────────────────┼───────────────────────────────────┼──────────────────────────┼─────────────────────────┼─────┼────────────────────────────┤
267 │tatung │ Tatung Webpad │ . │ Linux, BSD, Hurd, Haiku │ no │ --enable-tatung │
268 ├──────────────────┼───────────────────────────────────┼──────────────────────────┼─────────────────────────┼─────┼────────────────────────────┤
269 │touchkit │ Touchkit SAT4000UR │ RS232 │ Linux, BSD, Hurd │ no │ enabled by default │
270 ├──────────────────┼───────────────────────────────────┼──────────────────────────┼─────────────────────────┼─────┼────────────────────────────┤
271 │ucb1x00 │ UCB1x00 Touchscreens │ . │ Linux, BSD, Hurd, Haiku │ no │ --enable-ucb1x00 │
272 ├──────────────────┼───────────────────────────────────┼──────────────────────────┼─────────────────────────┼─────┼────────────────────────────┤
273 │waveshare │ Waveshare Touchscreens │ /dev/hidrawX │ Linux │ no │ enabled by default │
274 ├──────────────────┼───────────────────────────────────┼──────────────────────────┼─────────────────────────┼─────┼────────────────────────────┤
275 │cy8mrln_palm‐ │ in Palm Pre/Pre Plus/Pre 2 │ . │ Linux │ no │ --enable-cy8mrln-palmpre │
276 │pre │ │ │ │ │ │
277 ├──────────────────┼───────────────────────────────────┼──────────────────────────┼─────────────────────────┼─────┼────────────────────────────┤
278 │one_wire_ts_input │ FriendlyARM one-wire touch screen │ . │ Linux │ no │ --enable-one-wire-ts-input │
279 ├──────────────────┼───────────────────────────────────┼──────────────────────────┼─────────────────────────┼─────┼────────────────────────────┤
280 │input_evdev │ Linux evdev drivers (libevdev) │ . │ Linux │ yes │ --enable-input-evdev │
281 └──────────────────┴───────────────────────────────────┴──────────────────────────┴─────────────────────────┴─────┴────────────────────────────┘
283 ts_calibrate(1), ts_test(1), ts_test_mt(1)
284
285
286
287 TS.CONF(5)