Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions captures/razer-deathadder-v3-pro/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Razer DeathAdder V3 Pro (`1532:00b7` receiver, `1532:00b6` wired) hardware session, 2026-09-15

Stock HyperSpeed receiver, firmware "Mouse 2.1", Windows 11. Driven from Node
over hidapi (node-hid) with an unmodified `RazerHidClient` from this package,
Razer Synapse and its services fully quit. The control interface was `MI_00`,
the collection whose only usage is Generic Desktop Mouse.

- `write-results-2026-09-15.json`: 13 write/read-back steps (DPI, polling,
auto sleep, low power) with the value the setter returned and the value a
fresh connection read back, plus the off-list 2000 Hz refusal. The mouse
was restored to its original state at the end.
- `write-roundtrip-2026-09-15.hex`: all 486 feature reports of that session,
in order. Serial payload redacted.

- `wired-write-results-2026-09-15.json` and `wired-write-roundtrip-2026-09-15.hex`:
the same 13 steps and 486 reports over the cable (`1532:00b6`), 13/13.

Also done in the same session but not captured as reports:

- 3-minute soak: 31/31 `readStatus()` reads, 822 to 914 ms each, no failures.
- Polling measured with a `pointerrawupdate` counter (1 s window, peak):
842 Hz at 1000 Hz, 124 Hz after writing 125 Hz on the legacy command.
- Auto sleep 60 s and low power 5 % re-read as written after switching the
mouse off and on at its power switch.

- Wired polling measured 126 Hz peak at 125; wired soak 31/31 at 824 to 887 ms;
battery read "Charging" and climbed 25 % to 32 % across the wired runs.

See `docs/razer-testing.md`, "DeathAdder V3 Pro", for what this settled. The docs section references this folder.
110 changes: 110 additions & 0 deletions captures/razer-deathadder-v3-pro/wired-write-results-2026-09-15.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
{
"orig": {
"dpi": 1600,
"dpiY": 1600,
"pollingRateHz": 1000,
"sleepTimeout": 300,
"lowBatteryWarning": 30,
"battery": "26% Charging"
},
"final": {
"dpi": 1600,
"dpiY": 1600,
"pollingRateHz": 1000,
"sleepTimeout": 300,
"lowBatteryWarning": 30,
"battery": "26% Charging"
},
"results": [
{
"name": "DPI 800",
"expect": 800,
"setterReturned": 800,
"readAfterReload": 800,
"ok": true
},
{
"name": "DPI 3200",
"expect": 3200,
"setterReturned": 3200,
"readAfterReload": 3200,
"ok": true
},
{
"name": "DPI restore 1600",
"expect": 1600,
"setterReturned": 1600,
"readAfterReload": 1600,
"ok": true
},
{
"name": "polling 125 Hz",
"expect": 125,
"setterReturned": 125,
"readAfterReload": 125,
"ok": true
},
{
"name": "polling 500 Hz",
"expect": 500,
"setterReturned": 500,
"readAfterReload": 500,
"ok": true
},
{
"name": "polling restore 1000 Hz",
"expect": 1000,
"setterReturned": 1000,
"readAfterReload": 1000,
"ok": true
},
{
"name": "polling 2000 Hz refused",
"ok": true,
"error": "This mouse does not support 2,000 Hz on this connection."
},
{
"name": "sleep 60 s",
"expect": 60,
"setterReturned": 60,
"readAfterReload": 60,
"ok": true
},
{
"name": "sleep 900 s",
"expect": 900,
"setterReturned": 900,
"readAfterReload": 900,
"ok": true
},
{
"name": "sleep restore 300 s",
"expect": 300,
"setterReturned": 300,
"readAfterReload": 300,
"ok": true
},
{
"name": "low power 5%",
"expect": 5,
"setterReturned": 5,
"readAfterReload": 5,
"ok": true
},
{
"name": "low power 50%",
"expect": 50,
"setterReturned": 50,
"readAfterReload": 50,
"ok": true
},
{
"name": "low power restore 30%",
"expect": 30,
"setterReturned": 30,
"readAfterReload": 30,
"ok": true
}
],
"exchanges": 486
}
489 changes: 489 additions & 0 deletions captures/razer-deathadder-v3-pro/wired-write-roundtrip-2026-09-15.hex

Large diffs are not rendered by default.

110 changes: 110 additions & 0 deletions captures/razer-deathadder-v3-pro/write-results-2026-09-15.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
{
"orig": {
"dpi": 1600,
"dpiY": 1600,
"pollingRateHz": 1000,
"sleepTimeout": 300,
"lowBatteryWarning": 30,
"battery": "25% Discharging"
},
"final": {
"dpi": 1600,
"dpiY": 1600,
"pollingRateHz": 1000,
"sleepTimeout": 300,
"lowBatteryWarning": 30,
"battery": "25% Discharging"
},
"results": [
{
"name": "DPI 800",
"expect": 800,
"setterReturned": 800,
"readAfterReload": 800,
"ok": true
},
{
"name": "DPI 3200",
"expect": 3200,
"setterReturned": 3200,
"readAfterReload": 3200,
"ok": true
},
{
"name": "DPI restore 1600",
"expect": 1600,
"setterReturned": 1600,
"readAfterReload": 1600,
"ok": true
},
{
"name": "polling 125 Hz",
"expect": 125,
"setterReturned": 125,
"readAfterReload": 125,
"ok": true
},
{
"name": "polling 500 Hz",
"expect": 500,
"setterReturned": 500,
"readAfterReload": 500,
"ok": true
},
{
"name": "polling restore 1000 Hz",
"expect": 1000,
"setterReturned": 1000,
"readAfterReload": 1000,
"ok": true
},
{
"name": "polling 2000 Hz refused",
"ok": true,
"error": "This mouse does not support 2,000 Hz on this connection."
},
{
"name": "sleep 60 s",
"expect": 60,
"setterReturned": 60,
"readAfterReload": 60,
"ok": true
},
{
"name": "sleep 900 s",
"expect": 900,
"setterReturned": 900,
"readAfterReload": 900,
"ok": true
},
{
"name": "sleep restore 300 s",
"expect": 300,
"setterReturned": 300,
"readAfterReload": 300,
"ok": true
},
{
"name": "low power 5%",
"expect": 5,
"setterReturned": 5,
"readAfterReload": 5,
"ok": true
},
{
"name": "low power 50%",
"expect": 50,
"setterReturned": 50,
"readAfterReload": 50,
"ok": true
},
{
"name": "low power restore 30%",
"expect": 30,
"setterReturned": 30,
"readAfterReload": 30,
"ok": true
}
],
"exchanges": 486
}
Loading