I have been wrestling with optimizing a touchscreen for button
pressing with a finger. I started by trying to set the tslib filters,
variance and dejitter to eliminate the noise that we were seeing and
and "quick motions" in favor of solid finger presses. These two
filters helped but a lot of noise was still getting through,
especially points on the center of one perimeter. so I decided to make
my own filter that would average several raw readings together as well
as throw out any reading that was outside of the average range. This
new filter works excellently with tslib's ts_test. It only lets a very
concentrated point through and stops any strokes or dragging. However,
once I tried the new setup with a X server it stops working.

At first my new filter didn't work at all, but then I figured out that
it would have to keep a history of raw readings as opposed to taking
several readings all together in order to work. The filters and tslib
are clearly setup to be able to be 'greedy' and give less output than
input. The variance filter is, so I don't know why that was a problem.
Now readings will come through to X server, but they are still off.
Some readings are lost, some are one touch behind, some are averaged
between past touches.

I've been struggling with this touch screen for quite some time and
would love to have a few questions answered:

- Are touch screens supposed to be quite noisy? Specific noise sources
on a perimeter?
- Are there some dejitter, variance or other tslib settings that I may
have missed and should try?
- Is there any known reason why a filtering sequence that works well
with ts_test would baulk with X server
- Is there a reason why x server wouldn't allow multiple raw readings
by a filter?

Thank you,