Skip to the content
2 layers87.6 × 79.4 mmTempcontrolfan, the printed circuit board in 3D

Temperature Controlled DC fan built with an Arduino Nano, LM358 op-amp, and a custom KiCad PCB

Size
87.6 × 79.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
20
Nets
44
Pads
93
Tracks, vias
146, 4
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
29 May 2026
Updated
29 May 2026

Overview

Tempcontrolfan is an open-source printed circuit board by hemilth2257, from the hemilth2257/Temperature-Controlled-DC-Fan repository on GitHub. It is a 2-layer board of 87.6 × 79.4 mm with 20 parts on 44 nets, routed with 146 tracks and 4 vias.

It is built around the LM358, SC39-11EWA and BD139. Its parts include 10 resistors, 3 ICs, 2 connectors, 1 diode and 1 transistor. It belongs with the audio and music boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

3

README

README.md

Temperature-Controlled-DC-Fan

Temperature Controlled DC fan built with an Arduino Nano, LM358 op-amp, and a custom KiCad PC

An automated cooling system built with an Arduino Nano, an LM358 op-amp, and an NTC thermistor. This project was developed during my 2nd semester of BTech in Electronics Engineering.

Overview

This hardware project bridges analog sensing and digital control. An NTC thermistor tracks the ambient temperature, and an LM358 op-amp acts as an open-loop comparator to trigger the cooling fan when the temperature exceeds a precise 40°C threshold. The Arduino Nano processes the ADC readings and multiplexes two 7-segment displays at 200 Hz for a flicker-free real-time temperature readout.

The system progressed from a dense breadboard prototype to a fully routed custom PCB designed in KiCad.

Hardware Components

  • Microcontroller: Arduino Nano (ATmega328P)
  • Temperature Sensor: 10k NTC Thermistor
  • Analog Comparator: LM358 Dual Op-Amp
  • Power Switching: BD139 NPN Transistor (with 1N4007 flyback diode)
  • Display: 2x Common Cathode 7-Segment Displays
  • Output: 12V DC Fan

Features

  • Custom PCB: Designed in KiCad with strict 45-degree track routing and zero DRC errors.
  • Firmware Optimization: Custom C++ code to calculate temperature via the Steinhart-Hart equation and handle 200 Hz display multiplexing to eliminate ghosting.
  • Hardware Protection: Integrated flyback diode to suppress back-EMF spikes from the fan motor.

Project Files

  • dc_fan_controller.ino: The main Arduino C++ source code.
  • microproject_sem2_fixed.pdf: Full engineering project report, including circuit analysis, KiCad schematics, and testing methodologies.

📸 Circuit & PCB Design

Here is the complete circuit schematic designed in KiCad:

KiCad Schematic

Here is the 3D render of the final routed board:

3D PCB Render

And here is the 2D copper track layout showing the strict 45-degree routing:

2D Copper Routing

Author

Hemil Thakkar & Het Dave Electronics Engineering Students at BVM Engineering College.

Parts

20
QtyValueFootprintReferences
7330Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R2, R3, R4, R5, R6, R7
2SC39-11EWADisplay_7Segment:Sx39-1xxxxxU2, U3
1100kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR9
110kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR8
110kPotentiometer_THT:Potentiometer_Bourns_3296W_VerticalRV1
11N4007Diode_THT:D_DO-41_SOD81_P10.16mm_HorizontalD3
11kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR10
1Arduino_Nano_v2.xModule:Arduino_NanoA1
1BD139Package_TO_SOT_THT:TO-126-3_VerticalQ2
1Barrel_Jack_SwitchConnector_BarrelJack:BarrelJack_CUI_PJ-102AH_HorizontalJ2
1LM358Package_DIP:DIP-8-16_W7.62mmU4
1Screw_Terminal_01x02TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ1
1Thermistor_NTCTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalTH1

Similar boards

  • 2 layers41.9 × 47.7 mm7-segment LED 02 kicad, the printed circuit board in 3D

    7-segment LED 02 kicad

    mrmtmtk03/7-segment_LED

    なお、点灯させるためには、この他にArduino UNOが必要である。 ## プリント基板の作成 設計した基板データは本リポジトリで公開している。 例えば、JLCPCBであればこのZIPファイル 7-segmentLED02kicad\production\7-segmentLED02kicad.zipをgerber fileとしてアップロードすることで基板の発注ができる。

    15 parts
  • 2 layers160 × 100 mmMonitor, the printed circuit board in 3D

    Monitor

    Noah1989/loopmicro

    An 8-bit microcomputer for the 21st century

    113 parts2MIT
  • 2 layers46.5 × 42 mmVoltage regulator circuit, the printed circuit board in 3D

    Voltage regulator circuit

    Honyar55/Adjustable-Linear-DC-Power-Supply-PCB-Design-

    A compact, 2-layer PCB implementation of an adjustable linear voltage regulator using an LM358 operational amplifier and a BD139 NPN pass transistor.This circuit takes a DC input voltage (e.g., $+15\text{V}$) and…

    10 parts
  • 2 layers50 × 100 mmPower Supply, the printed circuit board in 3D

    Power Supply

    MaximilianoBarzola/Power_Supply

    42 parts
  • 2 layers95 × 72 mmAmpAudio, the printed circuit board in 3D

    AmpAudio

    David-Andrino/ise-rtap

    59 parts1
  • 2 layers57.5 × 42.8 mmBlack Body Heater Control, the printed circuit board in 3D

    Black Body Heater Control

    DylanLockyer/Black_Body

    Electrical system for black body MKID tester

    52 parts1MIT
  • 2 layersESP32Anglerfish, the printed circuit board in 3D

    ESP32Anglerfish

    Matchboxscope/Matchboxscope

    ESP32-based mini microscope for fluidic device observation

    7 parts103

Questions

How big is the Tempcontrolfan PCB?

It measures 87.6 × 79.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Tempcontrolfan use?

20 parts, built around the LM358, SC39-11EWA and BD139. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Tempcontrolfan KiCad files?

From the hemilth2257/Temperature-Controlled-DC-Fan repository on GitHub, at the commit this page was made from: the board is Hardware_Design/tempcontrolfan.kicad_pcb and its schematic Hardware_Design/tempcontrolfan.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Tempcontrolfan design in my own project?

Its repository states no licence, so its author keeps all rights: ask hemilth2257 before reusing the design.