I noticed that with the default fan curves, the fan occasionally ramps up to high speed and makes a loud “whooshing” noise. I’m fairly sure this can be improved.
There are three aspects to the problem:
- Ramp-up from 0 RPM
When the fan ramps up from 0 RPM, it jumps straight to a high speed and then quickly drops back down. This causes a burst of “whooshing” noise, which is my main complaint.
- CPU Average temp delay
The CPU Average Temp option (used in the BIOS as the fan curve input) seems to have a fairly long averaging window or delay. As a result, the CPU temperature can reach 90C+ before the fan even starts spinning. I suspect this also contributes to the first problem, because the fan then reacts by jumping immediately to a high speed.
- Heat accumulation in the case
There also seems to be some heat buildup inside the case, so the fan needs to ramp up periodically to expel warm air. This is expected unless the case has very good natural ventilation. (with default fan curve settings in the BIOS, the case fan hardly spins)
It’s quite visible in the fan speed chart:
Any ideas how to get rid of the fan speed spikes? I think one option is to shorten the CPU temperature averaging window so the fan can track CPU temperature more smoothly (while still smoothing out short transient spikes).
Does anyone know how the CPU temperature averaging algorithm works and how to get the readings? The lm-sensors reports a “CPU Virtual@4c” which looks similar, but itself sometimes doesn’t look like an average (lower than the CPU@4c temp ~1 or 2C in a stable state). Also I haven’t found clear clues in the EC source code so far. It sounds like this may need to be a feature request: add a configurable averaging window length (or decay factor).
For point 3), one solution is to keep the fans running at a low speed instead of allowing 0 RPM.
For context, my setup:
-
SilverStone SG05 ITX case (with Corsair 1000W SFX PSU; the PSU fan has a 0 RPM passive mode)
-
Noctua A12x25 G2 PWM fan (one for the APU, one for the case)
-
Ambient temperature: ~20?C
-
Load: Firefox with a few tabs open (enough to trigger the fan behaviour shown in the screenshot)
-
To reproduce the CPU temperature overshoot before the fan spins up: compile the Linux kernel using 16 cores
