Opened 15 years ago
Last modified 6 years ago
#4731 in-progress bug
Wacom causes erratic mouse cursor movement
Reported by: | idefix | Owned by: | stippi |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | Drivers/Input/HID/USB | Version: | R1/alpha1 |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description
When you hold the Wacom pen in one position, you'll notice that the mouse cursor erratically moves a couple of pixels around one spot. In BeOS, Ubuntu and Windows this movement is a lot less, if not non-existent.
I noticed that the Linux Wacom driver uses a simple moving average filter to provide noise correction, so I hacked-up a patch that implements this in the Haiku driver.
Unfortunately this filter doesn't fix the erratic movements completely, so I decided to compare the 'raw' tablet data:
- x-movement (BeOS on the left, Haiku on the right):
- y-movement (BeOS on the left, Haiku on the right):
The horizontal gridlines represent the pixel-boundaries on my monitor.
You can see that the 'raw' movement is a lot bigger in Haiku than in BeOS, but I have no idea where the cause of this difference lies.
Also note the difference in the time between two samples, between BeOS (left) and Haiku (right):
Although this could have been caused by the different methods used to capture the data: to a file in BeOS, to the serial port in Haiku.
Attachments (9)
Change History (15)
by , 15 years ago
Attachment: | wacom_filter.patch added |
---|
follow-up: 3 comment:1 by , 15 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
Thanks! This is the way to go about this problem. I remember working on something similar in the Touchpad driver, and thinking this could be used to make the mouse work like a real mouse in the Wacom driver. Interested?
comment:2 by , 15 years ago
Forgot to mention, Haiku seems to schedule a lot more interrupt transfers per second compared to BeOS. This is also the reason for the higher CPU usage when moving and USB mouse. I worked around this somewhat in the Mouse input_server add-on, but it seems to be a problem still.
comment:3 by , 15 years ago
Replying to stippi:
Thanks! This is the way to go about this problem. I remember working on something similar in the Touchpad driver, and thinking this could be used to make the mouse work like a real mouse in the Wacom driver. Interested?
I'm sorry, but I don't think I understand you completely. Am I interested in what exactly? What similar thing? The filter? How would that make the Wacom mouse work like a real mouse?
follow-up: 5 comment:4 by , 15 years ago
Finally got round to capture some data in Ubuntu (using xidump
):
This image shows the filtered x-movement of the cursor in Haiku, BeOS and Ubuntu.
This image shows the filtered y-movement of the cursor in Haiku, BeOS and Ubuntu.
The amplitude of the mouse-cursor movement in Ubuntu lies between those of BeOS and Haiku. Although the difference between Ubuntu and Haiku is a lot less in the y-movement than in the x-movement.
by , 15 years ago
Attachment: | x (mov. avg.).png added |
---|
filtered x-movement of the cursor in Haiku, BeOS and Ubuntu
by , 15 years ago
Attachment: | y (mov. avg.).png added |
---|
filtered y-movement of the cursor in Haiku, BeOS and Ubuntu
comment:5 by , 15 years ago
Lets try that again...
Finally got round to capture some data in Ubuntu (using xidump
):
This image shows the filtered x-movement of the cursor in Haiku, BeOS and Ubuntu.
This image shows the filtered y-movement of the cursor in Haiku, BeOS and Ubuntu.
The amplitude of the mouse-cursor movement in Ubuntu lies between those of BeOS and Haiku. Although the difference between Ubuntu and Haiku is a lot less in the y-movement than in the x-movement.
comment:6 by , 6 years ago
Component: | Drivers/Mouse/USB → Drivers/Input/USB-HID |
---|
component -> USB-HID (new)
patch implementing moving average filter in Wacom input_server addon