Jump to content

FanControl, my take on a SpeedFan replacement

1 hour ago, FreezingTaz said:

I've downloaded FanControl and have Libre Hardware Monitor. However, when I go to run the FanControl app, nothing opens up(nothing in the task bar tray either). Is there a specific location I need to put the folder or some config I have to do?

Thanks in advance!

I think I missed a file in my latest release, try to download again.

Link to comment
Share on other sites

Link to post
Share on other sites

Update ( for real this time )

  • Dark and light mode selection

Enjoy

 

image.png.23b8e402435de79924ee8f17adc37afd.pngimage.png.5c8fc39e3938d2eaf4b67f72ef01c182.png

Link to comment
Share on other sites

Link to post
Share on other sites

Is there any chance you'll open source this?

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, omniac said:

Is there any chance you'll open source this?

 

I already addressed this mostly in this post. No plan to open source this as of now, as the core of it is already open sourced.

Link to comment
Share on other sites

Link to post
Share on other sites

18 hours ago, Rem0o said:

I think I missed a file in my latest release, try to download again.

Thanks man, that worked!

Link to comment
Share on other sites

Link to post
Share on other sites

Small update

  • Dark mode is now even darker

Right now I made early tests to be able to change the primary and accent color. This update is basically a test of these features, but no binding yet to be able to change them from the UI.

 

I just need to get familiar with what my UI library has to offer on that front. My ideal scenario would be a color picker for the primary and the accent color, we'll see how it goes.

 

Stay tuned.

 

image.png.5498bfbad8ac7b45f8d61347cd550626.png

Link to comment
Share on other sites

Link to post
Share on other sites

Hi. Tried it and really liked the clean and intuitive interface. Well done, mate. 

