
Here are some notes from Joe Rutledge on preventing cursor drift in TrackPoint due to analog noise:
The usual cause of drifting is a high analog noise level. At a very high level this can cause more or less random
cursor movements, but at a much lower level it can defeat the drift correction algorithm. There is always a certain
amount of drift in the electronics - temperature or whatever. If left to itself without correction, the cursor
drifts faster and faster as time goes on - it may move a pixel or two after five minutes, get off the screen in
perhaps 20 minutes, and in an hour or two may be moving across the screen in a few seconds (as the room, or
the machine, heats or cools).
To prevent this, the firmware recalibrates whenever the stick is untouched for a few seconds - that is whenever
the reading from the stick is constant within one A/D count for 2.8 seconds. Enough noise will prevent this from
happening, even if no cursor movement results directly, and the long-term drift will be uncompensated.
There is a dead band around zero in the transfer function, so as long as a recalibration occurs before drift exceeds
3 A/D counts, no cursor movement results. Normally, this always happens.
At an intermediate level of noise, the recalibration occurs, but may be delayed enough to let the A/D value drift
out of the dead band, or close enough so that the noise takes it out, and produces cursor movement.
A simple test procedure which is very useful is the "rubber-band test". Apply a gentle (20 - 50 gram)
steady horizontal force to the TrackPoint stick (say with a rubber band, lightly stretched and held against the
keyboard frame - you may need to remove some key caps). The cursor should move at a constant speed for a time,
and then stop. When the force is released, the cursor will move in the opposite direction for approximately the
same time and distance, and stop again. This is normal operation of the drift correction mechanism, and will happen
only if the noise level is low enough; the time of motion gives a rough measure of the noise level present. For
low noise
the time should be 2.8 seconds; anything more than 4 seconds indicates a problem, and with heavy noise the cursor
will not stop at all.
A properly implemented TrackPoint will never drift when it is not in use. However, the user may defeat the drift
control algorithms in two way:
Both of these cursor drift modes are part of the TrackPoint's normal function. They could be eliminated, but
at the cost of occasionally reaching a state in which cursor drift occurs and does not spontaneously recover.
Another cause of drift is RF interference - for example from a nearby cell phone, or even worse a cell phone transmitter
inside the same box. The problem comes from rectification of RF in the op amps, and can usually be cured by placing
small bypass capacitors (50 - 100 pF) directly across the input pins of each op amp section.
The circuit should be laid out by an engineer skilled in analog circuit design. Here are some suggestions:
For more information, please contact:
Joe Rutledge
IBM Watson Research Lab
Yorktown Heights, NY
voice (914) 945-1175
fax (914) 945-3434
e-mail: rutledg@us.ibm.com
Last updated: 14 May, 1998