Rival 3 Support
See original GitHub issueEDIT: Added the device ID
EDIT2: Added sensitivity increments and range
I’ve tried to do as much debugging as I can and was able the determine the commands for sensitivity and polling rate. I did not have such luck with the lighting.
Device ID
The Rival 3’s ID is 1038:1824
.
Sensitivity
Sensitivity is in increments of 100 and goes from 200 to 8500. The command is 0b 00
followed by up to 7 arguments:
- Total configured sensitivity levels
- Currently selected sensitivity level
- Sensitivities 1 through 5 (if applicable) according to the following formula:
int(dpi / 50 + int((dpi - 200)/300))
It’s possible I overlooked a simpler way to calculate that, but here are the first few values (in decimal):
200 = 4
300 = 6
400 = 8
500 = 11
600 = 13
700 = 15
800 = 18
900 = 20
1000 = 22
1100 = 25
1200 = 27
1300 = 29
1400 = 32
1500 = 34
You can see it’s a simple pattern, and the formula provided works.
For example, selecting level 2 out of 4, where the levels are 200, 400, 800, and 1600 DPI, respectively:
0b 00 04 02 04 08 12 24
Polling
Polling is identical to the base Rival config: 04 00
where the choices are 1000, 500, 250, and 125, corresponding to 01
, 02
, 03
, and 04
, respectively.
Lighting
I was able to save the packets for steady-state LED colour, but I had no luck trying to write the commands to hidraw
myself. There are 3 lighting zones: top, middle, and bottom/logo; they are always written at the same time like so:
0a 00 0f <top> <middle> <bottom> <bottom>
Example, setting top to #123456
, middle to #654321
, and bottom/logo to #0088ff
:
0a 00 0f 12 34 56 65 43 21 00 88 ff 00 88 ff
However, like I said, although I was always able to see these packets coming through, I couldn’t write them myself like I could with sensitivities and polling rate.
Saving to device memory
Like other mice, 09
will save the configuration to the mouse’s memory.
Please let me know if there is any more reverse engineering I should do. I didn’t even attempt to do the more complex lighting configurations since I couldn’t get the base configuration to work.
Issue Analytics
- State:
- Created 3 years ago
- Comments:21 (12 by maintainers)
Top GitHub Comments
I will try to work on this the weekend. But I have just a question… What happened if you set
0x00
as preset ID? Does it just keep the currently selected preset?Thank you very much for the feedback, I will merge this in the
rivalcfg4.0
branch 😄→ This mouse will be supported in rivalcfg 4.0 😃