fix(logitech): allow writing the polling rate to the onboard profile of direct-connect mice - #50
Merged
Merged
Conversation
…ct mice Direct-connect mice (G402/G403 HERO/G502 HERO) store their polling rate in the onboard profile, so the 1 kHz stop was rendered disabled. Route setPollingRate through the CRC-checked profile write for verified formats, encode base-v1 rates as the USB polling interval in milliseconds rather than a table index, and add LOGAN (format 2) report-rate capabilities. Mark format 2 verified for the report-rate field only; DPI stages, names and bunny hop stay locked.
Author
|
In order to verify a format you'll need to |
Author
|
Already verified on hardware. Will run the diagnostics on future devices. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Summary
Fixes the G502 HERO issue where the 1 kHz polling rate option was not clickable (rendered disabled in the UI). Direct-connect mice (G402, G403 HERO, G502 HERO) store their polling rate in the onboard profile, so a rate change must be written through the CRC-checked profile-flash path instead of being rejected.
Verified on a real G502 HERO (0xc08b) by a tester: the 1 kHz option is now clickable, the write persists, and the OS polling rate actually changes.
Changes
src/devices/logitech/onboard-profiles.tsreportRates: { wirelessMaxHz: 0, wiredMaxHz: 1000 });dpiStages,maxNameLength, andbunnyHopstay locked/unverified.VERIFIED_FORMATS— report-rate field only.encodeReportRatefor base-v1 formats (1–5): the report rate is stored as a USB polling interval in milliseconds (1000 / hz), not a rate-table index.src/devices/logitech/hidpp.tssetPollingRatefor direct-connect mice now routes throughwriteActiveProfile({ reportRateWiredHz })instead of throwing.readStatusonly disables the polling UI when the profile format is unverified or lacks a report-rates field; updates the polling note accordingly.src/control.tsrenderProfileRatesfilters the link by the format's layout, so LOGAN shows only the wired slider (no bogus wireless control).src/devices/logitech/onboard-profiles.test.ts— two new tests covering the v1 ms-interval encoding and format-2 capabilities.src/devices/logitech/TESTING.md— added the G502 HERO (0xc08b) to supported identifiers and added a full hardware test checklist.Test plan
tsc --noEmitclean;vite buildsucceeds; 201/201 tests pass.TESTING.md(G502 HERO): 1 kHz option clickable, write persists across replug, OS-visible rate change, G HUB closed during test.