pwm1
can initially be set without a problem. But setting pwm2
after will also set pwm1
to 99% and will cause both to remain "stuck".
Testing
- Starting from zero:
# python3 -m liquidctl status
ASUS ROG RYUJIN II 360
├── Liquid temperature 30.5 °C
├── Pump duty 0 %
├── Pump speed 900 rpm
├── Embedded Micro Fan duty 0 %
├── Embedded Micro Fan speed 0 rpm
├── AIO Fan Controller duty 0 %
├── AIO Fan Controller speed - Fan 1 0 rpm
├── AIO Fan Controller speed - Fan 2 0 rpm
├── AIO Fan Controller speed - Fan 3 0 rpm
└── AIO Fan Controller speed - Fan 4 0 rpm
- Setting pwm1 works great:
# echo 200 > /sys/class/hwmon/hwmon10/pwm1
# python3 -m liquidctl status
ASUS ROG RYUJIN II 360
├── Liquid temperature 30.5 °C
├── Pump duty 78 %
├── Pump speed 2370 rpm
├── Embedded Micro Fan duty 0 %
├── Embedded Micro Fan speed 0 rpm
├── AIO Fan Controller duty 0 %
├── AIO Fan Controller speed - Fan 1 0 rpm
├── AIO Fan Controller speed - Fan 2 0 rpm
├── AIO Fan Controller speed - Fan 3 0 rpm
└── AIO Fan Controller speed - Fan 4 0 rpm
# echo 100 > /sys/class/hwmon/hwmon10/pwm1
# python3 -m liquidctl status
ASUS ROG RYUJIN II 360
├── Liquid temperature 30.2 °C
├── Pump duty 39 %
├── Pump speed 1440 rpm
├── Embedded Micro Fan duty 0 %
├── Embedded Micro Fan speed 0 rpm
├── AIO Fan Controller duty 0 %
├── AIO Fan Controller speed - Fan 1 0 rpm
├── AIO Fan Controller speed - Fan 2 0 rpm
├── AIO Fan Controller speed - Fan 3 0 rpm
└── AIO Fan Controller speed - Fan 4 0 rpm
- Setting pwm2 also sets pwm1 to 99%
# echo 200 > /sys/class/hwmon/hwmon10/pwm2
# python3 -m liquidctl status
ASUS ROG RYUJIN II 360
├── Liquid temperature 30.3 °C
├── Pump duty 99 %
├── Pump speed 2790 rpm
├── Embedded Micro Fan duty 78 %
├── Embedded Micro Fan speed 4350 rpm
├── AIO Fan Controller duty 0 %
├── AIO Fan Controller speed - Fan 1 0 rpm
├── AIO Fan Controller speed - Fan 2 0 rpm
├── AIO Fan Controller speed - Fan 3 0 rpm
└── AIO Fan Controller speed - Fan 4 0 rpm
- pwm1 and pwm2 now stuck:
# echo 150 > /sys/class/hwmon/hwmon10/pwm2
# python3 -m liquidctl status
ASUS ROG RYUJIN II 360
├── Liquid temperature 30.3 °C
├── Pump duty 99 %
├── Pump speed 2760 rpm
├── Embedded Micro Fan duty 78 %
├── Embedded Micro Fan speed 4350 rpm
├── AIO Fan Controller duty 0 %
├── AIO Fan Controller speed - Fan 1 0 rpm
├── AIO Fan Controller speed - Fan 2 0 rpm
├── AIO Fan Controller speed - Fan 3 0 rpm
└── AIO Fan Controller speed - Fan 4 0 rpm
# echo 0 > /sys/class/hwmon/hwmon10/pwm2
# python3 -m liquidctl status
ASUS ROG RYUJIN II 360
├── Liquid temperature 30.3 °C
├── Pump duty 99 %
├── Pump speed 2760 rpm
├── Embedded Micro Fan duty 78 %
├── Embedded Micro Fan speed 4350 rpm
├── AIO Fan Controller duty 0 %
├── AIO Fan Controller speed - Fan 1 0 rpm
├── AIO Fan Controller speed - Fan 2 0 rpm
├── AIO Fan Controller speed - Fan 3 0 rpm
└── AIO Fan Controller speed - Fan 4 0 rpm
# echo 0 > /sys/class/hwmon/hwmon10/pwm2
# python3 -m liquidctl status
ASUS ROG RYUJIN II 360
├── Liquid temperature 30.3 °C
├── Pump duty 99 %
├── Pump speed 2730 rpm
├── Embedded Micro Fan duty 78 %
├── Embedded Micro Fan speed 4350 rpm
├── AIO Fan Controller duty 0 %
├── AIO Fan Controller speed - Fan 1 0 rpm
├── AIO Fan Controller speed - Fan 2 0 rpm
├── AIO Fan Controller speed - Fan 3 0 rpm
└── AIO Fan Controller speed - Fan 4 0 rpm
# echo 0 > /sys/class/hwmon/hwmon10/pwm1
# python3 -m liquidctl status
ASUS ROG RYUJIN II 360
├── Liquid temperature 30.3 °C
├── Pump duty 99 %
├── Pump speed 2730 rpm
├── Embedded Micro Fan duty 78 %
├── Embedded Micro Fan speed 4350 rpm
├── AIO Fan Controller duty 0 %
├── AIO Fan Controller speed - Fan 1 0 rpm
├── AIO Fan Controller speed - Fan 2 0 rpm
├── AIO Fan Controller speed - Fan 3 0 rpm
└── AIO Fan Controller speed - Fan 4 0 rpm
- pwm3 not impacted:
# echo 127 > /sys/class/hwmon/hwmon10/pwm3
# python3 -m liquidctl status
ASUS ROG RYUJIN II 360
├── Liquid temperature 30.2 °C
├── Pump duty 99 %
├── Pump speed 2730 rpm
├── Embedded Micro Fan duty 78 %
├── Embedded Micro Fan speed 4320 rpm
├── AIO Fan Controller duty 50 %
├── AIO Fan Controller speed - Fan 1 990 rpm
├── AIO Fan Controller speed - Fan 2 990 rpm
├── AIO Fan Controller speed - Fan 3 0 rpm
└── AIO Fan Controller speed - Fan 4 0 rpm
# echo 64 > /sys/class/hwmon/hwmon10/pwm3
# python3 -m liquidctl status
ASUS ROG RYUJIN II 360
├── Liquid temperature 29.9 °C
├── Pump duty 99 %
├── Pump speed 2700 rpm
├── Embedded Micro Fan duty 78 %
├── Embedded Micro Fan speed 4320 rpm
├── AIO Fan Controller duty 25 %
├── AIO Fan Controller speed - Fan 1 690 rpm
├── AIO Fan Controller speed - Fan 2 690 rpm
├── AIO Fan Controller speed - Fan 3 0 rpm
└── AIO Fan Controller speed - Fan 4 0 rpm
# echo 0 > /sys/class/hwmon/hwmon10/pwm3
# python3 -m liquidctl status
ASUS ROG RYUJIN II 360
├── Liquid temperature 29.6 °C
├── Pump duty 99 %
├── Pump speed 2700 rpm
├── Embedded Micro Fan duty 78 %
├── Embedded Micro Fan speed 4320 rpm
├── AIO Fan Controller duty 0 %
├── AIO Fan Controller speed - Fan 1 0 rpm
├── AIO Fan Controller speed - Fan 2 0 rpm
├── AIO Fan Controller speed - Fan 3 0 rpm
└── AIO Fan Controller speed - Fan 4 0 rpm
- pwm1 and pwm2 still stuck, resetting them using liquidctl
# echo 0 > /sys/class/hwmon/hwmon10/pwm1
# python3 -m liquidctl status
ASUS ROG RYUJIN II 360
├── Liquid temperature 29.3 °C
├── Pump duty 99 %
├── Pump speed 2700 rpm
├── Embedded Micro Fan duty 78 %
├── Embedded Micro Fan speed 4350 rpm
├── AIO Fan Controller duty 0 %
├── AIO Fan Controller speed - Fan 1 0 rpm
├── AIO Fan Controller speed - Fan 2 0 rpm
├── AIO Fan Controller speed - Fan 3 0 rpm
└── AIO Fan Controller speed - Fan 4 0 rpm
# echo 0 > /sys/class/hwmon/hwmon10/pwm2
# python3 -m liquidctl status
ASUS ROG RYUJIN II 360
├── Liquid temperature 29.3 °C
├── Pump duty 99 %
├── Pump speed 2730 rpm
├── Embedded Micro Fan duty 78 %
├── Embedded Micro Fan speed 4350 rpm
├── AIO Fan Controller duty 0 %
├── AIO Fan Controller speed - Fan 1 0 rpm
├── AIO Fan Controller speed - Fan 2 0 rpm
├── AIO Fan Controller speed - Fan 3 0 rpm
└── AIO Fan Controller speed - Fan 4 0 rpm
# python3 -m liquidctl set pump speed 0
# python3 -m liquidctl status
ASUS ROG RYUJIN II 360
├── Liquid temperature 29.0 °C
├── Pump duty 0 %
├── Pump speed 870 rpm
├── Embedded Micro Fan duty 78 %
├── Embedded Micro Fan speed 4380 rpm
├── AIO Fan Controller duty 0 %
├── AIO Fan Controller speed - Fan 1 0 rpm
├── AIO Fan Controller speed - Fan 2 0 rpm
├── AIO Fan Controller speed - Fan 3 0 rpm
└── AIO Fan Controller speed - Fan 4 0 rpm
# python3 -m liquidctl set fan1 speed 0
# python3 -m liquidctl status
ASUS ROG RYUJIN II 360
├── Liquid temperature 29.2 °C
├── Pump duty 0 %
├── Pump speed 870 rpm
├── Embedded Micro Fan duty 0 %
├── Embedded Micro Fan speed 0 rpm
├── AIO Fan Controller duty 0 %
├── AIO Fan Controller speed - Fan 1 0 rpm
├── AIO Fan Controller speed - Fan 2 0 rpm
├── AIO Fan Controller speed - Fan 3 0 rpm
└── AIO Fan Controller speed - Fan 4 0 rpm
Side notes, probably not related to bug:
|
} else if (data[1] == RYUJIN_GET_COOLER_DUTY_CMD_RESPONSE) { |
priv
is updated everytime
RYUJIN_GET_COOLER_DUTY_CMD_RESPONSE
(
0x1A
) is received as the second byte.
Unfortunately the AIO doesn't just send
0x1A
when the speeds were requested, but also as a response to updating the cooler speeds and this confirmation doesn't include any data (it's just
0xEC 0x1A 0x00 0x00 0x00...
).
0x21
also behaves the same way.
I see priv
is updated before anything is read, so this shouldn't really matter, I just thought this may be something to be cautious about.
Since hwmon exposes the sensors as separate files, wouldn't it make more sense to only request the required sensors and cache them separately? This could save 3/4 requests to the AIO, depending on if programs read multiple sensors at once like lm-sensors
does.