[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: sensors



On Wed, Apr 23, 2008 at 09:45:58AM -0400, Lennart Sorensen wrote:
> On Wed, Apr 23, 2008 at 02:13:02AM -0700, Francesco Pietra wrote:
> 
> > Also, is any chance to configure the sensors.conf from data read from BIOS in order to have a correct sampling of temperatures and fan speeds? (without having specific data for the sensors)
> 
> No.
> 
> The fan speed should be fairly simple in general.  It is usually either
> correct or it has to be divided by 2 or 4 to make it correct.  The
> maximum and minimums for the alarm state should be set based on the
> actual speed of your fan when it works normally.
> 
> For voltages, the sensors I have worked with will read correct for any
> voltage under 4V, but need an offset and multiplication factor for any
> voltages over 4V (since they use a resistor network to scale the voltage
> down into a 0 to 4V range for the sensor).  To get an accurate reading
> really requires knowing which resistor values were used.  Of course you
> also need to know which voltage is supposed to be on each input on the
> sensor since they could really be used for anything the board maker
> chooses.

There are a few very nice design documents for sensor chips out there
(IIRC I grabbed the one for a WD...627HF - did I get the number right?)
which shows that there should be a linear dependency of the sensor input
reading on the voltage measured, indeed. For negative voltages, and for
some positive ones too, there's not only a multiplier/divider but also 
a bias voltage.
Which means that the raw register reading (the one you get in the /proc
or /sys filesystem) is always positive, and you've got to fiddle with
a and b in

	register_value = a * voltage + b

or, reversed, 

	real_voltage = 1/a * register_value - b/a

That's exactly what the conversion formulae are for.
If one knows that resistors usually don't come in arbitrary values but
follow some rules (look for E series, common values are 6.8 and 10, 
times a power of ten) it's easy to guess.
Note that a single data point (taken from BIOS readings) doesn't allow
to determine a and b simultaneously!

Steffen


Reply to: