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

Problem with fan2go fan init on Dell Inspiron 5370 #161

Closed
shbon opened this issue Oct 1, 2022 · 21 comments
Closed

Problem with fan2go fan init on Dell Inspiron 5370 #161

shbon opened this issue Oct 1, 2022 · 21 comments
Labels
bug Something isn't working

Comments

@shbon
Copy link

shbon commented Oct 1, 2022

Describe the bug
Turning off BIOS fan control (AUR: dell-bios-fan-control) and then running sudo fan2go (or sudo fan2go fan init -icpu) for a new configuration displays the following:

...
PWM Settings of fan 'cpu': Min 100, Start 100, **Max 0**

The fan is turned on (previously 0 RPM, CPU at rest). The RPM is set to 2566 and PWM is 128, but stress testing the CPU indicates that fan2go isn't controlling the fan speed and I'm forced to re-enable BIOS fan control.

To Reproduce

sudo dell-bios-fan-control 0
sudo fan2go fan reset -icpu
sudo fan2go
stress -c 2 (on another tty)

Expected behavior
Presumably, the PWM settings should match my configuration:

fans
  - id: cpu
    hwmon:
    platform: dell_smm-isa-0
    index: 1
    neverStop: true
    curve: cpu_curve
    minPwm: 75
    startPwm: 100
    maxPwm: 195

sensors:
  - id: cpu_package
    hwmon:
    platform: coretemp-isa-0
    index: 1

curves:
  - id: cpu_curve
    linear:
    sensor: cpu_package
    steps:
     - 30: 0
     - 50: 125
     - 80: 195
...

Desktop:

  • Arch Linux
  • Dell Inspiron 5370 / Intel iGPU 8th Gen / Single fan
  • fan2go version: latest
  • I have the AUR package dell-bios-fan-control installed to disable BIOS control of the fan. It is activated with the command sudo dell-bios-fan-control 0

Additional context
fan2go can read my temp sensor fan2go sensor -icpu_package and fan rpm fan2go fan rpm -icpu.
fan2go can set the fan rpm sudo fan2go fan speed nnn -icpu, with BIOS fan control disabled.

FanControl (lm-sensors) works OK, but I'm looking to solve the "enumerated hwmon links changing issue" with fan2go.

Any ideas?

@shbon shbon added the bug Something isn't working label Oct 1, 2022
@markusressel
Copy link
Owner

markusressel commented Oct 1, 2022

Did you wait for the fan curve measurement to finish?
Rerun the main daemon with --verbose and post the output.

I just checked the code for the log output of the PWM settings and its really odd that you get a value of 0 for Max.
If you specified a value in the config it should take precedence over anything within the measured fan curve.

@shbon
Copy link
Author

shbon commented Oct 1, 2022

Output after doing a "fan reset":

Log (expand)
sudo fan2go -v --no-color --no-style

INFO: Using configuration file at: /etc/fan2go/fan2go.yaml
INFO: Gathering sensor data for cpu...
INFO: Loading fan curve data for fan 'cpu'...
WARNING: Fan 'cpu' has not yet been analyzed, starting initialization sequence...
INFO: Computing pwm map...
DEBUG: Setting Fan PWM of 'cpu' to 255 ...
DEBUG: Setting Fan PWM of 'cpu' to 254 ...
DEBUG: Setting Fan PWM of 'cpu' to 253 ...
DEBUG: Setting Fan PWM of 'cpu' to 252 ...
DEBUG: Setting Fan PWM of 'cpu' to 251 ...
DEBUG: Setting Fan PWM of 'cpu' to 250 ...
DEBUG: Setting Fan PWM of 'cpu' to 249 ...
DEBUG: Setting Fan PWM of 'cpu' to 248 ...
DEBUG: Setting Fan PWM of 'cpu' to 247 ...
DEBUG: Setting Fan PWM of 'cpu' to 246 ...
DEBUG: Setting Fan PWM of 'cpu' to 245 ...
DEBUG: Setting Fan PWM of 'cpu' to 244 ...
DEBUG: Setting Fan PWM of 'cpu' to 243 ...
DEBUG: Setting Fan PWM of 'cpu' to 242 ...
DEBUG: Setting Fan PWM of 'cpu' to 241 ...
DEBUG: Setting Fan PWM of 'cpu' to 240 ...
DEBUG: Setting Fan PWM of 'cpu' to 239 ...
DEBUG: Setting Fan PWM of 'cpu' to 238 ...
DEBUG: Setting Fan PWM of 'cpu' to 237 ...
DEBUG: Setting Fan PWM of 'cpu' to 236 ...
DEBUG: Setting Fan PWM of 'cpu' to 235 ...
DEBUG: Setting Fan PWM of 'cpu' to 234 ...
DEBUG: Setting Fan PWM of 'cpu' to 233 ...
DEBUG: Setting Fan PWM of 'cpu' to 232 ...
DEBUG: Setting Fan PWM of 'cpu' to 231 ...
DEBUG: Setting Fan PWM of 'cpu' to 230 ...
DEBUG: Setting Fan PWM of 'cpu' to 229 ...
DEBUG: Setting Fan PWM of 'cpu' to 228 ...
DEBUG: Setting Fan PWM of 'cpu' to 227 ...
DEBUG: Setting Fan PWM of 'cpu' to 226 ...
DEBUG: Setting Fan PWM of 'cpu' to 225 ...
DEBUG: Setting Fan PWM of 'cpu' to 224 ...
DEBUG: Setting Fan PWM of 'cpu' to 223 ...
DEBUG: Setting Fan PWM of 'cpu' to 222 ...
DEBUG: Setting Fan PWM of 'cpu' to 221 ...
DEBUG: Setting Fan PWM of 'cpu' to 220 ...
DEBUG: Setting Fan PWM of 'cpu' to 219 ...
DEBUG: Setting Fan PWM of 'cpu' to 218 ...
DEBUG: Setting Fan PWM of 'cpu' to 217 ...
DEBUG: Setting Fan PWM of 'cpu' to 216 ...
DEBUG: Setting Fan PWM of 'cpu' to 215 ...
DEBUG: Setting Fan PWM of 'cpu' to 214 ...
DEBUG: Setting Fan PWM of 'cpu' to 213 ...
DEBUG: Setting Fan PWM of 'cpu' to 212 ...
DEBUG: Setting Fan PWM of 'cpu' to 211 ...
DEBUG: Setting Fan PWM of 'cpu' to 210 ...
DEBUG: Setting Fan PWM of 'cpu' to 209 ...
DEBUG: Setting Fan PWM of 'cpu' to 208 ...
DEBUG: Setting Fan PWM of 'cpu' to 207 ...
DEBUG: Setting Fan PWM of 'cpu' to 206 ...
DEBUG: Setting Fan PWM of 'cpu' to 205 ...
DEBUG: Setting Fan PWM of 'cpu' to 204 ...
DEBUG: Setting Fan PWM of 'cpu' to 203 ...
DEBUG: Setting Fan PWM of 'cpu' to 202 ...
DEBUG: Setting Fan PWM of 'cpu' to 201 ...
DEBUG: Setting Fan PWM of 'cpu' to 200 ...
DEBUG: Setting Fan PWM of 'cpu' to 199 ...
DEBUG: Setting Fan PWM of 'cpu' to 198 ...
DEBUG: Setting Fan PWM of 'cpu' to 197 ...
DEBUG: Setting Fan PWM of 'cpu' to 196 ...
DEBUG: Setting Fan PWM of 'cpu' to 195 ...
DEBUG: Setting Fan PWM of 'cpu' to 194 ...
DEBUG: Setting Fan PWM of 'cpu' to 193 ...
DEBUG: Setting Fan PWM of 'cpu' to 192 ...
DEBUG: Setting Fan PWM of 'cpu' to 191 ...
DEBUG: Setting Fan PWM of 'cpu' to 190 ...
DEBUG: Setting Fan PWM of 'cpu' to 189 ...
DEBUG: Setting Fan PWM of 'cpu' to 188 ...
DEBUG: Setting Fan PWM of 'cpu' to 187 ...
DEBUG: Setting Fan PWM of 'cpu' to 186 ...
DEBUG: Setting Fan PWM of 'cpu' to 185 ...
DEBUG: Setting Fan PWM of 'cpu' to 184 ...
DEBUG: Setting Fan PWM of 'cpu' to 183 ...
DEBUG: Setting Fan PWM of 'cpu' to 182 ...
DEBUG: Setting Fan PWM of 'cpu' to 181 ...
DEBUG: Setting Fan PWM of 'cpu' to 180 ...
DEBUG: Setting Fan PWM of 'cpu' to 179 ...
DEBUG: Setting Fan PWM of 'cpu' to 178 ...
DEBUG: Setting Fan PWM of 'cpu' to 177 ...
DEBUG: Setting Fan PWM of 'cpu' to 176 ...
DEBUG: Setting Fan PWM of 'cpu' to 175 ...
DEBUG: Setting Fan PWM of 'cpu' to 174 ...
DEBUG: Setting Fan PWM of 'cpu' to 173 ...
DEBUG: Setting Fan PWM of 'cpu' to 172 ...
DEBUG: Setting Fan PWM of 'cpu' to 171 ...
DEBUG: Setting Fan PWM of 'cpu' to 170 ...
DEBUG: Setting Fan PWM of 'cpu' to 169 ...
DEBUG: Setting Fan PWM of 'cpu' to 168 ...
DEBUG: Setting Fan PWM of 'cpu' to 167 ...
DEBUG: Setting Fan PWM of 'cpu' to 166 ...
DEBUG: Setting Fan PWM of 'cpu' to 165 ...
DEBUG: Setting Fan PWM of 'cpu' to 164 ...
DEBUG: Setting Fan PWM of 'cpu' to 163 ...
DEBUG: Setting Fan PWM of 'cpu' to 162 ...
DEBUG: Setting Fan PWM of 'cpu' to 161 ...
DEBUG: Setting Fan PWM of 'cpu' to 160 ...
DEBUG: Setting Fan PWM of 'cpu' to 159 ...
DEBUG: Setting Fan PWM of 'cpu' to 158 ...
DEBUG: Setting Fan PWM of 'cpu' to 157 ...
DEBUG: Setting Fan PWM of 'cpu' to 156 ...
DEBUG: Setting Fan PWM of 'cpu' to 155 ...
DEBUG: Setting Fan PWM of 'cpu' to 154 ...
DEBUG: Setting Fan PWM of 'cpu' to 153 ...
DEBUG: Setting Fan PWM of 'cpu' to 152 ...
DEBUG: Setting Fan PWM of 'cpu' to 151 ...
DEBUG: Setting Fan PWM of 'cpu' to 150 ...
DEBUG: Setting Fan PWM of 'cpu' to 149 ...
DEBUG: Setting Fan PWM of 'cpu' to 148 ...
DEBUG: Setting Fan PWM of 'cpu' to 147 ...
DEBUG: Setting Fan PWM of 'cpu' to 146 ...
DEBUG: Setting Fan PWM of 'cpu' to 145 ...
DEBUG: Setting Fan PWM of 'cpu' to 144 ...
DEBUG: Setting Fan PWM of 'cpu' to 143 ...
DEBUG: Setting Fan PWM of 'cpu' to 142 ...
DEBUG: Setting Fan PWM of 'cpu' to 141 ...
DEBUG: Setting Fan PWM of 'cpu' to 140 ...
DEBUG: Setting Fan PWM of 'cpu' to 139 ...
DEBUG: Setting Fan PWM of 'cpu' to 138 ...
DEBUG: Setting Fan PWM of 'cpu' to 137 ...
DEBUG: Setting Fan PWM of 'cpu' to 136 ...
DEBUG: Setting Fan PWM of 'cpu' to 135 ...
DEBUG: Setting Fan PWM of 'cpu' to 134 ...
DEBUG: Setting Fan PWM of 'cpu' to 133 ...
DEBUG: Setting Fan PWM of 'cpu' to 132 ...
DEBUG: Setting Fan PWM of 'cpu' to 131 ...
DEBUG: Setting Fan PWM of 'cpu' to 130 ...
DEBUG: Setting Fan PWM of 'cpu' to 129 ...
DEBUG: Setting Fan PWM of 'cpu' to 128 ...
DEBUG: Setting Fan PWM of 'cpu' to 127 ...
DEBUG: Setting Fan PWM of 'cpu' to 126 ...
DEBUG: Setting Fan PWM of 'cpu' to 125 ...
DEBUG: Setting Fan PWM of 'cpu' to 124 ...
DEBUG: Setting Fan PWM of 'cpu' to 123 ...
DEBUG: Setting Fan PWM of 'cpu' to 122 ...
DEBUG: Setting Fan PWM of 'cpu' to 121 ...
DEBUG: Setting Fan PWM of 'cpu' to 120 ...
DEBUG: Setting Fan PWM of 'cpu' to 119 ...
DEBUG: Setting Fan PWM of 'cpu' to 118 ...
DEBUG: Setting Fan PWM of 'cpu' to 117 ...
DEBUG: Setting Fan PWM of 'cpu' to 116 ...
DEBUG: Setting Fan PWM of 'cpu' to 115 ...
DEBUG: Setting Fan PWM of 'cpu' to 114 ...
DEBUG: Setting Fan PWM of 'cpu' to 113 ...
DEBUG: Setting Fan PWM of 'cpu' to 112 ...
DEBUG: Setting Fan PWM of 'cpu' to 111 ...
DEBUG: Setting Fan PWM of 'cpu' to 110 ...
DEBUG: Setting Fan PWM of 'cpu' to 109 ...
DEBUG: Setting Fan PWM of 'cpu' to 108 ...
DEBUG: Setting Fan PWM of 'cpu' to 107 ...
DEBUG: Setting Fan PWM of 'cpu' to 106 ...
DEBUG: Setting Fan PWM of 'cpu' to 105 ...
DEBUG: Setting Fan PWM of 'cpu' to 104 ...
DEBUG: Setting Fan PWM of 'cpu' to 103 ...
DEBUG: Setting Fan PWM of 'cpu' to 102 ...
DEBUG: Setting Fan PWM of 'cpu' to 101 ...
DEBUG: Setting Fan PWM of 'cpu' to 100 ...
DEBUG: Setting Fan PWM of 'cpu' to 99 ...
DEBUG: Setting Fan PWM of 'cpu' to 98 ...
DEBUG: Setting Fan PWM of 'cpu' to 97 ...
DEBUG: Setting Fan PWM of 'cpu' to 96 ...
DEBUG: Setting Fan PWM of 'cpu' to 95 ...
DEBUG: Setting Fan PWM of 'cpu' to 94 ...
DEBUG: Setting Fan PWM of 'cpu' to 93 ...
DEBUG: Setting Fan PWM of 'cpu' to 92 ...
DEBUG: Setting Fan PWM of 'cpu' to 91 ...
DEBUG: Setting Fan PWM of 'cpu' to 90 ...
DEBUG: Setting Fan PWM of 'cpu' to 89 ...
DEBUG: Setting Fan PWM of 'cpu' to 88 ...
DEBUG: Setting Fan PWM of 'cpu' to 87 ...
DEBUG: Setting Fan PWM of 'cpu' to 86 ...
DEBUG: Setting Fan PWM of 'cpu' to 85 ...
DEBUG: Setting Fan PWM of 'cpu' to 84 ...
DEBUG: Setting Fan PWM of 'cpu' to 83 ...
DEBUG: Setting Fan PWM of 'cpu' to 82 ...
DEBUG: Setting Fan PWM of 'cpu' to 81 ...
DEBUG: Setting Fan PWM of 'cpu' to 80 ...
DEBUG: Setting Fan PWM of 'cpu' to 79 ...
DEBUG: Setting Fan PWM of 'cpu' to 78 ...
DEBUG: Setting Fan PWM of 'cpu' to 77 ...
DEBUG: Setting Fan PWM of 'cpu' to 76 ...
DEBUG: Setting Fan PWM of 'cpu' to 75 ...
DEBUG: Setting Fan PWM of 'cpu' to 74 ...
DEBUG: Setting Fan PWM of 'cpu' to 73 ...
DEBUG: Setting Fan PWM of 'cpu' to 72 ...
DEBUG: Setting Fan PWM of 'cpu' to 71 ...
DEBUG: Setting Fan PWM of 'cpu' to 70 ...
DEBUG: Setting Fan PWM of 'cpu' to 69 ...
DEBUG: Setting Fan PWM of 'cpu' to 68 ...
DEBUG: Setting Fan PWM of 'cpu' to 67 ...
DEBUG: Setting Fan PWM of 'cpu' to 66 ...
DEBUG: Setting Fan PWM of 'cpu' to 65 ...
DEBUG: Setting Fan PWM of 'cpu' to 64 ...
DEBUG: Setting Fan PWM of 'cpu' to 63 ...
DEBUG: Setting Fan PWM of 'cpu' to 62 ...
DEBUG: Setting Fan PWM of 'cpu' to 61 ...
DEBUG: Setting Fan PWM of 'cpu' to 60 ...
DEBUG: Setting Fan PWM of 'cpu' to 59 ...
DEBUG: Setting Fan PWM of 'cpu' to 58 ...
DEBUG: Setting Fan PWM of 'cpu' to 57 ...
DEBUG: Setting Fan PWM of 'cpu' to 56 ...
DEBUG: Setting Fan PWM of 'cpu' to 55 ...
DEBUG: Setting Fan PWM of 'cpu' to 54 ...
DEBUG: Setting Fan PWM of 'cpu' to 53 ...
DEBUG: Setting Fan PWM of 'cpu' to 52 ...
DEBUG: Setting Fan PWM of 'cpu' to 51 ...
DEBUG: Setting Fan PWM of 'cpu' to 50 ...
DEBUG: Setting Fan PWM of 'cpu' to 49 ...
DEBUG: Setting Fan PWM of 'cpu' to 48 ...
DEBUG: Setting Fan PWM of 'cpu' to 47 ...
DEBUG: Setting Fan PWM of 'cpu' to 46 ...
DEBUG: Setting Fan PWM of 'cpu' to 45 ...
DEBUG: Setting Fan PWM of 'cpu' to 44 ...
DEBUG: Setting Fan PWM of 'cpu' to 43 ...
DEBUG: Setting Fan PWM of 'cpu' to 42 ...
DEBUG: Setting Fan PWM of 'cpu' to 41 ...
DEBUG: Setting Fan PWM of 'cpu' to 40 ...
DEBUG: Setting Fan PWM of 'cpu' to 39 ...
DEBUG: Setting Fan PWM of 'cpu' to 38 ...
DEBUG: Setting Fan PWM of 'cpu' to 37 ...
DEBUG: Setting Fan PWM of 'cpu' to 36 ...
DEBUG: Setting Fan PWM of 'cpu' to 35 ...
DEBUG: Setting Fan PWM of 'cpu' to 34 ...
DEBUG: Setting Fan PWM of 'cpu' to 33 ...
DEBUG: Setting Fan PWM of 'cpu' to 32 ...
DEBUG: Setting Fan PWM of 'cpu' to 31 ...
DEBUG: Setting Fan PWM of 'cpu' to 30 ...
DEBUG: Setting Fan PWM of 'cpu' to 29 ...
DEBUG: Setting Fan PWM of 'cpu' to 28 ...
DEBUG: Setting Fan PWM of 'cpu' to 27 ...
DEBUG: Setting Fan PWM of 'cpu' to 26 ...
DEBUG: Setting Fan PWM of 'cpu' to 25 ...
DEBUG: Setting Fan PWM of 'cpu' to 24 ...
DEBUG: Setting Fan PWM of 'cpu' to 23 ...
DEBUG: Setting Fan PWM of 'cpu' to 22 ...
DEBUG: Setting Fan PWM of 'cpu' to 21 ...
DEBUG: Setting Fan PWM of 'cpu' to 20 ...
DEBUG: Setting Fan PWM of 'cpu' to 19 ...
DEBUG: Setting Fan PWM of 'cpu' to 18 ...
DEBUG: Setting Fan PWM of 'cpu' to 17 ...
DEBUG: Setting Fan PWM of 'cpu' to 16 ...
DEBUG: Setting Fan PWM of 'cpu' to 15 ...
DEBUG: Setting Fan PWM of 'cpu' to 14 ...
DEBUG: Setting Fan PWM of 'cpu' to 13 ...
DEBUG: Setting Fan PWM of 'cpu' to 12 ...
DEBUG: Setting Fan PWM of 'cpu' to 11 ...
DEBUG: Setting Fan PWM of 'cpu' to 10 ...
DEBUG: Setting Fan PWM of 'cpu' to 9 ...
DEBUG: Setting Fan PWM of 'cpu' to 8 ...
DEBUG: Setting Fan PWM of 'cpu' to 7 ...
DEBUG: Setting Fan PWM of 'cpu' to 6 ...
DEBUG: Setting Fan PWM of 'cpu' to 5 ...
DEBUG: Setting Fan PWM of 'cpu' to 4 ...
DEBUG: Setting Fan PWM of 'cpu' to 3 ...
DEBUG: Setting Fan PWM of 'cpu' to 2 ...
DEBUG: Setting Fan PWM of 'cpu' to 1 ...
DEBUG: Setting Fan PWM of 'cpu' to 0 ...
DEBUG: Setting Fan PWM of 'cpu' to 128 ...
INFO: Measuring RPM curve...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 20.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2694.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2694.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2694.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2694.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2694.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2694.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2694.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2694.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2694.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2694.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 183.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 173.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 173.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 32.000000)...
DEBUG: Fan cpu has settled (current RPM max diff: 4.000000)
DEBUG: Measuring RPM of cpu at PWM 0: 2511
DEBUG: Measured RPM of 2511 at PWM 0 for fan cpu
DEBUG: Setting Fan PWM of 'cpu' to 1 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 1 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 2 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 3 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 4 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 5 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 6 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 7 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 8 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 9 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 10 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 11 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 12 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 13 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 14 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 15 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 16 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 17 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 18 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 19 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 20 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 21 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 22 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 23 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 24 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 25 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 26 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 27 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 28 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 29 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 30 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 31 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 32 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 33 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 34 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 35 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 36 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 37 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 38 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 39 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 40 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 41 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 42 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 43 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 44 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 45 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 46 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 47 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 48 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 49 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 50 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 51 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 52 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 53 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 54 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 55 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 56 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 57 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 58 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 59 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 60 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 61 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 62 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 63 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 64 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 64 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 65 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 65 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 66 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 66 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 67 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 67 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 68 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 68 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 69 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 69 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 70 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 70 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 71 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 71 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 72 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 72 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 73 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 73 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 74 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 75 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 76 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 77 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 78 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 79 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 80 Actual: 128
INFO: PWM settings of fan 'cpu': Min 0, Start 100, Max 0
INFO: Starting controller loop for fan 'cpu'

