Skip to content

fix: read the G Pro X Wireless battery through G Hub's own curves (#1) - #32

Merged
PyFlat-JR merged 2 commits into
PyFlat:mainfrom
manuelmayer-dev:main
Oct 16, 2026
Merged

PyFlat-JR merged 2 commits into
PyFlat:mainfrom
manuelmayer-dev:main

Conversation

@manuelmayer-dev

Copy link
Copy Markdown
Contributor

What does this PR do?

HeadsetControl's G Pro points read 3924 mV as 65% while G Hub showed 79%, and any charging voltage as 100% while G Hub showed 87%. G Hub ships a power model for the 0ABA (pro_x_wireless_headset_battery.xml) with a discharge curve and a charge curve; the headset now reads through points sampled from both.

The charge curve rises to about 4275 mV at 87%, then falls while the battery fills to 100%, so a charge is followed per device path: the turn is a drop of 5 mV below the peak, and the reading never goes down during one charge.

The hardware test that prints the raw voltage now covers the headset too.

Checklist

  • I have read AGENTS.md and CONTRIBUTING.md.
  • dotnet build and dotnet test pass locally.
  • I updated README.md / AGENTS.md if this changes what they describe.
  • If this touches a device backend: I tested it against the real hardware (say which model/OS
    below). If you could not, say so explicitly rather than presenting it as tested.

Device/hardware tested against (if applicable)

Logitech Pro X Wireless, Windows 11, Wired/Wireless

AI assistance

Assisted by Claude Code (Opus 5.5)

manuelmayer-dev and others added 2 commits October 16, 2026 22:33
HeadsetControl's G Pro points read 3924 mV as 65% while G Hub showed 79%,
and any charging voltage as 100% while G Hub showed 87%. G Hub ships a power
model for the 0ABA (pro_x_wireless_headset_battery.xml) with a discharge
curve and a charge curve; the headset now reads through points sampled from
both.

The charge curve rises to about 4275 mV at 87%, then falls while the battery
fills to 100%, so a charge is followed per device path: the turn is a drop of
5 mV below the peak, and the reading never goes down during one charge.

The hardware test that prints the raw voltage now covers the headset too.
@PyFlat-JR
PyFlat-JR merged commit 4f88f77 into PyFlat:main Oct 16, 2026
3 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.

2 participants