Custom 6 Channel USB FanController


New Member
About 1 year ago, i started working with microcontrollers, as one of my first projects i desinged a basic 6 channel USB-fan- / waterpump- controller.
I recently did a complete rewrite of the host-application and decided to open-source this baby for any computer-enthusiasts out there.
Further i decided to include the use of HWiNFO for temperature readings.
Martin (HWiNFO Author) was kind enough to provide me access to HWiNFOs SharedMemory-interface (which is, as per request, a closed source proprietary part of this project) for this.

Without any further ado, lets take a look at some pictures!


The picture of the Hardware you see was actually from my first prototype, nothing really has changed since then on the hardware-front, except i decided to hide it behind the motherboard-tray.

And here is one i built for a friend

The Hardware is able to control up to six  3pin or 4pin (PWM) fans independently from each other through voltage regulation, and of course, you can add fan-spliters or just build more headers on!
Fans can be individually shut off; The Fan startup-voltage can be auto detected or manually be dialed in for this purpose.

You can also set a different temperature reading for each channel to react to.
This is useful if you have two dedicated watercooling-loops, ie. one for CPU and GPU.

Of course you can also take FULL manual control over the fans voltage. At least until a certain CPU-Temp gets exceeded

Without any running host-application tough, all fans will speed up to full speed regardless, this is implemented as a safety feature, in case the computer hangs up or something else happens.
Also all the power for the microcontroller (as well as the fans, of course) is provided trough Molex / S-ATA, instead of USB, so it can shut off, when power for peripherals isn't provided by the psu anyway. 

[size=medium]You can find the full source-codes (except HWiNFO plugin), schematics, parts-list as well as prebuilt binaries (incl. .exe installer) at my github:[/size]

If you want to build your own, you can contact me for any help, either here or trough my e-mail which you can find at my github.
I am also willing to provide pre-built hardware for a little more than material + shipping cost, but i do not know about shipping to other countries (living in germany).
I suspect the demand will be very small, if any, so it will be enough to handle.

Please keep in mind, that is a free and open-source project and if you have any soldering-skill or happen to know somebody who can solder, you almost always are better off building yourself. You also need to be able to burn a firmware onto a microcontroller or find someone who can (an Arduino would be enough for this).

If you just want to build the hardware-part or use a prebuilt one, and don't want to tinker with any sourcecode of the software, i've got you covered!
As well as I'm providing the aforementioned prebuilt binaries, the software has an update notificator, and can download new versions on request.

I have to say though, I am NOT(!) an electronics-guy, I am an IT-guy, thus i can't and will not provide any warranties, or any responsibility for any damage might caused to your hardware if you are building one for yourself or are using a prebuilt one. Please keep that in mind.
Although i can say that i have been running my first one for over a year, until i lost it due to a watercooling leak, without the slightest issue!
Friends of mine also never reported any issues that could cause any damage.
Nice work. Did you ever consider controlling your motherboard fan headers rather tham making custom hardware?

Of course, but at the time, the MoBo in my old system couldn't turn the fans off completely. I do believe most of them can do that now?
Also, running a waterpump off of the MoBo isn't the best thing you can do, although controlling your pump doesn't yield much benefit
Controllers on motherboards can be a little rubbish. A fan controller allows individual control over fans, which can help vastly improve the air flow. As you can test different speeds until the fans are all working in unison, you can create profiles at a variety of different speeds, which is quite handy when it is 19C one day and 40C the next. You may also save power, reduce noise, and have digital or analogue knobs to play with.