Skip to content

DigitLock/HLV_CoolingController

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HLV_CoolingController

Home Lab Vibes — Cooling Controller

5-channel PWM fan controller with touchscreen interface for Home Lab cooling management.

Status Platform License


Features

  • 5 independent PWM channels — control up to 5 fans individually
  • Real-time RPM monitoring — TACH signal reading with smoothing algorithm
  • 3.5" TFT touchscreen — intuitive UI with +/- buttons for each fan
  • Persistent settings — fan speeds saved to EEPROM, restored on boot
  • Standalone operation — powered via 12V MOLEX, no USB required

Hardware

Components

Component Description
MCU RP2040 (Raspberry Pi Pico or compatible)
Display 3.5" TFT 320x480 (ILI9488 + FT6206 touch)
Power DC-DC buck converter (12V → 5V)
Fans 4-pin PWM fans (12V)

Pinout

TFT Display (SPI + I2C Touch)

GPIO Function Description
15 LCD_CS Display chip select
16 LCD_RST Display reset
17 LCD_RS Display data/command (DC)
18 SCK SPI clock
19 SDI (MOSI) SPI data in
20 CTP_SDA Touch I2C data
21 CTP_SCL Touch I2C clock
CTP_RST Touch reset → 3.3V_EN
LED Backlight → VCC
SDO (MISO) Not connected

Fan Control (PWM + TACH)

GPIO Function Description
2 PWM_1 Fan 1 PWM signal
3 TACH_1 Fan 1 tachometer
4 PWM_2 Fan 2 PWM signal
5 TACH_2 Fan 2 tachometer
6 PWM_3 Fan 3 PWM signal
7 TACH_3 Fan 3 tachometer
8 PWM_4 Fan 4 PWM signal
9 TACH_4 Fan 4 tachometer
10 PWM_5 Fan 5 PWM signal
11 TACH_5 Fan 5 tachometer

Configure TFT_eSPI User_Setup.h with these SPI pins

Power Wiring

MOLEX 12V ──┬──► Fan power (12V direct)
            │
            └──► DC-DC input
                    │
                    ▼
                DC-DC output (5V) ──► Pico VBUS
                                        │
                                       3.3V ──► TFT display
                                        │
                                       GND (common for all)

⚠️ Common ground between 12V and 3.3V is required for correct TACH signal reading.


Software

Dependencies

Install via Arduino Library Manager:

  • TFT_eSPI — display driver
  • Adafruit_FT6206 — capacitive touch controller

Building

  1. Configure User_Setup.h in TFT_eSPI library for your display
  2. Add #define TOUCH_CS -1 to suppress touch warning (we use I2C touch)
  3. Select board: Raspberry Pi Pico (or your RP2040 board)
  4. Upload sketch

Configuration

Parameter Value Location
Baud rate 115200 Serial Monitor
Min fan speed 10% Hardcoded
Max fan speed 100% Hardcoded
Speed step 10% Per button press
EEPROM save delay 2 seconds Anti-spam protection

Usage

  1. Power on via MOLEX connector
  2. UI displays 5 fan blocks with current speed (%) and RPM
  3. Tap or + buttons to adjust fan speed (10% steps)
  4. Settings auto-save after 2 seconds of inactivity

Project Structure

HLV_CoolingController/
├── HLV_CoolingController.ino  # Main sketch
├── FanController.h            # Fan class header
├── FanController.cpp          # Fan class implementation
├── LICENSE                    # MIT License
└── README.md                  # This file

Roadmap

  • 5-channel PWM control
  • RPM monitoring with smoothing
  • Touchscreen UI
  • EEPROM persistence
  • Standalone 12V power
  • Temperature sensors (DS18B20)
  • Auto fan curves based on temperature
  • WiFi monitoring (optional)

License

MIT License — feel free to use, modify, and share!


Vibes

Part of the Home Lab Vibes collection — stay tuned for more cool projects! 🚀

YouTube: @HomeLabVibes

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages