Skip to content

Per Profile Gyro Momentum Feature#224

Open
M00ND0GG wants to merge 1 commit into
inputlabs:mainfrom
M00ND0GG:gyro-momentum
Open

Per Profile Gyro Momentum Feature#224
M00ND0GG wants to merge 1 commit into
inputlabs:mainfrom
M00ND0GG:gyro-momentum

Conversation

@M00ND0GG

@M00ND0GG M00ND0GG commented Feb 5, 2026

Copy link
Copy Markdown

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

  • Added momentum enable/disable toggle
  • Added configurable vertical and horizontal damping coefficients
  • Added cutoff velocity threshold control (measured in pixels/s)
  • Implemented exponential decay for natural momentum feel
  • Ensured both axes stop simultaneously when below threshold

Firmware Changes (alpakka)

  • Modified src/gyro.c: Added momentum physics with exponential damping
  • Modified src/headers/gyro.h: Added momentum state variables
  • Modified src/headers/ctrl.h: Added CtrlGyro structure fields

Testing

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

@marcos-diaz

marcos-diaz commented Feb 6, 2026

Copy link
Copy Markdown
Contributor

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?
If that's the case I think it makes more sense to reduce the exposed settings to X-friction and Y-friction.

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.
The biggest question for me is if it makes sense for the user to adjust the sensitivity for the input (XYZ gyro / XY thumbstick axis) or the output (XY mouse / XY thumbstick / Z triggers).

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.

@M00ND0GG M00ND0GG changed the title Per Profile Gyro Momentum & Relative Axes Sensitivity Per Profile Gyro Momentum Feature Feb 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants