[SOLVED] Temperature controlled fan controller

I have a project I'm planning where I'll be using a water cooling system. I want to control the fans in response to the temp of the fluid. I don't have access to a computer that can run a corsair commander or similar device (for this project). Which is how I manage my PCs WC system.

Does anyone know of a fan controller (its a fine if its a 5.25 bay design) that can control fan speed based on temps? What I've found are devices that have temperature inputs but only sound an alarm and don't really control the fan speed based on temps. I have half resigned myself to having to design something based on an arduino or R-PI. There are designs out there but this project isn't really to build a fan controller, it's to build the project. Only need to control 3 noctua NF-A14's
 
Solution
The "normal" way that the CPU cooling system on a mobo operates, when used with a liquid cooling system, is this. The PUMP unit operates constantly at full speed to move the liquid around the loop. The FANS on the radiator (where heat removal actually happens) have their speeds controlled automatically by the mobo CPU_FAN header according to the actual TEMPERATURE measured by a sensor built into the CPU chip itself and fed out on one pin. The automatic control system on the CPU_FAN header has a pre-set temperature target and some loop tuning parameters for this operation. MOST mobos also allow you to opt instead to use your own custom fan "curve" (graph of fan speed vs. measured temperature) for rad fan speed control. Within that you...
@popatim Hmm didn't get a notification of your reply. There is no OS. I'd like a straight hardware controller. It should be simple monitor liquid temps and ramp fans up based on fluid set points. But I'm having a hell of a time finding the appropriate systems. Most have presets that are way too high. I'd like the fans to idle below 25 and ramp up as the temps increase.

Thinking about it now. A Ras-PI might fit the bill as it's cheap and might have the appropriate outputs. I haven't had many happy experiences with linux though. I have a particular professor at Purdue to thank for that.
 

Paperdoc

Polypheme
Ambassador
The "normal" way that the CPU cooling system on a mobo operates, when used with a liquid cooling system, is this. The PUMP unit operates constantly at full speed to move the liquid around the loop. The FANS on the radiator (where heat removal actually happens) have their speeds controlled automatically by the mobo CPU_FAN header according to the actual TEMPERATURE measured by a sensor built into the CPU chip itself and fed out on one pin. The automatic control system on the CPU_FAN header has a pre-set temperature target and some loop tuning parameters for this operation. MOST mobos also allow you to opt instead to use your own custom fan "curve" (graph of fan speed vs. measured temperature) for rad fan speed control. Within that you can set a minimum speed (they usually prevent you from setting it so low that the fan can stall) at your lowest temperatures, and higher speed for higher temps.

IF one were to create a cooling control loop for such a system that changes BOTH the pump speed (controls how rapidly heat is moved from CPU to rad) AND rad fan speed (controls how rapidly heat is removed from the liquid), the two heat removal components with different response times are VERY likely to "fight" each other with actions to counteract each other. So the normal system keeps ONE of these unchanged - the pump speed - and manipulates only the FAN speeds. A few such systems allow minimal pump speed changes according to temp ranges, and with very slow response characteristics so the fan speed system can adjust smoothly, but not many do that.

So, the system present already in almost all mobos DOES control heat removal, but uses a temperature sensor in the CPU chip, not one in the fluid loop. That is a more accurate guide to the CPU's cooling needs, and it has the advantage of very quick response to rapid heat load changes. It DOES offer you the option of customization of the "fan curve". And it DOES operate at the mobo hardware level, irrespective of OS. Some (but not all) AIO systems combine these elements with their own software utilities that communicate with the mobo and take over the control system, and that does depends on the OS. But not all do that. Clue: if the connections for a commercial AIO system tell you to connect the RAD FANS to the CPU_FAN header, and do not instruct you to download and run their proprietary software, then control is being done solely by the MOBO's automatic system as I describe above. But I realize that probably you do NOT plan to buy a commercial AIO system, and are doing your own cooling loop system.

So, much of what I believe you are trying to achieve can be done using what your mobo already has. Perhaps I'm missing something here. But consider the option of NOT dong the work to create your own.
 
Solution
@Paperdoc

Yeah, you are missing something. As I stated in my first post. They liquid cooling system is not going to be bound to a PC. There is no motherboard to connect to, to guide the cooling system. Your understanding of how a water cooling system works is... incorrect. I've a liquid cooling system installed in my PC for a couple years now. A full custom loop. The pump is not and should not be "controlled" by the PC. It's job is to circulate the fluid. It should run at a constant speed. For best performance it should run at max. Or as fast as it can without being audible if silence is the goal. While the control system might set the speed of the pump it should be set to a static value. This testing has been done by Jayz2cents, Gamers Nexus, and Debauer, if I remember correctly.

Most AIOs use the CPU temp to control the radiator fans because that is the only source of data they have. I believe this is incorrect. Ideally you want to fluid to be cool so that no matter the load on the CPU it's being fed fresh cool coolant. This also covers you in the event that you have multiple components contributing heat to the coolant. If you rely on the CPU to control the radiator fan but you are playing a GPU bound game that doesn't load the CPU you can put too much heat into the system. Unnecessarily. There is also a substantial lag between when the CPU generates heat and when that heat actually shows a noticeable effect on the fluid because of it's high thermal mass. If you control the radiator fans with the CPU package temp you can see spikes in temp that cause the fans to rapidly ramp up and then slow down. This is pointless and wasteful and, if your goal is silence, loud.

I use a liquid temp sensor to monitor the fluid temp. I turn up the fans to help cool the fluid in the same way you might turn on the AC in the summer to cool the air you use to cool yourself. If the air is already cold do you turn on the AC for a minute because you got a little warm walking up the stairs? No, you wouldn't...shouldn't.

I wont continue to debate water cooling science with you in this thread. If you would like start a new thread and message me there and I'd be happy to discuss it further.

I did find some info on using a Ras-PI to control a PWM fan. It looks a bit easier than doing the same with an Arduino as you have to spin your own PWM control as the default freqs on the arduino are not within the 25khz range of the PWM control.
 

Paperdoc

Polypheme
Ambassador
See my PM, too.
Looking at third-party Fan Controller modules for 5¼" slots, there are a few that claim to be able to use their own temperature probes for automatic control. The all appear to do the same simple feedback control of fan speed based on a temperature measured by a probe supplied with the unit, and mounted where you choose. Such probes can be a little trouble to mount and ensure reliable thermal contact, but that's do-able. The modules do not have any options for extensive customization, and I find their manuals to be uninformative. I will comment that almost all use only the older Voltage Control Mode (with 3-pin output headers), and not PWM Mode. That way they can be used with both fan types (because they rely on the backwards compatibility feature that PWM fan speeds can be controlled by that older Mode, even if it is not ideal).

If you were to use one of these to control the temperature of the liquid loop fluid only, iIt has no direct impact on nor information on the actual devices (CPU and GPU) you are cooling. You would still have to use mobo resources for some of that, like monitoring the actual CPU temp. Monitoring the GPU temp would require use of the utility supplied with that video card - the mobo does not normally have access to that info.

Another option, if you are happy with "normal" feedback control. but based on a temp sensor in the liquid loop, rather than on a CPU sensor, might be to select a mobo with the right feature. SOME mobos include an accessory temperature probe that plugs into the board and can be mounted wherever you like. Then they offer that sensor as an option for use in the normal automatic control system by at least one CHA_FAN or SYS_FAN headers. So you get automatic control based on the temp you want to use, with some ability to customize using the normal fan control utility tools supplied with that mobo. BUT that depends on whether you actually plan to use this in a new system with a particular new mobo.