Making a fan controller to use in my PC’s ductwork

JamesWatt1

Member
Jan 24, 2011
36
0
0
When I’m running computer intensive tasks, I want the fans to cool my processor. When I’m not, I want the fans to be quiet. While I could use a manual rheostat to control the fans, I want to learn more about HVAC and control systems. So, I want to make a fan controller that senses the temperature and adjusts the fan speeds accordingly. I would like to get your input for my plan.

I’m starting from a project I did a while ago where I used ductwork to route air through my PC. 5” diameter dryer duct hose connects the front and back fans (Silverstone FM121 - http://www.silverstonetek.com/product.php?pid=118&area=usa) to the heat-sink (CoolerMaster Hyper 212+ http://www.coolermaster.com/product.php?product_id=3096) that is mounted on the processor.

pc_side_description.jpg

For full size image - http://postimage.org/image/c7y8mfogx/

What I’m planning to do is to install a temperature transducer to measure the temperature of the processor. A PLC (I was going to use an Arduino Uno http://arduino.cc/en/Main/ArduinoBoardUno, because it is cheap and easy to program) would read the transduced temperature. Based on a set-point that I enter and the temperature it reads, the PLC would vary the fan speed.

Below are some puzzles that arise with this approach that I haven’t figured out how to solve. I would appreciate your input on any or all of them.
 
Last edited:

JamesWatt1

Member
Jan 24, 2011
36
0
0
Which temperature transducer should I use?
I’ve seen a variety of temperature sensors out there:

There are various sensing technologies (http://www.maxim-ic.com/app-notes/index.mvp/id/3229)
· RTD (e.g., http://www.mamacsys.com/TE-701-702ordering_information.htm)
· Thermistors (e.g., http://www.mamacsys.com/TE-701-702ordering_information.htm)
· Thermocouple + transducer e.g., (http://www.pc-s.com/multi/MultitekTRtherm.htm)
· Integrated circuit (e.g., LM35 http://www.ladyada.net/learn/sensors/tmp36.html). I can’t think of a good way to mount an IC.

There are various mounting styles (http://www.mamacsys.com/TE-701-702ordering_information.htm)
· Flange
· Bulkhead

There are various resistances (http://www.mamacsys.com/TE-701-702ordering_information.htm) from 100 ohm to 100 kohm. The PLC I’m planning to use takes 0-5V on its analog inputs.

Which of these varieties do you recommend for my project and why?


Where should I put the temperature probe?
At the end of the day, the temperature I care about is the temperature on the surface of the processor.

The most accurate way to measure this I’ve seen is to mill a channel in the processor and put a thermocouple in it (for example, http://www.hardocp.com/image.html?image=MTMxMDczNDE4NkdFU2tUckRQRzlfMV8zX2wuanBn). However, I milling the surface of a $225 processor a bigger risk than I’m willing to take.

So, my best idea right now is to measure the exhaust heat by putting the probe right after the heat-sink.

pc_side_probe.jpg

For full size image, see http://postimage.org/image/4j4r0z2lj/

One of my concerns with this is that it will inhibit the airflow too much. Another concern is that I don’t want air to be escaping from the hole the probe pokes through. Do you have ideas for solving these issues?

What algorithm will take in the set-point and current temperature and calculate the fan power?
Another puzzle that I need to figure out is which control algorithm I want to use in the PLC. I’ve heard about the following (http://en.wikipedia.org/wiki/Control_systems):

· Binary control: if the temperature is above the set-point, turn the fans on. One problem with this is the fans need to be running at a low level all of the time to prevent the processor from overheating. One way around this would be to run the fans at a low level (e.g., 50%) as a default state; when the temperature pierces a certain threshold, I would run them at 100%. I could see the fans cycling on and off at a high frequency with this approach and wasting a lot of electricity.
· Proportional control: the PLC would vary the fan speed in proportion to the difference between the current temperature and the set-point. So, for example, if it is way hotter than it should be, the fans will run at 100%, while if it is barely hotter, they will run at 40% (their minimum speed). Wikipedia talks about downsides to this, but I don’t understand them.
· PID control. The PLC would also consider the rate the temperature is changing and historical temperatures when deciding how much power to apply to the fan. One challenge with this is how to implement the algorithm. I would have to spend some time programming the thing. The lazy (and expensive) solution would be for me to pick up a PLC with the algorithm already built in (e.g., http://www.mcmaster.com/#38615k73/).

Which algorithm do you advise I use?

What is a good online HVAC controls distributor?
I’ve seen a variety of sites that have just a listing of the manufacturers they carry and then a link to CGNA (http://www.cgnacontrols.com/search/), which seems to have a limited selection. One easier to use site I found was controlstop.com. What do you usually use?
 
Last edited:

Zap

Elite Member
Oct 13, 1999
22,377
7
81
Wouldn't it just be easier to use Speedfan and set it to adjust speeds automatically based on temperature?

Alternately, there are already off-the-shelf fan controllers with temperature sensing.
 

JamesWatt1

Member
Jan 24, 2011
36
0
0
Thanks, I didn't know about speed fan. While that would work, one of the purposes of the project is to learn about control systems, so I am more inclined to build the controller from scratch.
 

BonzaiDuck

Lifer
Jun 30, 2004
16,333
1,890
126
Thanks, I didn't know about speed fan. While that would work, one of the purposes of the project is to learn about control systems, so I am more inclined to build the controller from scratch.

I wouldn't discourage you from your project, but you can buy a controller which pretty much fills your bill, without using the Arduino and the DIY time and effort.

I've been told -- and will find out with certainty soon -- that the mCubed T-Balancer Big nG is the way to go. There are some other controllers which also would suffice.

The Big nG will supply something between 40 and 80W of total power to the fans. Depending on running PWM or conventional three-pin fans, I think each of the four channels provides between 10 and 20W. In fact, I think my memory of the precise specs is slightly off, because I was sure I could run a 1.0A fan @ 12V on a single channel -- a 3-pin fan.

The kit comes with the conventional analog thermal sensors, as well as (more accurate) digital sensors which appear to be little tiny circuit-boards that would be applied with thermal tape.

The software sets parameters communicated to an on-board processor on the Big nG's circuit-board. "Paths" or "curves" plotting temperature and fan-speed can be calibrated to compensate for the distance of sensors from the center of the processor's IHS.

If I were to choose a means of applying a sensor, I'd pick the analog type (even for being less accurate), and mill the divet in the heatsink-base -- not the CPU's IHS. The narrower the divet, the better, but it has to accommodate the sensor of the foil-thin type. It also cannot be so deep as to damage the heatpipes of the cooler or cause a significant reduction in the cooler's performance. You would cement the sensor with epoxy-type thermal adhesive, and then lap the heatsink base to assure flatness. The divet needn't go to the center of the IHS: you could make it extend half-way to center of the IHS. Then calibrate it with the known core temperature readouts and what we know about the expected spread between TCASE and core.
 

Soulkeeper

Diamond Member
Nov 23, 2001
6,732
155
106
I like your project
I suggest you cover the intake with an electrostatic vent filter

you might be over obsessing about the DIY fan controller, don't kill yourself :)

too bad you can't get a 4 pin pwm fan in there with motherboard/bios control

Looks good, please post some finished pics later on :)