Thanks Martin,<br><br>With some help from the people at #olpc-devel such as pgf, I was able to look at where I needed to to test some theories.<br><br>Looking at the code in hgpk.c that runs on the xo-1 I'm testing on,<br>
<br>The first thing I suspect most people do while waiting for the gui to become responsive is try to move the curser. The init of the psmouse module triggers a calibration.<br><br>Perhaps this is already clear to all but for completeness, calibrating the capacitive display with a finger on the pad is a (the?) cause of jumpyness/weirdness in control.<br>
<br>To prove, first turn off how the existing module triggers recalibrations (I will explain the problem with one of them in a moment)<br>---<br>cd /sys/module/psmouse/parameters<br>echo 0 > jumpy_delay; echo 0 >spew_delay<br>
---<br><br>Now give your xo a 5-finger-salut. The regular 4-finger-salut is <a href="http://wiki.laptop.org/go/Recalibrating_Touchpad">here</a> but just before hitting that final fn key, try rest a finger on the touchpad (the nose squished a bit also works too). The bigger the touch, the greater areas are miscalibrated.<br>
(useful <a href="http://www.alps.com/e/csr/value/val_new.html">link1</a>, <a href="http://www.cirque.com/technologies/glidepoint.aspx">link2</a>)<br><br>To regain control, just do the regular 4-finger-salut for recalibration.<br>
<br>Without a recalibration, the touchpad rests consistantly miscalibrated (heightened sensitivity).<br><br><br>Spew<br>--------<br><br>I believe the spew_delay (originally 1ms) is our saviour. <br><br>From hgpk.c...<br>/*<br>
 * We have no idea why this particular hardware bug occurs.  The touchpad<br> * will randomly start spewing packets without anything touching the<br> * pad.  This wouldn't necessarily be bad, but it's indicative of a<br>
 * severely miscalibrated pad; attempting to use the touchpad while it's<br> * spewing means the cursor will jump all over the place, and act "drunk".<br> *<br> * The packets that are spewed tend to all have deltas between -2 and 2, and<br>
 * the cursor will move around without really going very far.  It will<br> * tend to end up in the same location; if we tally up the changes over<br> * 100 packets, we end up w/ a final delta of close to 0.  This happens<br>
 * pretty regularly when the touchpad is spewing, and is pretty hard to<br> * manually trigger (at least for *my* fingers).  So, it makes a perfect<br> * scheme for detecting spews.<br> */<br><br>I've not read the spec (at a guess I'd say touchpad self tuning) but the spew sounds perfect to trigger a recal! So probably not a bug, nor miscalibrated pad, especially with such stable deltas.<br>
--<br>echo 1 > spew_delay<br><br>After a moment of not touching, the recalibrate is triggered and the cursor responds as expected.<br><br>Jumpyness recalibration<br>-----------------------------------<br><br>I believe that the recalibration after detecting jumpyness (x/y deltas > discard_threshold) is causing more problems than its solves, since jumpyness happens when fingers are on/near the touchpad.<br>
<br>One way to reproduce was with a finger in one corner tap the other corner whilst lifting the first finger. Doing something like this a few times (basically triggering the recalibrate by imperfect use) will cause the calibration to occur whilst your fingers are there.<br>
Another (more difficult) way was to have ones index finger touching normally, but the adjacent middle finger parallel and close to the touch surface. This also causes deltas greater than discard_threshold, and triggeres touchpad-recalibration avec fingers.<br>
<br>It is probably that under ideal use with dodgy hardware, this would be a good thing. But from what I have seen and read, I think the touchpad firmware should not be assumed to need too many hacks.<br><br>So i'm not sure if spew or jumpyness came first, but with no jumpy_delay (ie. bypass jumpyness recalibration) and default spew_delay of 1, I dont have any "weirdness" with the touchpad.<br>
<br><br>Tomorrow I'll take a look at the xset commands and such, but for now I hope this helps.<br><br><br><br><div class="gmail_quote">2010/1/20 Martin Langhoff <span dir="ltr"><<a href="mailto:martin.langhoff@gmail.com">martin.langhoff@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">On Wed, Jan 20, 2010 at 6:29 PM, James Zaki <<a href="mailto:james.zaki@gmail.com">james.zaki@gmail.com</a>> wrote:<br>

> I've just setup my xo-1 with os11 and updated to near-latest (within a week<br>
> off the top of my head) kernel + kernel-firmware.<br>
><br>
> I'd like to do some touchpad testing if its of any help, but will need do a<br>
> bit of a mental download to understand the pieces at play here.<br>
<br>
</div>Cool -- welcome to the fray! See the thread about testing 802B1, and<br>
the suggested "spirals" test.<br>
<br>
<a href="http://lists.laptop.org/pipermail/devel/2009-December/026750.html" target="_blank">http://lists.laptop.org/pipermail/devel/2009-December/026750.html</a><br>
<br>
You will want to declare which touchpad hardware you have (see thread<br>
above), and do some comparative testing between the 802B1 build and<br>
os11.<br>
<br>
Additionally, you may want to test, on os11, whether tuning the tp<br>
acceleration makes it better or worse.<br>
<br>
To tweak acceleration, open Terminal.xo and try the following settings<br>
<br>
  xset m 7/4 0 # this is what we ship now on 802 images<br>
  xset m 165/100 0 # this should be a tad slower<br>
  xset m 7/4 N # (where N is a number between 1 and 7)<br>
<div><div></div><div class="h5"><br>
cheers,<br>
<br>
<br>
<br>
m<br>
--<br>
 <a href="mailto:martin.langhoff@gmail.com">martin.langhoff@gmail.com</a><br>
 <a href="mailto:martin@laptop.org">martin@laptop.org</a> -- School Server Architect<br>
 - ask interesting questions<br>
 - don't get distracted with shiny stuff  - working code first<br>
 - <a href="http://wiki.laptop.org/go/User:Martinlanghoff" target="_blank">http://wiki.laptop.org/go/User:Martinlanghoff</a><br>
</div></div></blockquote></div><br>