# lm_sensors and A7V880: CPU temp is 5 degrees too hot

## nixscripter

Hello guys.

Rather like the title says, my CPU temp reads 5 degrees too hot compared to the BIOS; when it says 42C, the sensors command says 47C. Also, my -12V and -5V are rather wacky, but I assume this motherboard doesn't read those.

The on-board sensors are it8712s:

```

it8712-isa-0c00

Adapter: ISA adapter

VCore 1:   +1.66 V  (min =  -0.05 V, max =  +4.03 V)   

VCore 2:   +4.08 V  (min =  +0.00 V, max =  +4.08 V)   ALARM

+3.3V:     +3.39 V  (min =  +0.00 V, max =  +4.08 V)   

+5V:       +4.89 V  (min =  +0.00 V, max =  +6.85 V)   

+12V:     +11.97 V  (min =  +0.00 V, max = +16.32 V)   

-12V:      +3.93 V  (min = -27.36 V, max =  +3.93 V)   ALARM

-5V:       +4.03 V  (min = -13.64 V, max =  +4.03 V)   ALARM

Stdby:     +6.85 V  (min =  +0.00 V, max =  +6.85 V)   ALARM

VBat:      +3.26 V

fan1:     3813 RPM  (min =    0 RPM, div = 2)          

fan2:     2755 RPM  (min =    0 RPM, div = 2)          

CPU Temp:    +49 C  (low  =   -17 C, high =  +174 C)   sensor = invalid   

M/B Temp:    +39 C  (low  =    -1 C, high =  +127 C)   sensor = invalid   

vid:      +1.100 V

```

Here's the important part of my sensors.conf file:

