Touchpad/Testing

From OLPC
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Touchpad calibration and testing is a complex area, not very well documented in the industry. This page collects useful information when testing and debugging touchpads.

OLPC has shipped 3 touchpads

  • ALPS (in XO-1 CL1 model)
  • Synaptics (in XO-1 CL1A model, XO-1.5, XO-1.75)
  • Sentelic AVC (in XO-1 CL1A model, XO-1.5, XO-1.75)

Right after boot, use "dmesg | grep -i psmouse" to see what protocol is in use. This usually reveals the tp in use.

Variables

These are the variables we find influence TP performance. Our tuning work aims to find a good balance that makes the TP work correctly for a wide range of cases.

Keep in mind that these variables can be pushed to points where the TP misbehaves -- make your finger wet enough, or your power source dirty enough, and no TP will work correctly regardless of vendor and tuning.

Experience indicates that configuration changes that consider only a subset of these variables... are going to break some of the untested cases.

  • Dirty power: if the power supply is connected to a dirty/noisy power strip (one with several other power supplies connected), this can cause issues with the TP input; control for this by also testing on battery power.
  • Approach speed: some TPs calibrate as soon as they sense the finger on the TP -- if your finger approaches the TP very slowly, the calibration loop might catch signal of your finger _near_, but not in contact with the TP, leading to erratic tracking; control for with very slow approach to the TP as well as fast & firm approach to the TP.
  • Firmness of touch: very light contact with the TP can lead to erratic tracking; control for this using a very light touch, as well as firm contact with the TP.
  • Hand placement: the ideal condition for the TP is where only one finger contacts the laptop; so try
    • strictly one finger
    • second hand holding the unit near the antennas / speakers
    • second hand holding the corner of the base assembly
    • second hand near (but not touching) touchpad
    • thumb resting on buttons
  • Lap vs table: body contact /proximity with the laptop can affect TP behaviour -- test with the laptop on your lap, then on a plastic or wooden table.
  • Humidity and temperature: test in hot+humid, hot+dry, cold+humid, cold+dry environments; the top risk is hot+humid.
  • Dust and humidity: dust, specially combined with humidity, poses a hard problem for TPs, test with talcum powder in a humid environment.
  • Sweaty/wet finger: a drop of water or a wet finger are expected to confuse TPs. Sweaty fingers are a hard problem for TPs but should be able to operate passably.
  • Finger size: different finger sizes look very different to the TP software -- test with users with various finger sizes. Ensure you test with children!
  • User variation: Other variations in users bodies and usage patters can affect the TP. Ensure you test with a number of users.

Tests

Standing finger

  • Place your finger in one spot, keep it there for at least one minute. The pointer should not move.

This test is useful to reveal very dirty power sources.

Circles

  • Put your finger on the TP and move the pointer in circles -- for example follow the Sugar Activity icons circle/spiral loosely for at least one minute.
  • Optionally, try to finish the stroke pointing to a specific icon or element on screen.

After a few seconds, a faulty TP will start tracking the circle motion erratically.

Rolling finger

  • Place your finger in one spot of the TP, in a 45 degree angle
  • Without lifting the finger, roll it left and right repeatedly, for at least 1 minute

After a few seconds of finger rolling, a faulty TP will start reporting erratic position jumps.

This test exercises the small finger motions used for precise pointer movements.

Spirals

  • Paint spirals from the outside in, trying to avoid crossing an already-painted line.

This is a good test for precision.

Corner to corner sweep

  • Move the pointer to a corner of the screen
  • In one fast stroke, you should be able to reach the opposite corner of the screen.

This test controls for acceleration -- ideally the configured acceleration allows you to both have precision with slow movements, and enough accel that swift movements can cover the whole screen corner-to-corner distance.

See also