flozz / rivalcfg

CLI tool and Python library to configure SteelSeries gaming mice
https://flozz.github.io/rivalcfg/
Do What The F*ck You Want To Public License
807 stars 66 forks source link

Aerox 9 Wireless support #188

Open flozz opened 2 years ago

flozz commented 2 years ago

Device identification

Product URL

https://fr.steelseries.com/gaming-mice/aerox-9-wireless

SSE3 Screenshots:

image

flozz commented 2 years ago

This mouse work the same as the Aerox 3 and 5 Wireless, except for button mapping.

The button mapping requires 3 packets to fit the report size. Rivalcfg do not support sending more than one packet per command, so supporting button will require more work in the core of the project.

TODO:


Basic feature

For basic feature, we can find all the relevant information in the Aerox 3 Wireless profile and in the issues #156 and #167


button mapping

Commands:

Packets:

2A or 6A          Command
00                Packet number (1st)
xx xx xx xx xx    Button 1
xx xx xx xx xx    Button 2
xx xx xx xx xx    Button 3
xx xx xx xx xx    Scroll tilt left
xx xx xx xx xx    Scroll tilt right
xx xx xx xx xx    CPI
2A or 6A          Command
01                Packet number (2nd)
xx xx xx xx xx    S3
xx xx xx xx xx    S6
xx xx xx xx xx    S9
xx xx xx xx xx    S12
xx xx xx xx xx    S2
xx xx xx xx xx    S5
2A or 6A          Command
02                Packet number (3rd)
xx xx xx xx xx    S8
xx xx xx xx xx    S11
xx xx xx xx xx    S1
xx xx xx xx xx    S4
xx xx xx xx xx    S7
xx xx xx xx xx    S10
xx xx xx xx xx    Scroll Up
xx xx xx xx xx    Scroll Down

Buttons values:

+--------+-------------------+
| Value  | Action            |
+========+===================+
| 0x00   | Disabled          |
| 0x01   | Button 1          |
| 0x02   | Button 2          |
| 0x03   | Button 3          |
| 0x04   | Button 4          |
| 0x05   | Button 5          |
| 0x06   | Button 6          |
| 0x07   | Button 7          |
| 0x08   | Button 8          |
| 0x30   | CPI               |
| 0x31   | Scroll Up         |
| 0x32   | Scroll Down       |
| 0x33   | ac_pan_left       |
| 0x34   | ac_pan_right      |
| 0x51   | Keyboard key      |
| 0x61   | Multimedia key    |
| 0x62   | Meta              |
+--------+-------------------+

image image

flozz commented 2 years ago

Basic features are now on master and will be part of the v4.7.0.

CLKRUN commented 2 years ago

'Supporting button mapping (later, when multi-packet support will be supported by Rivalcfg)' How long does this usually take? Is it hard to get this to work? Would profile switching via button bind be possible? Screenshot_20221115_211647

flozz commented 2 years ago

'Supporting button mapping (later, when multi-packet support will be supported by Rivalcfg)' How long does this usually take? Is it hard to get this to work?

It will take months:

Would profile switching via button bind be possible?

I don't know... It is probably a software feature of the GG Engine but I cannot confirm as I do not own this device.

CLKRUN commented 2 years ago

'Supporting button mapping (later, when multi-packet support will be supported by Rivalcfg)' How long does this usually take? Is it hard to get this to work?

It will take months:

* Important changes must be made in the core of the lib

* Currently I do not have enough free time to work on it

Would profile switching via button bind be possible?

I don't know... It is probably a software feature of the GG Engine but I cannot confirm as I do not own this device.

Thank you so much for your quick comment. Unfortunately, I am only a user and I am thankful that there are people like you. I look forward when the time comes :)

Edwardius commented 1 year ago

Hi,

Just wanted an update on this, I wanted my Aerox 9 to support basic window moving macros (Win + <-, etc.). I'd assume that this is not possible yet because button mapping is not supported.

ChrisLane commented 1 month ago

@flozz I see that button mapping support was added for the Rival 600 this year :tada: https://github.com/flozz/rivalcfg/commit/1c8d0ceb6ff6bd37c6531041f4b9378c372ca20d

Can the same be done for the Aerox 9 Wireless now? Would we just need the same changes made in the commit above but for the Aerox 9 Wireless with the values you posted in your second comment on this issue?

flozz commented 1 month ago

To configure the buttons on the Aerox 9, it requires to send 3 packets. to the mouse.. Currently Rivalcfg is only able to send 1 packet per command. So there is is more work to be done before being able to support this feature on this device.

ChrisLane commented 1 month ago

To configure the buttons on the Aerox 9, it requires to send 3 packets. to the mouse.. Currently Rivalcfg is only able to send 1 packet per command. So there is is more work to be done before being able to support this feature on this device.

Ah I see, sorry. I had assumed that was the same for all devices and that the Rival 600 support indicated that it was implemented already. Thanks for the fast response.