Skip to content

feat: add Mouse Check HID diagnostics page - #65

Merged
snekxs merged 17 commits into
OpenMouse-Project:devfrom
DEERSTUDIO101:feat/mouse-check-diagnostics
Aug 11, 2026
Merged

feat: add Mouse Check HID diagnostics page#65
snekxs merged 17 commits into
OpenMouse-Project:devfrom
DEERSTUDIO101:feat/mouse-check-diagnostics

Conversation

@DEERSTUDIO101

Copy link
Copy Markdown
Contributor

Adds a new /check.html page for browser-based gaming mouse diagnostics:

  • Detects 24 gaming mouse brands via WebHID (Razer, Logitech, SteelSeries, Corsair, HyperX, Finalmouse, Pulsar, Endgame Gear, WLMouse, ATK, Lamzu, VGN, Zowie, Roccat, ASUS ROG, Redragon...)
  • Full Razer TX-ID protocol test (0xFF / 0x3F / 0x1F) with firmware version readout
  • WebHID verdict per device: FULL / PARTIAL / LIMITED / NATIVE ONLY
  • OpenMouse badge for devices already supported in the control app
  • Copy-for-Discord button with formatted diagnostic report
  • Sidebar link in control app pointing to /check.html
  • Registered as Vite build entry in vite.config.ts

qsxcvand others added 16 commits August 1, 2026 06:41
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.
Fix and extend Endgame Gear 8K wired mice configuration support
This reverts commit 7146c7c, reversing
changes made to 9a77164.
Adds a new /check.html page for browser-based gaming mouse diagnostics:
- Detects 24 gaming mouse brands via WebHID (Razer, Logitech,
SteelSeries, Corsair, HyperX, Finalmouse, Pulsar, Endgame Gear,
WLMouse, ATK, Lamzu, VGN, Zowie, Roccat, ASUS ROG, Redragon...)
- Full Razer TX-ID protocol test (0xFF / 0x3F / 0x1F) with firmware
version readout
- WebHID verdict per device: FULL / PARTIAL / LIMITED / NATIVE ONLY
- OpenMouse badge for devices already supported in the control app
- Copy-for-Discord button with formatted diagnostic report
- Sidebar link in control app pointing to /check.html
- Registered as Vite build entry in vite.config.ts
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
EGG OP1 8K (VID 0x3367) has no firmware safety guards — sending
unrecognised feature-report bytes accidentally triggered a bootloader
reset. Skip raw probing for this vendor and report interface
accessibility only.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@snekxs
snekxs changed the base branch from main to devAugust 11, 2026 00:49
# Conflicts:
#	src/control.ts
#	src/main.ts
#	vite.config.ts
@snekxs
snekxs merged commit 423ae67 into OpenMouse-Project:devAug 11, 2026
Sign up for freeto 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.

5 participants

@DEERSTUDIO101@snekxs@qsxcv@AntiParty@nguyenan1601