Skip to content

feat(redragon): wire up the M690 PRO driver - #617

Merged
snekxs merged 2 commits into
OpenMouse-Project:mainfrom
hypn:feat/redragon-m690-pro
Oct 6, 2026
Merged

snekxs merged 2 commits into
OpenMouse-Project:mainfrom
hypn:feat/redragon-m690-pro

Conversation

@hypn

@hypn hypn commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds the Redragon M690 PRO (0x258a:0x002e cable, 0x258a:0x002f receiver). No UI changes.

Changes

  • Controller (src/device/controller.ts): imports RedragonM690ProHidClient from @openmouse/protocol/drivers/redragon/m690-pro-hid and adds it to NEEDS_OPEN, so the device is opened before its first status read, as the register-and-verify checklist requires. No traits changes: the client has no advanced-section settings.
  • Supported devices (src/supported-devices-data.ts): adds Redragon M690 PRO, status supported, PIDs 0x2e and 0x2f. 0x2e is also listed for the Razer Naga 2012; the crosscheck prefers the row whose brand matches the connected device.

Features exposed in UI

DPI stage editor (5 stages, 250-8000 in the vendor's steps), active stage, stage colours, polling rate 125-1000 Hz, lighting (Static, Wave, Breathing random, Off), the button remapper, and battery (through OpenMouse Bridge).

Note on DPI stage colours

The mouse lights its scroll wheel in the active DPI stage's colour, and the driver can set each DPI stage's colour (setDpiStageColor). The stage editor shows the colours but has no control to change them at the moment: an earlier version of the editor had a per-stage colour input (calling applyDpiStageColor; the dpi.stageColor string is still defined), which doesn't appear after 0fc6ae1. Today the colours are only written when a saved game profile is applied. This PR doesn't change the editor; the driver would work with such a control unchanged, as would the other drivers that implement setDpiStageColor.

Verification

  • npm run check against the local @openmouse/protocol build (npm install --no-save --package-lock=false ../mouse-protocol): TypeScript, the production build, and all tests pass.
  • Hardware: both firmware revisions over the cable and through the receiver, from this panel: DPI, active stage, polling, lighting, buttons.

Companion PR

OpenMouse-Project/mouse-protocol#163

hypn and others added 2 commits October 4, 2026 14:35
Brings the app up to the current protocol pin (0.26.0). The branch pinned 0.23.0, which predates the Redragon M690 PRO driver, so importing @openmouse/protocol/drivers/redragon/m690-pro-hid failed type-checking (TS2307). No conflicts. npm run check 290/290, npm run size and npm audit --audit-level=high all pass.
@snekxs
snekxs merged commit 0bbb713 into OpenMouse-Project:main Oct 6, 2026
2 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