I've wanted a nice fan controller for my computer ever since I built it but no company has brought a product to market that meets my needs. For me, a fan controller needs to do 3 things:
1. Adjust fan speed based on internal CPU temps
2. Not use more than 0.1% CPU utilization for monitoring software
3. Be able to operate completely independent of software running on CPU
Unfortunately, (fortunately?) I haven't been able to find a commercial product that satisfactorily meets all three criteria. Thus, I'm building one from an Arduino and some .net code. And since I'm putting the time and effort into it, I figured I might as well add some LED's and a two digit 7-seg display to the mix. I'll post details later, but I should go a head and mention that this project relies on OpenHardwareMonitor.
As I was rummaging through a parts bin, I came across a board that I bought quite a long time ago: a chipKIT Max32 board made by Digilent. In case you haven't heard of it, it's an Arduino compatible board that comes in several flavors, including Uno form-factor (Uno32) and Mega form-factor (Max32). The boards are based on 32-bit PIC processors that are incredibly powerful. I have two of the Max32 boards and, after a little research, I found that they are capable of PWM on every digital output through software.
Having the ability to setup a lot PWM give me the option to add quite a lot of fan control channels and RGB channels. Not to mention, the board has three more hardware serial ports than the Uno I originally planned on using, allowing me to interface my fan controller with just about anything. And at this point, I'm thinking the anything will probably start off with an ESP8266, because, reasons. Maybe I'll add in an interface to my home automation project with it.
Another advantage to using the Max32 in place of a standard Arduino is that the Uno outputs PWM at a preset 1kHz and the Max32 allows the program to set the frequency. At 1kHz, the fans make an incredibly annoying whine that I could only get rid of by adding capacitors to the design. With the Max32, I can set the frequency to about 22kHz and the whine goes away.
I have completed most of the assembly of the MOSFET boards and began testing various structures for the program. I'll take some pictures and add a GitHub page this weekend.