Skip to content
Open
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
17 changes: 17 additions & 0 deletions captures/razer-diamondback-chroma/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Razer Diamondback Chroma (`1532:004c`) hardware report, 2026-09-30

Reporter's own mouse, firmware "Mouse 1.0", wired, Windows. Connected through
OpenMouse Bridge with an unmodified `RazerHidClient`; the Bridge listed seven
HID paths for the device and opened all of them.

- `hardware-test-2026-09-30.json`: the app's hardware test export. Identity,
firmware, DPI (1800) and polling (500 Hz) read back; 800 DPI and 1000 Hz each
wrote, read back and were restored. Verdict: pass.

What it does not settle:

- Polling was read back but not measured: the sampler averaged 305 Hz against
the reported 500 Hz and flagged dropouts, so it skipped rather than failed.
- The DPI stage read (`0x04`/`0x86`) gave nothing usable, so no stage editor
is offered on this model.
- No raw feature reports were captured in this session.
132 changes: 132 additions & 0 deletions captures/razer-diamondback-chroma/hardware-test-2026-09-30.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
{
"device": {
"present": true,
"brand": "Razer",
"name": "Razer Diamondback Chroma",
"vendorId": 5426,
"productId": 76,
"productName": "Razer Diamondback Chroma",
"transport": "bridge",
"connectionType": "Wired",
"pollingRateHz": 500,
"supportedPollingRates": [
125,
500,
1000
],
"dpi": 1800,
"dpiStages": null,
"activeDpiStage": null,
"batteryPercent": null,
"batteryState": "Unknown",
"firmware": [
"Mouse 1.0"
],
"liftOffDistance": null,
"driverFamily": "razer",
"deviceMode": null,
"collectionsSummary": "interfaces 0x0001:0x0002, 0x000C:0x0001, 0x0001:0x0006, 0x0001:0x0080, 0x0001:0x0000",
"signalStrength": null,
"receiverOnline": null,
"receiverRfId": null,
"pairingInProgress": false
},
"results": [
{
"key": "connection",
"label": "Device connected",
"status": "pass",
"detail": "Connected through OpenMouse Bridge"
},
{
"key": "interface",
"label": "Control interface",
"status": "pass",
"detail": "interfaces 0x0001:0x0002, 0x000C:0x0001, 0x0001:0x0006, 0x0001:0x0080, 0x0001:0x0000"
},
{
"key": "identity",
"label": "Device identity",
"status": "pass",
"detail": "Razer Razer Diamondback Chroma"
},
{
"key": "driver",
"label": "Driver identification",
"status": "pass",
"detail": "Razer razer"
},
{
"key": "dpi",
"label": "DPI read-back",
"status": "pass",
"detail": "1,800 DPI"
},
{
"key": "pollingRead",
"label": "Polling rate read-back",
"status": "pass",
"detail": "500 Hz"
},
{
"key": "battery",
"label": "Battery read-back",
"status": "skip",
"detail": "Not reported by this device."
},
{
"key": "firmware",
"label": "Firmware read-back",
"status": "pass",
"detail": "Mouse 1.0"
},
{
"key": "liftOff",
"label": "Lift-off read-back",
"status": "skip",
"detail": "Not reported by this device."
},
{
"key": "link",
"label": "Wireless link (receiver)",
"status": "skip",
"detail": null
},
{
"key": "flashRead",
"label": "Flash / EEPROM read-back",
"status": "pass",
"detail": "decoded fields are in range (dpi, polling)"
},
{
"key": "brandWirelessBattery",
"label": "Razer wireless battery",
"status": "skip",
"detail": null
},
{
"key": "sampling",
"label": "Polling rate sampling",
"status": "skip",
"detail": "avg 305 Hz vs reported 500 Hz — dropout or rate mismatch detected, so the sample is not counted as a failure."
},
{
"key": "flashWrite",
"label": "Flash write round-trip",
"status": "pass",
"detail": "wrote 800 DPI → read back → restored 1,800 DPI · wrote 1,000 Hz → read back → restored 500 Hz · Lift-off skipped"
}
],
"verdict": "pass",
"durationMs": 17802.09999999404,
"runAt": "2026-09-30T21:58:33.335Z",
"build": "BETA · v2.0.58d",
"supportedPage": {
"listed": true,
"status": "likely",
"label": "Test Needed",
"matchedBy": "pid",
"pageModel": "Diamondback Chroma",
"detail": "listed as Test Needed on the supported-devices page — this passing verification supports moving it to Supported."
}
}
1 change: 1 addition & 0 deletions docs/razer-testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ Identifiers verified on hardware:
- `1532:00a3` — Cobra, wired (separate driver)
- `1532:00b6` — DeathAdder V3 Pro, wired (firmware 2.1)
- `1532:00b7` — DeathAdder V3 Pro, stock HyperSpeed receiver (firmware 2.1)
- `1532:004c`: Diamondback Chroma, wired (firmware 1.0, through OpenMouse Bridge)

