Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Rem0o

FanControl, my take on a SpeedFan replacement

Recommended Posts

Posted · Original PosterOP

______________________________

Version updated date: 26/10/2020

 

New version include OTA update with versioning.
Make sure you have at least such version to get future updates!

 

Current update version: 54
 

https://github.com/Rem0o/FanControl.Releases/releases

Direct Download

______________________________

 

To run at startup: Use the new "Start with Windows" option in the left hamburger menu

______________________________

 

Tutorials:

 

 

 

 

MainUI.png.0ea3f37f3214049bf6471fe5cdc276e1.png

 

 

 

GraphDialog.png.5110decbebbe48bf39b3bb5b7565bb29.png

 

______________________________


       TLDR

______________________________

 

I built a new custom UI on top of OpenHardwareMonitor with additional features, mainly linear fan curves with custom temperature sources.

 

______________________________


     STORY

______________________________

 

As you guys may know, SpeedFan is sadly not updated anymore, so newer boards are not detected properly. 

 

The main feature I used was the custom fan curves with custom temperature sources. I used it to bind my case fans speed to the hottest component of my PC, my GPU. 

(My BIOS only supports CPU temperature as a temperature source for the PWM fans).

 

I searched around for an alternative software with this particular feature and only found a paid option (Angus Monitor).

 

However, I also came around this:


https://github.com/openhardwaremonitor/openhardwaremonitor

https://github.com/LibreHardwareMonitor/LibreHardwareMonitor

 

The first link is an original project which could be downloaded here https://openhardwaremonitor.org/, but just like SpeedFan, the project is not updated anymore.

However, thanks to the code base being open sourced, there are a couple of active branches, LibreHardwareMonitor being the best one I found, supporting my MSI Z390 Edge AC board and being updated regularly.

OpenHardwareMonitor is divided into two parts, an API to interact with your hardware ( CPU, RAM, Fans... ) and a UI. The existing UI is a HWMonitor clone that allows to set a manual fan speed to any fan, but no temperature/speed fan curve here.

( sigh )

 

So I decided to make my own lightweight application with the OpenHardwareMonitorLib API, and here is what I got so far...        

 

Current features:

  • OTA update
  • Multi-config support with quick-switch from tray icon
  • Dark/light mode + colors
  • Graph fan curves
  • Linear fan curves
  • Flat fan curves
  • Mixed fan curves
  • Sync fan curves
  • Custom name for each fan / curve / control
  • Material UI ( thanks to http://materialdesigninxaml.net/ )
  • Smooth fan speed transitions
  • Custom temperature source
  • Automatic or manual matching between your controls and fan speeds
  • Activation% (dead zone) for each fan
  • Saves your current configuration and reload it on startup
  • Board support is updated whenever the API gets an update!

 

Please note that this is a small personal project. It works great for my needs but I didn't test it on a hundred different motherboards. Take it as it is. If it works on your current setup, well you got your fan control situation sorted at least until you change your motherboard!

 

If you want to help me out a bit or give me feedback, I included some links/button in the left hamburger menu out of the way to send me an email

or to pay me a 🍺 ... or 🍺🍺🍺.

 

I will also keep an eye on this thread to see how it goes.

 

Confirmed compatibility list from members

Spoiler

AsRock H97M Pro 4
ASRock Steel Legend B450M

Asrock Z390 Mini-ITX

Asus Strix Z270G

Asus maximus ranger VIII 

ASUS MAXIMUS IV GENE-Z 
 

Gigabyte X470 Aorus Gaming 7

Gigabyte Z370 AORUS Gaming 5 (rev. 1.0)

Gigabyte X570 Gaming X


MSI MPG X570 GAMING PLUS

MSI Z390 Edge AC

MSI B450 Gaming Pro Carbon AC
MSI B450 Tomahawk MAX

MSI X470 Gaming Plus Max 

 

Enjoy!

 

 

 

Link to post
Share on other sites

Wow, I would love this infinitely! :D Nice work! :)


PC SPECS: CPU: Intel Core i7 3770k @4.4GHz - Mobo: Asrock Extreme 4 (Z77) - GPU: MSI GeForce GTX 680 Twin Frozr 2GB - RAM: Crucial Ballistix 2x4GB (8GB) 1600MHz CL8 + 1x8GB - Storage: SSD: Sandisk Extreme II 120GB. HDD: Seagate Barracuda 1TB - PSU: be quiet! Pure Power L8 630W semi modular  - Case: Corsair Obsidian 450D  - OS: Windows 7

Link to post
Share on other sites

I was bit worried about where this is going since you were talking about OpenHardwareMonitor, which had very basic voltage-style fan controls. I'll check this further out. I can still use Speedfan as I have older mobo. But can't really recommend it as option for anyone with latest mobos, and who doesn't like what their manufacturer has to offer (mainly from Gigabyte).

 

Bookmarked.


^^^^ That's my post ^^^^
<-- This is me --- That's your scrollbar -->
vvvv Who's there? vvvv

Link to post
Share on other sites
Posted · Original PosterOP

Alright, I made a little release with an expiration date on it 2 weeks from now.

Since this is pretty much an Alpha, I don't want people using this version of the software long term.

 

Tell me how it works in your setup!

 

If you got issues ( or positive feedback ), report them back here and I will try to address them ASAP.

 

Notes:

  • This app will revert back to your previous settings when you close it from the application tray icon.
  • This app is a background app, you must close it from the application tray icon
  • This app will conflict with other fan control softwares
  • Shutting down your computer / sleeping will revert to your previous settings if you force closed the application.
  • Use this app on your own terms / at your own risks, I am not responsible if your components overheat ?

 

Enjoy ⚡

 

Link to post
Share on other sites

Hi, I've just stumbled upon this thread in a desperate search for a SpeedFan replacement for my new Asus ROG STRIX Z390-I GAMING (Nuvoton NCT6798D).

 

Rem0o, your take on this looks absolutely awesome, but since your software has expired, I wanted to ask if you plan a release or share the source code ?

In my use case, one PWM header needs to by in sync with my GPU temps, as in yours.

 

Thanks !

Link to post
Share on other sites
Posted · Original PosterOP
On 11/19/2019 at 4:25 AM, tenuis said:

Hi, I've just stumbled upon this thread in a desperate search for a SpeedFan replacement for my new Asus ROG STRIX Z390-I GAMING (Nuvoton NCT6798D).

 

Rem0o, your take on this looks absolutely awesome, but since your software has expired, I wanted to ask if you plan a release or share the source code ?

In my use case, one PWM header needs to by in sync with my GPU temps, as in yours.

 

Thanks !

Since I don't have time to tackle the rest of this project until the end of the year, here's a "2019" release ( it will expire in 2020 ).

 

Still will be collecting feedback, I will refer to the posts in this thread later on when I start working on it again! The plan is a more permanent release early 2020.

 

Quick tip: Your fans will be identified as Fan 0, Fan 1, Fan 2 etc....  Try to set a 100% or 0% fan speed for each to identify them. Once you figured which is which, simply rename them and they will be saved as such. 
 

 

EDIT:
Removed the file, see my latest post for the latest release.

 

Link to post
Share on other sites

Just stompled upon this thread and it is the solution i was looking for! Found no other way to control the fans on my MSI z390 gaming plus (except for the awful bios-control).

Many thanks!

Link to post
Share on other sites
Posted · Original PosterOP

Hey guys,

I've fixed some bugs, optimized the app quite a bit to make it as less resource hungry as possible. Also, I've simplified the save file (state.json), which lives in the same folder as the exe.

 

No silly time limit for this one.


Feel free to share it arround the community.


Enjoy!

 

 

 

Link to post
Share on other sites

I will need to check this now that I have time. SpeedFan is working for me, but I'd like to recommend alternative for it.


^^^^ That's my post ^^^^
<-- This is me --- That's your scrollbar -->
vvvv Who's there? vvvv

Link to post
Share on other sites

Thank you so much for sharing this tool.

 

After I upgraded from an old AMD FX8350 on a ASrock motherboard to a Intel core i7-8700k on an MSI motherboard, I was unable to control fans using speedfan. I'll be playing around with it. So far, all fans are being picked up and have a nice set of options for tweaking behavior to my liking.

 

Only thing to report as far as bugs is that if I click on the hamburger menu on the top left, it causes an insta-crash. Other than that, seems pretty stable.

 

Thanks again kind sir!

 

 

Link to post
Share on other sites
Posted · Original PosterOP
On 12/30/2019 at 11:11 AM, greyishgoose said:

Thank you so much for sharing this tool.

 

After I upgraded from an old AMD FX8350 on a ASrock motherboard to a Intel core i7-8700k on an MSI motherboard, I was unable to control fans using speedfan. I'll be playing around with it. So far, all fans are being picked up and have a nice set of options for tweaking behavior to my liking.

 

Only thing to report as far as bugs is that if I click on the hamburger menu on the top left, it causes an insta-crash. Other than that, seems pretty stable.

 

Thanks again kind sir!

 

 

Just got the bug today. The hamburger menu is not used as of now, so I never saw it ?.

Fixed it and also added a contact address in the top-right menu.
 

Link to post
Share on other sites
Posted · Original PosterOP

New feature: Mixed curves!
 

Breaking change: The temperatures are now bound to a curve, not to a fan control. Existing save files won't work.
 

I added a new type of curve, Mixed!
This new type of curve allows to combine two existing curves and outputs the maximum of the two.

Use case:

image.png.7a84a099d52ea09d1599570c2e4039ce.png

 

In this scenario, I want my case fans to ramp up if the CPU hits 45 deg OR if the GPU hits 50 deg and above. The curve with the maximum output will be the mixed curve output.

 

Hope you guys enjoy it.

Link to post
Share on other sites

Hello, and a HUGE thanks for working on this!

 

I've tested it with my setup and trying to replace SpeedFan seems a realistic possibility with how good it already is.

I'm finding a couple points I'd like to bring up, to further improve the software.

An option for hysteresis (don't change speed unless temperature changes more than X for longer than Y seconds), to prevent continous ramping up and down of fan noise when a value jitters on the boundary of a degree, and also saving the position and size of the window when you save the configuration would be great.

 

In example my radiator does not have a water temperature sensor, so I'm stuck using CPU temp for the fans.. I would love to be able to set it like.. if it's over 60°C for more than 30 seconds, ramp up the fans.. so it won't increase the speed for a quick transient load that wouldn't affect the loop temperature, but it would work perfectly for long tasks like renders or gaming and such.

 

On a different note.. HWiNFO64 and SpeedFan are able to read the VRM temperature on my Asus Z97-PRO Gamer, but it's not available in Open Fan Control.

Is it related to the HardwareMonitor library used?

 

Thanks again for developing this, I've been looking for a modern alternative to speedfan for a long time.

Would love to see it on github, it has a lot of potential for growing into a great solution.


[small edit] Tested LibreHardwareMonitor and OpenHardwareMonitor, and both indeed don't read my VRM sensor temperature. No luck on that.

Link to post
Share on other sites
Posted · Original PosterOP
7 hours ago, Lupo said:

Hello, and a HUGE thanks for working on this!

 

I've tested it with my setup and trying to replace SpeedFan seems a realistic possibility with how good it already is.

I'm finding a couple points I'd like to bring up, to further improve the software.

An option for hysteresis (don't change speed unless temperature changes more than X for longer than Y seconds), to prevent continous ramping up and down of fan noise when a value jitters on the boundary of a degree, and also saving the position and size of the window when you save the configuration would be great.

 

In example my radiator does not have a water temperature sensor, so I'm stuck using CPU temp for the fans.. I would love to be able to set it like.. if it's over 60°C for more than 30 seconds, ramp up the fans.. so it won't increase the speed for a quick transient load that wouldn't affect the loop temperature, but it would work perfectly for long tasks like renders or gaming and such.

 

On a different note.. HWiNFO64 and SpeedFan are able to read the VRM temperature on my Asus Z97-PRO Gamer, but it's not available in Open Fan Control.

Is it related to the HardwareMonitor library used?

 

Thanks again for developing this, I've been looking for a modern alternative to speedfan for a long time.

Would love to see it on github, it has a lot of potential for growing into a great solution.


[small edit] Tested LibreHardwareMonitor and OpenHardwareMonitor, and both indeed don't read my VRM sensor temperature. No luck on that.

Thanks for the input. There is already a 2 deg C hysterisis ( though not time bounded) implemented in the background, I just did not made it configurable yet. I might look into it. As for your "reactivity" parameter, I might look into it as it would make sense in a water cooling setup. It would probably be a new type of fan curve entirely. 

Link to post
Share on other sites
On 1/5/2020 at 3:07 AM, Rem0o said:

Thanks for the input. There is already a 2 deg C hysterisis ( though not time bounded) implemented in the background, I just did not made it configurable yet. I might look into it. As for your "reactivity" parameter, I might look into it as it would make sense in a water cooling setup. It would probably be a new type of fan curve entirely. 

I haven't tested this yet but what systems does this support?  Or does it interface with HWInfo in the ackground to control the fans?  I really hate the Gigabyte fan curve rubbish I have to install on my x570 board but it's the only option I got.


QUOTE ME IN A REPLY SO I CAN SEE THE NOTIFICATION!

When there is no danger of failure there is no pleasure in success.

Link to post
Share on other sites
Posted · Original PosterOP
9 hours ago, Samfisher said:

I haven't tested this yet but what systems does this support?  Or does it interface with HWInfo in the ackground to control the fans?  I really hate the Gigabyte fan curve rubbish I have to install on my x570 board but it's the only option I got.

It it based on OpenHardwareMonitor. HWInfo SDK is a paid licensed I believe.

 

If your motherboard uses one of the SuperIO chip listed in this file, you are supported. 
https://github.com/LibreHardwareMonitor/LibreHardwareMonitor/blob/f4fb5ad13b74ca889e948b6f6ab03adf61731e22/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/LpcIO.cs

You can also download the original monitoring software here. If it detects your fans, you are supported!
https://ci.appveyor.com/project/LibreHardwareMonitor/librehardwaremonitor/build/artifacts

Link to post
Share on other sites
10 hours ago, Rem0o said:

It it based on OpenHardwareMonitor. HWInfo SDK is a paid licensed I believe.

 

If your motherboard uses one of the SuperIO chip listed in this file, you are supported. 
https://github.com/LibreHardwareMonitor/LibreHardwareMonitor/blob/f4fb5ad13b74ca889e948b6f6ab03adf61731e22/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/LpcIO.cs

You can also download the original monitoring software here. If it detects your fans, you are supported!
https://ci.appveyor.com/project/LibreHardwareMonitor/librehardwaremonitor/build/artifacts

Will take it for a spin after work tonight and see how it goes!


QUOTE ME IN A REPLY SO I CAN SEE THE NOTIFICATION!

When there is no danger of failure there is no pleasure in success.

Link to post
Share on other sites
Posted · Original PosterOP

Thanks to @Lupo for the suggestion, I added the following:

- Window size and position is now saved with your config.

- Moved the credit to the left menu

I'm really glad this little project of mine is getting some love. What started as me filling a "software void" for my setup can now help other people's setup!

Keep the suggestions / comments coming.

 

PS: If you like the software and it does fills your setup specific needs, feel free to give me a tip.
I added a donation button out of sight next to the credit in the left hamburger menu.

image.png

 

Link to post
Share on other sites

Thanks @Rem0o for your updates. It's really filling a (crazy when you think about it, especially since everybody's using more and more elaborate cooling setups) void in fan control software after SpeedFan development stopped.

It's already wonderful and the mixed curve idea is brilliant. Also the custom hysterisis request is a welcome one.

 

Two wishes after testing the latest release :

  • custom curve (maybe you could look at the source here for the library used, that's what I've been using for some time now but the base version of Libre Hardware Monitor used in this fork is outdated : https://github.com/SorceressEpele/LibreHardwareMonitor)
  • taskbar temperature monitoring (it's somehow minor, but it would be great to have the possibility to monitor the numbers without running another software / instance of Hardware Monitor)
Link to post
Share on other sites
19 hours ago, Rem0o said:

It it based on OpenHardwareMonitor. HWInfo SDK is a paid licensed I believe.

 

If your motherboard uses one of the SuperIO chip listed in this file, you are supported. 
https://github.com/LibreHardwareMonitor/LibreHardwareMonitor/blob/f4fb5ad13b74ca889e948b6f6ab03adf61731e22/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/LpcIO.cs

You can also download the original monitoring software here. If it detects your fans, you are supported!
https://ci.appveyor.com/project/LibreHardwareMonitor/librehardwaremonitor/build/artifacts

That's weird.  I can see some fans reporting RPM on Libre but when I launch your software it only shows GPU image.png.e4a214be8663b8978de9d4671e032cc7.png


QUOTE ME IN A REPLY SO I CAN SEE THE NOTIFICATION!

When there is no danger of failure there is no pleasure in success.

Link to post
Share on other sites
Posted · Original PosterOP
1 hour ago, Samfisher said:

That's weird.  I can see some fans reporting RPM on Libre but when I launch your software it only shows GPU 

Huh, could you DM me the log? ( 3 dot menu on the top right )

 

 

Link to post
Share on other sites
12 hours ago, Rem0o said:

Huh, could you DM me the log? ( 3 dot menu on the top right )

 

 

Now it won't launch at all even after a restart xD


QUOTE ME IN A REPLY SO I CAN SEE THE NOTIFICATION!

When there is no danger of failure there is no pleasure in success.

Link to post
Share on other sites
Posted · Original PosterOP
38 minutes ago, Samfisher said:

Now it won't launch at all even after a restart xD


Make sure it's not in the application tray if you happened to tick the "start minimized" option previously. Otherwise, try to delete the config file next to the exe (userConfig.json) and start it back up. Also, make sure it runs as admin and that you have no other fan control software controlling the same stuff at the same time.

Link to post
Share on other sites
6 minutes ago, Rem0o said:


Make sure it's not in the application tray if you happened to tick the "start minimized" option previously. Otherwise, try to delete the config file next to the exe (userConfig.json) and start it back up. Also, make sure it runs as admin and that you have no other fan control software controlling the same stuff at the same time.

After deleting the config files the fans have appeared! :D


QUOTE ME IN A REPLY SO I CAN SEE THE NOTIFICATION!

When there is no danger of failure there is no pleasure in success.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×