Uh oh!
There was an error while loading. Please reload this page.
feat(Razer): Adding Support for 100 mouses - #45
Conversation
build/check-bundle-size.ts ".js": 325_000, -> ".js": 335_000,
KuririmFestozo
commented
Aug 9, 2026
Tested this on a real Razer Viper V3 HyperSpeed ( Most things seem to be working fine (battery, DPI read/write, lift-off distance, sleep timeout, etc). I did find one issue with polling rate though. The current I locally changed the entry to: After that I tested:
All three changes were accepted and correctly read back from the mouse afterward. So Happy to send the full diagnostics JSON if useful. |
matthewgriffinSS
commented
Aug 9, 2026
Testing The Viper Ultimate routes through
Since those PIDs are all Suggested fix: give the older receiver generation Note for the WebHID path / #47: on the Viper Ultimate dongle, Chrome exposes no |
The stock HyperSpeed receiver rejects the extended polling command (0x00/0x40) as unsupported and answers only the legacy divisor-of-1000 one, so every polling change failed its read-back.
@KuririmFestozo Yes, please send the diagnostics JSON. |
viix0dev
commented
Aug 9, 2026
@matthewgriffinSS I'm working on fixing it. it will be pushed soon. |
A hardware report on the Viper Ultimate (1532:007b) found 0x1f silent where 0x3f reads correctly. The cause was structural: transactionId was a field on the transport presets, so it was inherited one wrong preset produced 26 wrong products. Audited every product against the id OpenRazer's firmware read selects. 26 were fixed.
viix0dev
commented
Aug 9, 2026
@matthewgriffinSS I’ve pushed a fix. could you retry it here and let me know if you’re still seeing the issue? |
In some mouses like (Basilisk X HyperSpeed - tested on hardware) it returns 0x0b/0x85 with status 0x02 which makes the website show the lift-off controls when the hardware doesn't support it so if you try to apply this setting it will return (failed: 0x01 was acknowledged and stored nothing, 0x02 was refused.)
Tests I ran with people (5/5): |
Uh oh!
There was an error while loading. Please reload this page.
natic0309
commented
Aug 9, 2026
Selected device is not a supported control interface (DeathAdder V4 Pro (VID 0x1532 PID 0xbf; usage 0x1:0 feat[none] | usage 0x1:0 feat[none] | usage 0xc:1 feat[none]) · unknown (VID 0x1532 PID 0xbf; usage 0xc:1 feat[none])). Pick a vendor control interface (not a plain boot mouse). If this keeps failing, note the VID/PID from this message. |
viix0dev
commented
Aug 10, 2026
@natic0309 |
Adds support for 100 Razer mouses.
Tested only with Razer Deathadder Essential (Needs more testing).
Primary implementation references:
Current supported-device list:
https://openrazer.github.io/
OpenRazer repository / current master device table:
https://github.com/openrazer/openrazer
Mouse driver:
https://github.com/openrazer/openrazer/blob/master/driver/razermouse_driver.c
Common report definitions:
https://github.com/openrazer/openrazer/blob/master/driver/razercommon.h
Chroma/common command constructors:
https://github.com/openrazer/openrazer/blob/master/driver/razerchromacommon.c
Mouse driver header / PID constants:
https://github.com/openrazer/openrazer/blob/master/driver/razermouse_driver.h
OpenRazer mouse-driver usage notes:
https://github.com/openrazer/openrazer/wiki/Using-the-mouse-driver
Implementation work was assisted with Claude Code & Codex (For Research)
Supported Mouses:
List: https://github.com/viix0dev/openmouse/blob/dev/src/devices/razer/devices.ts
Tests Results (211/211):