Question From where should I take PWM control signal?

Imacflier

Distinguished
Jan 19, 2014
577
27
19,090
Hi, all,

I am building a custom loop which will contain both the GPU and the CPU. Both the loop pump and the radiator fans are PWM controlled. I can obtain the PWM control signals from either the GPU (intercepting the old GPU temperature fan control signal) or from the motherboard (the motherboard pump/fan control signal).

In, essence I am asking whether to control the pump speed and radiator fan speeds based on the GPU or the CPU temperature. Or control the fan from the GPU and the pump from the CPU, or the reverse?. Or design a circuit to control both the pump and the radiator fan based on whichever of the two signals is "highest"? (So many directions from which to choose and so little knowledge and experience!)

Please give me the logic behind your advice so that I may learn something!

TIA

Larry
 
I am asking whether to control the pump speed and radiator fan speeds based on the GPU or the CPU temperature.
Or control the fan from the GPU and the pump from the CPU, or the reverse?.
Or design a circuit to control both the pump and the radiator fan based on whichever of the two signals is "highest"?
Do not control pump.
Set it to constant speed with acceptable sound levels.

For fans - you want them to be controlled by highest temperature (cpu or gpu). This will depend of type of your workload.
You can also set one fan to be controlled by cpu, the other by gpu.
 
Update your post to include full system hardware specs and OS information.

Include PSU: make, model, wattage, age, condition (original to build, new, refurbished, used)?

Disk drive(s): make, model, capacity, how full?

List of all connected peripherals.
Requested data follows; in return, please explain how any of this data can possibly affect the answer to my question!

CPU: I9-9900KS
GPU: RTX 3080
OS: Windows 11 Pro
PSU: Corsair SF1000 (NIB)
System Drive: 4TB NVME, 30% full
Storage Drive: 4TB NVME, empty
NAS: 30 TB, ~60% full over 5 6TB IronWolf HDDs
Monitor: Samsung 49" Odyssey OLED (G93SC) Series

Larry
 
First factor: in most liquid-cooled systems there is a small dilemma with an easy common solution. There are two main factors impacting the rate of heat removal in the loop. The pump speed impacts the rate of moving heat from its source (CPU or GPU, in your case) to the radiator. The Rad Fans' speed determines the rate of removing heat from the rad to air expelled outside the case. IF one has BOTH the pump and Rad Fan speeds automatically and continuously adjusted according to one temperature sensor we get a problem because the response times of the two speed-controlled devices are different. So when temperature rises BOTH devices speed up, but the actual impact on the real temperature at the sensor happens faster from one device's actions. Shortly thereafter the impact of the action of the other device hits the system, normally resulting in an overshoot of the intended target (temperature) and the temperature change result is too large. This results in the control system sending out a signal to change back in the opposite direction to fix that off-target result, and again BOTH devices react with the same delay of response and overshoot but in the opposite direction. Repeat. Repeat. etc. The common solution is to fix the speed of ONE of the devices and have ALL temperature control done by automatic manipulation of the speed of only the other device. Most commonly that is done by making the PUMP run full speed always, although some systems allow the user to alter that pump speed setting to some other lower FIXED speed. There are a few AIO systems on the market that actually DO alter PUMP speeds automatically via PWM signal, but they do that my intervening and custom-adjusting the PWM signal for the PUMP only and its rate of changes to avoid this repetitious overshoot issue. So IF the equipment you buy requires a PWM speed signal to the PUMP, do as they say. BUT if you are building this custom loop yourself, I strongly advise you do the common approach and have the PUMP speed always full speed.

To your original question, though, assuming that you need the speed for only the RAD FANS to be guided by a temperature sensor - which sensor? My suggestion is to use the one in the CPU chip, commonly used as the ONLY option for the CPU_FAN header. There is a substantial correlation of the workload (and hence of heat generation) in the CPU and GPU chips, but there are lots of times where the CPU is working harder without heavy use of complex graphics. So I think it more important to ensure that the CPU is kept cool enough at all times and the GPU might be over-cooled at those times.. My GUESS is that the reverse (GPU used much more than CPU and thus getting hotter) is rare.

Besides that estimation of which sensor is preferred there is the practical question of how to access the temp sensor inside the GPU. There never has been a "standard" way for that. The makers of video cards DO know how to deal with THEIR OWN cards and can access that info, use it for on-card cooling fans and display it for you in their own software tools. But how to access that info by software you custom design and run on the mobo to control your own cooling system is NOT simple! The closest you MIGHT get is to intercept the fan speed control signals the card feeds to its own on-card fan, and that may or may not be a common PWM signal. Further, then you need to work on how many fans can be powered and controlled from that signal source - the power supplied by the video card to its own cooling fans will have a limit, just as any mobo fan header does. And once you get that to work, then ALL your system cooling is being controlled by the software of the VIDEO card and configured using the video card's software tool, not by anything on the mobo.
 
Do not control pump.
Set it to constant speed with acceptable sound levels.

For fans - you want them to be controlled by highest temperature (cpu or gpu). This will depend of type of your workload.
You can also set one fan to be controlled by cpu, the other by gpu.
Thank you so much for the direct and pertinent response.

I expect (hope) to use a single 200mm fan paired with a (200 x 200 x 85) radiator . That should be adequate to cool well over the total capacity of the 1000 Watt power supply, and therefore sufficient.

Since, at this time, the highest temperature is unknowable, I think it best to design a circuit to select the PWM signal which is associated with the highest temperature.

Thanks, again

Larry
 
@Paperdoc Very nice post! I had not considered the effect of hysteresis in the system....but it is obviously something to be taken into account!

I think I will take both yours and SkyNetRising's advice: set the pump speed to the fastest speed tolerable based on pump loudness, intercept the PWM fan signal from the GPU, compare it with the PWM fan signal from the CPU and generate a fan control signal in a tracking amplifier choosing the higher temp as the signal to operate the radiator fan.

HMMMM, and here I though this was supposed to be fun and anot a refresher in heat transfer and fluid flow!

Larry
 
Do not control pump.
Set it to constant speed with acceptable sound levels.

For fans - you want them to be controlled by highest temperature (cpu or gpu). This will depend of type of your workload.
You can also set one fan to be controlled by cpu, the other by gpu.
I don’t think controlling fans like that would work? If your GPU is at 80 and that fan is going 100% but your CPU is sat in the 50’s and barely spinning you’re just reducing the overall cooling for the largest source of heat in the system
 
If your GPU is at 80 and that fan is going 100% but your CPU is sat in the 50’s and barely spinning you’re just reducing the overall cooling for the largest source of heat in the system
Since cpu and gpu are in the same custom loop, rising temperature of gpu will also rise temperature for cpu.
Fan curves will need to be tuned.

Problem is - OP intends to use radiator with a single fan. Then this approach can not be used.
 
My Goodness! Let me try to clarify what I think is the way.

1. Set pump speed.

2. Sample CPU Fan Speed Request value.

3 . Sample GPU Fan Speed Request value.

4. Set fan speed to the larger of 2. or 3.

5. Go to 2.

And that should vary the fan speed over the full range depending on whether the CPU or the GPU 'wants' more cooling, and how 'badly', and also deals with hysteresis!

Does that make sense to all concerned? Or is there a 'better' way?

I would like, very much, to get concurrence before I try and limber up my circuit design skills!

Larry
 
@Imacflier

Re:

"please explain how any of this data can possibly affect the answer to my question!"

System specs are simply a starting point.

Very much like getting work done on an automobile. The mechanics/technicians need to know the automobile make, model, year, mileage, engine, etc..

Another example: Doctors start with basic requirements: Heart rate, blood pressure, respiration, lab tests, weight, height, medical history.

Basics.

= = = =

There are members here that can immediately recognize some component(s) or component combinations known to be problematic.

System behavior, error codes, history, and performance can then be used to help narrow potential culprits and thus directly lead to answer.

Or possibly lead to other questions that will, in turn, lead to an answer.
 
Since cpu and gpu are in the same custom loop, rising temperature of gpu will also rise temperature for cpu.
Fan curves will need to be tuned.

Problem is - OP intends to use radiator with a single fan. Then this approach can not be used.
It depends on the load. It will rise the temperature of the water but if that water is still adequately cooling the other component it won’t rise enough to trigger the second fan. A 20 degree jump in GPU might only bump up the CPU by 5 and your GPU is throttling
 
In your planned custom control system, do NOT rely on your idea that the two hot items SHOULD operate at the SAME temperature. Each is designed and has a default cooing system that uses a temperature target customized for that particular chip. You may not know what that is. But you may find out with some research or decide on the basis of operating experience what you think is right for each. So design your control system for a possible difference in the "ideal" temps of each chip and make the choice that way.

By the way, how do you plan to extract the two temperature readings from the mobo and video card?
 
By the way, how do you plan to extract the two temperature readings from the mobo and video card?
Good Morning,

The fans on the GPU are PWM, so I can compare the speed signal as an analog to temperature from the GPU PWM fan signal. I can compare that with the motherboard PWM fan signal (again as a analog to the CPU temperature). Then I can use the larger of the two signals to control the fan.

So far as I can see, this will guarantee that the component which most needs cooling controls the radiator fan, while providing excess cooling to the cooler component.

it may be easier to simply sum the signals which should accomplish the same objective, although that will lead to overall average faster fan speeds. But I won't know until I start looking at the circuits in more detail.

I hope that is reasonably clear....it makes MY head hurt!

Larry
 
Yes, those signals at each fan feed are the closest signal you can access to indicate the respective controllers' need for cooling. Bear in mind that, in each case, you are relying on a cooling system controller that already is doing most of the job and you are simply replacing the actual cooling device. Now for details.

Most video card systems use the same basic fan type as CPU cooler or case vent fans. Those come in two possible designs.

The older design is called 3-pin or Voltage Control fans. The three lines from controller output (or header) to the fan are Ground, +VDC and Speed. The first two are the power supply to the fan. The Voltage on Pin #2 varies from 12 VDC for max speed down to about 5 VDC min for lowest speed without stalling, and that's how fan speed is controlled and powered. The fan itself generates the speed signal to be sent back to the header on Pin #3. It is a series of pulses at 5VDC magnitude, 2 pulses per fan revolution. The controller receiving those counts the pulses and calculates the fan speed in RPM. This can be displayed for you, and many controllers also monitor that speed for NO speed signal that would indicate fan failure. Note that the controller does NOT use this info to control speed. It really does not care what the speed is. It is interested only in the temperature reading at the relevant sensor, and what is sends as Voltage is really like a "% of full power" signal. In SOME fans they skip the speed signal line entirely if the controller system really does not have any need to display the speed for you or monitor for failure. So to use that intercepted signal you need a circuit to quantify the Voltage and translate that into a demand for motor speed as a % of full speed.

The newer design is called 4-pin or PWM fans. Such fans have a special chip inside to use the new PWM signal. In this system the Voltage on Pin #2 is always 12 VDC. The new signal from Pin #4 is called a Pulse Width Modulation signal. It is running at about 22 KHz frequency and 5 VDC amplitude. A PWM wave looks like a Square Wave - that is, it is either fully ON or fully OFF. The difference is that a plain Square Wave is ON exactly 50% of the time, whereas PWM waves have %On variable from 0% to 100% - that is the information it contains. The special chip in the fan uses that wave signal to switch the flow of current from the fixed +12 VDC line through the motor windings on and off rapidly, producing rapid torque pulses of the motor that result in variable speed that depends on the %On value of the moment. That %On value might range from 100% down to 35%. So to use that intercepted signal you need a circuit to convert the %On value of the PWM wave into a demand for motor speed as a % of full speed. You will note that in BOTH cases there is no signal sent out that says "this is the desired speed". As you say you must deduce that from the POWER signal sent out in each system.

For your plans, first you need to check which form of motor and wiring is used for the CPU_FAN mobo header and the video card's fan power lines - they MIGHT be different. NOTE that the configuration options for most CPU_FAN headers now offer a choice whether the header sends out cignals in Voltage Control Mode or PWM Mode, whereas the video card will be fixed to one of those modes according to the type of fan mounted in it. Further, the video card may or may not have a speed signal coming back from the fan on its Pin #3, although you do not need that signal.
 
Last edited:
Paperdoc

The RTX3080 I am using is the Waterforce version (factory attached waterblock), it has on chip temperature sensing, and a PWM output for radiator fan control. The motherboard outputs a PWM sigal based on CPU temp.

A simple one op-amp non-inverting summing amplifier will output the sum of the two PWM signals (clipped to the 12vdc power supply limit), and, thus control the radiator fan at the higher of the two input speed control signals. I do not know if I need to split the RPM return signal to both the CPU and the GPU, but I suspect that I do. I think that is all I need to do to control the radiator fan to faster of the speeds required by either the CPU or the GPU.

Larry