Skip to content

fix(razer): commit DeathAdder V3 polling with the second extended write - #225

Merged
snekxs merged 1 commit into
mainfrom
fix/deathadder-v3-polling-commit
Oct 13, 2026
Merged

snekxs merged 1 commit into
mainfrom
fix/deathadder-v3-polling-commit

Conversation

@snekxs

@snekxs snekxs commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Summary

Test plan

  • npx tsx --import ./scripts/fast-test-timers.mjs --test src/drivers/razer/devices.test.ts src/drivers/razer/hid.test.ts
  • On a wired DeathAdder V3 (1532:00b2), set polling from 8,000 Hz to 2,000 Hz and confirm the read-back matches
  • Confirm DPI changes still round-trip on the same mouse

Made with Cursor

Summary by CodeRabbit

  • Bug Fixes
    • Fixed polling-rate updates for the wired DeathAdder V3 so extended polling settings are applied correctly.

The wired 0x00b2 acknowledges selector 0x00 and keeps the old rate. OpenRazer follows it with selector 0x01 on the same 0x1f transaction.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions github-actions Bot added type: bug PR title category: bug area: protocol Protocol codecs and shared types area: drivers Device drivers and transport integration area: tests Protocol and driver tests labels Oct 13, 2026
@coderabbitai

coderabbitai Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: OpenMouse-Project/mouse-protocol/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 491cd686-11ef-449a-9aff-338100cfd922
📥 Commits

Reviewing files that changed from the base of the PR and between 2613e68 and ca4c5c4.

📒 Files selected for processing: 3
  • src/drivers/razer/devices.test.ts
  • src/drivers/razer/hid.test.ts
  • src/razer/devices.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

📝 Walkthrough

The wired DeathAdder V3 now uses transaction ID 0x1f for extended-polling commits. Tests check the commit transaction ID and verify the two writes used to set polling to 2 kHz.

Changes: DeathAdder V3 polling

Layer / File(s) Summary
Configure and verify the polling commit transaction
src/razer/devices.ts, src/drivers/razer/devices.test.ts, src/drivers/razer/hid.test.ts
The DeathAdder V3 entry now sets the extended-polling commit transaction ID to 0x1f. The property documentation distinguishes the mouse’s 0x1f ID from the HyperPolling dongle’s 0xff ID. Tests check the commit ID and verify two 0x1f writes with selectors 0x00 and 0x01, divisor 0x04, and a confirmed rate of 2000 Hz.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix · Severity of issue fixed: Medium

Suggested reviewers: jazzstack

Merge Risk: ⚪ Minimal · up to ca4c5

The implementation and tests agree on the intended polling sequence. Hardware confirmation is still outstanding, but the available evidence shows no actionable issue blocking merge.

Pre-merge checks: Passed 5
Passed Passed checks: 5 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly identifies the Razer DeathAdder V3 polling commit fix and matches the primary change in the pull request.
Linked Issues check Passed The PR addresses active issue #222. The wired DeathAdder V3 (0x00b2) now uses transaction 0x1f for the extended polling commit. The regression test sends selector 0x00 followed by selector `0x01…
Out of Scope Changes check Passed The changed production configuration and tests directly support issue #222. The changes distinguish the wired DeathAdder V3 transaction from the HyperPolling dongle transaction and verify the required…
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 3…
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@snekxs
snekxs merged commit c3b1bc2 into main Oct 13, 2026
7 checks passed
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 0.42.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: drivers Device drivers and transport integration area: protocol Protocol codecs and shared types area: tests Protocol and driver tests released type: bug PR title category: bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Razer] DeathAdder V3 (1532:00B2) wired: polling-rate write doesn't stick (DPI works)

1 participant