Skip to content
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

ASUS ROG RYUJIN III 360 ARGB #677

Open
MiahNelah opened this issue Feb 23, 2024 · 14 comments
Open

ASUS ROG RYUJIN III 360 ARGB #677

MiahNelah opened this issue Feb 23, 2024 · 14 comments
Labels
new device Support for a new device

Comments

@MiahNelah
Copy link

Device type

AIO liquid cooler

Product page

https://rog.asus.com/cooling/cpu-liquid-coolers/rog-ryujin/rog-ryujin-iii-360-argb/

First-party software

Armory Crate

What monitoring functionality does the device support?

temperatures, fan/pump speeds or duty cycles

What configuration functionality does the device support?

fan/pump speeds or duty cycles, lighting of embedded LEDs

Physical connection

USB header

Connection protocol

USB

Additional information about the device

This AIO is seen as ASUS ROG Ryujin II by system.

~ lsusb -tv
/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 013: Dev 009, If 0, Class=Hub, Driver=hub/4p, 480M
        ID 05e3:0608 Genesys Logic, Inc. Hub
        |__ Port 001: Dev 011, If 0, Class=Vendor Specific Class, Driver=[none], 480M
            ID 0b05:1988 ASUSTek Computer, Inc. 
        |__ Port 001: Dev 011, If 1, Class=Human Interface Device, Driver=usbhid, 480M
            ID 0b05:1988 ASUSTek Computer, Inc. 
~ lsusb -d 0b05:1988 -v
Bus 001 Device 011: ID 0b05:1988 ASUSTek Computer, Inc. ROG RYUJIN II
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0b05 ASUSTek Computer, Inc.
  idProduct          0x1988 ROG RYUJIN II
  bcdDevice            2.00
  iManufacturer           1 AsusTek Computer Inc.
  iProduct                2 ROG RYUJIN II
  iSerial                 3 377238833430
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0040
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          4 
    bmAttributes         0xc0
      Self Powered
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      51
          Report Descriptors: 
            ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1

Can you help with implementing or testing the changes needed for liquidctl to support this device?

testing changes on Linux, attempting to capture USB/HID traffic

@MiahNelah MiahNelah added the new device Support for a new device label Feb 23, 2024
@aleksamagicka
Copy link
Member

Indeed the same ID as Ryujin II by ID. Support for Ryujin II is in Git, can you try it and see what happens? AFAICS from the docs, Ryujin 3 does not have a separate controller box, so things may be different.

@MiahNelah
Copy link
Author

Since Asus Ryujin II 360 support have been merged, I pulled last commit. Here is some test result.

Device is found as Asus Ryujin II 360 as expected.

$ ./liquidctl list --verbose
Device #0: ASUS Ryujin II 360
├── Vendor ID: 0x0b05
├── Product ID: 0x1988
├── Release number: 0x0200
├── Serial number: 377238833430
├── Bus: hid
├── Address: /dev/hidraw3
└── Driver: AsusRyujin

I can get temperature, settings and speed, which is already awesome !

$ ./liquidctl --serial 377238833430 status
ASUS Ryujin II 360
├── Liquid temperature      22.1  °C
├── Pump duty                100  %
├── Pump speed              2700  rpm
├── Pump fan duty             30  %
├── Pump fan speed          1890  rpm
├── External fan duty         63  %
├── External fan 1 speed    1350  rpm
├── External fan 2 speed       0  rpm
├── External fan 3 speed       0  rpm
└── External fan 4 speed       0  rpm

I tested to change pump speed, and it seems to work:

$ ./liquidctl --serial 377238833430 set pump speed 99
$ ./liquidctl --serial 377238833430 status
ASUS Ryujin II 360
├── Liquid temperature      22.2  °C
├── Pump duty                 99  %
├── Pump speed              2730  rpm
├── Pump fan duty             30  %
├── Pump fan speed          1920  rpm
├── External fan duty         63  %
├── External fan 1 speed    1380  rpm
├── External fan 2 speed       0  rpm
├── External fan 3 speed       0  rpm
└── External fan 4 speed       0  rpm