```

chip "it87-*" "it8712-*"

# The values below have been tested on Asus CUSI, CUM motherboards.

# Voltage monitors as advised in the It8705 data sheet

    label in0 "VCore 1"

    label in1 "VCore 2"

    label in2 "+3.3V"

    label in3 "+5V"

    label in4 "+12V"

    label in5 "-12V"

    label in6 "-5V"

    label in7 "Stdby"

    label in8 "VBat"

    # vid is not monitored by IT8705F

    # comment out if you have IT8712

#   ignore  vid

# Incubus Saturnus reports that the IT87 chip on Asus A7V8X-X seems

# to report the VCORE voltage approximately 0.05V higher than the board's

# BIOS does. Although it doesn't make much sense physically, uncommenting

# the next line should bring the readings in line with the BIOS' ones in

# this case.

    compute in0 -0.05+@ , @+0.05

# If 3.3V reads around 1.65V, uncomment the following line:

#    compute in2   2*@ , @/2

    compute in3 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)

# A number of Gigabyte boards (GA-8IPE1000Pro, GA-8KNXP, GA-7N400-L) use

# a different resistor combination for +5V:

#    compute in3 ((10/10)+1)*@ ,  @/((10/10)+1)

    compute in4 ((30/10) +1)*@  , @/((30/10) +1)

# For this family of chips the negative voltage equation is different from

# the lm78.  The chip uses two external resistor for scaling but one is

# tied to a positive reference voltage.  See ITE8705/12 datasheet (SIS950

# data sheet is wrong)

# Vs = (1 + Rin/Rf) * Vin - (Rin/Rf) * Vref.

# Vref = 4.096 volts, Vin is voltage measured, Vs is actual voltage.

# The next two are negative voltages (-12 and -5).

# The following formulas must be used. Unfortunately the datasheet

# does not give recommendations for Rin, Rf, but we can back into

# them based on a nominal +2V input to the chip, together with a 4.096V Vref.

# Formula:

#    actual V = (Vmeasured * (1 + Rin/Rf)) - (Vref * (Rin/Rf))

#    For -12V input use Rin/Rf = 6.68

#    For -5V input use Rin/Rf = 3.33

# Then you can convert the forumula to a standard form like:

    compute in5 (7.67 * @) - 27.36  ,  (@ + 27.36) / 7.67

    compute in6 (4.33 * @) - 13.64  ,  (@ + 13.64) / 4.33

#

# this much simpler version is reported to work for a

# Elite Group K7S5A board

#

#   compute in5 -(36/10)*@, -@/(36/10)

#   compute in6 -(56/10)*@, -@/(56/10)

#

    compute in7 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)

#    set in0_min 1.5 * 0.95

#    set in0_max 1.5 * 1.05

#    set in1_min 2.4

#    set in1_max 2.6

#    set in2_min 3.3 * 0.95

#    set in2_max 3.3 * 1.05

#    set in3_min 5.0 * 0.95

#    set in3_max 5.0 * 1.05

#    set in4_min 12 * 0.95

#    set in4_max 12 * 1.05

#    set in5_max -12 * 0.95

#    set in5_min -12 * 1.05

#    set in6_max -5 * 0.95

#    set in6_min -5 * 1.05

#    set in7_min 5 * 0.95

#    set in7_max 5 * 1.05

    #the chip does not support in8 min/max

# Temperature

#

# Important - if your temperature readings are completely whacky

# you probably need to change the sensor type.

# Adujst and uncomment the appropriate lines below.

# The old method (modprobe it87 temp_type=0xXX) is no longer supported.

#

# 2 = thermistor; 3 = thermal diode; 0 = unused

#   set sensor1 3

#   set sensor2 3

#   set sensor3 3

# If a given sensor isn't used, you will probably want to ignore it

# (see ignore statement right below).

#   label temp1       "M/B Temp"

#    set   temp1_over  40

#    set   temp1_low   15

#   label temp2       "CPU Temp"

#    set   temp2_over  45

#    set   temp2_low   15

    ignore temp3

#   label temp3       "Temp3"

#    set   temp3_over  45

#    set   temp3_low   15

# The A7V8X-X has temperatures inverted, and needs a conversion for

# CPU temp. Thanks to Preben Randhol for the formula.

   label temp1       "CPU Temp"

   label temp2       "M/B Temp"

   compute temp1     (-15.096+1.4893*@), (@+15.096)/1.4893

# The A7V600 also has temperatures inverted, and needs a different

# conversion for CPU temp. Thanks to Dariusz Jaszkowski for the formula.

#   label temp1       "CPU Temp"

#   label temp2       "M/B Temp"

#   compute temp1     (@+128)/3, (3*@-128)

# Fans

#   set fan1_min 0

#   set fan2_min 3000

    ignore fan3

#   set fan3_min 3000

# The following is for the Inside Technologies 786LCD which uses either a

# IT8705F or a SIS950 for monitoring with the SIS630.

#

# delete or comment out above it87 section and uncomment the following.

#chip "it87-*"

#    label in0 "VCore 1"

#    label in1 "VCore 2"

#    label in2 "+3.3V"

#    label in3 "+5V"

#    label in4 "+12V"

#    label in5 "3.3 Stdby"

#    label in6 "-12V"

#    label in7 "Stdby"

#    label in8 "VBat"

    # in0 will depend on your processor VID value, set to voltage specified in

    # bios setup screen

#    set in0_min 1.7 * 0.95

#    set in0_max 1.7 * 1.05

#    set in1_min 2.4

#    set in1_max 2.6

#    set in2_min 3.3 * 0.95

#    set in2_max 3.3 * 1.05

#    set in3_min 5.0 * 0.95

#    set in3_max 5.0 * 1.05

    # +- 12V are very poor tolerance on this board. Verified with voltmeter

#    set in4_min 12 * 0.90

#    set in4_max 12 * 1.10

#    set in5_min 3.3 * 0.95

#    set in5_max 3.3 * 1.05

#    set in6_max -12 * 0.90

#    set in6_min -12 * 1.10

#    set in7_min 5 * 0.95

#    set in7_max 5 * 1.05

    # vid not monitored by IT8705F

#    ignore  vid

#    compute in3 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)

#    compute in4 ((30/10) +1)*@  , @/((30/10) +1)

#    compute in6 (1+232/56)*@ - 4.096*232/56, (@ + 4.096*232/56)/(1+232/56)

#    compute in7 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)

    # Temperature

#    label temp1       "CPU Temp"

#    ignore temp2

#    ignore temp3

    # Fans

#    set fan1_min 3000

#    ignore fan2

#    ignore fan3

```

Any suggestions? I'm hoping there is an "official" upgrade rather than me just setting it to 5 degrees lower arbitrarily.

----------

## MaximeG

Hi,

I've already read threads dealing about this topic, they were advising to manually add a "-5" to the calculation.

I don't know the details, but I think these temps are estimated and arbitrary sent by motherboards. They can't really fix it, since every motherboard will behave differently; that's why they (lm_sensors team) propose a way of modifying the temperature using a formula in the config file.

Regards,

Maxime

----------

## djinnZ

There are two problems in the sensors: the first than I read in yours logs is the "sensor invalid" message. Try to change the sensor type with the "set sensor" (manually set to 1-2-3) line, the second problems is with the scale and the start/end temperature, as MaximeG think are arbitrary establishied for every MB (and crappy documented by the producers, or totally undocumented also).

No other solution than try or ask direcly to the lm_sensors devels. The tuning of the lm sensors need to write a your own config file.

----------

## nixscripter

Thanks guys.

1. I set the sensors to 2 (thermistor), and while the temperature displayed is the same, it still says "invalid" for the sensor type.

2. I subtracted 5 from the bottom and added 5 to the top. Now it reads correctly, despite the ranges being the rather bizarre -22C to +169C. The motherboard's ranges, remember, are -1C to +127C, and it also reads accurately.

I guess if that's it, that's it.

----------

