Live data from Hacker News

The minimum viable fan control script

ounapuu.ee

11–20 of 32 posts

Re: The minimum viable fan control script

#11
post #9

I have spent countless hours trying to get hardware to be silent. The only way to do this reliably and without fire hazard is to passively cool the hardware completely by having HUGE heatsinks and THEN you can add a fan that you slow down with a resistor. The fan is only there to prolong the life span, the hardware should be able to run passivley at 100% and you should be able to hold your finger on the heatsink fore…

My son built a small project where he tried to control the speed of a computer case fan with a (variable) resistor, shunting a % of the power to ground. Didn't work very well. The fan either ran full speed or not at all.

So he used a 555 chip to turn the setup into pulse-width modulation, with the variable resistor (pot) adjusting the pulse width.

Worked like a charm.

Re: The minimum viable fan control script

#12
post #2

I was expecting a basic thermostat with hysteresis, but no, it's a stepwise proportional control. Your fan could very well wind up oscillating at one of the step transition points which is probably not great for the fan.

Your sanity will suffer more than the fan.

Re: The minimum viable fan control script

#13

> if ((temp > 90000)); then What is this syntax? I would have assume something like `[ $temp -gt 90000 ]` or `$((temp > 90000))`. Is the dollar here optional? Is this something bash specific?

> Is this something bash specific?

Yes.

http://mywiki.wooledge.org/ArithmeticExpression#Arithmetic_C...

Re: The minimum viable fan control script

#14
post #9

I have spent countless hours trying to get hardware to be silent. The only way to do this reliably and without fire hazard is to passively cool the hardware completely by having HUGE heatsinks and THEN you can add a fan that you slow down with a resistor. The fan is only there to prolong the life span, the hardware should be able to run passivley at 100% and you should be able to hold your finger on the heatsink fore…

How silent are you talking? Silent under load is hard, but quiet under load and silent on idle is possible without a passively cooled build. A good cooler for the processor + slow running case fans + a silent psu (like BitFenix Formula, Corsair RM, ...) + a noise isolating case against coil whine would be the foundation for that. I use an old Corsair H90 to cool my i5-5675C, AIO radiator is installed in the front of the case, there is one good case fan at the back. Note that the H90 is only quiet when pump speed gets also reduced. With that setup, the noise under load is completely defined by the gpu (a soon to be exchanged RX 570) and the noise of the system on idle vanishes in the ambient noise.

However, the setup I describe above was loud until I got around to control the fan speeds properly. Turned out the MSI BIOS fanspeed control did not work properly. On top of high minimal speed settings (like 50% for the case fan) it ignored my cpu fan settings and ran the fans higher than I wanted. That made the system rather loud even on idle and unbearable under load. The solution was to control fanspeed with fan2go: https://github.com/markusressel/fan2go (plus radeon-profile controls the speed of the gpu, making it silent on idle as well.)

Fan2go is not only nice to use, it also solves the issue the article's author will run into in the future: Those hwmon paths are not stable anymore. It's possible they will work on his hardware if there is only one (or none, as in the thinkpad example using a different system), but otherwise the script will stop working with new kernels after reboots.

Re: The minimum viable fan control script

#15
post #9

I have spent countless hours trying to get hardware to be silent. The only way to do this reliably and without fire hazard is to passively cool the hardware completely by having HUGE heatsinks and THEN you can add a fan that you slow down with a resistor. The fan is only there to prolong the life span, the hardware should be able to run passivley at 100% and you should be able to hold your finger on the heatsink fore…

Today's hardware can scale performance and power consumption by orders of magnitude, I find that solutions that allow quiet day-to-day operation and loud power when needed are meaningful.

Re: The minimum viable fan control script

#16
post #4

As an alternative, been using this PID fan control script to keep my HDDs cool for ages. https://forums.freenas.org/index.php?threads/pid-fan-control...

I've some a similar thing with my NAS on a Supermicro X10 (I think) on Linux. I have had all kinds of trouble getting quiet fans on this board under Linux. I think it's a mix of BIOS fan control and other things that I ended up sinking days into trying to solve. Right now my solution is flaky at best, but eventually the fans spin down after a reboot. Supermicro could be so good for "prosumers" but I feel like they ar…

On some server motherboards, fan control is done by the BMC. We license BMC firmware from AMI for our servers. The fan control algos that come included are very basic (similar to the proportional response the auth wrote).

Re: The minimum viable fan control script

#17
post #9

I have spent countless hours trying to get hardware to be silent. The only way to do this reliably and without fire hazard is to passively cool the hardware completely by having HUGE heatsinks and THEN you can add a fan that you slow down with a resistor. The fan is only there to prolong the life span, the hardware should be able to run passivley at 100% and you should be able to hold your finger on the heatsink fore…

My son built a small project where he tried to control the speed of a computer case fan with a (variable) resistor, shunting a % of the power to ground. Didn't work very well. The fan either ran full speed or not at all. So he used a 555 chip to turn the setup into pulse-width modulation, with the variable resistor (pot) adjusting the pulse width. Worked like a charm.

4-wire PC fans are usually PWM controlled. That might be why the first attempt didn't go well, if he didn't try multiple fans.

Re: The minimum viable fan control script

#18
post #9

I have spent countless hours trying to get hardware to be silent. The only way to do this reliably and without fire hazard is to passively cool the hardware completely by having HUGE heatsinks and THEN you can add a fan that you slow down with a resistor. The fan is only there to prolong the life span, the hardware should be able to run passivley at 100% and you should be able to hold your finger on the heatsink fore…

An M1 Mac Mini is silent even at considerable load, out of the box; the fan policy can be tweaked with a free app (MacsFanControl); also I've never seen it eat more than 30ish watts (even when playing games). It's definitely not a budget solution (I mean the price is fair for the performance, unless you don't need $700's worth of horsepower), and macOS could do much better as a server solution, but it's definitely worth considering.

Mine is both a desktop/workstation, and actually doing various "server" duties like running Prometheus+Grafana, SSH jumpbox, etc. Bonus? You can actually SSH in while it's sleeping - it will wake up the system, but not the screen(s).

Re: The minimum viable fan control script

#19
post #12
post #2

I was expecting a basic thermostat with hysteresis, but no, it's a stepwise proportional control. Your fan could very well wind up oscillating at one of the step transition points which is probably not great for the fan.

Your sanity will suffer more than the fan.

Well, there's that, but the audience is people who will write their own fan control script...

Re: The minimum viable fan control script

#20
post #2

I was expecting a basic thermostat with hysteresis, but no, it's a stepwise proportional control. Your fan could very well wind up oscillating at one of the step transition points which is probably not great for the fan.

If this is a realistic failure mode, one would hope that there is some kind of rate-limiting at the firmware or driver level.
Post reply on HN