Speed change is not only visual, it looks it's correctly applied : fan speed change accordingly. Here is a test with pump speed at 75%, fan are slower than with 100% speed.

$ ./liquidctl --serial 377238833430 set pump speed 75
$ ./liquidctl --serial 377238833430 status
ASUS Ryujin II 360
├── Liquid temperature      22.1  °C
├── Pump duty                 75  %
├── Pump speed              2220  rpm
├── Pump fan duty             30  %
├── Pump fan speed          1920  rpm
├── External fan duty         63  %
├── External fan 1 speed    1380  rpm
├── External fan 2 speed       0  rpm
├── External fan 3 speed       0  rpm
└── External fan 4 speed       0  rpm

So, except that device's label is wrong, everything looks good !

@aleksamagicka
Copy link
Member

Thanks! What about pump fan and external fans, are they controllable? AFAICS the device does not have connectors for the external fans?

@MiahNelah
Copy link
Author

I used Asus Ryujin II 360 docs to get channels name. Everything looks controllable like on Asus Ryujin II 360.

Pump fan speed test :

$ ./liquidctl --serial 377238833430 status
ASUS Ryujin II 360
├── Liquid temperature      24.2  °C
├── Pump duty                100  %
├── Pump speed              2700  rpm
├── Pump fan duty             30  %
├── Pump fan speed          2010  rpm
├── External fan duty         63  %
├── External fan 1 speed    1380  rpm
├── External fan 2 speed       0  rpm
├── External fan 3 speed       0  rpm
└── External fan 4 speed       0  rpm

$ ./liquidctl --serial 377238833430 set pump-fan speed 40
$ ./liquidctl --serial 377238833430 status
ASUS Ryujin II 360
├── Liquid temperature      24.1  °C
├── Pump duty                100  %
├── Pump speed              2700  rpm
├── Pump fan duty             40  %
├── Pump fan speed          2340  rpm
├── External fan duty         63  %
├── External fan 1 speed    1380  rpm
├── External fan 2 speed       0  rpm
├── External fan 3 speed       0  rpm
└── External fan 4 speed       0  rpm

External fan speed test :

 ./liquidctl --serial 377238833430 status
ASUS Ryujin II 360
├── Liquid temperature      23.5  °C
├── Pump duty                100  %
├── Pump speed              2730  rpm
├── Pump fan duty             30  %
├── Pump fan speed          1920  rpm
├── External fan duty         63  %
├── External fan 1 speed    1260  rpm
├── External fan 2 speed       0  rpm
├── External fan 3 speed       0  rpm
└── External fan 4 speed       0  rpm

$ ./liquidctl --serial 377238833430 set external-fans speed 73
$ ./liquidctl --serial 377238833430 status
ASUS Ryujin II 360
├── Liquid temperature      23.5  °C
├── Pump duty                100  %
├── Pump speed              2700  rpm
├── Pump fan duty             30  %
├── Pump fan speed          1920  rpm
├── External fan duty         73  %
├── External fan 1 speed    1380  rpm
├── External fan 2 speed       0  rpm
├── External fan 3 speed       0  rpm
└── External fan 4 speed       0  rpm

"Every fans" speed test :

$ ./liquidctl --serial 377238833430 status
ASUS Ryujin II 360
├── Liquid temperature      22.9  °C
├── Pump duty                100  %
├── Pump speed              2700  rpm
├── Pump fan duty             30  %
├── Pump fan speed          1920  rpm
├── External fan duty         63  %
├── External fan 1 speed    1500  rpm
├── External fan 2 speed       0  rpm
├── External fan 3 speed       0  rpm
└── External fan 4 speed       0  rpm

