File: corsair-commander-guide.md

package info (click to toggle)
liquidctl 1.16.0-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 3,452 kB
  • sloc: python: 15,304; sh: 712; xml: 84; makefile: 4
file content (202 lines) | stat: -rw-r--r-- 7,365 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
# Corsair Commander Pro, Obsidian 1000D and Lighting Node Pro/Core
_Driver API and source code available in [`liquidctl.driver.commander_pro`](../liquidctl/driver/commander_pro.py)._


## Initializing the device

_Changed in 1.9.0: the firmware and bootloader versions are not available when
data is read from [Linux hwmon]._<br>

The device should be initialized every time it is powered on, including when
the system resumes from suspending to memory.

The initialization command is needed in order to detect what temperature
sensors and fan types are currently connected.

```
# liquidctl initialize
Corsair Commander Pro
├── Firmware version       0.9.212
├── Bootloader version         0.5
├── Temperature probe 1        Yes
├── Temperature probe 2        Yes
├── Temperature probe 3         No
├── Temperature probe 4         No
├── Fan 1 control mode         PWM
├── Fan 2 control mode         PWM
├── Fan 3 control mode          DC
├── Fan 4 control mode         N/A
├── Fan 5 control mode         N/A
└── Fan 6 control mode         N/A
```

```
# liquidctl initialize
Corsair Lighting Node Pro
├── Firmware version       0.10.4
└── Bootloader version        3.0
```


Passing `--fan-mode='<fan_num>:<mode>[,...]'` can be used to change the
fan mode from `dc` to `pwm` to `off` if the connected fan type is changed.
The `--fan-mode` option is persistent across restarts and can only be used
when not using the hwmon driver.


## Retrieving the fan speeds, temperatures and voltages

The Lighting Node Pro and Lighting Node Core do not have a status message.

The Commander Pro and Obsidian 1000D are able to retrieve the current fan
speeds as well as the current temperature of any connected temperature probes.
They are also able to retrieve the voltages from the 3.3, 5, and 12 volt buses.

If a fan or temperature probe is not connected then a value of 0 is shown.

```
# liquidctl status
Corsair Commander Pro
├── Temperature 1     26.4  °C
├── Temperature 2     27.5  °C
├── Fan 1 speed        927  rpm
├── Fan 2 speed        927  rpm
├── Fan 3 speed       1195  rpm
├── +12V rail        12.06  V
├── +5V rail          4.96  V
└── +3.3V rail        3.36  V
```


## Programming the fan speeds

The Lighting Node Pro and Lighting Node Core do not have any fans to control.

Each fan can be set to either a fixed duty cycle, or a profile consisting of up
to six (temperature, rpm) pairs.  Temperatures should be given in Celsius and
rpm values as a valid rpm for the fan that is connected.

_Note: unlike equivalent functionality in other drivers, this driver takes
speed profiles using angular speeds in rpm, not duty values in percentage._

_Note: you must ensure that rpm values are within the min, max range for your
hardware._

Profiles run on the device and are always based one the specified temp probe.
If a temperature probe is not specified number 1 is used. The last point should
set the fan to 100% fan speed, or be omitted; in the latter case the fan will
be set to 5000 rpm at 60°C (this speed may not be appropriate for your device).

```
# liquidctl set fan1 speed 70
                ^^^^       ^^
               channel    duty

# liquidctl set fan2 speed 20 800 40 900 50 1000 60 1500
                           ^^^^^^ ^^^^^^ ^^^^^^^ ^^^^^^^
                      pairs of temperature (°C) -> speed (rpm)

# liquidctl set fan3 speed 20 800 40 900 50 1300 --temperature-sensor 2
```

Valid channel values are `fanN`, where 1 <= N <= 6 is the fan number, and
`sync`, to simultaneously configure all fans.

Only fans that have been connected and identified by `liquidctl initialize` can
be set.

Behaviour is unspecified if the specified temperature probe is not connected.

Passing `--verbose` can be used to see the raw settings being sent to the
cooler, after normalization of the profile and enforcement of a (60°C, 5000
rpm) failsafe. The `--unsafe=high_temperature` flag can be used to modify this
failsafe to only trigger at 100°C.


## Controlling the LEDs

The Commander Pro and Lighting Node Pro devices have two physical lighting
channels, specified as either `led1` or `led2`.  A third `sync` pseudo channel
is provided for convenience.

On the other hand, the Lighting Node Core has a single `led` channel.

The table bellow summarizes the available modes, and their associated
maximum number of colors. Note that for any effect if no colors are specified then
random colors will be used.

| Mode          | Num colors |
| ------------- | ---------- |
| `clear` _¹_   |          0 |
| `off` _²_     |          0 |
| `fixed`       |          1 |
| `color_shift` |          2 |
| `color_pulse` |          2 |
| `color_wave`  |          2 |
| `visor`       |          2 |
| `blink`       |          2 |
| `marquee`     |          1 |
| `sequential`  |          1 |
| `rainbow`     |          0 |
| `rainbow2`    |          0 |


_¹ This is not a real mode but it will remove all saved effects_<br>
_² This is not a real mode but it is fixed with RGB values of 0_<br>

To specify which LED's on the channel the effect should apply to the
`--start-led` and `--maximum-leds` flags must be given.
By default the effect will apply to all LED's on the channel.

If you have 3 Corsair LL fans connected to channel one and you want to set
the first and third to green and the middle to blue you can use the following
commands:

```
# liquidctl set led1 color fixed 00ff00 --start-led 1 --maximum-leds 48
# liquidctl set led1 color fixed 0000ff --start-led 16 --maximum-leds 16
```

This will first set all 48 leds to green then will set leds 16-32 to blue.
Alternatively you could do:

```
# liquidctl set led1 color fixed 00ff00 --start-led 1 --maximum-leds 16
# liquidctl set led1 color fixed 0000ff --start-led 16 --maximum-leds 16
# liquidctl set led1 color fixed 00ff00 --start-led 32 --maximum-leds 16
```

This allows you to compose more complex led effects then just the base modes.
The different commands need to be sent in order that they should be applied.
In the first example if the order were reversed then all of the LED's would
be green.

All of the effects support specifying a `--direction=forward` or
`--direction=backward`.

There are also 3 speeds that can be specified for the `--speed` flag.
`fast`, `medium`, and `slow`.

Each color can be specified using any of the'
[supported formats](../README.md#supported-color-specification-formats).

Currently the device can only accept hardware effects, and the specified
configuration will persist across power offs. The changes take a couple of
seconds to take effect.


## Interaction with Linux hwmon drivers
[Linux hwmon]: #interaction-with-linux-hwmon-drivers

_New in 1.9.0._<br>

Commander Pro controllers and the Obsidian 1000D are supported by the mainline
Linux kernel with its [`corsair-cpro`] driver, and status data is provided
through a standard hwmon sysfs interface.

Starting with version 1.9.0, liquidctl automatically detects when a kernel
driver is bound to the device and, whenever possible, uses it instead of
directly accessing the device.  Alternatively, direct access to the device can
be forced with `--direct-access`.

[`corsair-cpro`]: https://www.kernel.org/doc/html/latest/hwmon/corsair-cpro.html