Uh oh!
There was an error while loading. Please reload this page.
Fix and extend Endgame Gear 8K wired mice configuration support - #7
Merged
Conversation
Model each supported wired EGG 8K mouse explicitly and make config exchange match the A0/A1 feature-report framing used by the devices. - Add profiles for OP1 8K, XM2 8K, OP1 8K Purple Frost, OP1 8K v2, and XM2 8K v2. - Define model-specific CPI ranges, CPI steps, LOD options, and 8K Motion Sync support. - Clamp custom DPI and CPI-stage input to values supported by the active model. - Read and update the active CPI stage instead of assuming the first stage. - Decode both firmware version bytes as BCD, including V1.07 and V1.37. - Preserve firmware response alignment when WebHID includes the report ID. - Ignore short command acknowledgements while waiting for firmware version data. - Normalize A0 and A1 responses without shifting documented config offsets. - Retry config reads and writes, validate response frames, and require write acknowledgements. - Preserve unknown config bytes with read-modify-write updates and verify stored values. - Keep EGG-only status fields in the EGG protocol module. - Cover model capabilities, CPI clamping, LOD options, firmware parsing, and report normalization with tests.
Match the seven logical button records and shifted mapping layout used by the EGG 8K firmware and stock configuration tools. - Use the correct mapping offsets for Right, Middle, Forward, Back, Wheel Up, and Wheel Down. - Leave the hidden firmware mapping record unchanged. - Decode and expose all seven logical button actions. - Add left-handed mode while keeping the physical primary button fixed. - Support mouse, scroll, keyboard, CPI, media, browser, system, and disabled actions. - Clamp fixed-CPI mapping values to the range and steps supported by the active model. - Preserve unknown mapping bytes until the user selects a supported replacement. - Keep EGG button action types in the EGG protocol module. - Cover button offsets and action encoding round trips with tests.
Expose the sensor controls that differ across the supported EGG 8K models while retaining the restrictions required by PAW3395 devices. - Add Glass Mode for OP1 8K Purple Frost, OP1 8K v2, and XM2 8K v2. - Add sensor angle tuning, maximum sensor FPS, and lift-off LED control for v2 models. - Disable the custom polling divider while Glass Mode controls it. - Block Motion Sync at 8K only on PAW3395 OP1 8K and XM2 8K models. - Keep Motion Sync available at 8K on PAW3950 models. - Add config reload and confirmed factory reset actions.
5 tasks
dwei30 added a commit
to dwei30/openmouse
that referenced
this pull request
Aug 12, 2026
Rebuild the Compx/Keychron stage editor on DpiCard after the Preact rewrite, move Terra Pro DPI lighting to the Lighting tab, and refresh preview fixtures now that protocol OpenMouse-Project#7 is on main.
dwei30 added a commit
to dwei30/openmouse
that referenced
this pull request
Aug 14, 2026
Rebuild the Compx/Keychron stage editor on DpiCard after the Preact rewrite, move Terra Pro DPI lighting to the Lighting tab, and refresh preview fixtures now that protocol OpenMouse-Project#7 is on main.
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 freeto 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
OpenMouse already recognized four wired Endgame Gear 8K models and exposed their
core CPI, polling, sensor, switch, and button settings. That implementation used
mostly shared OP1 8K assumptions, however, and had problems with feature-report
alignment, firmware parsing, active CPI stages, model-specific limits, and button
record offsets.
This change corrects and extends that existing support. It adds XM2 8K v2 support
and defines an explicit capability profile for each supported model:
Existing controls continue to use read-modify-write config updates. Writes now
also wait for the device ACK and verify the stored config before reporting success.
Development notes:
Changes
Model-specific behavior
Config safety
Tests
npm testnpm run buildgit diff --checkUnit tests cover:
Hardware testing
The protocol and UI changes were tested on OP1 8K v2 hardware running firmware V1.07.
Suggested smoke test for each available model:
Notes