Re: [RFC/RFT] [patch] Elo serial touchscreen driver

From: Jan-Benedict Glaw
Date: Thu Feb 10 2005 - 10:58:45 EST


On Thu, 2005-02-10 15:35:28 +0000, Paulo Marques <pmarques@xxxxxxxxxxxx>
wrote in message <420B7F40.9080308@xxxxxxxxxxxx>:
> Jan-Benedict Glaw wrote:

> So you're seriously saying that a perfectly good touchscreen, that
> returned values in the range [350..3800] after being injured might give
> values in a range (xmax-xmin)<=20 ??? That's a pretty nasty injury...

Right. This is what I'm saying. And recalibration of the TS controller
can (in _most_ cases) fix that.

> a) you can get a resistive touch screen to give values (xmin-xmax)<=20
> just by injuring it, but in a way that it can be revived

With some digging, maybe I can even find such a beast somewhere around
here (working for a software company, I don't my hands on large
quantities of broken hardware...).

> b) you can revive it by just changing the calibration parameters on the
> TS controller
>
> I believe you can make a touch screen controller return values in a very
> short range if you try to use its internal calibration and mess up the
> values really badly. In this case, recalibrating will almost certainly
> make it work again.

:-) That's just messing up it's "proper" calibration and restoring
working parameters.

> >[...]
> >Right, but there are two kinds of calibration:
> >
> >(1) Mapping the raw capacity/resistor values (that only the TS controller
> > is aware of) to something the HID API can output. (This, too, includes
> > that the kernel dictates the range of values that can be reached).
>
> I would really like to see a datasheet of a TS controller that actually
> does this, before we start working on a solution for it.

One of {elo,mu}touch does this. Unfortunately, the commands aren't
documented in the publically available sheets you can download from
their site. Using a serial sniffer, you can easily dismantle the
protocol to face the fact: these controller are a lot more clever than
the sheets will tell you :-)

> Why would a flash break if you never write to it? I would expect the TS
> layers to be damaged before any electronic part gets broken...

That's simple: some plastic/rubber shoes on equal ground, you can easily
load yourself with some 10000V. Touch it once, maybe it survives the
smoke. And possibly, the controller will loose it's flash contents...
Decalibrating by electrostatic discharge is even something that our
customers are able to _mention_ at the phone ("My finger hurt, it felt
like something bite me, the muscles and nerves hurt in my arm, the
computer crashed and upon reboot, I couldn't press the correct
pictograms...")

> >Ever tried to use a serial sniffer on vendor's original MS
> >Windows drivers? They almost always update the controller's internal
> >mapping, too.
>
> That is because they were done by the same brain-damaged people that
> didn't yet realize that a PC can do the couple of multiplications /
> divisions necessary in a few nanoseconds and still believe that the TS
> controller is "alleviating" the burden of the PC by doing that _complex_
> math itself :P

Yeah, right you are.

> >[...]
> >>Actually a calibration that can do scaling and rotation, can
> >>automatically compensate for mirroring and/or switched X/Y axes. We
> >>probably need the user to press 4 points for that, though (3 points are
> >>enough, but just barely enough).
> >
> >ACK. We'd do a lib for that and have a X11 driver to make use of it.
>
> Ok, lets start working on it then :)

Sure. (I'll write you off-list tomorrow.)

MfG, JBG

--
Jan-Benedict Glaw jbglaw@xxxxxxxxxx . +49-172-7608481 _ O _
"Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg _ _ O
fuer einen Freien Staat voll Freier BÃrger" | im Internet! | im Irak! O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));

Attachment: signature.asc
Description: Digital signature