It looks like this laptop's fan can only be set to three states using lm-sensors. Maybe that is affecting fan2go?
(Edit: corrected typo in third fan speed command)

sudo fan2go -i cpu fan speed [0-63] -->  PWM 0
sudo fan2go -i cpu fan speed [64-191] -->  PWM 128, RPM 2420 (approx)
sudo fan2go -i cpu fan speed [192-255] -->  PWM 255, RPM 4800 (approx)

Output from fan init (verbose, color and style flags don't seem to have any effect):

sudo fan2go -v --no-color --no-style -i cpu fan init

�[30;46m�[30;46m INFO �[0m�[0m �[96m�[96mUsing configuration file at: /etc/fan2go/fan2go.yaml�[0m�[0m
�[30;46m�[30;46m INFO �[0m�[0m �[96m�[96mUsing persistence at: /etc/fan2go/fan2go.db�[0m�[0m
�[30;46m�[30;46m INFO �[0m�[0m �[96m�[96mDeleting existing data for fan 'cpu'...�[0m�[0m
�[30;46m�[30;46m INFO �[0m�[0m �[96m�[96mComputing pwm map...�[0m�[0m
�[30;46m�[30;46m INFO �[0m�[0m �[96m�[96mMeasuring RPM curve...�[0m�[0m
�[30;42m�[30;42m SUCCESS �[0m�[0m �[32m�[32mDone!�[0m�[0m
�[30;46m�[30;46m INFO �[0m�[0m �[96m�[96mUsing configuration file at: /etc/fan2go/fan2go.yaml�[0m�[0m
cpu
                
  Min PWM    0  
  Start PWM  100
  Max PWM    0  

 2525 ┼───────────────────────────────────────────────────────────────────────────────────────────────────
                                                    RPM / PWM

(edit: here's the YAML config for fans, sensors, curves). I lowered the max temp to 65 degrees to try and (safely) trigger the maxPWM, but it doesn't kick in if a start a stress test...)

fans:
  - id: cpu
    hwmon:
      platform: dell_smm-isa-0
      index: 1
    neverStop: false
    curve: cpu_curve
    minPwm: 75
    startPwm: 100
    maxPwm: 195

# A list of sensors to monitor
sensors:
  - id: cpu_package
    hwmon:
      platform: coretemp-isa-0
      index: 1

curves:
  - id: cpu_curve
    linear:
      sensor: cpu_package
      steps:
        # Sensor value -> Speed (0-255)
        - 30: 0
        - 45: 125
        - 65: 195

@markusressel
Copy link
Owner

I found an issue with the config overrides for the pwm values not beeing applied correctly, I am working on a fix for that, so thx for making me aware 🤓

However, I don't think this will help you much because of the "three steps" you discovered.
Is it possible that the lm-sensors driver is only able to set some kind of "fan mode" (like silent, default, boost) using these?
In that case direct control probably isn't possible 😢

PS: I think you have a typo in the input range here:

sudo fan2go -i cpu fan speed [0-63] -->  PWM 255, RPM 4800 (approx)

@markusressel
Copy link
Owner

markusressel commented Oct 1, 2022

Actually, now that I think about it, it might still work, but only for those three fan speeds.
So you will not be able to control it very precisely.

@markusressel
Copy link
Owner

The fan curve measurement looks like nonesense to me. I guess something is still also controlling fan speeds, in a more precise way, even if you change between those 3 speeds though lm-sensors. You might be able to overcome this with the pwm overrides in the config though.

I have merged the fix and you should be able to update immediately and retest.

@shbon
Copy link
Author

shbon commented Oct 1, 2022

Ah, good that you've found something!

I think you're right regarding "fan mode". I used to use i8kutils before the kernel change deprecated the /proc/i8k interface. I think that was the same.

Using a userspace fan control is still beneficial though, as the BIOS fan control on this Dell Inspiron doesn't kick in until the CPU is at ~75 degrees! Fan is off before that point...

@shbon
Copy link
Author

shbon commented Oct 1, 2022

Pulled the changes and now fan2go now shows my maxPwd of 195 during initialisation (thanks), but I still can't get it to react to CPU temperature changes.

E.g. For the following configuration (and initial conditions cpu temp 30 degrees, BIOS fan control disabled, fan rpm 0)...

fans:
  - id: cpu
    hwmon:
      platform: dell_smm-isa-0
      index: 1
    neverStop: false
    curve: cpu_curve
    minPwm: 0
    startPwm: 100
    maxPwm: 195

# A list of sensors to monitor
sensors:
  - id: cpu_package
    hwmon:
      platform: coretemp-isa-0
      index: 1

curves:
  - id: cpu_curve
    linear:
      sensor: cpu_package
      steps:
        # Sensor value -> Speed (0-255)
        - 35: 0
        - 45: 64
        - 65: 195

... I was expecting fan2go to set RPM to 0 when entering its "controller loop" (as CPU temp is less than min curve temp). fan2go sets the PWM to 128 on entering its "controller loop" (or maybe the PWM 128 value set during initialisation doesn't get changed???).

Performing a stress test still doesn't trigger the max PWM at 65 degrees...

Running fan2go sensor -i cpu_package returns 31000 so it seems the temp sensor is configured properly...

Any thoughts?

New log of sudo fan2go -v (for completeness). Can we get some debug after fan2go enters its "controller loop"?:

New Log (expand) ``` INFO: Using configuration file at: /etc/fan2go/fan2go.yaml INFO: Gathering sensor data for cpu... INFO: Loading fan curve data for fan 'cpu'... WARNING: Fan 'cpu' has not yet been analyzed, starting initialization sequence... INFO: Computing pwm map... DEBUG: Setting Fan PWM of 'cpu' to 255 ... DEBUG: Setting Fan PWM of 'cpu' to 254 ... DEBUG: Setting Fan PWM of 'cpu' to 253 ... DEBUG: Setting Fan PWM of 'cpu' to 252 ... DEBUG: Setting Fan PWM of 'cpu' to 251 ... DEBUG: Setting Fan PWM of 'cpu' to 250 ... DEBUG: Setting Fan PWM of 'cpu' to 249 ... DEBUG: Setting Fan PWM of 'cpu' to 248 ... DEBUG: Setting Fan PWM of 'cpu' to 247 ... DEBUG: Setting Fan PWM of 'cpu' to 246 ... DEBUG: Setting Fan PWM of 'cpu' to 245 ... DEBUG: Setting Fan PWM of 'cpu' to 244 ... DEBUG: Setting Fan PWM of 'cpu' to 243 ... DEBUG: Setting Fan PWM of 'cpu' to 242 ... DEBUG: Setting Fan PWM of 'cpu' to 241 ... DEBUG: Setting Fan PWM of 'cpu' to 240 ... DEBUG: Setting Fan PWM of 'cpu' to 239 ... DEBUG: Setting Fan PWM of 'cpu' to 238 ... DEBUG: Setting Fan PWM of 'cpu' to 237 ... DEBUG: Setting Fan PWM of 'cpu' to 236 ... DEBUG: Setting Fan PWM of 'cpu' to 235 ... DEBUG: Setting Fan PWM of 'cpu' to 234 ... DEBUG: Setting Fan PWM of 'cpu' to 233 ... DEBUG: Setting Fan PWM of 'cpu' to 232 ... DEBUG: Setting Fan PWM of 'cpu' to 231 ... DEBUG: Setting Fan PWM of 'cpu' to 230 ... DEBUG: Setting Fan PWM of 'cpu' to 229 ... DEBUG: Setting Fan PWM of 'cpu' to 228 ... DEBUG: Setting Fan PWM of 'cpu' to 227 ... DEBUG: Setting Fan PWM of 'cpu' to 226 ... DEBUG: Setting Fan PWM of 'cpu' to 225 ... DEBUG: Setting Fan PWM of 'cpu' to 224 ... DEBUG: Setting Fan PWM of 'cpu' to 223 ... DEBUG: Setting Fan PWM of 'cpu' to 222 ... DEBUG: Setting Fan PWM of 'cpu' to 221 ... DEBUG: Setting Fan PWM of 'cpu' to 220 ... DEBUG: Setting Fan PWM of 'cpu' to 219 ... DEBUG: Setting Fan PWM of 'cpu' to 218 ... DEBUG: Setting Fan PWM of 'cpu' to 217 ... DEBUG: Setting Fan PWM of 'cpu' to 216 ... DEBUG: Setting Fan PWM of 'cpu' to 215 ... DEBUG: Setting Fan PWM of 'cpu' to 214 ... DEBUG: Setting Fan PWM of 'cpu' to 213 ... DEBUG: Setting Fan PWM of 'cpu' to 212 ... DEBUG: Setting Fan PWM of 'cpu' to 211 ... DEBUG: Setting Fan PWM of 'cpu' to 210 ... DEBUG: Setting Fan PWM of 'cpu' to 209 ... DEBUG: Setting Fan PWM of 'cpu' to 208 ... DEBUG: Setting Fan PWM of 'cpu' to 207 ... DEBUG: Setting Fan PWM of 'cpu' to 206 ... DEBUG: Setting Fan PWM of 'cpu' to 205 ... DEBUG: Setting Fan PWM of 'cpu' to 204 ... DEBUG: Setting Fan PWM of 'cpu' to 203 ... DEBUG: Setting Fan PWM of 'cpu' to 202 ... DEBUG: Setting Fan PWM of 'cpu' to 201 ... DEBUG: Setting Fan PWM of 'cpu' to 200 ... DEBUG: Setting Fan PWM of 'cpu' to 199 ... DEBUG: Setting Fan PWM of 'cpu' to 198 ... DEBUG: Setting Fan PWM of 'cpu' to 197 ... DEBUG: Setting Fan PWM of 'cpu' to 196 ... DEBUG: Setting Fan PWM of 'cpu' to 195 ... DEBUG: Setting Fan PWM of 'cpu' to 194 ... DEBUG: Setting Fan PWM of 'cpu' to 193 ... DEBUG: Setting Fan PWM of 'cpu' to 192 ... DEBUG: Setting Fan PWM of 'cpu' to 191 ... DEBUG: Setting Fan PWM of 'cpu' to 190 ... DEBUG: Setting Fan PWM of 'cpu' to 189 ... DEBUG: Setting Fan PWM of 'cpu' to 188 ... DEBUG: Setting Fan PWM of 'cpu' to 187 ... DEBUG: Setting Fan PWM of 'cpu' to 186 ... DEBUG: Setting Fan PWM of 'cpu' to 185 ... DEBUG: Setting Fan PWM of 'cpu' to 184 ... DEBUG: Setting Fan PWM of 'cpu' to 183 ... DEBUG: Setting Fan PWM of 'cpu' to 182 ... DEBUG: Setting Fan PWM of 'cpu' to 181 ... DEBUG: Setting Fan PWM of 'cpu' to 180 ... DEBUG: Setting Fan PWM of 'cpu' to 179 ... DEBUG: Setting Fan PWM of 'cpu' to 178 ... DEBUG: Setting Fan PWM of 'cpu' to 177 ... DEBUG: Setting Fan PWM of 'cpu' to 176 ... DEBUG: Setting Fan PWM of 'cpu' to 175 ... DEBUG: Setting Fan PWM of 'cpu' to 174 ... DEBUG: Setting Fan PWM of 'cpu' to 173 ... DEBUG: Setting Fan PWM of 'cpu' to 172 ... DEBUG: Setting Fan PWM of 'cpu' to 171 ... DEBUG: Setting Fan PWM of 'cpu' to 170 ... DEBUG: Setting Fan PWM of 'cpu' to 169 ... DEBUG: Setting Fan PWM of 'cpu' to 168 ... DEBUG: Setting Fan PWM of 'cpu' to 167 ... DEBUG: Setting Fan PWM of 'cpu' to 166 ... DEBUG: Setting Fan PWM of 'cpu' to 165 ... DEBUG: Setting Fan PWM of 'cpu' to 164 ... DEBUG: Setting Fan PWM of 'cpu' to 163 ... DEBUG: Setting Fan PWM of 'cpu' to 162 ... DEBUG: Setting Fan PWM of 'cpu' to 161 ... DEBUG: Setting Fan PWM of 'cpu' to 160 ... DEBUG: Setting Fan PWM of 'cpu' to 159 ... DEBUG: Setting Fan PWM of 'cpu' to 158 ... DEBUG: Setting Fan PWM of 'cpu' to 157 ... DEBUG: Setting Fan PWM of 'cpu' to 156 ... DEBUG: Setting Fan PWM of 'cpu' to 155 ... DEBUG: Setting Fan PWM of 'cpu' to 154 ... DEBUG: Setting Fan PWM of 'cpu' to 153 ... DEBUG: Setting Fan PWM of 'cpu' to 152 ... DEBUG: Setting Fan PWM of 'cpu' to 151 ... DEBUG: Setting Fan PWM of 'cpu' to 150 ... DEBUG: Setting Fan PWM of 'cpu' to 149 ... DEBUG: Setting Fan PWM of 'cpu' to 148 ... DEBUG: Setting Fan PWM of 'cpu' to 147 ... DEBUG: Setting Fan PWM of 'cpu' to 146 ... DEBUG: Setting Fan PWM of 'cpu' to 145 ... DEBUG: Setting Fan PWM of 'cpu' to 144 ... DEBUG: Setting Fan PWM of 'cpu' to 143 ... DEBUG: Setting Fan PWM of 'cpu' to 142 ... DEBUG: Setting Fan PWM of 'cpu' to 141 ... DEBUG: Setting Fan PWM of 'cpu' to 140 ... DEBUG: Setting Fan PWM of 'cpu' to 139 ... DEBUG: Setting Fan PWM of 'cpu' to 138 ... DEBUG: Setting Fan PWM of 'cpu' to 137 ... DEBUG: Setting Fan PWM of 'cpu' to 136 ... DEBUG: Setting Fan PWM of 'cpu' to 135 ... DEBUG: Setting Fan PWM of 'cpu' to 134 ... DEBUG: Setting Fan PWM of 'cpu' to 133 ... DEBUG: Setting Fan PWM of 'cpu' to 132 ... DEBUG: Setting Fan PWM of 'cpu' to 131 ... DEBUG: Setting Fan PWM of 'cpu' to 130 ... DEBUG: Setting Fan PWM of 'cpu' to 129 ... DEBUG: Setting Fan PWM of 'cpu' to 128 ... DEBUG: Setting Fan PWM of 'cpu' to 127 ... DEBUG: Setting Fan PWM of 'cpu' to 126 ... DEBUG: Setting Fan PWM of 'cpu' to 125 ... DEBUG: Setting Fan PWM of 'cpu' to 124 ... DEBUG: Setting Fan PWM of 'cpu' to 123 ... DEBUG: Setting Fan PWM of 'cpu' to 122 ... DEBUG: Setting Fan PWM of 'cpu' to 121 ... DEBUG: Setting Fan PWM of 'cpu' to 120 ... DEBUG: Setting Fan PWM of 'cpu' to 119 ... DEBUG: Setting Fan PWM of 'cpu' to 118 ... DEBUG: Setting Fan PWM of 'cpu' to 117 ... DEBUG: Setting Fan PWM of 'cpu' to 116 ... DEBUG: Setting Fan PWM of 'cpu' to 115 ... DEBUG: Setting Fan PWM of 'cpu' to 114 ... DEBUG: Setting Fan PWM of 'cpu' to 113 ... DEBUG: Setting Fan PWM of 'cpu' to 112 ... DEBUG: Setting Fan PWM of 'cpu' to 111 ... DEBUG: Setting Fan PWM of 'cpu' to 110 ... DEBUG: Setting Fan PWM of 'cpu' to 109 ... DEBUG: Setting Fan PWM of 'cpu' to 108 ... DEBUG: Setting Fan PWM of 'cpu' to 107 ... DEBUG: Setting Fan PWM of 'cpu' to 106 ... DEBUG: Setting Fan PWM of 'cpu' to 105 ... DEBUG: Setting Fan PWM of 'cpu' to 104 ... DEBUG: Setting Fan PWM of 'cpu' to 103 ... DEBUG: Setting Fan PWM of 'cpu' to 102 ... DEBUG: Setting Fan PWM of 'cpu' to 101 ... DEBUG: Setting Fan PWM of 'cpu' to 100 ... DEBUG: Setting Fan PWM of 'cpu' to 99 ... DEBUG: Setting Fan PWM of 'cpu' to 98 ... DEBUG: Setting Fan PWM of 'cpu' to 97 ... DEBUG: Setting Fan PWM of 'cpu' to 96 ... DEBUG: Setting Fan PWM of 'cpu' to 95 ... DEBUG: Setting Fan PWM of 'cpu' to 94 ... DEBUG: Setting Fan PWM of 'cpu' to 93 ... DEBUG: Setting Fan PWM of 'cpu' to 92 ... DEBUG: Setting Fan PWM of 'cpu' to 91 ... DEBUG: Setting Fan PWM of 'cpu' to 90 ... DEBUG: Setting Fan PWM of 'cpu' to 89 ... DEBUG: Setting Fan PWM of 'cpu' to 88 ... DEBUG: Setting Fan PWM of 'cpu' to 87 ... DEBUG: Setting Fan PWM of 'cpu' to 86 ... DEBUG: Setting Fan PWM of 'cpu' to 85 ... DEBUG: Setting Fan PWM of 'cpu' to 84 ... DEBUG: Setting Fan PWM of 'cpu' to 83 ... DEBUG: Setting Fan PWM of 'cpu' to 82 ... DEBUG: Setting Fan PWM of 'cpu' to 81 ... DEBUG: Setting Fan PWM of 'cpu' to 80 ... DEBUG: Setting Fan PWM of 'cpu' to 79 ... DEBUG: Setting Fan PWM of 'cpu' to 78 ... DEBUG: Setting Fan PWM of 'cpu' to 77 ... DEBUG: Setting Fan PWM of 'cpu' to 76 ... DEBUG: Setting Fan PWM of 'cpu' to 75 ... DEBUG: Setting Fan PWM of 'cpu' to 74 ... DEBUG: Setting Fan PWM of 'cpu' to 73 ... DEBUG: Setting Fan PWM of 'cpu' to 72 ... DEBUG: Setting Fan PWM of 'cpu' to 71 ... DEBUG: Setting Fan PWM of 'cpu' to 70 ... DEBUG: Setting Fan PWM of 'cpu' to 69 ... DEBUG: Setting Fan PWM of 'cpu' to 68 ... DEBUG: Setting Fan PWM of 'cpu' to 67 ... DEBUG: Setting Fan PWM of 'cpu' to 66 ... DEBUG: Setting Fan PWM of 'cpu' to 65 ... DEBUG: Setting Fan PWM of 'cpu' to 64 ... DEBUG: Setting Fan PWM of 'cpu' to 63 ... DEBUG: Setting Fan PWM of 'cpu' to 62 ... DEBUG: Setting Fan PWM of 'cpu' to 61 ... DEBUG: Setting Fan PWM of 'cpu' to 60 ... DEBUG: Setting Fan PWM of 'cpu' to 59 ... DEBUG: Setting Fan PWM of 'cpu' to 58 ... DEBUG: Setting Fan PWM of 'cpu' to 57 ... DEBUG: Setting Fan PWM of 'cpu' to 56 ... DEBUG: Setting Fan PWM of 'cpu' to 55 ... DEBUG: Setting Fan PWM of 'cpu' to 54 ... DEBUG: Setting Fan PWM of 'cpu' to 53 ... DEBUG: Setting Fan PWM of 'cpu' to 52 ... DEBUG: Setting Fan PWM of 'cpu' to 51 ... DEBUG: Setting Fan PWM of 'cpu' to 50 ... DEBUG: Setting Fan PWM of 'cpu' to 49 ... DEBUG: Setting Fan PWM of 'cpu' to 48 ... DEBUG: Setting Fan PWM of 'cpu' to 47 ... DEBUG: Setting Fan PWM of 'cpu' to 46 ... DEBUG: Setting Fan PWM of 'cpu' to 45 ... DEBUG: Setting Fan PWM of 'cpu' to 44 ... DEBUG: Setting Fan PWM of 'cpu' to 43 ... DEBUG: Setting Fan PWM of 'cpu' to 42 ... DEBUG: Setting Fan PWM of 'cpu' to 41 ... DEBUG: Setting Fan PWM of 'cpu' to 40 ... DEBUG: Setting Fan PWM of 'cpu' to 39 ... DEBUG: Setting Fan PWM of 'cpu' to 38 ... DEBUG: Setting Fan PWM of 'cpu' to 37 ... DEBUG: Setting Fan PWM of 'cpu' to 36 ... DEBUG: Setting Fan PWM of 'cpu' to 35 ... DEBUG: Setting Fan PWM of 'cpu' to 34 ... DEBUG: Setting Fan PWM of 'cpu' to 33 ... DEBUG: Setting Fan PWM of 'cpu' to 32 ... DEBUG: Setting Fan PWM of 'cpu' to 31 ... DEBUG: Setting Fan PWM of 'cpu' to 30 ... DEBUG: Setting Fan PWM of 'cpu' to 29 ... DEBUG: Setting Fan PWM of 'cpu' to 28 ... DEBUG: Setting Fan PWM of 'cpu' to 27 ... DEBUG: Setting Fan PWM of 'cpu' to 26 ... DEBUG: Setting Fan PWM of 'cpu' to 25 ... DEBUG: Setting Fan PWM of 'cpu' to 24 ... DEBUG: Setting Fan PWM of 'cpu' to 23 ... DEBUG: Setting Fan PWM of 'cpu' to 22 ... DEBUG: Setting Fan PWM of 'cpu' to 21 ... DEBUG: Setting Fan PWM of 'cpu' to 20 ... DEBUG: Setting Fan PWM of 'cpu' to 19 ... DEBUG: Setting Fan PWM of 'cpu' to 18 ... DEBUG: Setting Fan PWM of 'cpu' to 17 ... DEBUG: Setting Fan PWM of 'cpu' to 16 ... DEBUG: Setting Fan PWM of 'cpu' to 15 ... DEBUG: Setting Fan PWM of 'cpu' to 14 ... DEBUG: Setting Fan PWM of 'cpu' to 13 ... DEBUG: Setting Fan PWM of 'cpu' to 12 ... DEBUG: Setting Fan PWM of 'cpu' to 11 ... DEBUG: Setting Fan PWM of 'cpu' to 10 ... DEBUG: Setting Fan PWM of 'cpu' to 9 ... DEBUG: Setting Fan PWM of 'cpu' to 8 ... DEBUG: Setting Fan PWM of 'cpu' to 7 ... DEBUG: Setting Fan PWM of 'cpu' to 6 ... DEBUG: Setting Fan PWM of 'cpu' to 5 ... DEBUG: Setting Fan PWM of 'cpu' to 4 ... DEBUG: Setting Fan PWM of 'cpu' to 3 ... DEBUG: Setting Fan PWM of 'cpu' to 2 ... DEBUG: Setting Fan PWM of 'cpu' to 1 ... DEBUG: Setting Fan PWM of 'cpu' to 0 ... DEBUG: Setting Fan PWM of 'cpu' to 128 ... INFO: Measuring RPM curve... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 20.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 198.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 172.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 167.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 27.000000)... DEBUG: Fan cpu has settled (current RPM max diff: 4.000000) DEBUG: Measuring RPM of cpu at PWM 0: 2511 DEBUG: Measured RPM of 2511 at PWM 0 for fan cpu DEBUG: Setting Fan PWM of 'cpu' to 1 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 1 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 2 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 3 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 4 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 5 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 6 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 7 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 8 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 9 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 10 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 11 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 12 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 13 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 14 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 15 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 16 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 17 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 18 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 19 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 20 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 21 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 22 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 23 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 24 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 25 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 26 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 27 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 28 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 29 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 30 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 31 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 32 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 33 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 34 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 35 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 36 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 37 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 38 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 39 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 40 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 41 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 42 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 43 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 44 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 45 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 46 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 47 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 48 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 49 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 50 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 51 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 52 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 53 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 54 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 55 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 56 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 57 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 58 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 59 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 60 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 61 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 62 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 63 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 64 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 64 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 65 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 65 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 66 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 66 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 67 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 67 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 68 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 68 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 69 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 69 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 70 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 70 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 71 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 71 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 72 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 72 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 73 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 73 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 74 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 74 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 75 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 75 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 76 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 76 Actual: 128 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 77 Actual: 128 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 78 Actual: 128 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 79 Actual: 128 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 80 Actual: 128 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 81 Actual: 128 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 82 Actual: 128 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 83 Actual: 128 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 84 Actual: 128 INFO: PWM settings of fan 'cpu': Min 0, Start 100, Max 195 INFO: Starting controller loop for fan 'cpu'
</details>

@shbon
Copy link
Author

shbon commented Oct 1, 2022

Hmmm, an extra line has now appeared on the debug after an unknown time period (minutes?), which has turned the fan off:

DEBUG: Setting Fan PWM of 'cpu' to 63...

Running a further stress test doesn't illicit any (immediate) response from fan2go...

@markusressel
Copy link
Owner

markusressel commented Oct 1, 2022

I was expecting fan2go to set RPM to 0 when entering its "controller loop"

Just to be precise here: fan2go only sets PWM values, it (currently) cannot set target RPM values.

fan2go sets the PWM to 128 on entering its "controller loop" (or maybe the PWM 128 value set during initialisation doesn't get changed???).

After computing the "pwm map" fan2go sets the PWM to the startPwm value. Since you set a value of 100 in your config, fan2go tries to find the closest value to it that is part of the "pwm map", which results in 128 beeing picked (out of 0, 128 and 255 I guess). I think this was done to make sure the fan is somewhere in the middle of its operating range before continuing, but we can improve this if necessary.

It doesn't look right that the initialization stops at a pwm value of just 84, when you expect 0, 128 and 255. I have added some debug output to print the values of the pwm map, as well as the distinct pwm targets for a given fan (output abbreviated for readability):

DEBUG: Distinct PWM value targets of fan gpu: [0 ............... 255]
DEBUG: PWM map of fan 'gpu': map[0:0 1:0 2:0 ...........  254:252 255:255]

Please update again and rerun to see what those output.

Also keep in mind that fan2go by default reacts relatively slowly to changes in temperature, so be sure to give it a couple of seconds before giving up, or change the configuration for determining how fast fan2go should update and make changes.

Can we get some debug after fan2go enters its "controller loop"?:

I think there is currently only log output if the pwm needs to changed from its previously set value. If fan2go figures that 128 is still the correct pwm value, nothing will be printed, even in verbose mode.

@shbon
Copy link
Author

shbon commented Oct 1, 2022

Thanks!
Yes, I meant PWM 0 rather than RPM 0 (my minPwm = 0).

Ah, I thought startPwm was the "safe start" PWM value as per FanControl. i.e. If you're turning the fan on, when its current RPM is 0, use this startPWM value...

I think I'm giving it enough time. After fan2go stopped the fan (see my post just before yours), I reran my (slow) stress test. It takes about 15 secs to ramp the temp from 30 to 75 degrees, so there should be enough time for a reaction. My YAML config has default values for all the timing settings. I've included my full config for reference at the end.

Pulled the change. New log. There seems to be some strange values at the end of the PWM map...:

New log (Expand)
INFO: Using configuration file at: /etc/fan2go/fan2go.yaml
INFO: Gathering sensor data for cpu...
INFO: Loading fan curve data for fan 'cpu'...
WARNING: Fan 'cpu' has not yet been analyzed, starting initialization sequence...
INFO: Computing pwm map...
DEBUG: Setting Fan PWM of 'cpu' to 255 ...
DEBUG: Setting Fan PWM of 'cpu' to 254 ...
DEBUG: Setting Fan PWM of 'cpu' to 253 ...
DEBUG: Setting Fan PWM of 'cpu' to 252 ...
DEBUG: Setting Fan PWM of 'cpu' to 251 ...
DEBUG: Setting Fan PWM of 'cpu' to 250 ...
DEBUG: Setting Fan PWM of 'cpu' to 249 ...
DEBUG: Setting Fan PWM of 'cpu' to 248 ...
DEBUG: Setting Fan PWM of 'cpu' to 247 ...
DEBUG: Setting Fan PWM of 'cpu' to 246 ...
DEBUG: Setting Fan PWM of 'cpu' to 245 ...
DEBUG: Setting Fan PWM of 'cpu' to 244 ...
DEBUG: Setting Fan PWM of 'cpu' to 243 ...
DEBUG: Setting Fan PWM of 'cpu' to 242 ...
DEBUG: Setting Fan PWM of 'cpu' to 241 ...
DEBUG: Setting Fan PWM of 'cpu' to 240 ...
DEBUG: Setting Fan PWM of 'cpu' to 239 ...
DEBUG: Setting Fan PWM of 'cpu' to 238 ...
DEBUG: Setting Fan PWM of 'cpu' to 237 ...
DEBUG: Setting Fan PWM of 'cpu' to 236 ...
DEBUG: Setting Fan PWM of 'cpu' to 235 ...
DEBUG: Setting Fan PWM of 'cpu' to 234 ...
DEBUG: Setting Fan PWM of 'cpu' to 233 ...
DEBUG: Setting Fan PWM of 'cpu' to 232 ...
DEBUG: Setting Fan PWM of 'cpu' to 231 ...
DEBUG: Setting Fan PWM of 'cpu' to 230 ...
DEBUG: Setting Fan PWM of 'cpu' to 229 ...
DEBUG: Setting Fan PWM of 'cpu' to 228 ...
DEBUG: Setting Fan PWM of 'cpu' to 227 ...
DEBUG: Setting Fan PWM of 'cpu' to 226 ...
DEBUG: Setting Fan PWM of 'cpu' to 225 ...
DEBUG: Setting Fan PWM of 'cpu' to 224 ...
DEBUG: Setting Fan PWM of 'cpu' to 223 ...
DEBUG: Setting Fan PWM of 'cpu' to 222 ...
DEBUG: Setting Fan PWM of 'cpu' to 221 ...
DEBUG: Setting Fan PWM of 'cpu' to 220 ...
DEBUG: Setting Fan PWM of 'cpu' to 219 ...
DEBUG: Setting Fan PWM of 'cpu' to 218 ...
DEBUG: Setting Fan PWM of 'cpu' to 217 ...
DEBUG: Setting Fan PWM of 'cpu' to 216 ...
DEBUG: Setting Fan PWM of 'cpu' to 215 ...
DEBUG: Setting Fan PWM of 'cpu' to 214 ...
DEBUG: Setting Fan PWM of 'cpu' to 213 ...
DEBUG: Setting Fan PWM of 'cpu' to 212 ...
DEBUG: Setting Fan PWM of 'cpu' to 211 ...
DEBUG: Setting Fan PWM of 'cpu' to 210 ...
DEBUG: Setting Fan PWM of 'cpu' to 209 ...
DEBUG: Setting Fan PWM of 'cpu' to 208 ...
DEBUG: Setting Fan PWM of 'cpu' to 207 ...
DEBUG: Setting Fan PWM of 'cpu' to 206 ...
DEBUG: Setting Fan PWM of 'cpu' to 205 ...
DEBUG: Setting Fan PWM of 'cpu' to 204 ...
DEBUG: Setting Fan PWM of 'cpu' to 203 ...
DEBUG: Setting Fan PWM of 'cpu' to 202 ...
DEBUG: Setting Fan PWM of 'cpu' to 201 ...
DEBUG: Setting Fan PWM of 'cpu' to 200 ...
DEBUG: Setting Fan PWM of 'cpu' to 199 ...
DEBUG: Setting Fan PWM of 'cpu' to 198 ...
DEBUG: Setting Fan PWM of 'cpu' to 197 ...
DEBUG: Setting Fan PWM of 'cpu' to 196 ...
DEBUG: Setting Fan PWM of 'cpu' to 195 ...
DEBUG: Setting Fan PWM of 'cpu' to 194 ...
DEBUG: Setting Fan PWM of 'cpu' to 193 ...
DEBUG: Setting Fan PWM of 'cpu' to 192 ...
DEBUG: Setting Fan PWM of 'cpu' to 191 ...
DEBUG: Setting Fan PWM of 'cpu' to 190 ...
DEBUG: Setting Fan PWM of 'cpu' to 189 ...
DEBUG: Setting Fan PWM of 'cpu' to 188 ...
DEBUG: Setting Fan PWM of 'cpu' to 187 ...
DEBUG: Setting Fan PWM of 'cpu' to 186 ...
DEBUG: Setting Fan PWM of 'cpu' to 185 ...
DEBUG: Setting Fan PWM of 'cpu' to 184 ...
DEBUG: Setting Fan PWM of 'cpu' to 183 ...
DEBUG: Setting Fan PWM of 'cpu' to 182 ...
DEBUG: Setting Fan PWM of 'cpu' to 181 ...
DEBUG: Setting Fan PWM of 'cpu' to 180 ...
DEBUG: Setting Fan PWM of 'cpu' to 179 ...
DEBUG: Setting Fan PWM of 'cpu' to 178 ...
DEBUG: Setting Fan PWM of 'cpu' to 177 ...
DEBUG: Setting Fan PWM of 'cpu' to 176 ...
DEBUG: Setting Fan PWM of 'cpu' to 175 ...
DEBUG: Setting Fan PWM of 'cpu' to 174 ...
DEBUG: Setting Fan PWM of 'cpu' to 173 ...
DEBUG: Setting Fan PWM of 'cpu' to 172 ...
DEBUG: Setting Fan PWM of 'cpu' to 171 ...
DEBUG: Setting Fan PWM of 'cpu' to 170 ...
DEBUG: Setting Fan PWM of 'cpu' to 169 ...
DEBUG: Setting Fan PWM of 'cpu' to 168 ...
DEBUG: Setting Fan PWM of 'cpu' to 167 ...
DEBUG: Setting Fan PWM of 'cpu' to 166 ...
DEBUG: Setting Fan PWM of 'cpu' to 165 ...
DEBUG: Setting Fan PWM of 'cpu' to 164 ...
DEBUG: Setting Fan PWM of 'cpu' to 163 ...
DEBUG: Setting Fan PWM of 'cpu' to 162 ...
DEBUG: Setting Fan PWM of 'cpu' to 161 ...
DEBUG: Setting Fan PWM of 'cpu' to 160 ...
DEBUG: Setting Fan PWM of 'cpu' to 159 ...
DEBUG: Setting Fan PWM of 'cpu' to 158 ...
DEBUG: Setting Fan PWM of 'cpu' to 157 ...
DEBUG: Setting Fan PWM of 'cpu' to 156 ...
DEBUG: Setting Fan PWM of 'cpu' to 155 ...
DEBUG: Setting Fan PWM of 'cpu' to 154 ...
DEBUG: Setting Fan PWM of 'cpu' to 153 ...
DEBUG: Setting Fan PWM of 'cpu' to 152 ...
DEBUG: Setting Fan PWM of 'cpu' to 151 ...
DEBUG: Setting Fan PWM of 'cpu' to 150 ...
DEBUG: Setting Fan PWM of 'cpu' to 149 ...
DEBUG: Setting Fan PWM of 'cpu' to 148 ...
DEBUG: Setting Fan PWM of 'cpu' to 147 ...
DEBUG: Setting Fan PWM of 'cpu' to 146 ...
DEBUG: Setting Fan PWM of 'cpu' to 145 ...
DEBUG: Setting Fan PWM of 'cpu' to 144 ...
DEBUG: Setting Fan PWM of 'cpu' to 143 ...
DEBUG: Setting Fan PWM of 'cpu' to 142 ...
DEBUG: Setting Fan PWM of 'cpu' to 141 ...
DEBUG: Setting Fan PWM of 'cpu' to 140 ...
DEBUG: Setting Fan PWM of 'cpu' to 139 ...
DEBUG: Setting Fan PWM of 'cpu' to 138 ...
DEBUG: Setting Fan PWM of 'cpu' to 137 ...
DEBUG: Setting Fan PWM of 'cpu' to 136 ...
DEBUG: Setting Fan PWM of 'cpu' to 135 ...
DEBUG: Setting Fan PWM of 'cpu' to 134 ...
DEBUG: Setting Fan PWM of 'cpu' to 133 ...
DEBUG: Setting Fan PWM of 'cpu' to 132 ...
DEBUG: Setting Fan PWM of 'cpu' to 131 ...
DEBUG: Setting Fan PWM of 'cpu' to 130 ...
DEBUG: Setting Fan PWM of 'cpu' to 129 ...
DEBUG: Setting Fan PWM of 'cpu' to 128 ...
DEBUG: Setting Fan PWM of 'cpu' to 127 ...
DEBUG: Setting Fan PWM of 'cpu' to 126 ...
DEBUG: Setting Fan PWM of 'cpu' to 125 ...
DEBUG: Setting Fan PWM of 'cpu' to 124 ...
DEBUG: Setting Fan PWM of 'cpu' to 123 ...
DEBUG: Setting Fan PWM of 'cpu' to 122 ...
DEBUG: Setting Fan PWM of 'cpu' to 121 ...
DEBUG: Setting Fan PWM of 'cpu' to 120 ...
DEBUG: Setting Fan PWM of 'cpu' to 119 ...
DEBUG: Setting Fan PWM of 'cpu' to 118 ...
DEBUG: Setting Fan PWM of 'cpu' to 117 ...
DEBUG: Setting Fan PWM of 'cpu' to 116 ...
DEBUG: Setting Fan PWM of 'cpu' to 115 ...
DEBUG: Setting Fan PWM of 'cpu' to 114 ...
DEBUG: Setting Fan PWM of 'cpu' to 113 ...
DEBUG: Setting Fan PWM of 'cpu' to 112 ...
DEBUG: Setting Fan PWM of 'cpu' to 111 ...
DEBUG: Setting Fan PWM of 'cpu' to 110 ...
DEBUG: Setting Fan PWM of 'cpu' to 109 ...
DEBUG: Setting Fan PWM of 'cpu' to 108 ...
DEBUG: Setting Fan PWM of 'cpu' to 107 ...
DEBUG: Setting Fan PWM of 'cpu' to 106 ...
DEBUG: Setting Fan PWM of 'cpu' to 105 ...
DEBUG: Setting Fan PWM of 'cpu' to 104 ...
DEBUG: Setting Fan PWM of 'cpu' to 103 ...
DEBUG: Setting Fan PWM of 'cpu' to 102 ...
DEBUG: Setting Fan PWM of 'cpu' to 101 ...
DEBUG: Setting Fan PWM of 'cpu' to 100 ...
DEBUG: Setting Fan PWM of 'cpu' to 99 ...
DEBUG: Setting Fan PWM of 'cpu' to 98 ...
DEBUG: Setting Fan PWM of 'cpu' to 97 ...
DEBUG: Setting Fan PWM of 'cpu' to 96 ...
DEBUG: Setting Fan PWM of 'cpu' to 95 ...
DEBUG: Setting Fan PWM of 'cpu' to 94 ...
DEBUG: Setting Fan PWM of 'cpu' to 93 ...
DEBUG: Setting Fan PWM of 'cpu' to 92 ...
DEBUG: Setting Fan PWM of 'cpu' to 91 ...
DEBUG: Setting Fan PWM of 'cpu' to 90 ...
DEBUG: Setting Fan PWM of 'cpu' to 89 ...
DEBUG: Setting Fan PWM of 'cpu' to 88 ...
DEBUG: Setting Fan PWM of 'cpu' to 87 ...
DEBUG: Setting Fan PWM of 'cpu' to 86 ...
DEBUG: Setting Fan PWM of 'cpu' to 85 ...
DEBUG: Setting Fan PWM of 'cpu' to 84 ...
DEBUG: Setting Fan PWM of 'cpu' to 83 ...
DEBUG: Setting Fan PWM of 'cpu' to 82 ...
DEBUG: Setting Fan PWM of 'cpu' to 81 ...
DEBUG: Setting Fan PWM of 'cpu' to 80 ...
DEBUG: Setting Fan PWM of 'cpu' to 79 ...
DEBUG: Setting Fan PWM of 'cpu' to 78 ...
DEBUG: Setting Fan PWM of 'cpu' to 77 ...
DEBUG: Setting Fan PWM of 'cpu' to 76 ...
DEBUG: Setting Fan PWM of 'cpu' to 75 ...
DEBUG: Setting Fan PWM of 'cpu' to 74 ...
DEBUG: Setting Fan PWM of 'cpu' to 73 ...
DEBUG: Setting Fan PWM of 'cpu' to 72 ...
DEBUG: Setting Fan PWM of 'cpu' to 71 ...
DEBUG: Setting Fan PWM of 'cpu' to 70 ...
DEBUG: Setting Fan PWM of 'cpu' to 69 ...
DEBUG: Setting Fan PWM of 'cpu' to 68 ...
DEBUG: Setting Fan PWM of 'cpu' to 67 ...
DEBUG: Setting Fan PWM of 'cpu' to 66 ...
DEBUG: Setting Fan PWM of 'cpu' to 65 ...
DEBUG: Setting Fan PWM of 'cpu' to 64 ...
DEBUG: Setting Fan PWM of 'cpu' to 63 ...
DEBUG: Setting Fan PWM of 'cpu' to 62 ...
DEBUG: Setting Fan PWM of 'cpu' to 61 ...
DEBUG: Setting Fan PWM of 'cpu' to 60 ...
DEBUG: Setting Fan PWM of 'cpu' to 59 ...
DEBUG: Setting Fan PWM of 'cpu' to 58 ...
DEBUG: Setting Fan PWM of 'cpu' to 57 ...
DEBUG: Setting Fan PWM of 'cpu' to 56 ...
DEBUG: Setting Fan PWM of 'cpu' to 55 ...
DEBUG: Setting Fan PWM of 'cpu' to 54 ...
DEBUG: Setting Fan PWM of 'cpu' to 53 ...
DEBUG: Setting Fan PWM of 'cpu' to 52 ...
DEBUG: Setting Fan PWM of 'cpu' to 51 ...
DEBUG: Setting Fan PWM of 'cpu' to 50 ...
DEBUG: Setting Fan PWM of 'cpu' to 49 ...
DEBUG: Setting Fan PWM of 'cpu' to 48 ...
DEBUG: Setting Fan PWM of 'cpu' to 47 ...
DEBUG: Setting Fan PWM of 'cpu' to 46 ...
DEBUG: Setting Fan PWM of 'cpu' to 45 ...
DEBUG: Setting Fan PWM of 'cpu' to 44 ...
DEBUG: Setting Fan PWM of 'cpu' to 43 ...
DEBUG: Setting Fan PWM of 'cpu' to 42 ...
DEBUG: Setting Fan PWM of 'cpu' to 41 ...
DEBUG: Setting Fan PWM of 'cpu' to 40 ...
DEBUG: Setting Fan PWM of 'cpu' to 39 ...
DEBUG: Setting Fan PWM of 'cpu' to 38 ...
DEBUG: Setting Fan PWM of 'cpu' to 37 ...
DEBUG: Setting Fan PWM of 'cpu' to 36 ...
DEBUG: Setting Fan PWM of 'cpu' to 35 ...
DEBUG: Setting Fan PWM of 'cpu' to 34 ...
DEBUG: Setting Fan PWM of 'cpu' to 33 ...
DEBUG: Setting Fan PWM of 'cpu' to 32 ...
DEBUG: Setting Fan PWM of 'cpu' to 31 ...
DEBUG: Setting Fan PWM of 'cpu' to 30 ...
DEBUG: Setting Fan PWM of 'cpu' to 29 ...
DEBUG: Setting Fan PWM of 'cpu' to 28 ...
DEBUG: Setting Fan PWM of 'cpu' to 27 ...
DEBUG: Setting Fan PWM of 'cpu' to 26 ...
DEBUG: Setting Fan PWM of 'cpu' to 25 ...
DEBUG: Setting Fan PWM of 'cpu' to 24 ...
DEBUG: Setting Fan PWM of 'cpu' to 23 ...
DEBUG: Setting Fan PWM of 'cpu' to 22 ...
DEBUG: Setting Fan PWM of 'cpu' to 21 ...
DEBUG: Setting Fan PWM of 'cpu' to 20 ...
DEBUG: Setting Fan PWM of 'cpu' to 19 ...
DEBUG: Setting Fan PWM of 'cpu' to 18 ...
DEBUG: Setting Fan PWM of 'cpu' to 17 ...
DEBUG: Setting Fan PWM of 'cpu' to 16 ...
DEBUG: Setting Fan PWM of 'cpu' to 15 ...
DEBUG: Setting Fan PWM of 'cpu' to 14 ...
DEBUG: Setting Fan PWM of 'cpu' to 13 ...
DEBUG: Setting Fan PWM of 'cpu' to 12 ...
DEBUG: Setting Fan PWM of 'cpu' to 11 ...
DEBUG: Setting Fan PWM of 'cpu' to 10 ...
DEBUG: Setting Fan PWM of 'cpu' to 9 ...
DEBUG: Setting Fan PWM of 'cpu' to 8 ...
DEBUG: Setting Fan PWM of 'cpu' to 7 ...
DEBUG: Setting Fan PWM of 'cpu' to 6 ...
DEBUG: Setting Fan PWM of 'cpu' to 5 ...
DEBUG: Setting Fan PWM of 'cpu' to 4 ...
DEBUG: Setting Fan PWM of 'cpu' to 3 ...
DEBUG: Setting Fan PWM of 'cpu' to 2 ...
DEBUG: Setting Fan PWM of 'cpu' to 1 ...
DEBUG: Setting Fan PWM of 'cpu' to 0 ...
DEBUG: Setting Fan PWM of 'cpu' to 128 ...
DEBUG: Distinct PWM value targets of fan cpu: [0 9 10 12 13 15 16 21 22 23 27 28 29 30 32 33 35 39 41 42 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 72 80 89 92 98 102 103 113 114 117 121 127 143 146 150 155 156 160 161 177 180 184 185 186 187 189 190 192 196 200 201 203 204 209 210 215 218 221 224 227 229 232 233 235 236 240 241 246 247 248 251 252 253]
INFO: Measuring RPM curve...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 20.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2576.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2576.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2576.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2576.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2576.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2576.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2576.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2576.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2576.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2576.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 266.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 153.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 146.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 22.000000)...
DEBUG: Fan cpu has settled (current RPM max diff: 6.000000)
DEBUG: Measuring RPM of cpu at PWM 0: 2538
DEBUG: Measured RPM of 2538 at PWM 0 for fan cpu
DEBUG: Setting Fan PWM of 'cpu' to 1 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 1 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 2 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 3 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 4 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 5 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 6 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 7 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 8 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 9 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 10 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 11 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 12 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 13 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 14 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 15 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 16 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 17 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 18 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 19 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 20 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 21 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 22 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 23 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 24 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 25 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 26 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 27 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 28 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 29 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 30 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 31 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 32 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 33 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 34 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 35 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 36 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 37 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 38 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 39 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 40 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 41 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 42 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 43 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 44 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 45 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 46 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 47 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 48 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 49 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 50 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 51 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 52 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 53 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 54 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 55 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 56 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 57 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 58 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 59 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 60 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 61 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 62 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 63 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 64 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 64 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 65 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 65 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 66 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 66 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 67 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 67 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 68 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 68 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 69 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 69 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 70 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 70 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 71 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 71 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 72 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 72 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 73 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 73 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 74 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 74 Actual: 0
DEBUG: Setting Fan PWM of 'cpu' to 75 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 75 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 76 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 77 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 78 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 79 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 80 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 81 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 82 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 83 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 84 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 85 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 86 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 87 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 88 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 89 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 90 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 91 Actual: 128
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 92 Actual: 128
DEBUG: Distinct PWM value targets of fan cpu: [0 2 3 4 6 7 8 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 30 33 34 37 39 40 41 43 44 47 48 51 56 58 60 62 65 67 69 73 74 75 78 81 83 84 87 89 90 92 98 100 105 107 109 113 114 116 117 125 126 128 129 132 134 136 139 140 141 147 150 153 157 158 161 178 180 195 201 204 208 217 220 223 232 235 243 244 245 246 247 250 251 252 253 254 255]
DEBUG: PWM map of fan 'cpu': map[0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0 22:0 23:0 24:0 25:0 26:0 27:0 28:0 29:0 30:0 31:0 32:0 33:0 34:0 35:0 36:0 37:0 38:0 39:0 40:0 41:0 42:0 43:0 44:0 45:0 46:0 47:0 48:0 49:0 50:0 51:0 52:0 53:0 54:0 55:0 56:0 57:0 58:0 59:0 60:0 61:0 62:0 63:0 64:128 65:128 66:128 67:128 68:128 69:128 70:128 71:128 72:128 73:128 74:128 75:128 76:128 77:128 78:128 79:128 80:128 81:128 82:128 83:128 84:128 85:128 86:128 87:128 88:128 89:128 90:128 91:128 92:128 93:128 94:128 95:128 96:128 97:128 98:128 99:128 100:128 101:128 102:128 103:128 104:128 105:128 106:128 107:128 108:128 109:128 110:128 111:128 112:128 113:128 114:128 115:128 116:128 117:128 118:128 119:128 120:128 121:128 122:128 123:128 124:128 125:128 126:128 127:128 128:128 129:128 130:128 131:128 132:128 133:128 134:128 135:128 136:128 137:128 138:128 139:128 140:128 141:128 142:128 143:128 144:128 145:128 146:128 147:128 148:128 149:128 150:128 151:128 152:128 153:128 154:128 155:128 156:128 157:128 158:128 159:128 160:128 161:128 162:128 163:128 164:128 165:128 166:128 167:128 168:128 169:128 170:128 171:128 172:128 173:128 174:128 175:128 176:128 177:128 178:128 179:128 180:128 181:128 182:128 183:128 184:128 185:128 186:128 187:128 188:128 189:128 190:128 191:128 192:128 193:128 194:128 195:128 196:128 197:128 198:128 199:128 200:128 201:128 202:128 203:128 204:128 205:128 206:128 207:128 208:128 209:128 210:128 211:128 212:128 213:128 214:128 215:128 216:128 217:128 218:128 219:128 220:128 221:128 222:128 223:128 224:128 225:128 226:128 227:128 228:128 229:128 230:128 231:128 232:128 233:128 234:128 235:128 236:128 237:128 238:128 239:128 240:128 241:128 242:128 243:128 244:0 245:0 246:0 247:0 248:0 249:0 250:0 251:0 252:0 253:0 254:0 255:0]
INFO: PWM settings of fan 'cpu': Min 0, Start 100, Max 195
INFO: Starting controller loop for fan 'cpu'

Full YAML config (Expand)
# The path of the database file
dbPath: "/etc/fan2go/fan2go.db"

# Allow the fan initialization sequence to run in parallel for all configured fans
runFanInitializationInParallel: false
# The maximum difference between consecutive RPM measurements to
# consider a fan speed "settled"
# Note: This parameter is only used for initial analysis of fan curve
#       and has no effect during normal operation
maxRpmDiffForSettledFan: 10

# The rate to poll temperature sensors at
tempSensorPollingRate: 200ms
# The number of temp sensor values to keep in a rolling window array
tempRollingWindowSize: 10

# The rate to poll fan RPM input sensors at
rpmPollingRate: 1s
# The number of rpm sensor values to keep in a rolling window array
rpmRollingWindowSize: 10

# The rate to update fan speed targets at
controllerAdjustmentTickRate: 200ms

# A list of fans to control
fans:
  - id: cpu
    hwmon:
      platform: dell_smm-isa-0
      index: 1
    neverStop: false
    curve: cpu_curve
    minPwm: 0
    startPwm: 100
    maxPwm: 195

# A list of sensors to monitor
sensors:
  - id: cpu_package
    hwmon:
      platform: coretemp-isa-0
      index: 1

# A list of control curves which can be utilized by fans
# or other curves
curves:
  - id: cpu_curve
    linear:
      sensor: cpu_package
      steps:
        # Sensor value -> Speed (0-255)
        - 35: 0
        - 45: 64
        - 65: 195

statistics:
  # Whether to enable the prometheus exporter or not
  enabled: false
  # The port to expose the exporter on
  port: 9000

api:
  # Whether to enable the API or not
  enabled: false
  # The host to listen for connections
  host: localhost
  # The port to listen for connections
  port: 9001

@shbon
Copy link
Author

shbon commented Oct 1, 2022

Hmmm, an extra line has now appeared on the debug after an unknown time period (minutes?), which has turned the fan off:

DEBUG: Setting Fan PWM of 'cpu' to 63...

Regarding the above. This extra line appears after about 5 minutes.

Is that a built-in delay? Or are my temperature polling values being misinterpreted?

# The rate to poll temperature sensors at
tempSensorPollingRate: 200ms
# The number of temp sensor values to keep in a rolling window array
tempRollingWindowSize: 10 

@markusressel
Copy link
Owner

markusressel commented Oct 1, 2022

Ok so the distinct values are all over the place, when they should really only contain 3 values.

This is caused by the fact that you seem to get a value of 0 both at the start and the end of the 0-255 spectrum, but not in between, and that my algorithm didn't sort the keys before analyzing the map.

I have done some changes which should improve this, in addition to some tests. With those changes the resulting distinct pwm targets are: 0, 64, 244, which seem to fit your needs.
EDIT: not yet merged!
EDIT2: merged now 👍

However, fan2go considering 244 as a "good" value could be debatable, since it also maps to 0, just like all the values between 0 and 63 do, which doesn't make any logical sense.

Is it possible that the "pwm value" changes on its own depending on the speed of the fan and that its not actually a writable value but can only be read? We have observed similar behavior in some GPU fan driver implementations.

Is that a built-in delay? Or are my temperature polling values being misinterpreted?

There is definitely no built-in delay of 5 minutes anywhere.

The config you posted will result in a sensor value that shifts from one value to the next over the course of 10 * 200ms. A sensor value change from 51000 to 50000 will take 2 seconds to complete, but update to values between "start" (51000) and "end" (50000) 10 times in total, each update every 200 milliseconds.

In addition to that, the fan controller uses a PID controller function that (depending on its configuration) will also add some delay to changes in the calculated target PWM, but it should definitely not take as long as 5 minutes with the default values.

@markusressel
Copy link
Owner

markusressel commented Oct 1, 2022

Btw you can make text sections collapsable, please consider editing your comments for better readability of this whole thread.

See here: https://gist.github.com/pierrejoubert73/902cc94d79424356a8d20be2b382e1ab

Gist
How to add a collapsible section in markdown. GitHub Gist: instantly share code, notes, and snippets.

@shbon
Copy link
Author

shbon commented Oct 1, 2022

This is caused by the fact that you seem to get a value of 0 both at the start and the end of the 0-255 spectrum, but not in between, and that my algorithm didn't sort the keys before analyzing the map.

Why does the initialisation process detect this '0' value at the top end, when I can set the fan PWM to [192-255] with e.g. sudo fan2go -i cpu fan speed 192 which sets the fan RPM to full speed, which can be read as PWM 255 by fan2go -i cpu fan speed?

The config you posted will result in a sensor value that shifts from one value to the next over the course of 10 * 200ms. A sensor value change from 51000 to 50000 will take 2 seconds to complete, but update to values between "start" and "end" 10 times every 200 milliseconds.

So there should be a reaction in about 2 seconds, once the temperature crosses my temp curve boundary. That still doesn't seem to be happening. Although after initialisation, the fan is now shut off straight away rather than after 5 mins (yay), running the stress test (30 to 75 degrees in 15 seconds) still gets no reaction from fan2go...(the fan stays at 0 RPM throughout).

Regarding the new log below:

  1. Is the PWM map wrong for PWM values >= 192 (the actual value is 128 for 192->243 and 0 for 244->255)? i.e. It looks like the fan will never be set to full speed...
    (192 being the lowest "set" value of PWM that results in an "actual" PWM value for 255)

  2. Not sure about this line. Shouldn't it be [0 64 195] as per config?
    DEBUG: Distinct PWM value targets of fan cpu: [0 64 244]

New Log (Expand)
INFO: Using configuration file at: /etc/fan2go/fan2go.yaml
INFO: Gathering sensor data for cpu...
INFO: Loading fan curve data for fan 'cpu'...
WARNING: Fan 'cpu' has not yet been analyzed, starting initialization sequence...
INFO: Computing pwm map...
DEBUG: Setting Fan PWM of 'cpu' to 255 ...
DEBUG: Setting Fan PWM of 'cpu' to 254 ...
DEBUG: Setting Fan PWM of 'cpu' to 253 ...
DEBUG: Setting Fan PWM of 'cpu' to 252 ...
DEBUG: Setting Fan PWM of 'cpu' to 251 ...
DEBUG: Setting Fan PWM of 'cpu' to 250 ...
DEBUG: Setting Fan PWM of 'cpu' to 249 ...
DEBUG: Setting Fan PWM of 'cpu' to 248 ...
DEBUG: Setting Fan PWM of 'cpu' to 247 ...
DEBUG: Setting Fan PWM of 'cpu' to 246 ...
DEBUG: Setting Fan PWM of 'cpu' to 245 ...
DEBUG: Setting Fan PWM of 'cpu' to 244 ...
DEBUG: Setting Fan PWM of 'cpu' to 243 ...
DEBUG: Setting Fan PWM of 'cpu' to 242 ...
DEBUG: Setting Fan PWM of 'cpu' to 241 ...
DEBUG: Setting Fan PWM of 'cpu' to 240 ...
DEBUG: Setting Fan PWM of 'cpu' to 239 ...
DEBUG: Setting Fan PWM of 'cpu' to 238 ...
DEBUG: Setting Fan PWM of 'cpu' to 237 ...
DEBUG: Setting Fan PWM of 'cpu' to 236 ...
DEBUG: Setting Fan PWM of 'cpu' to 235 ...
DEBUG: Setting Fan PWM of 'cpu' to 234 ...
DEBUG: Setting Fan PWM of 'cpu' to 233 ...
DEBUG: Setting Fan PWM of 'cpu' to 232 ...
DEBUG: Setting Fan PWM of 'cpu' to 231 ...
DEBUG: Setting Fan PWM of 'cpu' to 230 ...
DEBUG: Setting Fan PWM of 'cpu' to 229 ...
DEBUG: Setting Fan PWM of 'cpu' to 228 ...
DEBUG: Setting Fan PWM of 'cpu' to 227 ...
DEBUG: Setting Fan PWM of 'cpu' to 226 ...
DEBUG: Setting Fan PWM of 'cpu' to 225 ...
DEBUG: Setting Fan PWM of 'cpu' to 224 ...
DEBUG: Setting Fan PWM of 'cpu' to 223 ...
DEBUG: Setting Fan PWM of 'cpu' to 222 ...
DEBUG: Setting Fan PWM of 'cpu' to 221 ...
DEBUG: Setting Fan PWM of 'cpu' to 220 ...
DEBUG: Setting Fan PWM of 'cpu' to 219 ...
DEBUG: Setting Fan PWM of 'cpu' to 218 ...
DEBUG: Setting Fan PWM of 'cpu' to 217 ...
DEBUG: Setting Fan PWM of 'cpu' to 216 ...
DEBUG: Setting Fan PWM of 'cpu' to 215 ...
DEBUG: Setting Fan PWM of 'cpu' to 214 ...
DEBUG: Setting Fan PWM of 'cpu' to 213 ...
DEBUG: Setting Fan PWM of 'cpu' to 212 ...
DEBUG: Setting Fan PWM of 'cpu' to 211 ...
DEBUG: Setting Fan PWM of 'cpu' to 210 ...
DEBUG: Setting Fan PWM of 'cpu' to 209 ...
DEBUG: Setting Fan PWM of 'cpu' to 208 ...
DEBUG: Setting Fan PWM of 'cpu' to 207 ...
DEBUG: Setting Fan PWM of 'cpu' to 206 ...
DEBUG: Setting Fan PWM of 'cpu' to 205 ...
DEBUG: Setting Fan PWM of 'cpu' to 204 ...
DEBUG: Setting Fan PWM of 'cpu' to 203 ...
DEBUG: Setting Fan PWM of 'cpu' to 202 ...
DEBUG: Setting Fan PWM of 'cpu' to 201 ...
DEBUG: Setting Fan PWM of 'cpu' to 200 ...
DEBUG: Setting Fan PWM of 'cpu' to 199 ...
DEBUG: Setting Fan PWM of 'cpu' to 198 ...
DEBUG: Setting Fan PWM of 'cpu' to 197 ...
DEBUG: Setting Fan PWM of 'cpu' to 196 ...
DEBUG: Setting Fan PWM of 'cpu' to 195 ...
DEBUG: Setting Fan PWM of 'cpu' to 194 ...
DEBUG: Setting Fan PWM of 'cpu' to 193 ...
DEBUG: Setting Fan PWM of 'cpu' to 192 ...
DEBUG: Setting Fan PWM of 'cpu' to 191 ...
DEBUG: Setting Fan PWM of 'cpu' to 190 ...
DEBUG: Setting Fan PWM of 'cpu' to 189 ...
DEBUG: Setting Fan PWM of 'cpu' to 188 ...
DEBUG: Setting Fan PWM of 'cpu' to 187 ...
DEBUG: Setting Fan PWM of 'cpu' to 186 ...
DEBUG: Setting Fan PWM of 'cpu' to 185 ...
DEBUG: Setting Fan PWM of 'cpu' to 184 ...
DEBUG: Setting Fan PWM of 'cpu' to 183 ...
DEBUG: Setting Fan PWM of 'cpu' to 182 ...
DEBUG: Setting Fan PWM of 'cpu' to 181 ...
DEBUG: Setting Fan PWM of 'cpu' to 180 ...
DEBUG: Setting Fan PWM of 'cpu' to 179 ...
DEBUG: Setting Fan PWM of 'cpu' to 178 ...
DEBUG: Setting Fan PWM of 'cpu' to 177 ...
DEBUG: Setting Fan PWM of 'cpu' to 176 ...
DEBUG: Setting Fan PWM of 'cpu' to 175 ...
DEBUG: Setting Fan PWM of 'cpu' to 174 ...
DEBUG: Setting Fan PWM of 'cpu' to 173 ...
DEBUG: Setting Fan PWM of 'cpu' to 172 ...
DEBUG: Setting Fan PWM of 'cpu' to 171 ...
DEBUG: Setting Fan PWM of 'cpu' to 170 ...
DEBUG: Setting Fan PWM of 'cpu' to 169 ...
DEBUG: Setting Fan PWM of 'cpu' to 168 ...
DEBUG: Setting Fan PWM of 'cpu' to 167 ...
DEBUG: Setting Fan PWM of 'cpu' to 166 ...
DEBUG: Setting Fan PWM of 'cpu' to 165 ...
DEBUG: Setting Fan PWM of 'cpu' to 164 ...
DEBUG: Setting Fan PWM of 'cpu' to 163 ...
DEBUG: Setting Fan PWM of 'cpu' to 162 ...
DEBUG: Setting Fan PWM of 'cpu' to 161 ...
DEBUG: Setting Fan PWM of 'cpu' to 160 ...
DEBUG: Setting Fan PWM of 'cpu' to 159 ...
DEBUG: Setting Fan PWM of 'cpu' to 158 ...
DEBUG: Setting Fan PWM of 'cpu' to 157 ...
DEBUG: Setting Fan PWM of 'cpu' to 156 ...
DEBUG: Setting Fan PWM of 'cpu' to 155 ...
DEBUG: Setting Fan PWM of 'cpu' to 154 ...
DEBUG: Setting Fan PWM of 'cpu' to 153 ...
DEBUG: Setting Fan PWM of 'cpu' to 152 ...
DEBUG: Setting Fan PWM of 'cpu' to 151 ...
DEBUG: Setting Fan PWM of 'cpu' to 150 ...
DEBUG: Setting Fan PWM of 'cpu' to 149 ...
DEBUG: Setting Fan PWM of 'cpu' to 148 ...
DEBUG: Setting Fan PWM of 'cpu' to 147 ...
DEBUG: Setting Fan PWM of 'cpu' to 146 ...
DEBUG: Setting Fan PWM of 'cpu' to 145 ...
DEBUG: Setting Fan PWM of 'cpu' to 144 ...
DEBUG: Setting Fan PWM of 'cpu' to 143 ...
DEBUG: Setting Fan PWM of 'cpu' to 142 ...
DEBUG: Setting Fan PWM of 'cpu' to 141 ...
DEBUG: Setting Fan PWM of 'cpu' to 140 ...
DEBUG: Setting Fan PWM of 'cpu' to 139 ...
DEBUG: Setting Fan PWM of 'cpu' to 138 ...
DEBUG: Setting Fan PWM of 'cpu' to 137 ...
DEBUG: Setting Fan PWM of 'cpu' to 136 ...
DEBUG: Setting Fan PWM of 'cpu' to 135 ...
DEBUG: Setting Fan PWM of 'cpu' to 134 ...
DEBUG: Setting Fan PWM of 'cpu' to 133 ...
DEBUG: Setting Fan PWM of 'cpu' to 132 ...
DEBUG: Setting Fan PWM of 'cpu' to 131 ...
DEBUG: Setting Fan PWM of 'cpu' to 130 ...
DEBUG: Setting Fan PWM of 'cpu' to 129 ...
DEBUG: Setting Fan PWM of 'cpu' to 128 ...
DEBUG: Setting Fan PWM of 'cpu' to 127 ...
DEBUG: Setting Fan PWM of 'cpu' to 126 ...
DEBUG: Setting Fan PWM of 'cpu' to 125 ...
DEBUG: Setting Fan PWM of 'cpu' to 124 ...
DEBUG: Setting Fan PWM of 'cpu' to 123 ...
DEBUG: Setting Fan PWM of 'cpu' to 122 ...
DEBUG: Setting Fan PWM of 'cpu' to 121 ...
DEBUG: Setting Fan PWM of 'cpu' to 120 ...
DEBUG: Setting Fan PWM of 'cpu' to 119 ...
DEBUG: Setting Fan PWM of 'cpu' to 118 ...
DEBUG: Setting Fan PWM of 'cpu' to 117 ...
DEBUG: Setting Fan PWM of 'cpu' to 116 ...
DEBUG: Setting Fan PWM of 'cpu' to 115 ...
DEBUG: Setting Fan PWM of 'cpu' to 114 ...
DEBUG: Setting Fan PWM of 'cpu' to 113 ...
DEBUG: Setting Fan PWM of 'cpu' to 112 ...
DEBUG: Setting Fan PWM of 'cpu' to 111 ...
DEBUG: Setting Fan PWM of 'cpu' to 110 ...
DEBUG: Setting Fan PWM of 'cpu' to 109 ...
DEBUG: Setting Fan PWM of 'cpu' to 108 ...
DEBUG: Setting Fan PWM of 'cpu' to 107 ...
DEBUG: Setting Fan PWM of 'cpu' to 106 ...
DEBUG: Setting Fan PWM of 'cpu' to 105 ...
DEBUG: Setting Fan PWM of 'cpu' to 104 ...
DEBUG: Setting Fan PWM of 'cpu' to 103 ...
DEBUG: Setting Fan PWM of 'cpu' to 102 ...
DEBUG: Setting Fan PWM of 'cpu' to 101 ...
DEBUG: Setting Fan PWM of 'cpu' to 100 ...
DEBUG: Setting Fan PWM of 'cpu' to 99 ...
DEBUG: Setting Fan PWM of 'cpu' to 98 ...
DEBUG: Setting Fan PWM of 'cpu' to 97 ...
DEBUG: Setting Fan PWM of 'cpu' to 96 ...
DEBUG: Setting Fan PWM of 'cpu' to 95 ...
DEBUG: Setting Fan PWM of 'cpu' to 94 ...
DEBUG: Setting Fan PWM of 'cpu' to 93 ...
DEBUG: Setting Fan PWM of 'cpu' to 92 ...
DEBUG: Setting Fan PWM of 'cpu' to 91 ...
DEBUG: Setting Fan PWM of 'cpu' to 90 ...
DEBUG: Setting Fan PWM of 'cpu' to 89 ...
DEBUG: Setting Fan PWM of 'cpu' to 88 ...
DEBUG: Setting Fan PWM of 'cpu' to 87 ...
DEBUG: Setting Fan PWM of 'cpu' to 86 ...
DEBUG: Setting Fan PWM of 'cpu' to 85 ...
DEBUG: Setting Fan PWM of 'cpu' to 84 ...
DEBUG: Setting Fan PWM of 'cpu' to 83 ...
DEBUG: Setting Fan PWM of 'cpu' to 82 ...
DEBUG: Setting Fan PWM of 'cpu' to 81 ...
DEBUG: Setting Fan PWM of 'cpu' to 80 ...
DEBUG: Setting Fan PWM of 'cpu' to 79 ...
DEBUG: Setting Fan PWM of 'cpu' to 78 ...
DEBUG: Setting Fan PWM of 'cpu' to 77 ...
DEBUG: Setting Fan PWM of 'cpu' to 76 ...
DEBUG: Setting Fan PWM of 'cpu' to 75 ...
DEBUG: Setting Fan PWM of 'cpu' to 74 ...
DEBUG: Setting Fan PWM of 'cpu' to 73 ...
DEBUG: Setting Fan PWM of 'cpu' to 72 ...
DEBUG: Setting Fan PWM of 'cpu' to 71 ...
DEBUG: Setting Fan PWM of 'cpu' to 70 ...
DEBUG: Setting Fan PWM of 'cpu' to 69 ...
DEBUG: Setting Fan PWM of 'cpu' to 68 ...
DEBUG: Setting Fan PWM of 'cpu' to 67 ...
DEBUG: Setting Fan PWM of 'cpu' to 66 ...
DEBUG: Setting Fan PWM of 'cpu' to 65 ...
DEBUG: Setting Fan PWM of 'cpu' to 64 ...
DEBUG: Setting Fan PWM of 'cpu' to 63 ...
DEBUG: Setting Fan PWM of 'cpu' to 62 ...
DEBUG: Setting Fan PWM of 'cpu' to 61 ...
DEBUG: Setting Fan PWM of 'cpu' to 60 ...
DEBUG: Setting Fan PWM of 'cpu' to 59 ...
DEBUG: Setting Fan PWM of 'cpu' to 58 ...
DEBUG: Setting Fan PWM of 'cpu' to 57 ...
DEBUG: Setting Fan PWM of 'cpu' to 56 ...
DEBUG: Setting Fan PWM of 'cpu' to 55 ...
DEBUG: Setting Fan PWM of 'cpu' to 54 ...
DEBUG: Setting Fan PWM of 'cpu' to 53 ...
DEBUG: Setting Fan PWM of 'cpu' to 52 ...
DEBUG: Setting Fan PWM of 'cpu' to 51 ...
DEBUG: Setting Fan PWM of 'cpu' to 50 ...
DEBUG: Setting Fan PWM of 'cpu' to 49 ...
DEBUG: Setting Fan PWM of 'cpu' to 48 ...
DEBUG: Setting Fan PWM of 'cpu' to 47 ...
DEBUG: Setting Fan PWM of 'cpu' to 46 ...
DEBUG: Setting Fan PWM of 'cpu' to 45 ...
DEBUG: Setting Fan PWM of 'cpu' to 44 ...
DEBUG: Setting Fan PWM of 'cpu' to 43 ...
DEBUG: Setting Fan PWM of 'cpu' to 42 ...
DEBUG: Setting Fan PWM of 'cpu' to 41 ...
DEBUG: Setting Fan PWM of 'cpu' to 40 ...
DEBUG: Setting Fan PWM of 'cpu' to 39 ...
DEBUG: Setting Fan PWM of 'cpu' to 38 ...
DEBUG: Setting Fan PWM of 'cpu' to 37 ...
DEBUG: Setting Fan PWM of 'cpu' to 36 ...
DEBUG: Setting Fan PWM of 'cpu' to 35 ...
DEBUG: Setting Fan PWM of 'cpu' to 34 ...
DEBUG: Setting Fan PWM of 'cpu' to 33 ...
DEBUG: Setting Fan PWM of 'cpu' to 32 ...
DEBUG: Setting Fan PWM of 'cpu' to 31 ...
DEBUG: Setting Fan PWM of 'cpu' to 30 ...
DEBUG: Setting Fan PWM of 'cpu' to 29 ...
DEBUG: Setting Fan PWM of 'cpu' to 28 ...
DEBUG: Setting Fan PWM of 'cpu' to 27 ...
DEBUG: Setting Fan PWM of 'cpu' to 26 ...
DEBUG: Setting Fan PWM of 'cpu' to 25 ...
DEBUG: Setting Fan PWM of 'cpu' to 24 ...
DEBUG: Setting Fan PWM of 'cpu' to 23 ...
DEBUG: Setting Fan PWM of 'cpu' to 22 ...
DEBUG: Setting Fan PWM of 'cpu' to 21 ...
DEBUG: Setting Fan PWM of 'cpu' to 20 ...
DEBUG: Setting Fan PWM of 'cpu' to 19 ...
DEBUG: Setting Fan PWM of 'cpu' to 18 ...
DEBUG: Setting Fan PWM of 'cpu' to 17 ...
DEBUG: Setting Fan PWM of 'cpu' to 16 ...
DEBUG: Setting Fan PWM of 'cpu' to 15 ...
DEBUG: Setting Fan PWM of 'cpu' to 14 ...
DEBUG: Setting Fan PWM of 'cpu' to 13 ...
DEBUG: Setting Fan PWM of 'cpu' to 12 ...
DEBUG: Setting Fan PWM of 'cpu' to 11 ...
DEBUG: Setting Fan PWM of 'cpu' to 10 ...
DEBUG: Setting Fan PWM of 'cpu' to 9 ...
DEBUG: Setting Fan PWM of 'cpu' to 8 ...
DEBUG: Setting Fan PWM of 'cpu' to 7 ...
DEBUG: Setting Fan PWM of 'cpu' to 6 ...
DEBUG: Setting Fan PWM of 'cpu' to 5 ...
DEBUG: Setting Fan PWM of 'cpu' to 4 ...
DEBUG: Setting Fan PWM of 'cpu' to 3 ...
DEBUG: Setting Fan PWM of 'cpu' to 2 ...
DEBUG: Setting Fan PWM of 'cpu' to 1 ...
DEBUG: Setting Fan PWM of 'cpu' to 0 ...
DEBUG: Setting Fan PWM of 'cpu' to 128 ...
DEBUG: Distinct PWM value targets of fan cpu: [0 64 244]
INFO: Measuring RPM curve...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 20.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2653.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2653.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2653.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2653.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2653.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2653.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2653.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2653.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2653.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2653.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 196.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 165.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 155.000000)...
DEBUG: Waiting for fan cpu to settle (current RPM max diff: 23.000000)...
DEBUG: Fan cpu has settled (current RPM max diff: 6.000000)
DEBUG: Measuring RPM of cpu at PWM 0: 2519
DEBUG: Measured RPM of 2519 at PWM 0 for fan cpu
DEBUG: Setting Fan PWM of 'cpu' to 1 ...
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 1 Actual: 0
DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 2 Actual: 0
DEBUG: Distinct PWM value targets of fan cpu: [0 64 244]
DEBUG: PWM map of fan 'cpu': map[0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0 22:0 23:0 24:0 25:0 26:0 27:0 28:0 29:0 30:0 31:0 32:0 33:0 34:0 35:0 36:0 37:0 38:0 39:0 40:0 41:0 42:0 43:0 44:0 45:0 46:0 47:0 48:0 49:0 50:0 51:0 52:0 53:0 54:0 55:0 56:0 57:0 58:0 59:0 60:0 61:0 62:0 63:0 64:128 65:128 66:128 67:128 68:128 69:128 70:128 71:128 72:128 73:128 74:128 75:128 76:128 77:128 78:128 79:128 80:128 81:128 82:128 83:128 84:128 85:128 86:128 87:128 88:128 89:128 90:128 91:128 92:128 93:128 94:128 95:128 96:128 97:128 98:128 99:128 100:128 101:128 102:128 103:128 104:128 105:128 106:128 107:128 108:128 109:128 110:128 111:128 112:128 113:128 114:128 115:128 116:128 117:128 118:128 119:128 120:128 121:128 122:128 123:128 124:128 125:128 126:128 127:128 128:128 129:128 130:128 131:128 132:128 133:128 134:128 135:128 136:128 137:128 138:128 139:128 140:128 141:128 142:128 143:128 144:128 145:128 146:128 147:128 148:128 149:128 150:128 151:128 152:128 153:128 154:128 155:128 156:128 157:128 158:128 159:128 160:128 161:128 162:128 163:128 164:128 165:128 166:128 167:128 168:128 169:128 170:128 171:128 172:128 173:128 174:128 175:128 176:128 177:128 178:128 179:128 180:128 181:128 182:128 183:128 184:128 185:128 186:128 187:128 188:128 189:128 190:128 191:128 192:128 193:128 194:128 195:128 196:128 197:128 198:128 199:128 200:128 201:128 202:128 203:128 204:128 205:128 206:128 207:128 208:128 209:128 210:128 211:128 212:128 213:128 214:128 215:128 216:128 217:128 218:128 219:128 220:128 221:128 222:128 223:128 224:128 225:128 226:128 227:128 228:128 229:128 230:128 231:128 232:128 233:128 234:128 235:128 236:128 237:128 238:128 239:128 240:128 241:128 242:128 243:128 244:0 245:0 246:0 247:0 248:0 249:0 250:0 251:0 252:0 253:0 254:0 255:0]
INFO: PWM settings of fan 'cpu': Min 0, Start 100, Max 195
INFO: Starting controller loop for fan 'cpu'

@markusressel
Copy link
Owner

Why does the initialisation process detect this '0' value at the top end, when I can set the fan PWM to [192-255] with e.g. sudo fan2go -i cpu fan speed 192 which sets the fan RPM to full speed, which can be read as PWM 255 by fan2go -i cpu fan speed?

Thats a very good question I currently don't have an answer to. I would expect the same thing as you do. It may be due to the "pwm map creation" taking place within only a very short a mount of time, which could lead to weird behavior. This process actually tries to set every possible PWM value in the range 0-255 (as you can see in the log) and "waits" a really short amount of time before reading back what PWM value actually got set afterwards.

If you do this test manually and continuously without fan2go daemon running, using f.ex. a watch -n 0.2 --color -- sudo fan2go detect , does the PWM (not the RPM) value change "on its own"? Does it fluctuate between values sometimes? Anything unexpected?

(Actually, I can't at the moment, as that functionality seems to have been broken in the last release...)

fan2go -i cpu fan rpm returns N/A
fan2go -i cpu fan speed returns nothing
sudo fan2go -i cpu fan speed 199 doesn't set the fan PWM anymore

There really was nothing changed in the code for that to happen. The commands for reading and setting stuff are completely independent from the logic of the daemon. There is no pwm map calculation f.ex., so maybe the system acts weird because we messed around to much or possibly there was a mistake on your end?

So there should be a reaction in about 2 seconds, once the temperature crosses my temp curve boundary.

Well, on a "normal" system I would answer with a resounding "yes, it certainly would". However on your system, because of the extremely limited range of distinct PWM values at hand, you would only start to notice a change after the fan control loop decides to increase the fan speed to a level that is closer to 64 than it is to 0, because there are no other values in between that fan2go considers available, because the PWM map tells it this. It shouldn't take 5 minutes, but it might take more than 15 seconds. It might be an issue that the gap between those supported values is so large, wich might cause weird behavior inside of fan2go. I will have to look into that.

That still doesn't seem to be happening. Although after initialisation, the fan is now shut off straight away rather than after 5 mins (yay), running the stress test (30 to 75 degrees in 15 seconds) still gets no reaction from fan2go...(the fan stays at 0 RPM).

I think it would be helpful to see statistics not only for the fans, sensors and curves but also the internal state of fan controller itself to better visualize what is happening on the inside while the fan2go daemon is running. I will add some statistics for that, but it will take some time to do that.

Regarding the new log below:

  1. Is the PWM map wrong for PWM values >= 192 (the actual value is 128 for 192->243 and 0 for 244->255)? i.e. It looks like the fan will never be set to full speed...
    (192 being the lowest "set" value of PWM that results in an "actual" PWM value for 255)

It sure doesn't look healthy, yes. I cannot tell what will happen because this is not a "supported" state. I will need to invest more time into this to come up with a solution that can remedy this. In a "perfect" fan this would be a x -> x, for x in [0..255] mapping.

  1. Not sure about this line. Shouldn't it be [0 64 195] as per config?
    DEBUG: Distinct PWM value targets of fan cpu: [0 64 244]

No. While the configuration overrides what the fan control loop should use as PWM boundaries for a specific fan, the distinct pwm value targets are calculated from the pwm map, which in turn is calculcated by trying out all PWM values (as mentioned above). It has nothing to do with what the config contains, only what fan2go sees when it tries to interact with the fan's "PWM knob".

Thx for sticking with this for so long btw, its really helpful and constructive to work on this with you ❤️ 🤓

@shbon
Copy link
Author

shbon commented Oct 1, 2022

If you do this test manually and continuously without fan2go daemon running, using f.ex. a watch -n 0.2 --color -- sudo fan2go detect , does the PWM (not the RPM) value change "on its own"? Does it fluctuate between values sometimes? Anything unexpected?

Ah, that was interesting (and probably significant)...
If you remember from an earlier post, I wrote:

sudo fan2go -i cpu fan speed [0-63] -->  PWM 0
sudo fan2go -i cpu fan speed [64-191] -->  PWM 128, RPM 2420 (approx)
sudo fan2go -i cpu fan speed [192-255] -->  PWM 255, RPM 4800 (approx)

Looking at the boundary [191,192], this switches from half fan speed to full fan speed. So with the initial condition of fan at half speed (2400rpm), if you do sudo fan2go -i cpu fan speed 192, the fan speed starts ramping up to maximium (4800rpm) over about 16 seconds, but PWM stays at 128 until about 3600rpm, where it "flips" to 255. i.e It flips at about the half way point. This flip occurs after about 8 seconds. i.e. Linear increase in fan speed.

This would seem to indicate you'd need to wait > 8 seconds to detect this step change in PWM...

The same thing happens going from full speed (rpm) to half speed. i.e. Full speed initial condition, set PWM to 191 --> wait 8 seconds for flip to 128 PWM.

Setting PWM to ranges [64-190] or [193-255] have no effect on RPM or PWM values, if the value is in the same range. (There's also no fluctuation).

At the bottom end, it's different.
Initial condition = fan half speed. Set PWM = 63 --> RPM 0 / PWM 0 instantly.
Initial condition = fan off. Set PWM = 64 --> RPM 2400 (very quick ramp + overshoot to 2800 in about 1s then settles to half speed after a couple more seconds) / PWM 128 instantly.

I think the take home is that you need to watch and wait for a stable RPM before reading the resulting PWM value in the hwmon area, whenever you set the PWM value in the initialisation procedure... (Pretty much a "asked for", "wait for stability" "got" function)

(Actually, I can't at the moment, as that functionality seems to have been broken in the last release...)

fan2go -i cpu fan rpm returns N/A
fan2go -i cpu fan speed returns nothing
sudo fan2go -i cpu fan speed 199 doesn't set the fan PWM anymore

There really was nothing changed in the code for that to happen. The commands for reading and setting stuff are completely independent from the logic of the daemon. There is no pwm map calculation f.ex., so maybe the system acts weird because we messed around to much or possibly there was a mistake on your end?

Sorry, that was noise from me! I ran the commands from the build directory, which picked up the YAML config supplied with the build instead for my /etc/fan2go based config!

So there should be a reaction in about 2 seconds, once the temperature crosses my temp curve boundary.

Well, on a "normal" system I would answer with a resounding "yes, it certainly would". However on your system, because of the extremely limited range of distinct PWM values at hand, you would only start to notice a change after the fan control loop decides to increase the fan speed to a level that is closer to 64 than it is to 0, because there are no other values in between that fan2go considers available, because the PWM map tells it this. It shouldn't take 5 minutes, but it might take more than 15 seconds. It might be an issue that the gap between those supported values is so large, wich might cause weird behavior inside of fan2go. I will have to look into that.

That's why I set the values I did [0, 64, 195]. This should provide two linear ranges where the end points are the trigger values for changing PWM to one of 0, 128, 255. (I left a bit of stack in the top value to ensure the PWM 255 will be triggered). It should work, I think. (Also see my answer to the last but one point).

Regarding the new log below:

  1. Is the PWM map wrong for PWM values >= 192 (the actual value is 128 for 192->243 and 0 for 244->255)? i.e. It looks like the fan will never be set to full speed...
    (192 being the lowest "set" value of PWM that results in an "actual" PWM value for 255)

It sure doesn't look healthy, yes. I cannot tell what will happen because this is not a "supported" state. I will need to invest more time into this to come up with a solution that can remedy this. In a "perfect" fan this would be a x -> x, for x in [0..255] mapping.

I think it will work OK, once the PWM Map is straightened out in line with the first part of this post, and my reasoning regarding values [0, 64, 195]. I don't think anything else will need attention.

  1. Not sure about this line. Shouldn't it be [0 64 195] as per config?
    DEBUG: Distinct PWM value targets of fan cpu: [0 64 244]

No. While the configuration overrides what the fan control loop should use as PWM boundaries for a specific fan, the distinct pwm value targets are calculated from the pwm map, which in turn is calculcated by trying out all PWM values (as mentioned above). It has nothing to do with what the config contains, only what fan2go sees when it tries to interact with the fan's "PWM knob".

My understanding is I have a linear temp range of [35-45] with a corresponding PWM range of [0-64]. So reacting to a temp rise from say 35 to 45, you (linearly) ramp PWM from 0 to 64 (not physically applying each value?). When the temp hits 45, the PWM hits 64, which (in this designed case) triggers the fan to half speed. Similarily for the [45-65] temp range ([65-195] PWM range). You ramp PWM from 65 to 195 as the temp increases from 45 to 65. At 65 degrees, PWM = 195 triggers (if applied) full fan speed. (Actually 192 triggers full speed). I'm not quite sure how the value PWM 244 plays into this?

Thx for sticking with this for so long btw, its really helpful and constructive to work on this with you heart nerd_face

No worries!

@markusressel
Copy link
Owner

markusressel commented Oct 1, 2022

This would seem to indicate you'd need to wait > 8 seconds to detect this step change in PWM...

Ah, that explains why the fast PWM map creation is not working as intended. 👍

I think the take home is that you need to watch and wait for a stable RPM before reading the resulting PWM value in the hwmon area, whenever you set the PWM value in the initialisation procedure... (Pretty much a "asked for", "wait for stability" "got" function)

For detecting the fan RPM curve fan2go actually already does this, but its obviously failing too since your fan curve is a flatline at 2525 RPM, so I am not sure if it will work for the PWM map creation 🤔

The only real fix I can see for this that would work 100% is to allow specifying a custom PWM map in the config and skip the automatic detection entirely. I still don't understand why its detecting a mapping to 0 at the upper end.

That's why I set the values I did [0, 64, 195]. This should provide two linear ranges where the end points are the trigger values for changing PWM to one of 0, 128, 255. (I left a bit of stack in the top value to ensure the PWM 255 will be triggered). It should work, I think. (Also see my answer to the last but one point).

Yes, I think so too, I just need to cover this scenario with more tests to make sure its working just like the "normal" case does.

Also, you will probably see lots of warnings from fan2go, due to it thinking that an external program is also changing the PWM values, because fan2go constantly compares the "set" PWM value with the one reported by the system currently, and those will only match up after some time. It would be completely fine to ignore those though.

I think it will work OK, once the PWM Map is straightened out in line with the first part of this post, and my reasoning regarding values [0, 64, 195]. I don't think anything else will need attention.

I hope so too 🤞

My understanding is I have a linear temp range of [35-45] with a corresponding PWM range of [0-64]. So reacting to a temp rise from say 35 to 45, you (linearly) ramp PWM from 0 to 64 (not physically applying each value?). When the temp hits 45, the PWM hits 64, which (in this designed case) triggers the fan to half speed. Similarily for the [45-65] temp range ([65-195] PWM range). You ramp PWM from 65 to 195 as the temp increases from 45 to 65. At 65 degrees, PWM = 195 triggers (if applied) full fan speed. (Actually 192 triggers full speed). I'm not quite sure how the value PWM 244 plays into this?

You're spot on, thats the exact behavior I want to see as well.
In your last log the detected distinct PWM values were logged as this:

DEBUG: Distinct PWM value targets of fan cpu: [0 64 244]

Thats were I got the 244 from. But the logic you wrote applies to it just as well, the tipping point is just a different one. And of course you would want to specify a value closer to the actual tipping point, like the 195 you mentioned.

I will report back when I have something new to test.

markusressel added a commit that referenced this issue Oct 5, 2022
…ap_from_config

Feature/#161 override pwm map from config
markusressel added a commit that referenced this issue Oct 9, 2022
@markusressel
Copy link
Owner

I haven't finished the documentation yet, but you can now specify the pwm map in the config, something like this:

fans:
  - id: xyz
    ...
    pwmMap:
      0: 0
      64: 128
      195: 255

I have done some testing and it behaves as I would expect (and we previously discussed).
Please let me know how it works for you 🙏 🤓

@shbon
Copy link
Author

shbon commented Oct 10, 2022

Thanks for the update. It's controlling the laptop fan nicely now!

Also runs fine as a systemd service. My only criticism is the journalctl log spam created when moving between half-speed and full-speed and vice versa. You get around 40 "PWM of cpu was changed by a third party!" warning messages per PWM change...

If you remember, I commented that moving from half speed (2400rpm) to full speed (4800rpm) takes about 16 seconds, but the PWM values stays at 128 until about 3600rpm, where it "flips" to 255. So when fan2go "asks for" PWM=255 when current PWM is 128, it will take about 8 secs until the hwmon value shows 255. It's the same when fan2go "asks for" PWM=128, when current PWM is 255.

I realise you've commented about the "PWM of cpu was changed by a third party!" in https://github.com/markusressel/fan2go/issues/64 but can something be done to mitigate this particular situation?

EDIT: Maybe it's better that I just mask that particular warning message in the fan2go.service...

ExecStart=/bin/sh -c '/usr/bin/fan2go -c /etc/fan2go/fan2go.yaml --no-style | grep --line-buffered -v "changed by a third party"'

Thanks again for the work you've done helping me with this problem. I appreciate it.

@markusressel
Copy link
Owner

Great trick with the grep 👍 Glad its working 💪

@markusressel
Copy link
Owner

I will close this issue. Feel free to open another if something comes up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants