Summary of KEEP COOL WITH THIS OPEN SOURCE AVR FAN CONTROLLER
This article details an open-source intelligent fan controller developed by Matthew Millman over a decade. The project centers on an ATmega328P microcontroller, requiring AVR-GCC knowledge for code modification despite pre-built binaries being available. It utilizes DS18B20 temperature sensors and features a command-line interface for managing sensor queries, temperature thresholds, and RPM ranges via a serial port. Originally designed for PC cases, the flexible system offers a custom alternative to commercial throttling solutions.
Parts used in the Open Source Intelligent Fan Controller:
- ATmega328P microcontroller
- DS18B20 temperature sensor
- Serial port interface
- Terminal emulator software
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.
Source: KEEP COOL WITH THIS OPEN SOURCE AVR FAN CONTROLLER
- What microcontroller is at the heart of this board?
The board uses an ATmega328P microcontroller. - Can I modify the code without knowing C programming?
You must know your way around AVR-GCC to hack the code, though pre-built binaries exist for default settings. - Does the firmware verify the authenticity of the temperature sensor?
Yes, the firmware can check if the DS18B20 sensor is a bootleg version. - How do I access the control functions for the fans?
You plug into the serial port on the board and use a terminal emulator to access the command line interface. - What specific parameters can be set using the command line interface?
The interface allows querying sensors, setting temperature thresholds, and defining RPM ranges for fans. - Is there a built-in help feature for commands?
Yes, there is a built-in help function to assist with forgotten commands or syntax. - Was this project originally intended for PC case cooling?
Originally, Matthew developed this project as a way to control multiple fans inside of a PC case. - Do users need a programmer to flash the chip?
Yes, you need a programmer for the chip to get the pre-built binaries flashed onto it yourself.