Repository navigation
Releases: johnlenfr/FanControl.ArduinoFanController
Release list
FanControluino v0.6.0 — OLED Screen Rotation
What's New
- Added configurable OLED screen rotation: 0° or 180°.
- New MENU → OLED SETTINGS → ROTATION option.
- Rotation setting is saved to EEPROM and restored at startup.
- Previous EEPROM settings are preserved through configuration migration.
Existing Features
- Seven-page OLED dashboard with large temperature, RPM, and power displays.
- Five PWM fan outputs and two RPM monitoring inputs.
- Two DS18B20 temperature sensors.
- Automatic COM port detection via PING/PONG.
- D13 status LED, PWM failsafe, and 12V monitoring.
- Adjustable OLED brightness, auto-off timeout, and ADC reference calibration.
Installation
- Download the ZIP archive.
- Open the included Arduino firmware in Arduino IDE.
- Compile and upload to your Arduino Uno or Nano.
- Install the included FanControl plugin DLL if needed.
- Navigate to OLED SETTINGS → ROTATION to select the display orientation.
Plugin: Unchanged from v0.5.1.
Credits
Based on the original Arduino FanControl plugin by [Yanat000](https://github.com/Yanat000/FanControl.ArduinoFanController).
FanControluino v0.5.1 — Automatic COM Port Detection
This maintenance release improves the FanControl Arduino plugin with automatic serial port detection.
What's New
- Automatically searches available COM ports for a compatible Arduino.
- Identifies the controller using the
PING/PONGserial protocol. - No longer requires manually configuring
arduino_port.txt. - Supports switching between Arduino Uno and Nano, even when Windows assigns a different COM port.
- Preserves existing FanControl fan controls, temperature sensors, and configuration identifiers.
Firmware
No firmware changes since v0.5.0.
Includes the validated seven-page OLED dashboard with fan RPM, temperature, power input, and system status displays.
Installation
- Close FanControl.
- Download the release ZIP.
- Replace
FanControl.ArduinoInterface.dllin your FanControlPluginsfolder. - Restart FanControl with your Arduino connected.
The plugin automatically discovers the Arduino without manual COM port configuration.
Credits
Based on the original Arduino FanControl plugin by [Yanat000](https://github.com/Yanat000/FanControl.ArduinoFanController).
FanControluino v0.5.0 — Seven-Page OLED Dashboard
This release introduces a redesigned seven-page OLED dashboard for easier monitoring of fans, temperatures, power input, and system diagnostics.
What's New
- STATUS: Overview of five PWM fan outputs, two RPM readings, and two temperatures.
- TEMP 1 / TEMP 2: Large-format DS18B20 temperature displays.
- FAN 1 RPM / FAN 2 RPM: Large-format fan speed displays.
- POWER INPUT: Large 12V supply voltage display with ADC reference calibration information.
- SYSTEM STATUS: Communication status, PWM failsafe setting, and available SRAM.
- Improved screen layout and reduced flickering.
Existing Features
- Five independent PWM fan outputs.
- Two fan RPM monitoring inputs.
- Two DS18B20 temperature sensor inputs.
- Optional SSD1306 OLED display.
- Single-button navigation and EEPROM settings.
- D13 status LED diagnostics.
- 12V monitoring through Arduino A0.
- Configurable ADC reference and PWM failsafe.
Installation
Download the attached ZIP, install the required Arduino libraries (OneWire, DallasTemperature, and U8g2), then compile and upload the firmware with Arduino IDE.
The FanControl Windows plugin DLL is unchanged from previous releases.
Credits
Based on the original Arduino FanControl plugin by [Yanat000](https://github.com/Yanat000/FanControl.ArduinoFanController).
FanControluino v0.4.0 — D13 Status LED Diagnostics
This release introduces an optional status LED on Arduino D13 for monitoring FanControl communication.
What's New
- Optional D13 status LED (
ENABLE_STATUS_LED). - Short LED flash every 3 seconds during normal communication.
- Repeating double flash when communication times out and the PWM failsafe is activated.
- Non-blocking LED control using
millis(). - Works with or without the OLED display.
Existing Features
- 5 independent PWM fan outputs.
- 2 RPM monitoring inputs.
- 2 DS18B20 temperature sensors.
- SSD1306 OLED with single-button configuration menu.
- EEPROM settings persistence.
- 12V voltage monitoring and adjustable ADC reference.
- Free RAM diagnostics and aligned RPM display.
Installation
Download the ZIP attached below, open Firmware/ArduinoSketch/ArduinoSketch.ino in Arduino IDE, configure the optional features, and upload it to your Arduino.
The included FanControl plugin DLL is unchanged from v0.3.1.
Credits
Based on the original Arduino FanControl plugin by [Yanat000](https://github.com/Yanat000/FanControl.ArduinoFanController).
Arduino FanControl v0.3.1
Maintenance release fixing RPM alignment on the OLED FANS STATUS screen.
Changes
- Fixed RPM column alignment for FAN 1 and FAN 2.
- Preserved all existing firmware features and EEPROM settings.
- FanControl plugin DLL unchanged from v0.3.0.
All other features remain unchanged.
Note: Users of v0.3.0 only need to update the Arduino firmware.
Arduino FanControl v0.3.0 — Voltage Monitoring & OLED Improvements
This release builds on v0.2.0 with voltage monitoring, ADC calibration, OLED diagnostics, and improved sensor naming.
What's New
- 12V voltage monitoring: Read the external fan power supply voltage through Arduino A0 using a 27 kΩ / 10 kΩ voltage divider.
- Adjustable ADC VREF: Calibrate the voltage measurement directly from the OLED menu, with 10 mV increments.
- EEPROM persistence: ADC reference and other configuration settings are retained after a restart.
- Free RAM monitoring: Display available SRAM on the OLED diagnostics page.
- Improved OLED interface: Updated
FANS STATUSandMENU CONFIGscreens, with optimized refresh to prevent flickering. - Unified FanControl naming:
Arduino FAN 1 PWMthroughArduino FAN 5 PWMArduino FAN 1 RPMandArduino FAN 2 RPMArduino TEMP 1andArduino TEMP 2
- Optional OLED: Build the firmware with
ENABLE_OLEDenabled or disabled.
Existing Features
- 5 independent PWM fan outputs
- 2 RPM monitoring inputs
- 2 DS18B20 temperature sensor inputs
- FanControl Windows plugin
- SSD1306 OLED display with single-button navigation
- Configurable PWM failsafe
- Automatic menu timeout after 30 seconds
Hardware
- Arduino Uno / Nano, ATmega328P, 16 MHz
- External 12V power supply for fans
- Optional SSD1306 I²C OLED
- Optional DS18B20 temperature probes
Important: The 12V measurement requires the appropriate voltage divider. Never connect 12V directly to an Arduino analog input.
Installation
- Download
FanControl.ArduinoFanController_v0.3.0.zipfrom the assets below. - Install the Arduino libraries:
OneWire,DallasTemperature, andU8g2. - Upload
Firmware/ArduinoSketch.inoto your Arduino. - Close FanControl.
- Copy
Plugin/FanControl.ArduinoInterface.dllinto your FanControlPluginsdirectory. - Restart FanControl and verify the detected controls and sensors.
Validation
Tested on an Arduino Uno with FanControl under Windows. OLED navigation, EEPROM settings persistence, ADC voltage calibration, and plugin integration have been validated.
Individual hardware testing of all five PWM outputs is not yet complete.
Credits
Based on the original Arduino FanControl plugin by [Yanat000](https://github.com/Yanat000/FanControl.ArduinoFanController).
Thanks to Yanat000 and the FanControl project for the original work.
Arduino FanControl v0.2.0 — OLED & DS18B20
Stable release of the Arduino FanControl controller.
Features
- 5 independent PWM fan outputs
- 2 fan RPM monitoring inputs
- 2 DS18B20 temperature sensor inputs (A1 and A2)
- FanControl Windows plugin with PWM, RPM and temperature support
- Optional SSD1306 OLED display (
ENABLE_OLED) - Single-button navigation on D4
- Configurable PWM failsafe and OLED settings
- EEPROM persistence for user settings
- Automatic menu exit after 30 seconds of inactivity
- Optimized OLED refresh to prevent flickering
Hardware
- Arduino Uno / Nano (ATmega328P, 16 MHz)
- USB serial communication at 115200 baud
- Independent 12 V fan power supply
- Optional SSD1306 I²C OLED display
- Optional DS18B20 temperature probes
Validation
Firmware and FanControl plugin integration tested on Arduino Uno.
Installation
- Upload
ArduinoSketch.inousing Arduino IDE. - Install
FanControl.ArduinoInterface.dllin the FanControlPluginsdirectory. - Connect the Arduino via USB.
- Restart FanControl and verify PWM outputs, RPM inputs and temperature sensors.
Note: The five PWM outputs are implemented in firmware; not all five have been individually validated with physical fans.
Arduino Fan Controller v0.1.0 — Uno Stable
First stable release of the custom Arduino fan controller plugin for FanControl.
Features
- 5 independent PWM fan controls (Arduino D5, D6, D9, D10, D11).
- 2 RPM monitoring inputs (Arduino D2 and D3).
- Automatic PWM/RPM sensor pairing in FanControl.
- Automatic USB detection for the tested Arduino Uno.
- Manual COM port fallback via
%LOCALAPPDATA%\FanControl.ArduinoInterface\arduino_port.txt. - Portable plugin logging under
%LOCALAPPDATA%. - 50% PWM safety fallback when serial commands are lost.
Hardware
- Arduino Uno ATmega328P, 16 MHz.
- BC337 open-collector transistor interface for each PWM output.
- External 12 V fan power supply with common ground.
- TACH pull-up resistors: 4.7 kΩ to Arduino 5 V.
Installation
- Download
FanControl-Arduino-v0.1.0-uno-stable.zipfrom the release assets. - Flash
Firmware/ArduinoSketch.inoto the Arduino Uno. - Install FanControl for Windows.
- Copy
Plugin/FanControl.ArduinoInterface.dllinto thePluginsfolder besideFanControl.exe. - Connect the Arduino and start FanControl.
- Follow
Documentation/INSTALLATION.mdfor the hardware connections and verification.
Validation
Tested with Arduino Uno and FanControl installed at C:\FanControl.
The five controls and two RPM sensors load successfully. FAN 1 speed control, RPM feedback, automatic pairing and application restart have been tested.
Limitations: Automatic USB detection is currently specific to the tested Uno. Compatibility with Arduino Nano and installation under Program Files remain to be validated. PWM outputs use the default Arduino frequencies (~490/980 Hz), rather than the standard PC fan PWM frequency of ~25 kHz.
Notes
This is a custom hardware/software project. Ensure the 12 V fan supply and Arduino share a common ground. Do not power the fans from Arduino I/O pins.