If anyone is interested, the ADT7473 (fan controller) datasheet can be found here: http://rapidshare.com/files/137745268/adt7473_datasheet.pdf.html on page 42 there is a formula for calculating the Tmax value of the fan controller: Tmax = Tmin + (MaxDC - MinDC) * Trange / 170 where: Tmax is the temp at which the fan runs at 100% Tmin is the temp at which the fan turns on MaxDC is the max duty cycle of the fan MinDC is the min duty cycle of the fan Trange is the duty cycle vs. temperature slope. This isn't very helpful if you have the Tmax and Tmin values and you need the Trange value that will get you there. Using this formula, you can get the Trange value: Trange = (Tmax - Tmin) * 170 / (MaxDC - MinDC) I created a spreadsheet that you can use to automatically calculate the values (don't type in the yellow cells because the formulas are there). http://rapidshare.com/files/142629276/T-Range_Calc.xls.html BTW... the values that are already plugged into the spreadsheet work pretty well for me. My 8800GT never goes above 80 degrees and the fan tracks the temp pretty smoothly. I think that the dynamic Tmin control settings have something to do with it too. Hope this helps

It did indeed help! Following your information, I was able gain control of the fan speed regulation loop and get it to do exactly what I want. Thanks! My settings: Duty cycle min 65 (Just below audibility) Duty cycle max 100 T min 55 T range 10 T operating 65 T low limit 60 (not really sure what this does) T high limit 80 (also not sure about this setting. I forced the temp above this point to test it and nothing happened)

According to page 48 of the fan controller data sheet, the T-low, T-high and T-operating parameters regulate how the T-min value is automatically adjusted: T-low - If the temp drops below the T-low value, the T-min value is automatically raised. (this assumes that the T-min was set too low for the operating conditions and attempts to compensate) T-high - If the temp rises above the T-high value, the T-min value is automatically lowered. (this assumes that the T-min was set too high for the operating conditions and attempts to compensate) T-Operating - The target temperture. The fan controller attempts to maintain system temperature at about the operating point by adjusting the TMIN parameter of the control loop. I noticed that after entering my fan controller settings and playing a 3D game for an hour or two, after going back in and checking the settings, the T-min value had been changed to a more appropriate value for the operating conditions. BTW... I plugged your settings into my spreadsheet and are you aware that your T-range may be set a little low? At a setting of 10 and a T-min of 55, your fan must shoot up to 100% speed almost instantly. Go back into RivaTuner and see if it hasn't already been automatically changed. Here are your settings as entered into the spreadsheet. Note the T-max value: Calculate T-Max D-Min 65.00 D-Max 100.00 T-Min 55.00 T-Max 57.06 (this is at or below idle temp) T-Range 10.00 T-Operating 70 T-Low Limit 55 T-High Limit 80

Small note on the following formula: Tmax = Tmin + (MaxDC - MinDC) * Trange / 170 It works correctly only with raw MaxDC and MinDC values replresented in PWM ticks (0 - 255 ticks max). The values you see and edit in RT are in percents, so 170 const should be corrected to consider that.

I see your point, however I'm not so sure that the constant needs to change. Anyway, I'm not at home right now but I will do some testing when I get back from work and reply What I did to come up with the formula was to take the formula for calculating the T-max value (given the T-range) from page 42 of the datasheet: TMAX = TMIN + (Max DC − Min DC) × TRANGE /170 and reverse it so that the T-range value could be calculated if the T-max value is known. The formula still works, regardless whether your Max/Min DC values are between 0 & 100 (percent) or 0 & 255 (ticks). Just to be sure I did it correctly, I tested by entering both formulas in a spreadsheet (the one I posted). Try this: Enter the T-range, T-min, Max DC and Min DC values into the "Calculate T-Max" side of the spreadsheet. Then, in the "Calculate T-Range" side enter the T-min, Max DC, Min DC and the value for T-max that was calculated in the "Calculate T-Max" side. You will see that the calculated T-range will match the value that you entered in the "Calculate T-Max" side. I understand what you're saying and I have been thinking about it (now my head hurts again thank you very much) lol. I will test when I get home and get back to you. Thanks, PS... Which values in the RT fan control page are represented in percents? I assume only the ones pertaining to duty cycle... am I correct?

The correct formula to compute TRange as a function of Tmax, Tmin and of the Duty_Cycle_min expressed in percents is this one: TRange=2/3*100*(T_max-T_min)/(100-Duty_Cycle_min) I got the formula some time ago when i was studying 8800 gtx auto fan control of the external controller.

