Skip to content

Draft: Minimal Experimental ASUS Aura Mainboard Gen2 support

TenkenNoSoujiro requested to merge TenkenNoSoujiro/OpenRGB:asus-aura-gen2 into master

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
  1. A variant of the ec3f55 "commit" message, it looks like it begins a transaction of some kind?
  2. This sets the protocol per header. It's not clear what 52 53 mean, but WW XX YY ZZ correspond to the protocol version for headers 1-4, where 00 means Gen1 and 01 means Gen2. The remaining bytes appear to be unused.
  3. 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 keyword Closes / 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
Edited by TenkenNoSoujiro

Merge request reports