A three-pin fan connector does not include the ability to control speed dynamically, since it lacks the appropriate PWM control logic in the fan itself. PWM fans require explicit support from both the motherboard and fan itself.

If you wish to slow your CPU fan down, you can install a resistor along the the power wire (+12V) in the fan. Alternatively, you can purchase a LNA (low-noise adapter), which is essentially the same thing (although it saves you soldering in a resistor yourself). Due to the tachometer sensor discussed in the next section, you cannot put the resistor on the ground wire. You could also install a hardware fan controller (which is also essentially a resistor, albeit a variable one called a potentiometer).

If you're interested in determining how to slow your fan down with a resistor (it's honestly pretty easy), I have provided calculations at the bottom of this answer. Alternatively, you could use a potentiometer (and use these calculations to provide a rough estimate of the range of resistance needed).

If you do choose to slow your fan down (usually for noise purposes), do ensure that your load temperatures do not get too hot. Slowing down your fan will lower the efficiency of your heatsink's ability to dissipate heat... This is the classical noise versus heat debate all over.

For those wondering why a fan with no speed control even has three wires, the third wire is used as a tachometer output signal. Since it is tied to the same power rail as the motherboard, there is no need for an additional ground wire. According to the fan specifications I linked to above, the standard is to provide two "pulses" per revolution. The motherboard (and your hardware monitoring software) can then infer the speed of the fan from the rate of these voltage "pulses".

(I say "pulses" because the tachometer pin is pulled high by the motherboard, and every time it is "pulsed", the fan pulls the pin to ground, or 0V - and this is why you can't put a resistor on the ground wire if you want to slow the fan down).

To calculate the resistor you need (to put in series with the +12V wire), first determine the fan's voltage and power draw (usually listed on the fan itself). Let's assume the the fan runs on +12V, and draws 1W, and we want to slow it down to 75% of the original speed (or, drop the power down to 0.75W).

The original internal resistance of the fan is given by R = V2/P (a variation of Ohm's law and Joule's laws), and the new resistance we need will be R = V2/(0.75P). Thus, we need a resistor of size:

Rnew = V2/(0.75P) - V2/P = V2[(1/0.75P) - (1/P)].

Plugging in our numbers, we get Rnew = 12V2[(1/0.75W) - (1/1W)] = 48 Ohms. Thus, you would need to put a 48 Ohm resistor in series with the +12V fan supply to slow it down by 75% (assuming it originally draws 1W). If you have a soldering iron and some heatshrink/electrical tape handy, the resistor should cost you no more then $0.15 - just make sure the resistor is rated to at least 0.75W (preferably 1W).

Nice and detailed answer. Thanks. I am familiar with electronics and your solution, I just think it is not a good idea to do that.
–
user20196Jul 15 '11 at 18:06

@user20196 I would argue that it has little to do with being a good/bad idea... Adding a resistor/potentiometer is all that fan controllers or (U)LNA adapters do (except they cost a lot more then fifteen cents).
–
BreakthroughJul 15 '11 at 18:08

@Breakthrough the difference is that you have feedback loop which controls the rpm of the fan. Setting the fan to 800 rpm may cause, in some cases, CPU overheating.
–
user20196Jul 15 '11 at 19:40

1

@user20196 I don't see any feedback loop here - there is no input to change the system variables, the CPU fan is at a constant rate. I did, however, update the question to mention that if you do change your CPU fan speed, to ensure that your load temperatures stay cool enough - good point.
–
BreakthroughJul 15 '11 at 19:44