-
-
Notifications
You must be signed in to change notification settings - Fork 63
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
Request: Aerox 3 #156
Comments
lsusb output: |
There is also a wireless version |
Would be very interested in support for this and happy to provide testing! (will take a look at adding it myself when I have some spare time but that may not be for a while) |
@flozz https://flozz.github.io/rivalcfg/contributing.html mentions reverse-engineering protocols - and I'd like to give it a go. What methods / tools do you use? |
@fluffynuts Hello, Basically, I use Wireshark and a Windows VM with the SteelSeries Engine 3 installed on it. I do not had time to write a documentation in English, but I wrote two articles (in French) on my blog:
Maybe Google Translate could help you :) |
@flozz thanks, I'll see what I can figure out (: |
@flozz after a quick look through a translated one - nice articles! I think that I'll be able to figure it out. I have a windows machine here so I can skip the VM part, but otherwise, excellent. Thanks! |
@flozz ok, I've had a look, and so far I can see: setting colors by zone, data packets: Setting any of the fancy effects results in a lot of chatter that looks like this, so it looks like breath and rainbow and so forth may set up by the software? But when one receives the mouse or when it reverts to "default", I see the overall rainbow effect, no breathing, so I'm not sure how that's accomplished in the light of watching other effects applied. For my immediate use, I just want solid colors - I want to do an orange-to-red gradient from the front of the mouse back, to match my rig, so I figure this is as good a time as any to start on a profile. This is where the wheels fall off a bit - I have this so far: from .. import usbhid
profile = {
"name": "SteelSeries Aerox 3",
"models": [
{
"name": "SteelSeries Aerox 3 Wireless - USB Wired",
"vendor_id": 0x1038,
"product_id": 0x183A,
"endpoint": 0 # ? not sure what to set here
}
],
"settings": {
"z1_color": {
"label": "Strip top LED color",
"description": "Set the color of the top LED of the strip",
"cli": ["--strip-top-color", "--z1"],
"report_type": usbhid.HID_REPORT_TYPE_OUTPUT,
"command": [0x21, 0x01, 0x00],
"command_suffix": [0x64], # not sure what to put here: the observed frames are 00 all the way after the location indicator and color
"value_type": "rgbcolor",
"default": "red"
},
"z2_color": {
"label": "Strip middle LED color",
"description": "Set the color of the middle LED of the strip",
"cli": ["--strip-middle-color", "--z2"],
"report_type": usbhid.HID_REPORT_TYPE_OUTPUT,
"command": [0x21, 0x02, 0x00],
"command_suffix": [0x64], # not sure what to put here: the observed frames are 00 all the way after the location indicator and color
"value_type": "rgbcolor",
"default": "red"
},
"z1_color": {
"label": "Strip bottom LED color",
"description": "Set the color of the bottom LED of the strip",
"cli": ["--strip-top-color", "--z3"],
"report_type": usbhid.HID_REPORT_TYPE_OUTPUT,
"command": [0x21, 0x03, 0x00],
"command_suffix": [0x64], # not sure what to put here: the observed frames are 00 all the way after the location indicator and color
"value_type": "rgbcolor",
"default": "red"
},
} This is for the aerox 3 as plugged in directly on usb; the device id changes to 1838 for the wireless dongle, so I guess I'd add a "model" for that? What I'm missing:
I also see .csv files, so it looks like device python files might be generated? Assuming I'm even remotely on the right track with the data I think I've captured, where do I go from here? Sorry if this is a stupid question - if there's a doc that I should be looking at, please point me there (I don't see answers to my questions at https://flozz.github.io/rivalcfg/contributing.html or in the readme, but that might just me being stupid) |
In wired version I noticed that Engine is constantly sending packets to mice. Is this also a thing on wireless version? I'm just curious |
I'm just assuming so - I connected my aerox in wireless state and it didn't seem to make much difference in the chatter |
@imLinguin that's why I don't think this mouse can do the effects "natively" - I saw constant updates being sent (color-wise) when I had an effect enabled in the engine. As far as solid colors go, it looks like that's remembered until the mouse changes connection or powers off. BUT I see that other mice have a "save" packet, and I haven't seen that when testing against this (yet) - though I could just be missing it. When I click "save" in Engine, I haven't seen any different packets going to the mouse, so either I'm missing it or "save" means "save to Engine storage and keep applying as required". If the latter is the case, I'd probably recommend to not use effects if you want the most out of your Aerox 3 - that chatter is quite noisy & can't come for free, surely. Not that I'm trying to bash this mouse - I'm really enjoying gaming with it, and the color-setting to match my rig would just be nice-to-have. |
additional data from @imLinguin :) EDIT: I add the link here to keep a track, not everyone is on Discord :) |
I started to implement the support of the
on the Here is the implemented commands:
To test, first get / setup the project:
then you can test with command like:
example:
Please test all commands on both devices, it will help NOTE: I used the information from the Aerox Wireless (wired) for the colors, but it seems slightly different from the non Wireless one, so please test the three zones and repports me any errors / incoherence :) Also can you provide screenshot of your SS Engine for each mice to help me to understand available settings? :) Finally, once we will be done with de basic configuration,
:) |
On linux, the mouse (wireless) doesn't appear to fully "see" the mouse: if I run, eg however,
I also don't get
it's not impossible that I'm just Doing Something Wrong. I followed the steps from above tho:
I've also tried |
@fluffynuts try changing endpoint value here: https://github.com/flozz/rivalcfg/blob/aerox3/rivalcfg/devices/aerox3.py#L17 |
a friend on windows is achieving the same non-result so either we're both doing the same Wrong Thing, or there's something more interesting at play here... |
ah, will give it a go @imLinguin |
eh, tried endpoints 0-4, no luck ): |
one thing I noticed is that when I run with I wonder if this is related to the firmware update I received when I first connected to a windows box? what's the firmware status with other people on this thread? ie, who has updated, who hasn't? |
You might also need to reboot if you just updated udev rules. You should use the mouse in wired mode for now, which is currently implemented. |
I'm assuming you are in wireless mode, because of productId mismatch @fluffynuts |
I only implemented the wired mode yet, not the wireless mode with the dongle :) |
I separated profiles for the Aerox 3 and the Aerox 3 Wireless. @fluffynuts, let's continue in #167 for your device :) |
@imLinguin everything should now work out of the box for the Aerox 3 I also added a, option on enable the rainbow effect:
you can try it with:
Also can you try to change value from 0xFF to something else (like 0x00 and other random values) to see if there is other effects available? |
Firmware version command:
Mouse response:
version starts after 0x90 |
Been following this thread and very excited to see it just worked for me for the first time with the latest changes, though the Logs below:
|
Thank you for your feedback @mewtlu We are talking about two different devices in this thread:
The To avoid confusion (as the devices are different and use a slightly different protocol), there is an other issue dedicated to the wireless version of the Aerox 3 → #167 |
I updated the Aerox 3 (not the wireless one) with the following options:
I still have to implement the firmware reading code, then the support of this device should be complete. :) (and once this one finished, i will continue working on the Aerox 3 Wireless, there is a lot to do on it :) ) |
There is also Reactive tab in SSE which I documented in my repo as Reactive Effect. It's wave looking, one color effect from top to bottom, being triggered when you press any mouse button. It can be either set to some color or disabled. |
Update: I added the reactive color option:
can you check it works? :) |
Works perfectly |
I am back on the project :) The Aerox 3 Support seems ok, just need to write some test before merging it to master. |
The Aerox 3 support is now on |
Whould it be possible to add Aerox 3 mouse support? I will try to reverse engineer it in a few days. Will add lsusb output later.
The text was updated successfully, but these errors were encountered: