question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

EDIT: 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:closed
  • Created 3 years ago
  • Comments:21 (12 by maintainers)

github_iconTop GitHub Comments

1reaction
flozzcommented, May 12, 2020

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?

0reactions
flozzcommented, Jun 24, 2020

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 😃

Read more comments on GitHub >

github_iconTop Results From Across the Web

Rival 3 - SteelSeries
The Rival 3 gaming mouse has mechanical switches rated for 60 million clicks and hyper durable materials for a long lifespan. A new...
Read more >
RIVAL 3 WIRELESS - SteelSeries CDN
find help at support.steelseries.com. PACKAGE CONTENTS. Rival 3 Wireless Mouse. Nano Dongle. 2x AAA Batteries. Product Information Guide.
Read more >
SteelSeries Rival 3 Gaming Mouse - 8500 CPI TrueMove ...
Amazon.com: SteelSeries Rival 3 Gaming Mouse - 8500 CPI TrueMove Core Optical Sensor - 6 Programmable Buttons ... Support: Free Amazon tech support...
Read more >
SteelSeries Rival 3 Wireless Gaming Mouse Review
The Rival 3 Wireless supports both the gaming-standard 2.4 GHz connection via USB dongle and Bluetooth wireless, which uses less power and ...
Read more >
SteelSeries Rival 3 Gaming Mouse Review: Entry-Level ...
SteelSeries built the Rival 3 around its TrueMove Core sensor, which supports CPI settings between 100 and 8,500 in 100 CPI increments.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found