I just wanted to know if you plan on introducing control over the RPM (min-max RPM's) itself rather than specifying the minimum and maximum fan speed percentage. Thank you for the software, again.

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, ToniMaunde said:

Hi. Tried it and really liked the clean and intuitive interface. Well done, mate. 

I just wanted to know if you plan on introducing control over the RPM (min-max RPM's) itself rather than specifying the minimum and maximum fan speed percentage. Thank you for the software, again.

That would be a bit more complicated and tricky.

 

The control itself is an 8 bit number, so 0 to 255. I just mapped it to a percentage since it is more intuitive for most people. Also, the control itself by default isn't aware of its RPM data. The RPM and 8 bit values are two different channels on the chip.

For your idea to work, the control would first have to be paired properly to its RPM sensor. I offer this feature already, but user error is possible here.
Then, a kind of "cruise-control" (like a car) would have to be created in order to control the RPM. A simple PID function would probably do the trick, but it would be inherently more laggy and less direct that the current method. Offering parameters to control that PID function would also let the user possibly create an unstable function, which could oscillate like crazy.

 

All these things combined would make a more complicated experience for very little benefit (imo). 

So while yes, It is possible and not that complicated to code, I don't have plans right now for direct RPM controls.

Link to comment
Share on other sites

Link to post
Share on other sites

Tutorial

Made a new tutorial on how I setup my CPU fan curve. Check it out!

Link to comment
Share on other sites

Link to post
Share on other sites

9 hours ago, Rem0o said:

A simple PID function would probably do the trick, but it would be inherently more laggy and less direct that the current method. Offering parameters to control that PID function would also let the user possibly create an unstable function, which could oscillate like crazy.

You could also do what Asus fan control software does, and profile each fan.

 

Their software will, one fan header at a time, ramp the fan speed up from 0 to 100%, saving the RPM that the fan reaches at each increment to a table. Later, when the user then requests a specific fan RPM, the software checks the table for the closest RPM, and what PWM value was required to attain that RPM, and sets that PWM value.

 

In addition to ramping the fans up from 0% to 100% (to build the table and determine start-speed), they also ramp down from 100% to 0% to determine stall speed (which is often slower than start speed). This allows you to do things like automatically start your fans at their minimum start-speed, and then have them ramp down to their minimum stall speed.

 

This also worked for voltage-controlled fans (or any fan on a 3-pin voltage-controlled header), which tend to have non-linear increases in RPM with voltage, and allowed the fan control software to FORCE them to ramp their RPM to precisely the desired line or curve.

 

Asus AI Suite is horrible in a lot of ways, but the fan control was pretty amazing.

Link to comment
Share on other sites

Link to post
Share on other sites

Thanks, this is great, and exactly what I wanted to get my new PC whirring correctly.

Are you finding the hysteresis is working correctly?  It seems to me that it is not.  Perhaps this is in the 'out of my control' bucket -- I'm not sure if it is a UI thing or part of the API.  Or I might not know what I'm doing, that is frequently the underlying answer.

 

I've tried to set an on-off switch for my GPU fan under idle conditions using a linear 0-15% fan @ 54-55C. What I expected was that with hysteresis set to, say, 5 C, I would get the fan spinning when T>=55C, until T dropped down to 50C, when it would stop.  Instead there is hardly any hysteresis if any: it turns on ~55C (after the delay) and turns back off at 54C.

 

Even if it is unfixable, I'll definitely still be using Fan Control instead of the ASRock software.  👍

 

EDIT: vertical scale on GPU trace is 52 - 57 C.  Hysteresis set to 5 in FC.

Annotation 2020-04-07 000723.png

Edited by richard_from_the_future
Useless scaling in original image. Changed image.
Link to comment
Share on other sites

Link to post
Share on other sites

On 4/5/2020 at 2:57 AM, Rem0o said:

That would be a bit more complicated and tricky.

 

The control itself is an 8 bit number, so 0 to 255. I just mapped it to a percentage since it is more intuitive for most people. Also, the control itself by default isn't aware of its RPM data. The RPM and 8 bit values are two different channels on the chip.

For your idea to work, the control would first have to be paired properly to its RPM sensor. I offer this feature already, but user error is possible here.
Then, a kind of "cruise-control" (like a car) would have to be created in order to control the RPM. A simple PID function would probably do the trick, but it would be inherently more laggy and less direct that the current method. Offering parameters to control that PID function would also let the user possibly create an unstable function, which could oscillate like crazy.

 

All these things combined would make a more complicated experience for very little benefit (imo). 

So while yes, It is possible and not that complicated to code, I don't have plans right now for direct RPM controls.

Oh, I see. Complicated indeed. Thanks for the thorough explanation.

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, richard_from_the_future said:

Are you finding the hysteresis is working correctly?  It seems to me that it is not.  Perhaps this is in the 'out of my control' bucket -- I'm not sure if it is a UI thing or part of the API.  Or I might not know what I'm doing, that is frequently the underlying answer.

Well, the hysteresis works inside the temperature range, but then snaps to its boundaries when close to it, which is misleading. Since your hysteresis is actually bigger than your range, the curve will simply ignore it. I added this so that a curve doesn't stay "stuck" close to let's say idle and sit like at 4% instead of 0%.

 

Something like this doesn't work. You got a 1 deg range for a 0 to 15% speed range, so basically a "on/off" switch with a 1 degree trigger. Thus you added a 5 deg hysteresis to create a two-way 5 deg plateau between the on and off state, I get it, but it's not made for that.


image.png.3fdc8b980b76b7383dbc33221e12ce49.png
 

I get what you are trying to do, and I will look into a way to do what you are trying to do, a plateau on/off switch into a linear curve.

Might be time to add the "dead zone" feature to the control card.

Link to comment
Share on other sites

Link to post
Share on other sites

19 hours ago, Rem0o said:

...
Thus you added a 5 deg hysteresis to create a two-way 5 deg plateau between the on and off state, I get it, but it's not made for that.

...

😆   I have to admit that I read the OP and watched your (very good) video the night before installing it, and then couldn't sleep for thinking "what if I [this]? what if I [that]?".

 

I was going to use Mixed profiles as an input to Mixed profiles... think of the possibilities!  😄

 

I ended up getting the on/off effect I was going for by increasing the delay timer to maximum rather than using the hysteresis, but I see you have made a change that will be even better.  Thank you!  I also saw right before bed that the hysteresis does work well higher in the rpm range, so I'm sorry for not checking that sooner and saving myself some embarrassment.

 

Looking forward to trying the new version now.


EDIT: Yeah, its so good. I'm probably still using it in a slightly unintended way, but the new fan% threshold is perfect for making this work...
 

 

Annotation 2020-04-07 215839.png

Edited by richard_from_the_future
Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, richard_from_the_future said:

I'm probably still using it in a slightly unintended way

Well not really, there should be no such thing as an "unintended way". If the UI lets you do it, it should work.

😄

Link to comment
Share on other sites

Link to post
Share on other sites

Update

 

  • Automatic process to find the activation% of all your fans

Made a new video to demonstrate that new feature + how it's used to create a GPU fan curve.

 

 

Enjoy!

Link to comment
Share on other sites

Link to post
Share on other sites

Got a small problem with fan curves. The max fan speed is always resetting to 80% after restart. Anybody knows what could be causing this?

Link to comment
Share on other sites

Link to post
Share on other sites

47 minutes ago, HaiDat said:

Got a small problem with fan curves. The max fan speed is always resetting to 80% after restart. Anybody knows what could be causing this?

Did you save your config before restarting your computer?

 

image.png.ea67eafe7a843171b55781e69e121864.png

Link to comment
Share on other sites

Link to post
Share on other sites

8 minutes ago, HaiDat said:

Yup, I did

Do you have any other fan controlling software/bios setting running that could conflict?

Link to comment
Share on other sites

Link to post
Share on other sites

33 minutes ago, Rem0o said:

Do you have any other fan controlling software/bios setting running that could conflict?

Nope, just OpenFanControl running. 

Link to comment
Share on other sites

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


×