Mouse Dock Pro uses the same 90-byte protocol as the paired mouse. It has no
fixed polling list: if the paired mouse answers the extended polling command it
Expand Down
5 changes: 4 additions & 1 deletion src/drivers/razer/devices.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ const VERIFIED_SINCE: ReadonlyArray<[number, VerifiedProfile]> = [
// Same mouse over the cable, same session: 13/13 writes persisted, 126 Hz
// peak measured at 125, battery reports "Charging".
[0x00b6, { model: "DeathAdder V3 Pro (Wired)", wireless: false, maxDpi: 30000, transactionId: RAZER_TRANSACTION_ID, rates: RATES_1K, highRate: false }],
// Diamondback Chroma (firmware 1.0) over the cable through OpenMouse Bridge:
// answers on `0xff`, and DPI and legacy polling each round-tripped.
[0x004c, { model: "Diamondback Chroma", wireless: false, maxDpi: 16000, transactionId: RAZER_TRANSACTION_ID_FF, rates: RATES_1K, highRate: false }],
];

const VERIFIED = [...REFACTOR_BASELINE, ...VERIFIED_SINCE];
Expand All @@ -77,7 +80,7 @@ const VERIFIED = [...REFACTOR_BASELINE, ...VERIFIED_SINCE];
* hardware-tested", so it is pinned like the others without claiming to be
* verified.
*/
const HARDWARE_VERIFIED: readonly number[] = [0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00c0, 0x00c1, 0x00b8, 0x00b7, 0x00b6];
const HARDWARE_VERIFIED: readonly number[] = [0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00c0, 0x00c1, 0x00b8, 0x00b7, 0x00b6, 0x004c];

test("every pinned product keeps exactly the profile it was given", () => {
// A silent change to any of these would only show up on hardware, which is
Expand Down
7 changes: 6 additions & 1 deletion src/razer/devices.ts
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,12 @@ const PRODUCT_DEFINITIONS: ReadonlyArray<[number, Omit<RazerProduct, "transactio
[0x0045, { model: "Mamba", ...STANDARD_WIRELESS }],
[0x0046, { model: "Mamba Tournament Edition", ...STANDARD }],
[0x0048, { model: "Orochi (Wired)", ...STANDARD, maxDpi: DPI_PRE_CHROMA }],
[0x004c, { model: "Diamondback Chroma", ...STANDARD }],
// Verified on firmware 1.0 over the cable, through OpenMouse Bridge on
// Windows: identity, DPI (1800) and polling (500 Hz) read back, and 800 DPI
// and 1000 Hz each wrote, read back and were restored. The polling sampler
// saw dropouts, so the rate was read back but not measured. The stage read
// gave nothing usable, so no stage editor is offered.
[0x004c, { model: "Diamondback Chroma", ...STANDARD, verified: true }],
[0x004f, { model: "DeathAdder 2000", ...STANDARD, maxDpi: 2000 }],
[0x0050, { model: "Naga Hex V2", ...STANDARD }],
[0x0053, { model: "Naga Chroma", ...STANDARD }],
Expand Down
Loading