PC Fan Controller

Goal
Create a PC fan controller board to be housed inside an RGB laser module. 4 different temperature zones are to be measured and displayed. A configurable threshold triggers two standard PC fans that cool down the laser.

Main Components

  • ATTiny85 running on internal oscillator
  • Newhaven 20x4 serial LCD
  • DS18S20 temperature sensors (1-wire)

Software features

  • SoftwareSerialTX TX only serial library
  • Custom OneWire library
  • Custom Newhaven Serial LCD library
  • C++ object model including dynamic objects
  • EEPROM storage of settings

Software compiles to ~7kb with less than 50 bytes of SRAM used. It fits comfortably onto the ATTiny85, despite a custom "intro" screen and other "wasteful" features. This was mostly achieved by omitting any floating point operations and staying away from printf() and friends.

Project overview

After a proof of concept implementation on an Arduino UNO, the program was transferred to a standalone ATMega328p on a breadboard:

With that confirmed and working, a custom PCB was drawn up and the design reduced to work on an ATTiny85:

Once the PCBs arrived, the first board was assembled and tested:

The software in action:

That is nice work there Andre, and an excellent video demonstrating the units operation. What did you base the menu system on or was it custom coded for this specific application.
Thanks for sharing Pedro.

It's all custom code, including a re-write of the OneWire library.
The menu code is not very nice, I might re-write that eventually.

But for now - it works :slight_smile:

int2str:
It's all custom code, including a re-write of the OneWire library.
The menu code is not very nice, I might re-write that eventually.

But for now - it works :slight_smile:

what did you re-write in the OneWire library and why? do you have code I can look at? wondering because i did a TEC thermal chamber to test computer parts at 50°C and although my code is simple, its very inefficient and i would like to redo all of it so i can integrate it later with LabVIEW or some type of stand alone controller.

Here is mine:

http://forum.arduino.cc//index.php?topic=192630.msg1423533#msg1423533

Great project, i made one 'Fan Controller' but to take control of my computer fans, to check temperatures, with sound alarm, with LCD and with LcdSmartie info: Fan Controller - Arduino - YouTube

But now i want make another project using the ATTiny85 :slight_smile: on my list of to dos