Connecting simulated fans to a motherboard

We run forty HP DL160G5 servers for our work. These have motherboards with six fan headers. Each fan has two rotors and a five-wire connection to the motherboad: ground, 12V, tach1, pwm, tach2.

You can see the six white headers along the bottom (front) edge in this photo. In our servers, only the first five are monitored by the BMC. (When you buy a fresh motherboard, HP SmartStart lets you configure which fans are installed.)

We keep around a couple spare motherboards, and these are also used to test power supplies, RAM, CPUs and disks taken out of the racks when they give trouble. The problem is that the BMC shuts down the motherboard if even a single rotor fails to report a positive RPM. But we have no intention of buying and attaching ten rotors to a spare motherboard out on a tabletop while testing RAM. How do we fool the motherboard?

Here is one way not to do it: connect one fan, say the CPU cooler fan, then tap its tach output and feed to the remaining nine tach sensor pins on the motherboard. This is because the tach output of a fan is the (open) collector of a transistor, and, when connected, the motherboard pulls up the collector via a resistor to VDD. 10 such resistors in parallel is too little resistance, and the resulting high collector current fries the fan (yes, we tried).

The solution is simple: build a simple amplifier with a couple BC547 transistors and a couple 10k resistors as shown. Drain the input base via the fan tach, and connect the output collector to all the 10 tach sense pins of the motherboard. The BC547 can easily handle 10 collector resistors in parallel. This is non-inverting. It is possible that the tach signal is about 50% duty cycle or that anyway a single-stage inverting amplifier would work too; we haven't tried.

Another solution would have been to use a LM555 square-wave generator, but making the (fake) tach signals a function of at least one fan (CPU fan in our case) makes us feel a little more secure in thermal protection terms.