Skip to content

Releases: johnlenfr/FanControl.ArduinoFanController

FanControluino v0.6.0 — OLED Screen Rotation

Choose a tag to compare

@johnlenfr johnlenfr released this 22 Oct 14:08

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

  1. Download the ZIP archive.
  2. Open the included Arduino firmware in Arduino IDE.
  3. Compile and upload to your Arduino Uno or Nano.
  4. Install the included FanControl plugin DLL if needed.
  5. 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

Choose a tag to compare

@johnlenfr johnlenfr released this 17 Oct 12:14

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 / PONG serial 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

  1. Close FanControl.
  2. Download the release ZIP.
  3. Replace FanControl.ArduinoInterface.dll in your FanControl Plugins folder.
  4. 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

Choose a tag to compare

@johnlenfr johnlenfr released this 15 Oct 20:37

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

Choose a tag to compare

@johnlenfr johnlenfr released this 15 Oct 19:40

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

Choose a tag to compare

@johnlenfr johnlenfr released this 15 Oct 19:13

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

Choose a tag to compare

@johnlenfr johnlenfr released this 13 Oct 18:48

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 STATUS and MENU CONFIG screens, with optimized refresh to prevent flickering.
  • Unified FanControl naming:
    • Arduino FAN 1 PWM through Arduino FAN 5 PWM
    • Arduino FAN 1 RPM and Arduino FAN 2 RPM
    • Arduino TEMP 1 and Arduino TEMP 2
  • Optional OLED: Build the firmware with ENABLE_OLED enabled 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

  1. Download FanControl.ArduinoFanController_v0.3.0.zip from the assets below.
  2. Install the Arduino libraries: OneWire, DallasTemperature, and U8g2.
  3. Upload Firmware/ArduinoSketch.ino to your Arduino.
  4. Close FanControl.
  5. Copy Plugin/FanControl.ArduinoInterface.dll into your FanControl Plugins directory.
  6. 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

Choose a tag to compare

@johnlenfr johnlenfr released this 13 Oct 16:05

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

  1. Upload ArduinoSketch.ino using Arduino IDE.
  2. Install FanControl.ArduinoInterface.dll in the FanControl Plugins directory.
  3. Connect the Arduino via USB.
  4. 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

Choose a tag to compare

@johnlenfr johnlenfr released this 11 Oct 20:26

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

  1. Download FanControl-Arduino-v0.1.0-uno-stable.zip from the release assets.
  2. Flash Firmware/ArduinoSketch.ino to the Arduino Uno.
  3. Install FanControl for Windows.
  4. Copy Plugin/FanControl.ArduinoInterface.dll into the Plugins folder beside FanControl.exe.
  5. Connect the Arduino and start FanControl.
  6. Follow Documentation/INSTALLATION.md for 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.