Keep Cool With This Open Source AVR Fan Controller

We’ve all got projects kicking around that we haven’t had time to document for our own purposes, let alone expose to the blinding light of the Internet. There are only so many hours in a day, and let’s face it, building the thing is a lot more fun than taking pictures of it. It took [Matthew Millman] the better part of a decade to combine everything he’s learned over the years to finally document the definitive version of his open source intelligent fan controller, but looking at the final result, we’re glad he did.

At the heart of this board is an ATmega328P, but don’t call it an Arduino. [Matthew] makes it very clear that if you want to hack around with the code for this project, you’re going to need to not only have a programmer for said chip, but know your way around AVR-GCC. He’s provided pre-built binaries for those content to run with the default settings, but you’ve still got to get it flashed onto the chip yourself. The project is designed to use the common DS18B20 temperature sensor, and as an added bonus, the firmware can even check if yours is a bootleg (spoilers: there’s an excellent chance it is).

Arguably the most interesting feature of this fan controller is its command line interface. Just plug into the serial port on the board, open your terminal emulator, and you’ll have access to a concise set of functions for querying the sensors as well as setting temperature thresholds and RPM ranges for the fans. There’s even a built-in “help” function should you forget a command or the appropriate syntax.

Originally [Matthew] developed this project as a way to control multiple fans inside of a PC case, but naturally, things have changed quite a bit since those early days. While today there’s no shortage of fancy controllers that can handle throttling an array of fans based on the internal temperature of your rig, there’s still something to be said for rolling your own solution. More importantly, there’s certainly other potential uses for a fully open source programmable fan controller.

12 thoughts on “Keep Cool With This Open Source AVR Fan Controller

    1. It’s what early teletype machines used … remember … CTTY (Cable TeleTYpe) and RTTY (Radio TeleTYpe).

      Early DOS even had a CTTY pipe. eg, copy con ctty

      On another note: Nice compact board layout. It looks retro with all that through hole. Nice choice of components, I see all but the capacitors on the crystal are tantalums.

      But Yeah, RS-232 ??? I probably would have put a USB to 5V serial adapter on it. I rarely see a true RS-232 serial port now.

    1. Some four-pin fans take a voltage input, some take a PWM signal, some take an inverted PWM signal, some take 12 volt PWM signal, others take 5 Volts, or 3.3 Volts, have or don’t have internal pull-ups for the signal… and some are fakes that simply have the wire put on a standard 2-pin fan.

      1. Oh, the last type of fans are the worst. They are especially common for laptop fans. When you replace fan for somebody and then it gets louder than the one you replaced, because those fans start spinning at 3.5V, have fake 4-pin connector and they only operate in two modes – stopped or full speed whining and there isn’t any data send on PWM line.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.