Notes on TrackPoint Drift
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:
The user may keep a finger on the stick for a long enough period that the zero-force signal drifts out of the dead band; how long this is depends on the rate of drift, e.g. the rate of temperature change. Then the cursor will be found to be drifting when the stick is finally released. The circuit will rezero and the cursor will stop in a few seconds. provided it is left alone; if the user keeps trying to hold the cursor still, it can go on indefinitely.
The user may be able to apply a very steady force (usually a very low force, as in slowly scanning down a list) for a long enough time to fool the TrackPoint into rezeroing improperly. The cursor stops, and when released moves in the opposite direction for a few seconds, as in the 'rubber band test'. Again, it recovers if left alone for the requisite three seconds.
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.