Issue metadata
Sign in to add a comment
|
Difficult to double-tap on MiMo touchscreen when spoken feedback is enabled |
||||||||||||||||||||||||
Issue descriptionConnect a MiMo touchscreen to a Chrome OS device, enable spoken feedback, and try to tap to select, then double-tap to activate. It's less reliable than on a normal Chromebook. The MiMo seems to be far less reliable with its touch events, it drops touch events if they're too close together. However, we also have a bug - the release of the second tap must happen within the double-tap timeout. It should be the press of the second tap. If that's fixed, it's much easier to double-tap.
,
Aug 18 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0859999dd858d5fa1e0dc19419a0b87b1d3cd5d9 commit 0859999dd858d5fa1e0dc19419a0b87b1d3cd5d9 Author: Dominic Mazzoni <dmazzoni@chromium.org> Date: Fri Aug 18 00:46:25 2017 Fix timing of double-tap for touch accessibility. In touch accessibility mode, a double-tap triggers a click event. Previously, we required that the release of the second tap happen within the double-tap timeout relative to the first press. This was too strict and difficult to achieve on the MiMo. Instead it should only require that the press of the second tap happen within the double-tap timeout. Bug: 756648 Change-Id: I00da8ab8494a84782bf38b3bb542464f239040d5 Reviewed-on: https://chromium-review.googlesource.com/619764 Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org> Reviewed-by: James Cook <jamescook@chromium.org> Cr-Commit-Position: refs/heads/master@{#495399} [modify] https://crrev.com/0859999dd858d5fa1e0dc19419a0b87b1d3cd5d9/ui/chromeos/touch_exploration_controller.cc [modify] https://crrev.com/0859999dd858d5fa1e0dc19419a0b87b1d3cd5d9/ui/chromeos/touch_exploration_controller.h [modify] https://crrev.com/0859999dd858d5fa1e0dc19419a0b87b1d3cd5d9/ui/chromeos/touch_exploration_controller_unittest.cc
,
Aug 18 2017
Changing priority to 1 since it is RBS.
,
Aug 22 2017
,
Aug 22 2017
,
Aug 23 2017
,
Aug 23 2017
This bug requires manual review: We are only 12 days from stable. Please contact the milestone owner if you have questions. Owners: amineer@(Android), cmasso@(iOS), ketakid@(ChromeOS), govind@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Aug 23 2017
Approving merge to M61 Chrome OS.
,
Aug 28 2017
This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible! If all merges have been completed, please remove any remaining Merge-Approved labels from this issue. Thanks for your time! To disable nags, add the Disable-Nags label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Aug 28 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b56b33a22a730c6d21ff6d115c38cbef6b669cd1 commit b56b33a22a730c6d21ff6d115c38cbef6b669cd1 Author: Dominic Mazzoni <dmazzoni@chromium.org> Date: Mon Aug 28 17:01:57 2017 Merge to M61: Fix timing of double-tap for touch accessibility. In touch accessibility mode, a double-tap triggers a click event. Previously, we required that the release of the second tap happen within the double-tap timeout relative to the first press. This was too strict and difficult to achieve on the MiMo. Instead it should only require that the press of the second tap happen within the double-tap timeout. (cherry picked from commit 0859999dd858d5fa1e0dc19419a0b87b1d3cd5d9) Bug: 756648 Change-Id: I00da8ab8494a84782bf38b3bb542464f239040d5 Reviewed-on: https://chromium-review.googlesource.com/619764 Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org> Reviewed-by: James Cook <jamescook@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#495399} Reviewed-on: https://chromium-review.googlesource.com/638559 Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org> Cr-Commit-Position: refs/branch-heads/3163@{#929} Cr-Branched-From: ff259bab28b35d242e10186cd63af7ed404fae0d-refs/heads/master@{#488528} [modify] https://crrev.com/b56b33a22a730c6d21ff6d115c38cbef6b669cd1/ui/chromeos/touch_exploration_controller.cc [modify] https://crrev.com/b56b33a22a730c6d21ff6d115c38cbef6b669cd1/ui/chromeos/touch_exploration_controller.h [modify] https://crrev.com/b56b33a22a730c6d21ff6d115c38cbef6b669cd1/ui/chromeos/touch_exploration_controller_unittest.cc
,
Aug 30 2017
,
Sep 6 2017
Who should verify this bug? we saw some flakiness after this fix still. Can someone helps for verification? Thanks
,
Sep 6 2017
Verified the fix on R61-9765.53.0, it works fine.
,
Sep 6 2017
I think the touch screen calibration is a bit off. If you double-tap softly, you can see that the release is never registred using evtest. See double-tap example below where it goes from pressure 102(press) to 32(release) and then to 66(press) and then 0 (release). Only 102 and 0 are registered as BTN_TOUCH events since 32 is too high for a release. So I think it is to sensitive and can register >= 32 if you stop touching it but don't move your finger far enough away from it. Attached is the full evtest log. Event: time 1504724909.256434, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1504724909.256434, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 102 Event: time 1504724909.267420, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 90 Event: time 1504724909.275419, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 76 Event: time 1504724909.285418, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 61 Event: time 1504724909.294451, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 48 Event: time 1504724909.304424, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 40 Event: time 1504724909.313418, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 36 Event: time 1504724909.322408, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 34 Event: time 1504724909.332449, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 33 Event: time 1504724909.341421, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 32 Event: time 1504724909.408447, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 36 Event: time 1504724909.417444, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 45 Event: time 1504724909.427415, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 56 Event: time 1504724909.436479, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 66 Event: time 1504724909.446439, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 63 Event: time 1504724909.455456, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 58 Event: time 1504724909.464457, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 45 Event: time 1504724909.474436, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 38 Event: time 1504724909.483447, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 35 Event: time 1504724909.492448, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 33 Event: time 1504724909.501449, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 32 Event: time 1504724909.529431, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1504724909.529431, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
,
Sep 7 2017
Sri is going to check with Zhongze to make sure MIMO has firmware with feedback from last tuning exercise.
,
Sep 7 2017
So there might be a little more to this. I haven't seen anything about movement causing touch events to be lost. I have noticed though that the pressure variable is not updated around the trigger points. Normally we have 9-10 ms between pressure values. But when it is close to the low point (32) there is a 67ms gap, which is quite a lot. Snippet from above: Event: time 1504724909.332449, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 33 Event: time 1504724909.341421, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 32 --- Why the gap in time here? Event: time 1504724909.408447, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 36 It could be that the touch-controller does evaluate pressure and would generate touch events even though it does not notify the host about pressure, but we really should ask the vendor about this. I took another log which shows similar symptom. Here it is a double tap where I suspect the second taps highest value (38) is artificially low because of a gap of 107ms. Full log attached. Event: time 1504807166.065404, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1504807166.065404, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 105 Event: time 1504807166.081368, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 92 Event: time 1504807166.096324, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 79 Event: time 1504807166.111331, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 68 Event: time 1504807166.126367, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 59 Event: time 1504807166.141407, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 50 Event: time 1504807166.157361, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 41 Event: time 1504807166.172403, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 36 Event: time 1504807166.187406, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 34 Event: time 1504807166.202364, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 33 Event: time 1504807166.217330, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 32 Event: time 1504807166.324404, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 38 Event: time 1504807166.339409, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 35 Event: time 1504807166.353328, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 33 Event: time 1504807166.369332, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 32 Event: time 1504807166.429327, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1504807166.429327, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
,
Sep 7 2017
I will take look with the USB analyzer and see if the data from the device is 1:1 with what evtest is reporting.
,
Sep 7 2017
So the USB analyzer tells me that the touch keep sending events during the gaps in evtest logs. It just get filtered out on the host side since it is the same event over and over (i.e. pressure with value 32). So the time gaps shouldn't be a problem.
,
Sep 8 2017
I did some touch test today. The result shows the minimum time interval between 2 touch event for touch screen to recognize is about 160 ms (between 2 press event). The dual touch timeout threshold is set to 300 ms. So taping too fast will be take as a single tap by touch screen driver and taping too slow will be take as two independent touch by the UI. That's why even with this touch, the double-tap still fails sometimes. In my test, about 80% double-tap works. |
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by dmazz...@chromium.org
, Aug 17 2017