$ ./liquidctl --serial 377238833430 set fans speed 50
$ ./liquidctl --serial 377238833430 status
ASUS Ryujin II 360
├── Liquid temperature      22.8  °C
├── Pump duty                100  %
├── Pump speed              2700  rpm
├── Pump fan duty             50  %
├── Pump fan speed          1950  rpm
├── External fan duty         50  %
├── External fan 1 speed    1380  rpm
├── External fan 2 speed       0  rpm
├── External fan 3 speed       0  rpm
└── External fan 4 speed       0  rpm

I don't really know why some fans are not displayed. I'm pretty new to Linux and all my fans are not detected at all. I still digging this issue.

@aleksamagicka
Copy link
Member

aleksamagicka commented Feb 28, 2024

These seem stuck at 1380 (and zeroes) more often than not:

├── External fan 1 speed    1380  rpm
├── External fan 2 speed       0  rpm
├── External fan 3 speed       0  rpm
└── External fan 4 speed       0  rpm

How are external fans connected to the AIO? I can't really discern from the quick guide on ASUS' website.

I don't really know why some fans are not displayed. I'm pretty new to Linux and all my fans are not detected at all. I still digging this issue.

Do you mean those above or those generally on your system? If the latter, try running sensors if you have lm-sensors installed.

@MiahNelah
Copy link
Author

MiahNelah commented Feb 28, 2024

These seem stuck at 1380 (and zeroes) more often than not:

├── External fan 1 speed    1380  rpm
├── External fan 2 speed       0  rpm
├── External fan 3 speed       0  rpm
└── External fan 4 speed       0  rpm

External fan 1 isn't stuck to 1380, it change a little during my tests: on my first test, external fan 1 was as 1350. Other external fans do stuck to 0 however.

How are external fans connected to the AIO? I can't really discern from the quick guide on ASUS' website.

From manual, pump is plug to CPU_FAN or AIO_PUMP or W_PUMP pin. External fans are plug to regular FAN 4-pins. I may take a closer look this weekend to I plugged all of this, I may have fucked something.
Can all external fans be controlled like one ?

Do you mean those above or those generally on your system? If the latter, try running sensors if you have lm-sensors installed.

sensors do not see my PWM fans system-wide. I tried sensors-detect and pwmconfig but without success. However, I do see fans in BIOS, and can control them in PWM mode.

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +22.0°C  (high = +80.0°C, crit = +100.0°C)
Core 0:        +22.0°C  (high = +80.0°C, crit = +100.0°C)
Core 4:        +17.0°C  (high = +80.0°C, crit = +100.0°C)
Core 8:        +20.0°C  (high = +80.0°C, crit = +100.0°C)
Core 12:       +18.0°C  (high = +80.0°C, crit = +100.0°C)
Core 16:       +19.0°C  (high = +80.0°C, crit = +100.0°C)
Core 20:       +20.0°C  (high = +80.0°C, crit = +100.0°C)
Core 24:       +19.0°C  (high = +80.0°C, crit = +100.0°C)
Core 28:       +18.0°C  (high = +80.0°C, crit = +100.0°C)
Core 32:       +23.0°C  (high = +80.0°C, crit = +100.0°C)
Core 33:       +23.0°C  (high = +80.0°C, crit = +100.0°C)
Core 34:       +23.0°C  (high = +80.0°C, crit = +100.0°C)
Core 35:       +22.0°C  (high = +80.0°C, crit = +100.0°C)
Core 36:       +20.0°C  (high = +80.0°C, crit = +100.0°C)
Core 37:       +20.0°C  (high = +80.0°C, crit = +100.0°C)
Core 38:       +20.0°C  (high = +80.0°C, crit = +100.0°C)
Core 39:       +21.0°C  (high = +80.0°C, crit = +100.0°C)

nvme-pci-0200
Adapter: PCI adapter
Composite:    +25.9°C  (low  = -20.1°C, high = +83.8°C)
                       (crit = +88.8°C)

