Live data from Hacker News

Better PC cooling with Python and Grafana

calbryant.uk

91–100 of 164 posts

Re: Better PC cooling with Python and Grafana

#91
post #65
post #63

It's surprising that there are no PC fan controllers that would use some variant of PID control with a temperature target. Traditional fan curves are simple, but the result isn't very intuitive. And many desktop motherboards manage to screw up even the basic fan curve, offering users control of only two points within strict bounds, no piecewise linear curves or hysteresis settings. I started a fan controller project…

> It's surprising that there are no PC fan controllers that would use some variant of PID control with a temperature target. They actually exist (such as ARCTIC F12 TC) but not very common. Separate controllers such as Adafruit EMC2101 are also available.

Both EMC2101 and F12 TC work with a look up table, so a normal curve as opposed to a PID.

You can verify that in the datasheet of EMC2101, and in the case of F12 TC in product descriptions (..The fan responses to the rise in temperature swiftly – within a critical 6°C range, the rpm of the ARCTIC F Pro TC fan increases from around 500 to its maximum of 2,000 rpm (the steep curve in the chart).)

Re: Better PC cooling with Python and Grafana

#92
post #80

Earlier quoted context omitted.

PID control isn’t an easy solution in PC cooling. CPU temperatures can swing from 40C to 90C and back in a matter of seconds as loads come and go. Modern fan control algorithms have delays and smoothing for this reason. If you had a steady state load so stable that you could tune around it, setting a fan curve is rather easy and PID is overkill. For normal use where you’re going between idle with the occasional spike…

I would be surprised that a PID controller can't adjust the control signal of the fan on the order of milliseconds/hundreds of microseconds. The mass of the fan would be the bigger issue. Something that would help is multiple fans being adjusted by the same PID controller. It's not a problem if they're spinning too fast, but if you need more cooling the controller needs to increase air flow at the fastest rate which…

Fans are annoying enough when at a steady speed, but a fan that is continually changing speed sounds extra irritating if it’s in the same room.

Some sort of smoothing plus a conservative base rate might be more tolerable.

Re: Better PC cooling with Python and Grafana

#93
post #80

Earlier quoted context omitted.

PID control isn’t an easy solution in PC cooling. CPU temperatures can swing from 40C to 90C and back in a matter of seconds as loads come and go. Modern fan control algorithms have delays and smoothing for this reason. If you had a steady state load so stable that you could tune around it, setting a fan curve is rather easy and PID is overkill. For normal use where you’re going between idle with the occasional spike…

I would be surprised that a PID controller can't adjust the control signal of the fan on the order of milliseconds/hundreds of microseconds. The mass of the fan would be the bigger issue. Something that would help is multiple fans being adjusted by the same PID controller. It's not a problem if they're spinning too fast, but if you need more cooling the controller needs to increase air flow at the fastest rate which…

The problem is that you really don't want the fans to react that quickly. Fans make noise, and a changing noise is far more irritating than a constant buzz in the background.

You quickly stop hearing a fan constantly running at 50%, but a fan randomly switching between 10% and 100% gets on your nerves extremely quickly.

Re: Better PC cooling with Python and Grafana

#95
post #63

It's surprising that there are no PC fan controllers that would use some variant of PID control with a temperature target. Traditional fan curves are simple, but the result isn't very intuitive. And many desktop motherboards manage to screw up even the basic fan curve, offering users control of only two points within strict bounds, no piecewise linear curves or hysteresis settings. I started a fan controller project…

I’m more surprised there aren’t fan controller standards so the mobo or OS can tell the fan to ramp up with usage instead of relying on temperature probes.

There are, you can override your fan speed from the OS. But that leads to issues with a control software crash potentially leaving your fans stuck in a low-speed state.

There's pretty much a 1:1 link between CPU load and CPU temperature, so relying on temperature probes is good enough for almost all situations.

Re: Better PC cooling with Python and Grafana

#96

Another thing I've had great success with on my AMD 7700X is to use AMD Ryzen Master to reduce the TDP. The chip comes to consumers overclocked by default with a TDP of 105W. I suspect this is the case so that it can beat Intel on benchmarks on "default" settings. You can set it to "eco mode" and have it run at 65W or 45W TDP. Under load, this only results in like a 5% reduction in performance for a dramatic reductio…

Same with GPUs - reducing the power budget on a 3080Ti down to like 75% reduced the performance by maybe 5-10% but dramatically reduces noise and heat produced.

Re: Better PC cooling with Python and Grafana

#97
post #80

Earlier quoted context omitted.

I would be surprised that a PID controller can't adjust the control signal of the fan on the order of milliseconds/hundreds of microseconds. The mass of the fan would be the bigger issue. Something that would help is multiple fans being adjusted by the same PID controller. It's not a problem if they're spinning too fast, but if you need more cooling the controller needs to increase air flow at the fastest rate which…

Fans are annoying enough when at a steady speed, but a fan that is continually changing speed sounds extra irritating if it’s in the same room. Some sort of smoothing plus a conservative base rate might be more tolerable.

> a conservative base rate

Do you use windows?

I find that with windows the fan is always spinning, even if at low speed. While with linux most of the times it is not spinning at all.

Re: Better PC cooling with Python and Grafana

#98
post #97

Earlier quoted context omitted.

Fans are annoying enough when at a steady speed, but a fan that is continually changing speed sounds extra irritating if it’s in the same room. Some sort of smoothing plus a conservative base rate might be more tolerable.

> a conservative base rate Do you use windows? I find that with windows the fan is always spinning, even if at low speed. While with linux most of the times it is not spinning at all.

I’m on a Mac - and for the first time a computer I can’t hear (it’s a model with a fan).

Re: Better PC cooling with Python and Grafana

#99
post #63

It's surprising that there are no PC fan controllers that would use some variant of PID control with a temperature target. Traditional fan curves are simple, but the result isn't very intuitive. And many desktop motherboards manage to screw up even the basic fan curve, offering users control of only two points within strict bounds, no piecewise linear curves or hysteresis settings. I started a fan controller project…

PID control isn’t an easy solution in PC cooling. CPU temperatures can swing from 40C to 90C and back in a matter of seconds as loads come and go. Modern fan control algorithms have delays and smoothing for this reason. If you had a steady state load so stable that you could tune around it, setting a fan curve is rather easy and PID is overkill. For normal use where you’re going between idle with the occasional spike…

Wouldn't the better solution be to rely on the heatsink temperature instead of on the chip/core temperature then? I mean in the end, the air from the fan is cooling the heat sink, not the chip directly.

Re: Better PC cooling with Python and Grafana

#100

My problem is that I just don't want to think about it. Complex solutions are cool but ultimately it's bandwidth I could use for better things. I like my Chromebook because it requires nearly zero mental effort. I install the package and I use it. Ubuntu was great because you could Google it and get an answer that applies, and ChromeOS is great for the same reason. Linux could be as great as macOS, but it's the fragm…

>Linux could be as great as macOS, but it's the fragmentation that kills it.

No, Linux is as valid technologically as the other offerings, fragmented or not. It's just that it doesn't have a mega-corp behind it to push, to make deals with businesses, schools, governments. As soon as Google stepped in with Android and ChromeOS, suddenly it was everywhere.

Post reply on HN