Skip to content

New driver for Asus Aura LED USB controllers#456

Merged
jonasmalacofilho merged 67 commits intoliquidctl:mainfrom
CaseySJ:main
May 27, 2022
Merged

New driver for Asus Aura LED USB controllers#456
jonasmalacofilho merged 67 commits intoliquidctl:mainfrom
CaseySJ:main

Conversation

@CaseySJ
Copy link
Contributor

@CaseySJ CaseySJ commented May 9, 2022

This pull request adds support for Asus AURA LED USB lighting controllers. This driver supports "effect" mode in which the controller is responsible for modulating all lighting effects, but lacks the level of control and flexibility of "direct" mode in which the client software modulates lighting effects by continuously sending commands to the controller.

I should have submitted this pull request while there were no merge conflicts. Hopefully the conflicts are easy to resolve as this is mostly new code.

Checklist:

  • Adhere to the development process
  • Conform to the style guide
  • Verify that the changes work as expected on real hardware
  • Add automated tests cases
  • Verify that all (other) automated tests (still) pass
  • Update the README and other applicable documentation pages
  • Update the liquidctl.8 Linux/Unix/Mac OS man page
  • Update or add applicable docs/*guide.md device guides
  • Submit relevant data, scripts or dissectors to https://github.com/liquidctl/collected-device-data

New CLI flag?

  • Adjust the completion scripts in extra/completions/

New device?

  • Regenerate extra/linux/71-liquidctl.rules (instructions in the file header)
  • Add entry to the README's supported device list with applicable notes (at least en)

New driver?

  • Document the protocol in docs/developer/protocol/

Alpha level code for Asus Aura LED (USB) controller with:

idVendor 0x0b05
idProduct 0x19af
Added entry to 71-liquidctl.rules and replaced " with ' in aura_led.py
Lots of code optimizations and support added for 'sync' channel
Added "test_aura_led.py" for pytest. Cleaned up some code in aura_led.py
Added new color modes 0x10 through 0x13. Made additional code cleanup.
Testing compatibility with idProduct 0x18f3. Additional code cleanup.
Device 0x18f3 is not fully supported, but rather than delete the line entirely, it's been commented out. Users wishing to experiment with this may uncomment the line
@jonasmalacofilho
Copy link
Member

Hey @CaseySJ, hope you're doing well!


@MarshallAsch, can you review this one for me?

@MarshallAsch
Copy link
Member

Hey @CaseySJ, hope you're doing well!


@MarshallAsch, can you review this one for me?

Yup I'll take a look after work

@CaseySJ
Copy link
Contributor Author

CaseySJ commented May 18, 2022

Hey @CaseySJ, hope you're doing well!

Hello @jonasmalacofilho,

I'm doing great, thank you for mentioning. Hope all is well on your end. It's good to see how this project has grown recently, with automated builds, lint checking, "code of conduct" ;), and other enhancements. Also good to see expanded support for lighting on GPUs and DIMMs.

Copy link
Member

@MarshallAsch MarshallAsch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a few general comments, a couple questions, and several changes that I am requesting.

  • remove all the .DS_Store files, I would suggest that you add .DS_Store to your ~/.gitignore or ~/.config/git/ignore file to prevent them from being adding to future commits.
  • Add the device to the man pages file, essentially copy the existing format of the file to document the new device.
  • Try to add some more white space in your code to help visually separate the blocks a little bit generally it looks good some parts are a little dense.
  • Merge the upstream branch back into yours.
  • run the black linter / formatter against your code.

currently this is the only conflict

<<<<<<< main
| Graphics card RGB  | [Additional EVGA GTX 1070 and 1070 Ti cards](docs/nvidia-guide.md) | I²C | <sup>_Uenx_</sup> |
| Motherboard        | [Asus Aura LED Z690 motherboards](docs/asus-aura-led-guide.md) | USB HID | <sup>_e_</sup> |
=======
| Graphics card RGB  | [Additional EVGA GTX 1070 and 1070 Ti cards](docs/nvidia-guide.md) | I²C | <sup>_Uex_</sup> |
>>>>>>> main

It is the top block you want to accept to resolve the conflict.

Comment on lines +56 to +60
# liquidctl -m Aura set rgb color static af5a2f
# liquidctl -m Aura set argb1 color breathing 350017
# liquidctl -m Aura set argb2 color rainbow
# liquidctl -m Aura set argb3 color spectrum-cycle
# liquidctl -m Aura set sync color gentle-transition
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the block of text describing these commands it says that all channels will get the same effect, why specify individual channels if they all behave as sync?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a note stating that individual channel names are provided in case a future BIOS update changes the behavior.

CaseySJ added 7 commits May 22, 2022 09:54
Per feedback from pull request, several changes have been made to the controller and documentation
Channel names are now led1, led2, ...
Status command returns number of ARGB and RGB channels. If --debug is enabled, it returns entire set of status bytes
Fix Lint complaint
@CaseySJ CaseySJ requested a review from MarshallAsch May 22, 2022 19:37
@CaseySJ
Copy link
Contributor Author

CaseySJ commented May 22, 2022

I've added .DS_Store to .gitignore and I no longer see those files in my locally cloned git repo. But those files still exist on the GitHub site.

CaseySJ added 2 commits May 22, 2022 15:06
Documentation corrections and rewording.
Copy link
Member

@MarshallAsch MarshallAsch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple more changes then it looks good to me and Ill approve it.

@jonasmalacofilho jonasmalacofilho merged commit 622d83c into liquidctl:main May 27, 2022
@jonasmalacofilho
Copy link
Member

Thank you both!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants