Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Option to dump all mouse properties? #117

Closed
delbonis opened this issue Jun 15, 2020 · 13 comments
Closed

Option to dump all mouse properties? #117

delbonis opened this issue Jun 15, 2020 · 13 comments
Labels

Comments

@delbonis
Copy link

I configured my mouse a long time ago when I still used Windows but now I would like to be able to see the settings I set again. I notice it seems there's only code paths to write settings to the mouse, but none to read.

@flozz
Copy link
Owner

flozz commented Jun 19, 2020

Hello,

It is not possible to read-back settings from the mouse (at least for the Rival 100, 110 and 300 that I own), that's why there is only functions to write settings to the devices that are implemented. :(

On Windows, the SteelSeries Engine 3 saves the settings on the disk and write them to the mouse each time you plug it.

@delbonis
Copy link
Author

Oh well that's annoying. Quite the disappointment.

@FFY00
Copy link

FFY00 commented Jun 20, 2020

Yeah, it's a really poor design choice by Steelseries. I managed to find out how to read the dpi settings and the current active led color (what is showing, not that it is configured to cycle or whatever) on the Rival 310. Possibly this can also be done in other models.

Right now, libratbag can read the active dpi settings. I could implement the same here if @flozz wants, but I am not sure if it makes much sense.

@flozz
Copy link
Owner

flozz commented Jun 20, 2020

@FFY00 interesting! It will be useful the day I implement a GUI, so do not hesitate to share if you have more info :)

@FFY00
Copy link

FFY00 commented Jun 20, 2020

It is documented here: https://github.com/FFY00/rival310-re/blob/master/92.md

I also have reverse engineered the firmware updates, if you're interested. That hasn't been documented yet.

@flozz
Copy link
Owner

flozz commented Jun 20, 2020

Thank you :D

@delbonis
Copy link
Author

delbonis commented Jun 21, 2020

Are the firmwares signed? I wonder if it would be worthwhile to make a libre implementation that allows for configuration readback. Unfortunately I believe I've lost my Windows configuration and I'd rather not start from scratch configuring my devices.(nvm I just had to read more) Does the firmware update wipe the flash storage?

@flozz
Copy link
Owner

flozz commented Jun 22, 2020

I an not sure what kind of setting you want to recover from the mouse, but note that there is only some basic settings (led, dpi, pollrate, etc) that are stored in the internal memory.

I am not sure key binding configs are stored in the mouse for this device, and if you are looking for macro or other advanced settings, they are not stored in the mouse.

@FFY00
Copy link

FFY00 commented Jun 23, 2020

The firmware is not signed, it only has a CRC. My friend reverse engineered the CRC and we were able to load custom firmware to the device. We are working on open source firmware for STM32 based devices, the Rival 310 is our main target. We still have a lot to do, and I have other priorities at the moment, so it will probably still take a while until we have something ready for public consumption.

@delbonis
Copy link
Author

I have a Rival 300, but that's pretty awesome to hear. Looking forward to seeing how it goes.

@flozz flozz added the question label Aug 22, 2020
@flozz
Copy link
Owner

flozz commented Aug 22, 2020

I close this issue as there is no more we can do with this for now :)

@flozz flozz closed this as completed Aug 22, 2020
@delbonis
Copy link
Author

@FFY00 Has there been any news on that custom firmware project?

@FFY00
Copy link

FFY00 commented Sep 15, 2021

Yes, though we still are a bit early in the development. We can bring up the device and have it work as a normal mouse, but haven't implemented any of the configuration stuff.

I am currently working on refactoring the build system and will work on adding the missing test coverage afterwards. Once that's done, we can start defining the protocol functions to configure DPI, buttons, etc. and implement it in the firmware.

https://github.com/openinput-fw/openinput

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants