Per Profile Gyro Momentum Feature#224
Conversation
|
Thanks for the PR, Before going into a deep review of code, I think this PR should be split in two, one for the gyro momentum and another one for the gyro sensitivity. I would focus first in the PR for gyro momentum only. About the gyro momentum cutoff, do I understand correctly cutoff is the actual "friction" value, and the X and Y are just multipliers for it? I would park the implementation about gyro/mouse sensitivity for now since it needs additional discussion / exploratory work to make the solution (and the UI) consistent with the thumbstick-to-mouse sensitivity settings and future acceleration curves. Also at a quick glance seems to me (I might be wrong) there is some unrelated code and code refactoring that is not part of these features, please keep the diffs as minimal as possible. |
b033f42 to
992cb8a
Compare
Summary
Adds a per-profile configurable momentum feature to the gyro input, allowing the cursor to continue moving with natural decay after gyro input stops based on the last updated mouse x & y velocity.
Changes
Firmware Changes (alpakka)
src/gyro.c: Added momentum physics with exponential dampingsrc/headers/gyro.h: Added momentum state variablessrc/headers/ctrl.h: Added CtrlGyro structure fieldsTesting
Tested on Alpakka hardware with various damping coefficients and threshold values. Momentum feels natural and responsive.
Related PR
This requires the companion UI PR in the ctrl repository: https://github.com/M00ND0GG/ctrl/tree/gyro-momentum-profile-settings