HP Server Fan Controller

30th July 2018 (2 years ago)

I run a HP Proliant Microserver gen. 8 as a home server. It used to make quite a bit of noise, so this is what I did to upgrade it.

New fan controller

The case fan for this machine is controlled by the motherboard's controller sending a PWM signal to the fan to determine it's speed. The fan also sends back a pulse to the motherboard for each rotation so that the RPM can be determined. This gives the server a nice feature of showing a red status light and then shutting down server if the case fan fails. I wanted to keep this functionality but the motherboard controller also assumes a slow running fun has failed.

My controller runs in-between the motherboard controller and the fan and implements the following features:

  • Read PWM signal form motherboard:
    • If pulses are below a certain width, output new PWM signal to fan a new, narrow width (slow)
    • If pulses are above a certain width, output new wide PWM signal as server is overheating
  • Read rotation pulses from fan:
    • If we are fail to get regular pulses from the fan, output a signal that alerts the server

The microcontroller is an ATMEGA 328P. The source code and KiCad schematics are here.

Power supply fan

Because the main fan noise had been reduced, the other fan located in the PSU (power supply unit) had become more audible. After some online research I purchased a new fan as a replacement. The original was made by Delta and was a 12V fan being run at 5V. I changed to a fan by Sunon which was designed to be run at 5V. The photos show my basic setup for comparing noise and power consumption at 5V.