acpitz-acpi-0
Adapter: ACPI interface
temp1:        +27.8°C  

nvme-pci-0400
Adapter: PCI adapter
Composite:    +27.9°C  (low  = -60.1°C, high = +89.8°C)
                       (crit = +94.8°C)

@aleksamagicka
Copy link
Member

External fan 1 isn't stuck to 1380, it change a little during my tests: on my first test, external fan 1 was as 1350

I said that because I noticed these:

├── External fan duty         73  %
├── External fan 1 speed    1380  rpm

and

├── External fan duty         50  %
├── External fan 1 speed    1380  rpm

Perhaps it just needed time to update. If those work, that's great.


From manual, pump is plug to CPU_FAN or AIO_PUMP or W_PUMP pin. External fans are plug to regular FAN 4-pins. I may take a closer look this weekend to I plugged all of this, I may have fucked something.

Pump is plugged in probably to silence the BIOS warnings for having no fans? I don't see another reason right now, if it's controlled through USB... Or maybe it's just for power.

Can all external fans be controlled like one ?

Depends on how you connect them, you can use PWM splitter cables and chain them to one PWM output from anywhere.

Either way, AFAIU your AIO works well with liquidctl, and the only thing is that there are three superflous readings for external fans 2, 3 and 4?

@MiahNelah
Copy link
Author

External fan 1 isn't stuck to 1380, it change a little during my tests: on my first test, external fan 1 was as 1350

I said that because I noticed these:

├── External fan duty         73  %
├── External fan 1 speed    1380  rpm

and

├── External fan duty         50  %
├── External fan 1 speed    1380  rpm

Perhaps it just needed time to update. If those work, that's great.

Yes, I run status command less than a second after changing speed, fan need alittle more time to reduce speed.

Either way, AFAIU your AIO works well with liquidctl, and the only thing is that there are three superflous readings for external fans 2, 3 and 4?

That's it, have temperature and global pump+main fan speed is already great! I'll dig more on my side about fans and update this thread if I discover something.

@MiahNelah
Copy link
Author

I'm the biggest idiot! Of course my device is seen as Asus Ryujin II since IT IS an Asus Ryujin II and not a Ryuijin III !
I'm so sorry for this lost time for nothing, I should have check this before everything.

@aleksamagicka
Copy link
Member

Still interesting, doesn't it have a separate controller for the fans?

@MiahNelah
Copy link
Author

There is, but all 3 fans are combined into one PWM, that's why all three fans are controllable and used as a whole.

@aleksamagicka
Copy link
Member

Ah, then that's indeed a RYUJIN II.

@jonasmalacofilho, can this be closed as-is, or should I change the title and/or add a label? (I don't see a proper label in the list, though...)

@davija
Copy link

davija commented Mar 1, 2024

I recently purchased an ASUS ROG RYUJIN III 360 (not the ARGB version) and can confirm that it is not currently detected.

This one connects via USB and has a 4-pin header for MB CPU-Fan / AIO header.

lsusb -d 0b05:1aa2 -v


Bus 001 Device 010: ID 0b05:1aa2 ASUSTek Computer, Inc. ROG RYUJIN III
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x0b05 ASUSTek Computer, Inc.
  idProduct          0x1aa2 
  bcdDevice            2.00
  iManufacturer           1 AsusTek Computer Inc.
  iProduct                2 ROG RYUJIN III
  iSerial                 3 305A354F3332
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0040
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          4 
    bmAttributes         0xc0
      Self Powered
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      51
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1

I'm willing to help with adding support and testing, I just need to figure out what needs to be done. On initial inspection it appears that the interface is the same as the Ryujin II just different id.

@aleksamagicka
Copy link
Member

@davija, this is all you need to do to get liquidctl to see it as a RYUJIN II. Try it out and report back, perhaps it's similar. (If you need help applying the commit/change, I'll give instructions.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new device Support for a new device
Projects
None yet
Development

No branches or pull requests

3 participants