Skip to content

feat: Hall Effect axis calibration (v1.1)#2

Merged
rolling-codes merged 1 commit into
masterfrom
feat/v1.1-he-calibration
Jun 21, 2026
Merged

feat: Hall Effect axis calibration (v1.1)#2
rolling-codes merged 1 commit into
masterfrom
feat/v1.1-he-calibration

Conversation

@rolling-codes

Copy link
Copy Markdown
Owner

What

Adds per-axis calibration for Hall Effect controllers. HE joysticks and triggers use magnetic sensors that are more precise than potentiometers but may have a raw rest position that isn't exactly 0.0 and a physical range that doesn't reach exactly ±1.0.

How it works

Two new functions in lib.lua normalize raw axis values before the existing deadzone/gamma pipeline:

  • normalizeAxis(raw, center, range) — for the steering stick: subtracts the rest offset, divides by the physical range, clamps to [-1, 1]
  • normalizeTrigger(raw, rest, maxVal) — for gas/brake triggers: maps [rest, maxVal] → [0, 1]

With all defaults (center=0, range=1, rest=0, max=1) these are identity functions — no behaviour change for existing users.

New parameters

Six new values in config.lua (and live via the Config app):

Parameter Default Purpose
STEER_CENTER 0.0 Raw stick value at rest
STEER_RANGE 1.0 Max raw deflection from center
GAS_REST 0.0 Raw trigger value when released
GAS_MAX 1.0 Raw trigger value when fully pressed
BRAKE_REST 0.0 Raw trigger value when released
BRAKE_MAX 1.0 Raw trigger value when fully pressed

Config app

New Calibration section at the top of the app window. Window height increased from 680 → 800 to fit.

Finding your values

Load AC, open the CM log, and read the [MyGamepadFX] Axes: startup diagnostic line. The values shown are your raw rest positions. For max values, watch debug overlay while pushing to full deflection.

Add normalizeAxis/normalizeTrigger pre-step before deadzone/gamma.
Defaults are identity — no behaviour change for existing users.
HE users set STEER_CENTER/RANGE and GAS/BRAKE REST/MAX to match
their controller's actual raw axis values.
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@coderabbitai

coderabbitai Bot commented Jun 21, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@rolling-codes, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 34 minutes and 37 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: bb777d71-8bfa-49a9-9f84-ffa0016f14ca

📥 Commits

Reviewing files that changed from the base of the PR and between 2dc35f7 and a76753c.

📒 Files selected for processing (5)
  • MyGamepadFX/assist.lua
  • MyGamepadFX/config.lua
  • MyGamepadFX/lib.lua
  • MyGamepadFX_Config/app.lua
  • MyGamepadFX_Config/manifest.ini
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/v1.1-he-calibration

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

Copy link
Copy Markdown

Quality Check ✅ Passed

Check Result
Lua Syntax ✅ success
Luacheck ✅ success
Structure ✅ success

@rolling-codes
rolling-codes merged commit 0d941c2 into master Jun 21, 2026
4 of 5 checks passed
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.

1 participant