FanControl
FREE 100% SAFE

FanControl

(13 votes, average: 3.92 out of 5)
3.9 (13 votes)
Updated May 10, 2026
01 — Overview

About FanControl

FanControl is the application that gives you complete authority over how your computer’s fans behave. The application reads temperature data from CPU sensors, GPU sensors, motherboard sensors, hard drive SMART data, custom hardware sensors, and various other sources, then drives any fan in your system based on rules you define. Build a custom curve where the CPU fan ramps from 30% at 50°C through 60% at 70°C to 100% at 85°C with hysteresis preventing rapid oscillation between speed levels. Set the GPU case fan to follow GPU temperature directly while the CPU intake fan follows CPU temperature.

Mix multiple temperature sources to control a single fan based on whichever sensor is currently hottest, useful for case fans that need to handle both CPU and GPU heat depending on what the system is actually doing. The granular control matches what high-end motherboards’ BIOS-level fan curves expose but adds substantially more curve types, more flexible sensor sources, and a graphical editor that’s vastly more pleasant than typing values into BIOS interfaces.

Plugin support extends sensor and fan control to hardware that doesn’t appear through standard interfaces including NZXT Kraken AIO coolers, Corsair products through their LINK protocol, ASUS Aura products, and various other manufacturer-specific implementations that proprietary tools normally lock down. The application is free without paid tiers, with active development continuing through regular updates that add features, expand hardware support, and respond to community feedback.

For users who care about fan behavior beyond what BIOS settings or motherboard utilities allow, this software covers ground that nothing else in the category currently matches.

Custom fan curves and the curve type system

The curve system is what genuinely differentiates the application from simpler alternatives. Where most fan control tools support only one curve type (linear interpolation between fixed temperature/speed points), this software exposes multiple curve types that handle different control scenarios appropriately.

The Graph curve is the standard linear interpolation between defined points, useful for the typical scenario of mapping temperature to fan speed with predictable transitions. Drag points around in the graphical editor to define the relationship, with the curve previewing in real time as you adjust. For most users on most fans, this curve type covers the basic use case without requiring the more elaborate alternatives.

The Flat curve runs a fan at a constant speed regardless of temperature. Useful for fans you want running consistently rather than responding to load (like a reference fan in a configuration where you’ve found a specific speed that produces good results without needing dynamic adjustment).

The Linear curve simplifies to two points (minimum and maximum) with linear interpolation between them, useful when you don’t need the multi-point flexibility of the Graph type. The Sync curve copies the speed of another fan or curve, useful when you want multiple fans behaving identically without configuring each separately.

The Mix curve combines multiple input curves with selectable operations (maximum, minimum, average, sum) into a single output. Run a fan based on the maximum of CPU and GPU temperature curves, with the fan responding to whichever component is currently hottest.

The Trigger curve activates one curve when a condition becomes true and a different curve when the condition becomes false, useful for switching fan behavior based on system state changes. The Time Average curve smooths out spikes by averaging across a configurable time window, preventing fans from spinning up rapidly for brief temperature spikes that don’t actually justify increased cooling.

The Fizz curve adds randomness to fan speed, designed to break the constant tone that fans at fixed speeds produce. Some users find slightly varying fan speed less audibly distracting than perfectly constant speed, with the small randomized variation producing audio that doesn’t fixate at a single frequency.

Sensor sources and what becomes controllable

The application reads temperature data from substantially more sources than typical fan control tools support. Standard CPU sensors per core. GPU sensors including specific hot spot readings on supported cards. Motherboard sensors with manufacturer-specific support for various brands. Hard drive temperature through SMART monitoring. SSD temperatures through their respective interfaces. Custom temperature sensors that hardware exposes through the operating system’s sensor framework.

The flexibility means any fan in your system can respond to any temperature source. The CPU AIO pump speed can follow CPU temperature (the obvious choice). But a case exhaust fan might better follow the maximum of CPU and GPU temperatures because both produce heat the case fan needs to expel. A storage drive cooling fan responds to drive temperatures rather than CPU temperature that would be irrelevant to it. The mapping flexibility supports cooling logic that physical reality actually requires rather than forcing all fans to follow CPU temperature regardless of what they’re cooling.

For users with detailed temperature monitoring needs, complementary tools like Real Temp handle the specialized monitoring side while this software handles the control side. The combination produces detailed visibility into temperatures alongside detailed control over fan response.

The plugin system extends sensor support beyond what standard interfaces expose. Plugins for specific hardware (Corsair Commander Pro, NZXT Kraken, ASUS specific motherboards, various others) read sensors that proprietary protocols protect from generic monitoring tools.

The plugin ecosystem means hardware locked down by manufacturer software becomes accessible through this software’s interface, with the cooling control finally working consistently rather than being scattered across multiple manufacturer utilities.

Hysteresis and preventing fan oscillation

Hysteresis is the technical concept that prevents fans from oscillating rapidly between speed levels at temperature boundaries. Without hysteresis, a temperature wavering between 64°C and 65°C while a fan curve has a transition at 65°C would produce constant fan speed changes as the temperature crosses back and forth. The audible effect would be unpleasant fan ramping every few seconds.

The application implements hysteresis as a configurable margin around curve transitions. Configure 2°C of hysteresis, and the curve only adjusts speed when temperature crosses 2°C above or below a transition point rather than at the exact transition. The fan ramps up at 67°C but stays at higher speed until 63°C before ramping back down. The behavior produces stable fan operation even when temperatures hover near transition boundaries.

For users coming from BIOS fan curves that don’t expose hysteresis configuration, this addition matters substantially. The “fan keeps changing speed for no apparent reason” complaint that BIOS curves sometimes produce typically traces to lack of hysteresis around transition boundaries. Adding configurable hysteresis through this software resolves the issue without requiring different fan curve approaches.

The hysteresis applies per-curve rather than globally, which means different curves can have different margins appropriate to their specific temperature ranges and response characteristics. Tight curves with narrow temperature ranges might use small hysteresis values, while curves spanning broad temperature ranges with substantial speed transitions might benefit from larger hysteresis margins.

Plugin system and manufacturer hardware

The plugin architecture is what extends the application beyond standard motherboard fan headers to manufacturer-specific hardware. NZXT’s Kraken AIO coolers expose their pumps and fans through proprietary protocols that NZXT CAM normally controls. The NZXT plugin for this software reads the same data and controls the same hardware, with users getting integrated control through this software’s interface rather than running NZXT CAM separately.

Corsair products work similarly through plugins for their LINK protocol. iCUE-managed fans and pumps become controllable through this software’s curves rather than requiring iCUE running alongside for the cooling specifically. The integration means one consistent control system rather than fragmented control across manufacturer utilities that don’t talk to each other.

ASUS Aura products, MSI Mystic Light hardware, various other manufacturer ecosystems all have plugins that bring their hardware into this software’s control surface. The plugin development is community-driven, with users frequently contributing plugins for hardware they own and want supported. The ecosystem isn’t comprehensive (some specific hardware remains unsupported), but coverage extends to substantially more than competing tools support.

For users with heterogeneous hardware (motherboard fans plus AIO cooler plus case-mounted RGB fans from different brands), the unified control through plugins produces consistent behavior across the whole system. The alternative of running multiple manufacturer utilities simultaneously, hoping they don’t conflict, and accepting that each handles its own fans differently, gets replaced by single-application control over everything.

Visual editor and the configuration workflow

The graphical editor handles curve creation through direct manipulation rather than form-based input. Drag points around on a temperature/speed graph to define curves visually. Add and remove points by clicking. Adjust curve types through a context menu. The visual feedback matches what’s actually being configured, with the curve appearing as you’d see it executing rather than being represented through abstract numbers.

For users coming from BIOS fan curve interfaces that require typing temperature/speed pairs into form fields, this graphical approach is genuinely more pleasant. Fan curve design becomes an iterative visual process where you see the curve, adjust it, see how the adjustment changes the shape, and refine until satisfied. The traditional approach of typing numbers without visual feedback produces curves through trial and error that the visual approach can complete in minutes.

The configuration system supports multiple profiles that you can switch between based on context. Quiet profile for night use with fan curves favoring silence over cooling. Performance profile for gaming or rendering with curves favoring cooling over silence. Custom profiles for specific scenarios. Switch between profiles through the application’s interface, and all fans adjust to the new profile’s curves immediately.

For users wanting automation, the application supports profile switching based on conditions. Switch to performance profile when specific applications run. Switch to quiet profile during specific times of day. Switch based on temperature thresholds across the system.

The automation reduces the need for manual profile switching, with the application handling context detection automatically.

Performance impact and resource usage

The application’s resource consumption is genuinely modest, which matters because cooling control software running constantly shouldn’t consume substantial resources itself. CPU usage typically stays under 1% on modern systems. Memory consumption is similarly modest at a few tens of megabytes. The lightweight implementation means running this software in the background doesn’t measurably affect system performance for whatever else you’re doing.

The lightweight design contrasts with some manufacturer fan control utilities that consume substantial resources for relatively basic functionality. For users moving from heavyweight manufacturer software to this application, the resource footprint reduction often becomes immediately noticeable. The system feels more responsive simply because the cooling control isn’t constantly consuming background resources.

For users on older or constrained hardware, the application remains usable without producing performance impact that would defeat the purpose of running cooling control. The configuration options let you reduce update frequencies for situations where minimum overhead matters most, with the trade-off being slightly less responsive fan adjustments to rapid temperature changes.

Compatibility considerations

The application supports a broad range of motherboards through generic sensor interfaces that most manufacturers expose. Modern Intel and AMD chipsets work through standard interfaces that the application reads without manufacturer-specific configuration. Older boards with specific implementation quirks sometimes require additional configuration but typically work with reasonable effort.

Some specific hardware doesn’t expose its fan headers through standard interfaces, with proprietary protocols requiring manufacturer software for control. For these cases, the plugin system addresses many examples but not all. Users with very recent or very specific hardware should verify that their fan headers actually appear in the application before assuming control will work.

The Embedded Controllers (ECs) that motherboards use for fan control sometimes have implementation differences across manufacturers and models. The application handles common patterns reliably, but specific edge cases produce situations where fan control through this software conflicts with what the motherboard’s BIOS or onboard EC tries to do.

For these cases, configuration adjustments or BIOS settings changes typically resolve the issues, with the application’s documentation covering common compatibility scenarios.

Considerations and limitations

The application requires .NET runtime for execution, which is standard infrastructure on current operating systems but represents an additional dependency users should be aware of. For users on minimal installations without .NET, installing the runtime is necessary before this software can run.

The configuration depth that makes the application powerful also makes it overwhelming for new users. Default configurations are reasonable, but users wanting to optimize their fan curves face substantial learning about thermal management, fan behavior, and curve design that the application alone can’t teach. For users wanting simpler plug-and-play fan control without configuration learning curves, BIOS fan curves or manufacturer utilities sometimes match expectations better despite reduced capability.

Some specific hardware produces issues that the application doesn’t fully resolve. Fans that don’t report tachometer data (showing 0 RPM despite spinning) work for control but show no speed feedback. Fans on specific PWM headers that don’t fully respect software control produce behavior that differs from configured curves. Various other hardware-specific oddities can affect what’s possible.

Older versions of the application had occasional stability issues that newer releases have addressed, but the active development pace means specific bugs sometimes appear in new releases before being fixed in subsequent releases. For users wanting maximum stability, slightly older releases sometimes produce more reliable results than the absolute latest, with the trade-off being missing newer features.

The plugin ecosystem coverage is incomplete. Hardware that doesn’t have plugins (some specific manufacturer products, very recent releases, niche enthusiast hardware) requires manufacturer utilities for control rather than working through this software. Users with heterogeneous hardware should verify plugin coverage before assuming everything will work through one application.

Conclusion

For users wanting fan control that goes substantially beyond what BIOS settings or manufacturer utilities provide, FanControl delivers serious capability through its custom curve types, sensor source flexibility, plugin support for manufacturer-specific hardware, and graphical editor that makes curve design genuinely pleasant rather than tedious.

The combination of multiple curve types covering different control scenarios, hysteresis configuration that prevents fan oscillation, and plugin ecosystem extending control to NZXT Kraken, Corsair LINK, ASUS Aura, and various other manufacturer protocols produces a unified control surface for cooling that no other tool currently matches in scope.

The reasons to consider alternatives are mostly about specific scenarios. Users wanting plug-and-play simplicity without configuration learning curves find BIOS fan curves or SpeedFan covering basic needs without the depth this software exposes. Users wanting integrated control specifically with manufacturer ecosystems and willing to accept fragmented utilities for different hardware find tools like iCUE handling specific brands directly.

Users wanting hardware monitoring alongside cooling control find dedicated monitoring tools like HardMon or Speccy covering the visibility side while this software handles control. But for users wanting comprehensive sophisticated fan control through one application that handles essentially all of their cooling hardware, this software remains the standout option in the category, with capabilities that genuinely exceed what motherboard manufacturers’ first-party tools currently provide.

02 — Verdict

Pros & Cons

The good
  • Custom fan curves with multiple curve types support complex control scenarios
  • Sensor source flexibility lets any fan respond to any temperature source
  • Plugin system extends control to manufacturer-specific hardware including NZXT, Corsair, and ASUS
  • Hysteresis configuration prevents fan oscillation at temperature transition boundaries
  • Mix curves combine multiple inputs for fans that need to respond to multiple heat sources
  • Profile system supports switching between configurations for different use scenarios
  • Graphical curve editor makes design substantially more pleasant than BIOS fan curve interfaces
  • Lightweight implementation produces minimal performance impact
  • Active development with regular updates expanding hardware support
  • Free and open source without paid tiers gating core functionality
The not-so-good
  • Requires .NET runtime, which adds a dependency on minimal systems
  • Configuration depth overwhelms users wanting plug-and-play simplicity
  • Plugin ecosystem doesn't cover all manufacturer-specific hardware
  • Some hardware-specific oddities produce edge cases that don't fully resolve
  • Active development pace occasionally introduces bugs that subsequent releases fix
03 — FAQ

Frequently asked questions

This software is a fan control application from developer Rémi Mercier that provides custom fan curves, multiple curve types (Graph, Linear, Flat, Sync, Mix, Trigger, Time Average, Fizz), sensor source flexibility, hysteresis configuration, plugin support for manufacturer-specific hardware, and a graphical curve editor. The application reads temperature data from CPU, GPU, motherboard, storage, and various other sources, then drives any fan in the system based on rules you define. It's free, open source, and built on .NET.

The application reads temperature sensors and fan headers exposed through standard interfaces and through manufacturer-specific plugins. You configure curves that map temperature ranges to fan speed percentages, assign each fan to follow specific curves, and the application continuously adjusts fan speeds based on current temperatures and your configured curves. The control happens through PWM signals to motherboard fan headers or through manufacturer-specific protocols for hardware that exposes its fans differently.

Open the application's curve editor and create a new curve of the type you want (Graph for typical multi-point curves, Linear for simple two-point curves, or various other types for specialized scenarios). For Graph curves, drag points around the temperature/speed graph to define the relationship. Configure hysteresis to prevent oscillation at transitions. Assign the curve to specific fans through the fan configuration interface. Save the configuration, and the curves take effect immediately.

SpeedFan is the older fan control utility that was the standard option for years before this software emerged. It supports basic fan control with simpler curves and broader compatibility with older hardware. FanControl offers substantially more sophisticated curve types, plugin support for manufacturer-specific hardware, a more polished graphical interface, and active development that continues to expand capabilities. For users with older systems where SpeedFan works fine, the older tool may be sufficient. For users with current hardware wanting modern fan control capabilities, this software covers more ground.

Most current motherboards work through the standard sensor and fan header interfaces the application reads. Modern Intel and AMD chipsets are generally well supported, with manufacturer-specific quirks sometimes requiring configuration adjustments but typically working with reasonable effort. Older boards or very specific niche models may have implementation differences that produce edge cases. Users with specific motherboards should verify their fan headers actually appear in the application's interface before assuming control will work.

Plugins extend the application to support manufacturer-specific hardware that proprietary protocols normally lock down. The NZXT plugin handles Kraken AIO coolers and various other NZXT products. The Corsair plugin handles LINK-compatible products including iCUE-managed fans and pumps. ASUS Aura, MSI Mystic Light, and various other manufacturer ecosystems have their own plugins. Plugin coverage depends on community development for each specific hardware family, with comprehensive coverage for major brands and incomplete coverage for niche hardware.

Fan oscillation typically comes from temperature crossing curve transition boundaries repeatedly without hysteresis configured. Without hysteresis, a temperature wavering between 64°C and 65°C while a curve has a transition at 65°C produces constant fan speed changes. Configure hysteresis (typically 2-5°C) for the affected curve, which makes the curve adjust speeds only when temperature crosses the transition boundary by more than the hysteresis margin. The configuration eliminates oscillation while preserving responsive fan adjustment for actual temperature changes.

The application supports exporting configurations to files that can be imported on other systems. Export your configuration through the application's interface, transfer the file to another system, and import it through the same interface. Configurations are tied to specific hardware by sensor and fan identifiers, which means imported configurations may need adjustment if the target system's hardware differs from the source. For sharing approaches that work across different systems, sharing the curve definitions rather than full configurations sometimes produces better results than direct imports.

Yes, AIO pumps that expose their speed control through standard fan header interfaces or through manufacturer-specific plugins can be controlled through the application's curves. The pump speed control follows the same curve system as fan control, with the difference being that pumps typically operate in different RPM ranges than fans. For optimal AIO behavior, follow your specific cooler's documentation regarding appropriate pump speed ranges, since some pumps prefer fixed high speeds while others benefit from dynamic adjustment based on coolant temperature.

Hysteresis is a configurable margin around curve transition points that prevents fans from changing speed when temperatures hover near boundaries. Without hysteresis, temperature crossing a transition repeatedly causes constant speed changes producing audible fan oscillation. With hysteresis configured, the curve only adjusts speeds when temperature crosses transitions by more than the configured margin, producing stable fan operation even when temperatures hover near boundaries. The setting is essential for natural-feeling fan behavior rather than the constantly-changing behavior that happens without it.

Specifications

Technical details

Latest version267
File nameFanControl_267_net_4_8.zip
MD5 checksum552E3EEBDAB4427A20D2FB721CDC75F8
File size 10.53 MB
LicenseFree
Supported OSWindows 11 / Windows 10 / Windows 8 / Windows 7
Author Rem0o
Alternatives

Similar software

Community

User reviews

guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments