Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fan control improvement #426

Closed
Luke56784 opened this issue Dec 31, 2024 · 9 comments
Closed

Fan control improvement #426

Luke56784 opened this issue Dec 31, 2024 · 9 comments

Comments

@Luke56784
Copy link

Hi

I have a Infinitybook Pro gen 9 and there is one thing that annoys me.

I use the "balanced" fan control. It turns the fans on to 20% at 46°C
and if it reaches 45°C it shuts the fans down. 0%.

So if it's quiet I can hear the fans spinning up multiple times per minute.

From my Desktop PC I know a "step down time" function so the fan spins this time longer and the fan off period would be longer.

Is it possible to add an "step down time" option for the fans?

@tuxedoder
Copy link
Contributor

tuxedoder commented Jan 8, 2025

The code already slows down a maximum of 2% every second if the fan is using valid speed values.

Jan 08 16:28:22 test tccd[1009]: calculateSpeedPercent:  50
Jan 08 16:28:23 test tccd[1009]: calculateSpeedPercent:  48
Jan 08 16:28:24 test tccd[1009]: calculateSpeedPercent:  46
Jan 08 16:28:25 test tccd[1009]: calculateSpeedPercent:  44
Jan 08 16:28:26 test tccd[1009]: calculateSpeedPercent:  42
Jan 08 16:28:27 test tccd[1009]: calculateSpeedPercent:  40
Jan 08 16:28:28 test tccd[1009]: calculateSpeedPercent:  38
Jan 08 16:28:29 test tccd[1009]: calculateSpeedPercent:  36
Jan 08 16:28:30 test tccd[1009]: calculateSpeedPercent:  34
Jan 08 16:28:31 test tccd[1009]: calculateSpeedPercent:  32

Below 25% fan speed can be undefined behaviour because of hardware limitations fans have. Because of that tuxedo-drivers doesn't allow between 0 to 25% anymore since 4.11.5.

It was internally suggested to display this information in the fan chart and the dashboard, but I didn't have time for that yet. As an alternative you can create a custom fan curve or adjust the fan profile settings.

@Luke56784
Copy link
Author

Is there a way to enable the lower fan speeds again?

Or alternatively is it possible to set the 2% slow down from 1s to for example 5s?

Thanks for your support so far!

@tuxedoder
Copy link
Contributor

I asked one of the tuxedo-drivers developers. If a too low fan speed is set it can happen that a fan does not spin, a fan tries to spin but stops or a fan spins and it isn't even. It was initially set to 20% for all devices, but now it is 25%. I won't be able to enable lower values.

The current fan worker works in a 1 second interval and compares to the last value. That is why it is 2% every second. I wonder if it would make sense to add such an option into the profile settings, could ask internally.

@Luke56784
Copy link
Author

English version below

Hallo tuxedoder

Danke schon mal für die Rückmeldung. Ich hoffe es ist okay hier in Deutsch zu Antworten, das fällt mir viel leichter, ich werde aber auch eine Englische Übersetzung Anhängen.

Ich finde 25% doch recht laut bei dem Infintybook Pro 15 AMD Gen9.

Und gerade wenn die Lüfter dann laufend ein und wieder ausgeschaltet werden ziemlich nervig.
Das passiert zum Beispiel wenn man Youtube Videos auf 1440p oder 4k guckt.
Auf den Lautlosen Modus möchte ich aber eigentlich auch ungern verzichten.

Mein Vorschlag, den unteren Drehzahlbereich der Lüfter wieder mit rein zu nehmen war einfach, dass man sich dann genau das, was du beschreibst zunutze machen könnte.

Ein Lüfter läuft ja sagen wir mal bei 25% erst an, aber wenn dieser dann läuft kann man zb. bis auf 15% runter ehe er aus geht.
Ein und Ausschaltpunkt sind ungleich.
So könnte man dann eine Fan Curve erstellen:

40°C -> 15% FAN
50°C -> 25% FAN

So würde er dann bei 50°C erst anlaufen, weil er es bei 15% nicht schafft, aber erst bei 40°C wieder abschalten.

