Draft: Minimal Experimental ASUS Aura Mainboard Gen2 support
Updates Aura Mainboard to add minimal support for Gen2 ARGB devices
This adds an AURA_ADDRESSABLE_GEN2 entry to the AuraDeviceType enum, as well as adding subchannels per Aura addressable device. This is only supported in direct mode, effects are not supported.
Fixes #3929
TODO
-
Determine whether a Mainboard supports setting headers to Gen2. - I only have the one device to test, so I'm not sure how to do this yet. Possibly via config_table, but I would need a number of different config_table examples from different aura devices with known support or lack of support for Gen2.
-
Set Gen1/Gen2 for a given addressable header. -
LED Probing.
Setting Gen1/Gen2 Header State
This seems to occur across three messages:
send: ec 3f aa 00 .. .. .. .. .. .. 00
send: ec 3e 52 53 WW XX YY ZZ 00 .. 00
send: ec 3f 55 00 .. .. .. .. .. .. 00
- A variant of the
ec3f55
"commit" message, it looks like it begins a transaction of some kind? - This sets the protocol per header. It's not clear what
52 53
mean, butWW XX YY ZZ
correspond to the protocol version for headers 1-4, where00
means Gen1 and01
means Gen2. The remaining bytes appear to be unused. - This appears to be the existing
ec3f55
"commit" message
This is followed by a new request for config_table
, and the following message sequence:
send: ec 83 00 .. 00
recv: ec 03 ?? .. ??
It is not yet clear what this sequence does, and what the response means.
LED Probing
Not a lot is known about the LED probing mechanism as of yet, other than there appear to be three different sets of messages:
send: ec 32 XX 00 .. 00
send: ec b2 00 .. .. 00
recv: ec 32 XX ?? .. ??
send: ec 31 XX 00 .. 00
send: ec b1 00 .. .. 00
recv: ec 31 XX ?? .. ??
send: ec 3d ?? XX 00 .. 00
send: ec bd 00 .. .. .. 00
recv: ec 3d ?? XX ?? .. ??
In each case, XX
is a placeholder for some type of id, possibly a device, LED, or subchannel, and ??
indicates an unidentified value. Periodically between these messages are requests for the firmware version.
More testing needs to be done with different LED devices on different headers to sus out what the meaning of some of these values are.
Checklist for Accepting a Merge Request for a New Device
-
The New Device
issue raised for this device is linked to this MR with a keywordCloses / Resolves / Implements
-
There is a device protocol page in the Developer Wiki or there is enough information / captures in the New Device
issue to provide ongoing support. -
The code to be merged follows the style guide and change requirements as documented in the contributing guide.
-
Meta data for the device is included in RGBController_*
file -
This device is detected and is working on Windows 10 and / or 11 -
This device is detected and is working on Linux (Please specify distribution and releases tested) -
Logging for Info, Warnings and Errors has been added for troubleshooting purposes