asus_ryuo: add coolant temp, LED control, and OLED display upload#880
Open
bl4dee wants to merge 1 commit into
Open
asus_ryuo: add coolant temp, LED control, and OLED display upload#880bl4dee wants to merge 1 commit into
bl4dee wants to merge 1 commit into
Conversation
dffa1b4 to
e7f33a7
Compare
Extend the ASUS Ryuo I 240 driver with: - get_status(): read coolant temperature from sensor register 0x6A - set_color(): LED control with 6 modes (off, static, breathing, flash, spectrum, rainbow) via commands 0x3B/0x3F - set_screen(): OLED display upload using the 9-step chunked transfer protocol reverse-engineered from LiveDash v1.05.03 (AuraIC.dll) The OLED upload sends GIF data in 62-byte HID chunks with 20ms delays (hardware SPI flash speed limit). Images are auto-resized to 160x128 using Pillow (optional dependency, imported at call time). WARNING: Register 0x5C must never be written after upload — it causes the OLED to go permanently black until a full power cycle. Tested on hardware. All 16 tests pass, 531 full suite pass.
e7f33a7 to
600a581
Compare
|
There is a hid for direct frame buffer write. No point using their garbage implementation of writing to spi also I don’t expect this to be merged. both this and openrgb maintainers seem very upset about inorganic code… the matter that you can point a binaryninja/ida/ghidra harness at the binaries and it reverses it in an hour, seems to hurt their ego |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Extends the ASUS Ryuo I 240 driver with three new capabilities:
get_status()reads sensor register0x6Aand reports liquid temperature in °Cset_color()supports 6 modes: off, static, breathing, flash, spectrum, rainbow (commands0x3B/0x3F)set_screen()uploads images/GIFs to the 160×128 OLED on the pump head via a 9-step chunked HID transfer protocolOLED upload protocol
Reverse-engineered from ASUS LiveDash v1.05.03 (
AuraIC.dll,WriteFileToFW()function):0x51 0xA0)0x6B)0x6C 0x01,0x6C 0x03)0x6C 0x04)0x6E) with 20ms delays (hardware SPI flash speed limit)0x6C 0x05)0x6C 0xFF)0x51 0x10 0x01 N)0x6E 0x00)Usage examples
Changes
liquidctl/driver/asus_ryuo.pyget_status(),set_color(),set_screen(),_prepare_gif(),_upload_oled()tests/test_asus_ryuo.pydocs/asus-ryuo-guide.mddocs/developer/protocol/asus_ryuo.mdTesting
set_screen()is calledblack --line-length 100Notes
pip install pillow) is required only for OLED uploads, imported at call time to avoid adding a hard dependencyliquidctl/collected-device-data