In searching the net for ideas I found cpemma's excellent site which went offline shortly after I found it (don't you hate it when that happens!). I did however read enough to decide I liked the Micrel Low-Dropout Adjustable Regulator (MIC2941ABT) and this became the basis of my controller.
After building a couple of test rigs the following circuit was settled on:
By including a NTC (negative temperature coefficient) resistor the voltage output varies depending of the temperature of the Rntc (the thermal sensor). I also included a facility for "sliding" the voltage output by including Radj. Parallel resistors were also added to linearise the response of Rntc and also to desensitise Radj.
This circuit results in a full-speed voltage of 11.6V and a low-speed voltage of 1.25V. The following graph shows a representation of both 5V/12V Voltages with respect to Temperature Vs. Radj:
This graph is also a design tool allowing the total Radj value to be selected for a given temperature range.
I also decided that there was no point in allowing the voltage to drop lower than 5V, as most fans would either stall or cause other problems at this low voltage. Utilisation of the PSU +5V line and a couple of Schottky diodes took care of this (these diodes only drop 0.2V).
Another facility I wanted to retain was the ability for the motherboard to continue to read the fan RPM. This was easily accomplished by feeding the Fan RPM line back out to the motherboard's fan RPM sense pin (referenced to Ground).
And finally I wanted this circuit to be housed in as small and neat a package as possible. This was accomplished by using a potting-box of 20x30x15mm and potting the circuitry when I sure it was working satisfactorily (potting still to be done).
Here is a picture of the "version II" circuit in test operation mounted (via double-sided tape) in my Soltek SFF (the controller is the black box in top left corner):
And here is a close up of the controller itself (the plug with exposed pins allows the controller to be plugged in to the PSU's floppy-drive power socket):
After leaving this running in my PC for a week I can report it works perfectly, complete with fan RPM feedback to the motherboard.
A list of materials for this project is as follows:
a) 20mm x 30mm x 15mm Potting Box (RS Components Stock No. 509-024)
b) Micrel Low-Dropout Regulator (RS Components Stock No. 254-383)
c) NTC Chip Resistor (RS Components Stock No. 247-7503)
d) Veroboard (strip board)
e) 2.54 Molex PCB Headers (Jaycar Electronics Cat No. HM-3413)
f) 47uF SMD (surface-mount to save space) Tantalum Capacitors (Jaycar Electronics Cat No. RZ-6574)
g) 0.22uF Monolithic Capacitor (Jaycar Electronics Cat No. RC-5494)
h) Various metal-film resistors
i) Ribbon-cable (HDD IDE cable "recycled")
j) A super-fine tip soldering iron and steady hand (as much of the soldering is done inside the potting box).
The next step is to "pot" the circuit and for this I will use a RS Components thermally conductive potting compound. This wil provide heatsinking for the Micrel voltage regulator, although in testing I had the controller running into three fans and the worst the regulator heated was to around 45 degree C.
I hope this post helps somebody :-)