Skip to content

feat(pulsar): add X3 family XS-1 feature-report driver - #21

Merged
snekxs merged 1 commit into
OpenMouse-Project:mainfrom
jazzstack:feature/pulsar-xs1
Aug 16, 2026
Merged

feat(pulsar): add X3 family XS-1 feature-report driver#21
snekxs merged 1 commit into
OpenMouse-Project:mainfrom
jazzstack:feature/pulsar-xs1

Conversation

@jazzstack

Copy link
Copy Markdown
Contributor

Summary

Adds a new PulsarXs1HidClient driver for the Pulsar X3 family (VID 0x3710) that speaks the Sonix XS-1 feature-report protocol used by the wired (0x3409/0x3410) and 1K dongle (0x5402/0x5403) variants. The existing PulsarHidClient cannot drive these devices because they expose a 64-byte feature report (ID 0) instead of report-8 input/output pairs.

Driver capabilities

  • DPI 50-26000, step 50
  • Polling rate (read-only; the write is unreliable on the dongle)
  • LOD: Low / Medium / High
  • Debounce 0-15 ms
  • Motion sync, ripple control, angle snapping toggles
  • Battery status

Detection

isSupported matches VID 0x3710 + one of the XS-1 PIDs + a control collection with feature report ID 0, and explicitly rejects report-8 in/out pairs so it never collides with PulsarHidClient (the no-double-claim registry test stays green).

Tests

11 new protocol tests (encode/checksum, detection, read status, wired vs wireless, writes, registry wiring). Full suite: 369/369 passing, build clean.

@snekxs
snekxs merged commit 00fea8e into OpenMouse-Project:main Aug 16, 2026
1 check 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