I have a question regarding Apple's touchpad palm rejection. Or, maybe my question is regarding touchpads in general.
How much raw data is sent from the device to the computer? Or, to what extent is the information preprocessed before sending?
I could see palm rejection being implemented either in hardware or in software. When a user's palm is resting on the pad, there's a large area of slight capacitance change (i.e. hand is either just barely in contact with the surface, or very very close above it), which is not normal when the user is intentionally dragging their fingertip across the surface.
Does the touchpad report a real-time capacitance map across the whole surface? Or does it do some interpretation onboard and send to the machine what it thinks are the separate touch points and pressure values for each?
Regarding apple trackpads - For raw data, you get enough to do ellipsoid tracking, paired with 'state' information to help with palm rejection. This is my experience from working with the multitouch private framework on macos - it's generally been enough to good enough work with and arguably prefer it rather than attempting to do any raw pixel-level tracking (which would tax the CPU)
Typically, touchpads and touchscreens send a complete pixel map (with pressure info if available) to the touch controller, and the touch controller filters that large amount of information into very minimal messages for finger-tracking and touch points. Some devices do substitute the CPU for the touch controller, though.
Its 100% OS level. I installed Linux mint on my macbook ages ago and my palms were constantly moving the mouse. I then installed fedora and it was back to working perfectly.
One thing I found interesting is you can purposely trigger the palm detection by doing something like putting your finger above the trackpad on the edge and running it slowly down.
How much raw data is sent from the device to the computer? Or, to what extent is the information preprocessed before sending?
I could see palm rejection being implemented either in hardware or in software. When a user's palm is resting on the pad, there's a large area of slight capacitance change (i.e. hand is either just barely in contact with the surface, or very very close above it), which is not normal when the user is intentionally dragging their fingertip across the surface.
Does the touchpad report a real-time capacitance map across the whole surface? Or does it do some interpretation onboard and send to the machine what it thinks are the separate touch points and pressure values for each?