From the datasheet with some manipulations. I verified it by setting the auto control mode on my old 8800gtx with dynamic control of Trange disabled. Look here for more details.

That's very interesting. I'll have to read further when I get home but i see where you were able to get the fan at 100% duty cycle via your target max temp and t-range. cool!

Unwinder, You are sooo right. I did some testing and see that the RT duty cycles are represented as percentages. Would it be fair to say then that since the PWM ticks are from 0 to 255 and this represents a 0% to 100% duty cycle, we can translate the PWM value to duty cycle % by this formula: PWM Tick value = Duty Cycle % * 2.55 If so, then the formula can be altered to represent this by the following: Tmax = Tmin + ((MaxDC * 2.55) - (MinDC * 2.55)) * Trange / 170 What do you think?

Also to better understand Trange, DeeCiple, you can put the relation between temperature and duty-cycle in this way: Duty_Cycle=Duty_Cycle_min+2/3*100*Delta_t/Trange where Delta_T is the temperature difference with respect to T_min. If you call TRange_effective the temperature range where the duty-cycle increases (taking into account that the maximum duty-cycle is 100), you obtain: 3/2*(100-Duty_Cycle_min)/100*Trange=Trange_effective So Trange is the temperature range on which the fan speed is controlled when the duty_cycle min 33 %, in fact in this case: 3/2*(100-1/3*100)/100*Trange=Trange_effective -> 3/2*(2/3)*Trange=Trange_effective -> Trange=Trange_effective If Duty_Cycle_min is increased, Trange_effective decreases, i.e. fan speed slope vs temperature increases and viceversa. Take note that whle you can change Duty_Cycle_min from 0 to 100 %,with a step of 0.39 %, Trange can be programmed only to 16 different values, so if you fix Duty_Cycle_min, Trange_effective can assume only 16 values with wide steps between them. In conclusion is better to modify Duty_Cycle_min and Trange at the same time in order to achieve the desired Trange_effective, that can then be correctly "placed" by changing T_min, that can be modified with 1 °C steps.

Also this is how dynamic control of Tmin works: The dynamic control changes Tmin in order to achieve a temperature equal to Toperating with the minimum possible Fan speed. It is a very powerful feature of this controller. Note that changing Tmin does not vary the slope of the fan speed versus temperature curve, that is fixed by Trange, i.e. decreasing Tmin moves the curve to the left (increasing fan speed) while increasing Tmin moves the curve to the right (decreasing fan speed). The inner control logic is this one: If the temperature is higher than Toperating minus a fixed value, Tmin is decreased with as a function of the temperature slope. If the temperature is higher than Toperating, Tmin is decreased faster. On the contrary, if the temperature is lower than Tlow, Tmin is increased. The maximum value that can reach Tmin is definied by Thigh. The operating principles of the controller are a little more complex, this is just a simplification to give an idea of how dynamic ontrol works. Based on this logic, itis clear that in order to disable dynamci control of tmin it is enough to set Tlow = 0 (i.e. very low value) and Toperating=Thigh=110 (i.e. very high value). In this way the relation between target duty-cycles and temperature is perfectly linear. The real duty-cycle can be different taking into consideration acoustic management of the controller that tries to minimize too fast variations of the fan speed.

That's definitely alot of good info guys (albeit very technical). Thanks for helping me with my understanding of how the fan controller works!!! I updated the spreadsheet to reflect the correct calculations and updated the link in my original post, as well as here: http://rapidshare.com/files/142629276/T-Range_Calc.xls.html Enjoy

Noob question here...does this formula you've been discussing work with my video card? XFX 9800 GTX Thanks.

If your card is equipped with ADT7473 fan controller the same formula apllies to your card. You can check whenever this is the case by accessing the low level fan settings tab, if there is one.

I know this post is a bit old, but for those of us just finding this thread ... This is not right. THigh doesn't cause the TMin to decrease , TOperate does. THigh is the MAXIMUM that TMin can be auto adjusted to. Figure 70 shows a 'normal' range of settings. TOperate should be highest, then TLow then finally THigh. TLow & THigh position can be swapped to acheive a better (forced) cool down curve. ribbell stated it correctly, though I missed it the first read. The top post should probably be edited. Cheers

@DeeCiple Maybe you can update you xls to something similar like this, found on vaguetech riva tuner guides. Id love to see the actual fan speed based on the temps rather than doing guess work, Im using a 285 with a ADT7473 controller also.