Durch diese Hysterese wäre dann das ständige ein- und ausschalten passé.

Oder eben alternativ, die Intervall Zeit zwischen den 2% Sprüngen anpassbar machen.

Oder natürlich bei einer custom curve, oder auch in einem eurer Standard Profile, eine Hysterese rein, dass man An- und Ausschalt-Tempertaur definieren kann?
Wäre eventuell die sauberste Lösung. Falls so etwas möglich ist.


Hello tuxedoder

Thanks for the feedback. I hope it's okay to answer in German, it's much easier for me, but I will also attach an English translation.

I find 25% quite loud with the Infintybook Pro 15 AMD Gen9.

And especially when the fans are constantly switching on and off, it's quite annoying.
This happens, for example, when you watch YouTube videos at 1440p or 4k.
But I wouldn't want to do without the silent mode either.

My suggestion to include the lower speed range of the fans again was simply that you could then take advantage of exactly what you describe.

A fan only starts up at, say, 25%, but when it is running you can reduce it to 15% before it switches off.
The switch-on and switch-off points are not the same.
You could then create a fan curve:

40°C -> 15% FAN
50°C -> 25% FAN

It would then only start up at 50°C because it cannot manage it at 15%, but only switch off again at 40°C.

This hysteresis would make the constant switching on and off a thing of the past.

Or alternatively, make the interval time between the 2% jumps adjustable.

Or, of course, with a custom curve, or in one of your standard profiles, add a hysteresis so that you can define the switch-on and switch-off time?
That might be the cleanest solution. If such a thing is possible.

Translated with DeepL.com (free version)

@kkettinger
Copy link

kkettinger commented Feb 4, 2025

Below 25% fan speed can be undefined behaviour because of hardware limitations fans have.

Does this apply to all fans in all tuxedo notebooks? I've reduced the limit to 15% on my IBP14 Gen 9 and it seems to work fine there.

@quertrakt
Copy link

quertrakt commented Feb 4, 2025

i also have the InfinityBook Pro Gen9 and i found this issue because of the same reasons that @Luke56784 pointed out.
creating my own custom fan table curve did mitigate the problem for my needs.
thanks for the explanation of the reasons for this to @tuxedoder. still i wished 25% would be less noisy.

regarding the question of @kkettinger :
when the cpu-fan speed is on 12% or below, the fans completely stop on my machine.
when the cpu-fan speed is on 13% or above, the fans immediately spin at their lowest possible speed, which seems to be the 25% that @tuxedoder was talking about.
obviously i don't have all tuxedo notebooks, so i can not fully answer the question, but i might have explained the behaviour on your machine :)

@kkettinger
Copy link

kkettinger commented Feb 4, 2025

regarding the question of @kkettinger : when the cpu-fan speed is on 12% or below, the fans completely stop on my machine. when the cpu-fan speed is on 13% or above, the fans immediately spin at their lowest possible speed, which seems to be the 25% that @tuxedoder was talking about. obviously i don't have all tuxedo notebooks, so i can not fully answer the question, but i might have explained the behaviour on your machine :)

I need to clarify, i mean i've reduced FAN_ON_MIN_SPEED_PERCENT to 15, and that works fine on my system. Without changes, i have the exact same behavior like you described.

@kkettinger
Copy link

Here is the commit that introduced the behavior, if you want to fiddle around with lower values: tuxedocomputers/tuxedo-drivers@2ad07c8

@tuxedoder
Copy link
Contributor

tuxedoder commented Feb 12, 2025

Does this apply to all fans in all tuxedo notebooks?

It was tried to set one value that would work on every laptop we have. I was told that 20% was not enough for some devices.

12% or below, the fans completely stop on my machine. when the cpu-fan speed is on 13% or above, the fans immediately spin at their lowest possible speed

tuxedo-drivers without any modifications currently rounds 13% to 25% and doesn't actually apply 13% as far as I know.

With the tuxedo-io fan control tcc currently does not show sensor values in the dashboard, but values it thinks it configured. That will change in the future and was also mentioned in #392 (comment). I was also thinking of showing an area in the fan chart that shows that a too low fan speed won't work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants