With Obsidian Fan Control now seemingly no longer being maintained, I ended up having to write my own application inspired by Obsidian's.
![]()
The icon is borrowed from the Obsidian app.
Currently the app is very basic. It has 10 preset temperature units. Under 40 C, the fans will automatically be set to 0. Anything 40 through to 85 can be configured at 5 C intervals. It only uses two fans (1 for CPU and 2 for GPU) but I'm sure this can be easily modified.
Important notes v0.3
Disclaimer
- 2 fans supported at the moment (I think it may still work with 3 fans but not tested).
- Uses ClevoEcInfo.dll for fan control which relies on NTPort 2.8 library (included in release download - the installer might give an error but it should still work. Thanks @philstopford.)
- Uses ClevoEcInfo.dll for temperature monitoring
- No longer uses OpenHardwareMonitor library for GPU temperature
- No longer uses WMI for CPU temperature
- No average temperatures, the fan speed is simply set immediately depending on CPU or GPU temperature and the configured temperature for that range
- The "Clevo Default" profile now actually functions to set the fan profile back to EC auto. This is also the default behaviour when you exit the application.
- Safety temperature thresholds are now user-configurable independently for CPU and GPU, so if either temperature is exceeded, both fans will be set to 100%.
- NTPort library might give you an error message during the installation, but this can be ignored as the driver will still be installed
Please remember that this is very much a work in progress which I just quickly put together in one day for my own use and sharing here so other developers can work with it or users can play around with it. Be careful when using it as a permament fan control solution, I am not responsible for any damage caused by any malfunctioning of the app. I have also only developed this application for personal use as a replacement for CCC/Obsidian Fan Control, and am not actively maintaining/improving it. The source code is available if you wish to implement your own features.
Download
Source: https://github.com/djsubtronic/ClevoFanControl
Latest release (0.3): https://github.com/djsubtronic/ClevoFanControl/releases/tag/WIPv0.3
Last updated 2021-11-06
-
-
BrightSmith Notebook Evangelist
-
where did you get the ClevoEcInfo.dll?
-
skandal likes this.
-
I was hoping to make this work against .NET 5.0 (I don't have the Framework SDKs installed). It builds OK, but the loading of the library fails for some reason. I was wondering if there is a pre-built binary that I can check for operation.
-
https://github.com/djsubtronic/ClevoFanControl/releases/tag/v0.1-wip
Sorry, never really used Github before so let me know if something is wrong. You need to put all the files on that link into the same folder. -
Thanks. So this gives me the same error :
Code:See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box. ************** Exception Text ************** System.Exception: Can't load ClevoEcInfo.dll at ClevoFanControl.ClevoEcInfo.Init() at ClevoFanControl.frmMain.Form1_Load(Object sender, EventArgs e) at System.Windows.Forms.Form.OnLoad(EventArgs e) at System.Windows.Forms.Form.OnCreateControl() at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) at System.Windows.Forms.Control.CreateControl() at System.Windows.Forms.Control.WmShowWindow(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.Form.WmShowWindow(Message& m) at System.Windows.Forms.Form.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ************** Loaded Assemblies ************** mscorlib Assembly Version: 4.0.0.0 Win32 Version: 4.8.4341.0 built by: NET48REL1LAST_C CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll ---------------------------------------- ClevoFanControl Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///E:/ClevoFanControl.exe ---------------------------------------- System Assembly Version: 4.0.0.0 Win32 Version: 4.8.4300.0 built by: NET48REL1LAST_C CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- System.Windows.Forms Assembly Version: 4.0.0.0 Win32 Version: 4.8.4341.0 built by: NET48REL1LAST_C CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System.Drawing Assembly Version: 4.0.0.0 Win32 Version: 4.8.4084.0 built by: NET48REL1 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ---------------------------------------- System.Management Assembly Version: 4.0.0.0 Win32 Version: 4.8.4084.0 built by: NET48REL1 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Management/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Management.dll ---------------------------------------- System.Configuration Assembly Version: 4.0.0.0 Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll ---------------------------------------- System.Core Assembly Version: 4.0.0.0 Win32 Version: 4.8.4341.0 built by: NET48REL1LAST_C CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll ---------------------------------------- System.Xml Assembly Version: 4.0.0.0 Win32 Version: 4.8.4084.0 built by: NET48REL1 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll ---------------------------------------- OpenHardwareMonitorLib Assembly Version: 0.7.1.0 Win32 Version: 0.7.1.0 CodeBase: file:///E:/OpenHardwareMonitorLib.DLL ---------------------------------------- ************** JIT Debugging ************** To enable just-in-time (JIT) debugging, the .config file for this application or computer (machine.config) must have the jitDebugging value set in the system.windows.forms section. The application must also be compiled with debugging enabled. For example: <configuration> <system.windows.forms jitDebugging="true" /> </configuration> When JIT debugging is enabled, any unhandled exception will be sent to the JIT debugger registered on the computer rather than be handled by this dialog box.
-
I changed some build settings and clean/rebuilt, try this:
https://github.com/djsubtronic/ClevoFanControl/releases/tag/WIPdmanti likes this. -
My fork is here : https://github.com/philstopford/ClevoFanControlLast edited: Mar 29, 2021 -
Do we need to uninstall Obsidian Fan Control?
-
anytimer likes this.
-
I've been using CCC 2.0 since forever, can I uninstall it completely?
Does your download have all necessary required dlls to function? Or would I need something else? -
As far as dependencies, the download should have all the required files, it is not dependent on CCC. -
ClevoEcInfo.dll seems to require ntport.dll and this isn't part of your package. It's mentioned in the RLECViewer set-up, although here I get an error when the NTPortDrvSetup installer that is provided with RLECViewer runs. It does at least seem to make your tool happy. You might want to include the dependency
djsubtronic likes this. -
I also get an error with the installer, but I think it puts the zntport.sys file in the System32 folder. -
Simple, nice and clean. Great tool.
Will we get one for the 3 fan clevo machines in the future?
PS: Watching tread. -
Could you foresee a way to have the tool calibrate the ramp to minimize RPM vs temperature? Naively, it feels like this could be automated so that the RPM vs loading could be optimized.
-
-
-
-
Btw. could you please put up a precompiled exe for those of us not interested on compiling our own? TIA.Last edited: Apr 6, 2021 -
https://github.com/djsubtronic/ClevoFanControl/releases/tag/WIP
You will need to download all of those files (except the source zips and NTPortDrvSetup) and put them in the same folder. NTPortDrvSetup needs to be installed before you can use the app. The installation might fail, but I think it still installs the needed driver anyway.
At some point I'll probably clean this up (zip the app files would be a good start) and put a readme on the app's homepage.
Edit:
I've updated the release to be a zip so it's easier to download, and also added a readme on the Github project page.
https://github.com/djsubtronic/ClevoFanControlLast edited: Apr 6, 2021anytimer likes this. -
-
It is showing my CPU temperature as 0 degrees. GPU temperature is fine. Clevo default and maximum settings are working, but selecting the manual setting turns the CPU fan off (as its temperature is being read as 0).
My hardware details are in my signature. -
The specific query I'm using is:
WMI Namespace: root\WMI
WMI Class: MSAcpi_ThermalZoneTemperature
You can test this out using this free tool from Nirsoft: https://www.nirsoft.net/utils/simple_wmi_view.html
It's possible your WMI doesn't have this class? -
-
Why not just use openhardwaremonitor to get the CPU temp?
Btw. I need to run the app as admin, otherwise it shows 0 degrees for the CPU.BrightSmith likes this. -
BrightSmith likes this.
-
I'm also looking for something instead of obsidian fan control because of the leak support. I'll try your app this weekend, I have a P751TM, so hope will work
-
Getting issues installing ntport 2.8 on windows 10 19043.899:
-
-
-
However thanks for your time and work to make this app, for me it's working well.
djsubtronic likes this. -
get the following error when i try to run: Any ideas how to fix?
Unhandled exception has occurred in your application. If you click Continue the application will ignore this error and attempt to continue. if you click quit the application will close immediately.
Can't load ClevoEclinfo.dll
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.Exception: Can't load ClevoEcInfo.dll
at ClevoFanControl.ClevoEcInfo.Init() in C:\Users\Sukhamrit\Documents\Visual Studio\Projects\ClevoFanControl\ClevoFanControl\ClevoEcInfo.cs:line 21
at ClevoFanControl.ClevoEcInfo..ctor() in C:\Users\Sukhamrit\Documents\Visual Studio\Projects\ClevoFanControl\ClevoFanControl\ClevoEcInfo.cs:line 16
at ClevoFanControl.frmMain.Form1_Load(Object sender, EventArgs e) in C:\Users\Sukhamrit\Documents\Visual Studio\Projects\ClevoFanControl\ClevoFanControl\frmMain.cs:line 59
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4360.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
ClevoFanControl
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/mxbig/Downloads/ClevoFanControl/ClevoFanControl.exe
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4360.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4341.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Management
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Management/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Management.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4360.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
OpenHardwareMonitorLib
Assembly Version: 0.7.1.0
Win32 Version: 0.7.1.0
CodeBase: file:///C:/Users/mxbig/Downloads/ClevoFanControl/OpenHardwareMonitorLib.DLL
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box. -
-
missed that it worked. thanks for the quick reply -
so the cpu temp sits on 55° checked that the MSAcpi_ThermalZoneTemperature is there it just seems to not monitor or update on the CPU temps
-
-
-
I'm going to try testing this on my NH58AF1. This system is the desktop Ryzen one which really suffers from poor fan control from Clevo.
Anything I need to know before testing? Do I need to remove any of my existing Obsidian software or just disable it? -
SamuelL421 likes this.
-
djsubtronic likes this.
-
Working on Apex 15 with no issues. --> random curve to show it fully functional, it even can be read out in the fan speed software with it left on automatic
Improvements? Maybe fan duty will be nice so the fans don't ramp up/down as fast and the polling rate on the CPU temperature appears to be too low/slow for the 16C parts (this is a 3600) on the apex 15/clevo laptops so that they ramp up and down constantly - would be nice to have these features in but amazing project. -
Luke Smith likes this.
-
The only thing holding me back from switching to this is my keyboard LEDs stop (or rather start) working. I can't even turn them off from the disgusting default blue let alone change colors or brightness.
It even holds my 1070 back by 400MHz!! I can only hope for a per-key RGB solution now that KeyboardLED has stopped development. -
I don't think it has per-key RGB as I don't have a single colour keyboard, but it does work fine on my PC50DR to set the full keyboard colour/brightness/timeout etc. -
Returned with the feedback, tested the app, second gpu fan not working so the gpu fans are not ganged. Waiting for 3 fan compatibility.
-
-
https://github.com/djsubtronic/ClevoFanControl/releases/tag/WIPv0.3
This now uses the Clevo EC library to do all temperature detection (instead of third party OpenHardwareMonitor and WMI) which solves some high power usage issues with newer Nvidia drivers. Some cosmetic updates and bug fixes.
Please note however, I only really made this app as a replacement for CCC and Obsidian Fan Control for my own daily use, so I am not actively maintaining/improving it as it works to my satisfaction. The source code is available for anyone who wants to add features or if there are any serious bugs I can fix those.
I've also updated the first post.Last edited: Nov 6, 2021 -
@djsubtronic Why do you need to install NTPortDrvSetup.exe? Checking the code, it seems you load the Clevo dll in the ClevoEcInfo.cs file, why do you need to NTPortDrv program?
I might be interested in doing some development on this on my free time
I really wanted to remove all external dependencies and only rely on the Clevo DLL. Basically, doing a better ClevoCenter.luisxd, vIkInG_w0w and joluke like this.
WIP Fan Control application
Discussion in 'Sager and Clevo' started by djsubtronic, Mar 29, 2021.