* [lm-sensors] A better fan control program
@ 2006-06-28 10:09 Paul Crowley
2006-06-28 10:49 ` Mark M. Hoffman
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Paul Crowley @ 2006-06-28 10:09 UTC (permalink / raw)
To: lm-sensors
I know there are several programs out there that adjust your fan speed
based on temperature readings. However, I couldn't find one worked well
on my system, so I wrote my own. This program takes a very simple
approach: if the system is too hot, the fans run on maximum power,
otherwise they run at minimum power. The reasoning behind this approach
is explained at length here:
http://www.lshift.net/blog/2006/06/26/thermostat-defeat
and the resulting program, in C, is available here:
http://www.lshift.net/downloads/fankuchen-v0.1.tar.gz
This is now running on my system and I'm very happy with the results.
Should this be the program that ships by default with lm-sensors? Let
me know what you think. Thanks!
--
[][][] Paul Crowley
[][] LShift Ltd
[] [] www.lshift.net
^ permalink raw reply [flat|nested] 5+ messages in thread
* [lm-sensors] A better fan control program
2006-06-28 10:09 [lm-sensors] A better fan control program Paul Crowley
@ 2006-06-28 10:49 ` Mark M. Hoffman
2006-06-28 12:13 ` Paul Crowley
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Mark M. Hoffman @ 2006-06-28 10:49 UTC (permalink / raw)
To: lm-sensors
Hi Paul:
* Paul Crowley <paul at lshift.net> [2006-06-28 11:09:48 +0100]:
> I know there are several programs out there that adjust your fan speed
> based on temperature readings. However, I couldn't find one worked well
> on my system, so I wrote my own. This program takes a very simple
> approach: if the system is too hot, the fans run on maximum power,
> otherwise they run at minimum power. The reasoning behind this approach
> is explained at length here:
>
> http://www.lshift.net/blog/2006/06/26/thermostat-defeat
I skimmed through the blog entry and the earlier one which it references.
In your first attempt you reinvented the 'P' part of a PID control loop.
Don't give up! ;) There's a *ton* of info about PID controllers on the
web. If you're still interested, you could start here:
http://en.wikipedia.org/wiki/PID_controller
Regards,
--
Mark M. Hoffman
mhoffman at lightlink.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* [lm-sensors] A better fan control program
2006-06-28 10:09 [lm-sensors] A better fan control program Paul Crowley
2006-06-28 10:49 ` Mark M. Hoffman
@ 2006-06-28 12:13 ` Paul Crowley
2006-06-30 11:19 ` Mark M. Hoffman
2006-06-30 11:32 ` Jean Delvare
3 siblings, 0 replies; 5+ messages in thread
From: Paul Crowley @ 2006-06-28 12:13 UTC (permalink / raw)
To: lm-sensors
Mark M. Hoffman wrote:
> I skimmed through the blog entry and the earlier one which it references.
> In your first attempt you reinvented the 'P' part of a PID control loop.
> Don't give up! ;) There's a *ton* of info about PID controllers on the
> web. If you're still interested, you could start here:
>
> http://en.wikipedia.org/wiki/PID_controller
Very interesting stuff, thanks!
My quick reading of this stuff indicates a possible problem. On my
system at least, I can only read the temperature in whole degrees;
lm-sensors returns a number in thousandths of a degree, but sadly the
last three digits are always zero. This means that our differentiation
of the temperature will be very crude, which could make it difficult to
build a functioning PID controller.
How can I find out the maximum safe operating temperature of my current
CPU? Since my first priority is something that works on my current
system, the only reason for me to pick this up again and explore in more
detail is if I can afford to slow the fan even when the system is flat
out, which means I need to know how fast I can run it.
Thanks again!
--
[][][] Paul Crowley
[][] LShift Ltd
[] [] www.lshift.net
^ permalink raw reply [flat|nested] 5+ messages in thread
* [lm-sensors] A better fan control program
2006-06-28 10:09 [lm-sensors] A better fan control program Paul Crowley
2006-06-28 10:49 ` Mark M. Hoffman
2006-06-28 12:13 ` Paul Crowley
@ 2006-06-30 11:19 ` Mark M. Hoffman
2006-06-30 11:32 ` Jean Delvare
3 siblings, 0 replies; 5+ messages in thread
From: Mark M. Hoffman @ 2006-06-30 11:19 UTC (permalink / raw)
To: lm-sensors
Hi Paul:
* Paul Crowley <paul at lshift.net> [2006-06-28 13:13:40 +0100]:
> Mark M. Hoffman wrote:
> > I skimmed through the blog entry and the earlier one which it references.
> > In your first attempt you reinvented the 'P' part of a PID control loop.
> > Don't give up! ;) There's a *ton* of info about PID controllers on the
> > web. If you're still interested, you could start here:
> >
> > http://en.wikipedia.org/wiki/PID_controller
>
> Very interesting stuff, thanks!
>
> My quick reading of this stuff indicates a possible problem. On my
> system at least, I can only read the temperature in whole degrees;
> lm-sensors returns a number in thousandths of a degree, but sadly the
> last three digits are always zero. This means that our differentiation
> of the temperature will be very crude, which could make it difficult to
> build a functioning PID controller.
Read under 'Limitations' in the wikipedia article. One suggestion is
to just skip the differential band altogether (PI controller).
> How can I find out the maximum safe operating temperature of my current
> CPU? Since my first priority is something that works on my current
> system, the only reason for me to pick this up again and explore in more
> detail is if I can afford to slow the fan even when the system is flat
> out, which means I need to know how fast I can run it.
You can find this info in processor datasheets, which are available on
Intel/AMD websites. It shouldn't be too hard to find. Otherwise, you
could consider 55 C to be a very conservative limit. Some Intel cpus
are OK up to 85 C, but it really does depend on the model *and* maybe
even the stepping.
Something else to consider: if you do tune your system to keep the CPU
near max temp, make sure that the extra heat is not going to affect
your disk(s).
Regards,
--
Mark M. Hoffman
mhoffman at lightlink.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* [lm-sensors] A better fan control program
2006-06-28 10:09 [lm-sensors] A better fan control program Paul Crowley
` (2 preceding siblings ...)
2006-06-30 11:19 ` Mark M. Hoffman
@ 2006-06-30 11:32 ` Jean Delvare
3 siblings, 0 replies; 5+ messages in thread
From: Jean Delvare @ 2006-06-30 11:32 UTC (permalink / raw)
To: lm-sensors
Hi Paul,
> How can I find out the maximum safe operating temperature of my current
> CPU? Since my first priority is something that works on my current
> system, the only reason for me to pick this up again and explore in more
> detail is if I can afford to slow the fan even when the system is flat
> out, which means I need to know how fast I can run it.
There's this this page I use as a reference for CPU characteristics:
http://users.erols.com/chare/elec.htm
You can also find the information the datasheet of your CPU. Both Intel
and AMD provide this information, if you search long enough.
Keep in mind that the temperature reported by lm_sensors (or any other
mean) is almost always an approximation, either because of the
temperature probe (lack of) accuracy, or because the probe is not
inside the CPU but just nearby, or because the the measurement noise,
or because the driver caches the data for a certain amount of time,
etc. So you should keep a good safety margin. Colder is always better
for the lifetime of your CPU, as you found out yourself.
--
Jean Delvare
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2006-06-30 11:32 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-06-28 10:09 [lm-sensors] A better fan control program Paul Crowley
2006-06-28 10:49 ` Mark M. Hoffman
2006-06-28 12:13 ` Paul Crowley
2006-06-30 11:19 ` Mark M. Hoffman
2006-06-30 11:32 ` Jean Delvare
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.