I recently moved house and decided it was time to purchase a network rack to accommodate some a new rack mount NAS and POE (Power over Ethernet) switch. Since I want the rack to fit under my desk, it couldn't be more than about 12RU.

After lots of looking around for stock in Australia, I ended up with a 12U rack from ServerEdge that should fit under my sit/stand desk in my home office. I expected that the rack didn't come with fans but it looked from the drawings that it had cutouts for fans.

Since I expect to be sitting mere feet from the rack all the time I am in my office I had no intention of getting high RPM high noise fans, I have enough of those in racks of equipment at work. The fan cutouts in the rack were for normal 120mm fans. I decided against AC fans (because I couldn't find AC fans that were controllable easily) and just went with Noctua industrial 3000RPM PPC fans. I initially looked into trying to run the Noctua PWM (Pulse Width Modulation, ~25kHz from the whitepaper) straight off one of the raspberry Pis in the rack that are powered over PoE.

This was a bad idea on multiple fronts: The Pis are powered over 48V PoE and the fans need 12V, and there is no easy direct way to make 25kHz PWM output from a Raspberry Pi. I went digging in my electronics box and found a few old Arduinos, which solved all my PWM issues quite quickly. An Arduino Uno/nano can be run directly off 12V, manageable PWM output, and can provide 5V output/input for my DHT22 temperature sensor.

I let the blue smoke out of my old Arduino Uno's Vin regulator by mistakenly plugging in my 12V power supply backwards, happens to the best of us. The regulator is super cheap but I couldn't be bothered waiting the two weeks for the part to come in, so I went out and bought an Arduino Nano for the job. The nano made the form factor of the end product quite small but doesn't have easy ethernet or wifi output which is something I decided I wanted after the fact.

The Arduino takes in a temperature signal from the DHT22 and adjusts the PWM for the fans in the rack according to a simple curve based on desired temps of the setup. Once I had the rack fan controller working, I decided that I want to view the rack temps/fan speed alongside the raspberry pi temps graphically to see how things were going. I go into that process in a separate Arduino Based Fan Controller post.

In an upcoming post I will go into my experience with Synology NAS's and how I am using mine going forward.