FanControl : all your fans are belong to us

(repost, suite à mauvaise manip de mes gros doigts boudinés)

J’ai enfin viré cette merde d’Asus Armoury Crate blindée de bloatware, que je soupçonne fortement d’être la source de quelques blue screen, pour me plonger dans FanControl.
Vu la puissance du truc et ses possibilités assez complètes, je me dis que ça serait bien d’avoir un sujet dédié.

Il est en est fait rapidement mention dans cet incontournable topic :

En bon point de départ, je pense que la vidéo mise en avant sur le site de FanControl est une bonne grosse introduction pour se faire une idée des possibilités du bousin.

Disclaimer : je débute sur le truc donc j’ai pas forcément tous les trucs et astuces. Je détaille juste un peu mon cheminement empirique et les questions que ça soulève niveau hardware, air flow, et bruit associé. Ça serait intéressant d’avoir le retour des autres utilisateurs du soft et de savoir comment vous avez fait vos réglages.

Je zappe volontairement les étapes d’installation du soft (un simple zip à décompresser où on veut, au moins ça n’en met pas partout) ainsi que la détection des différents contrôles disponibles.

  • Identification de chacun des contrôles
    Le mieux est probablement d’arrêter les ventilateurs un à un soit via le curseur manuel, soit via un « flat » fan curve.
    Une fois que ça c’est fait et qu’on sait qui est quoi, on peut commencer à jouer avec les différents profils « curve »

  • AIO Pump
    Par défaut elle est réglée pour être toujours à 100%. J’ai cru comprendre qu’il était recommandé que la pompe tourne à vitesse constante le plus possible. Du coup j’ai configuré manuellement à 100%.
    J’ai quand même défini un « Graph » fan curve avec 2 niveaux : 70% et 100%, indexé sur la température du CPU, mais non utilisé pour l’instant.

  • CPU Fan
    Le plus adapté est probablement d’utiliser un « Graph » fan curve. En température source j’ai pris « CPU Package » qui doit être un genre de mix global de tous les core.
    En terme de réglage de la courbe, je fais d’abord une ébauche grossière. J’augmente un peu le temps de réponse parce que je veux pas que le ventilo se déclenche trop vite pour un pic CPU.
    Puis sur le « control » du CPU Fan je sélectionne la courbe que je viens de créer. Je réduis aussi un peu le « step down » pour que le ramp down du fan se fasse un peu plus progressivement.
    Pour faire le tuning de la courbe, l’idéal c’est de connaître la température max du CPU lorsque celui-ci est à 100% de charge, ainsi que le seuil (en %) à partir duquel le CPU fan devient pénible pour les oreilles.
    Attention à ne pas être trop agressif sur les réglages, sinon le CPU throttle et de fait limite les perfs.

  • Chassis Fans
    On peut diviser en 2 catégories : les fans en façade, et ceux derrière.

    • Fans façades
      Je prépare un « Mix » fan curve de type « Max » auquel j’ajoute le fan curve créé pour le CPU. Par la suite on ajoutera le fan curve du GPU, ça permettra d’ajuster les ventilo du chassis en fonction du CPU ou du GPU, suivant celui qui demande le plus.
      On pourrait associer ce fan curve aux ventilo en façade, mais je veux m’assurer d’avoir un bon apport d’air et avoir une pression d’air positive. Du coup je crée un nouveau « Flat » fan curve à 20% qui sera mon offset, puis un autre « Mix » fan curve de type « Sum » qui sera ma somme des 2 précédents.
      C’est ce dernier « Mix » fan curve que j’associe à mes contrôles de ventilo en façade. De cette façon, ils tourneront à 20% de plus que mon CPU fan ou GPU fan.
    • Fans derrières
      J’ai pour l’instant simplement utilisé le « Mix » fan curve indexé sur le CPU ou GPU. On pourrait imaginer aussi le même principe que pour les ventilos en façade mais avec un offset différent.
      A noter que la seule manière d’avoir un offset négatif est à priori d’utiliser un « Sync » fan curve.
  • GPU Fan
    Comme pour le CPU, j’utilise un « Graph » fan curve. En température source j’ai pris « GPU » (pas de possibilité de se tromper, j’ai qu’une seule source de température pour le GPU).
    En terme de réglage de la courbe, je suis parti du profil sur une copie de celui défini par l’outil constructeur (Aorus Engine dans mon cas). Cette fois je réduis le temps de réponse parce que ça à tendance à chauffer assez vite.
    Puis sur le « control » des GPU Fan je sélectionne la courbe que je viens de créer. Je réduis drastiquement le « step down » pour que le ramp down des fan se fasse lentement et laisse le temps au GPU de refroidir.
    Pour faire le tuning de la courbe, l’idéal c’est de connaître les températures idle et max du GPU, ainsi que le seuil (en %) à partir duquel les GPU fan deviennent pénibles pour les oreilles.
    Attention à ne pas être trop agressif sur les réglages, sinon pareillement, le GPU throttle et de fait limite les perfs.

Voilà ce que ça donne pour moi après une première passe de tuning :

Des outils type prime95 ou OCCT peuvent aider pour déterminer la montée en température max du CPU, de même FurMark pour le GPU. Sachant bien que ce n’est pas représentatif d’un workload classique.
Un 3DMark avant/après peut aussi être pas mal pour voir si on ne s’est pas merdé.

Au final, j’ai l’impression que le refroidissement est à la fois plus efficace et moins bruyant. Je n’ai pas assez de recule pour encore juger définitivement.

Et vous, avez-vous un setup complètement différent ? Quelle est votre approche ?

1 « J'aime »

Merci pour le topic, ce sont des questions que je me pose à chaque fois que je définis des courbes de ventilos ! (pas plus tard que ce matin)

FanControl par contre je l’ai installé il y a quelques jours pour tester (suite à sa découverte sur le topic du hard) et il n’a pas détecté mes ventilos de chassis. Du coup je l’ai viré pour me contenter de la définitions des courbes dans mon bios.

Vérifie dans les options si la détection des contrôleurs alternatif est activée. (menu haut droit, Sensors Settings, coche Controller (various…)

Tu as quoi comme carte mère ?
Sinon tu peux essayer avec un plugin type HWInfo

Merci, je note pour ma prochaine tentative. :slight_smile:
(j’ai une MSI Pro B650-P WiFi)

Merci pour le topic, c’est un outil génial qui mérite son espace de discussion :wink:

Je partagerai mon setup quand j’aurai un peu de temps, mais juste là dessus j’en profite, peut-être que d’autres on eu le souci et trouvé une solution:

FanControl marche bien sur mon compte windows qui est le compte principal de la machine, mais sur le compte de ma fille impossible de le lancer, j’ai beau donner tous les droits possibles à l’exe, quand je le lance il ne se passe absolument rien, nada, que tchi.
Du coup c’est un peu chiant, j’ai pas envie d’aller refaire des courbes kivonbien dans le BIOS juste pour quand elle lance une session sur son compte.

J’utilise ce soft mais de façon très empirique finalement, je n’ai pas saisi comment tout fonctionnait.
Entre les ventilos du boîtier branchés sur le hub beQuiet et les ventilos CPU qu’il faut régler en régul par la tension lieu de pwm (?!), je comprends pas forcément comment ça fonctionne.
Mais je suis arrivé au silence et c’est déjà bien :slight_smile:

Les fans sur un hub, ça dépend s’ils sont PWM ou pas (4 broches vs 3). Si ton hub est pwm, il va les synchroniser comme un seul ventilo, donc c’est bien pour par exemple un flux constant en entrée ou en sortie parce que ça synchronise tes ventilateurs à la même vitesse.

Si tu veux des blocs séparés, faut jouer entre le hub pour ceux qui sont synchronisés et la CM pour ceux qui sont à des vitesses différentes.

Par exemple mon bloc front/top est synchro, mon ventirad a ses vitesses avec le daisy chain des deux branchés sur CPU Fan et l’arrière sur son port dédié.

Pour les AIO la pompe va se fatiguer si elle varie de vitesse, mettre à 100% ne change rien, l’important est d’avoir une vitesse constante pour ne pas fatiguer le système interne. Les ventilateurs c’est autre chose, les PWM sont faits pour varier donc ça les abîme moins, mais régler l’hystérésis (le temps de réaction à une hausse de température avant que les ventilos accélèrent) un peu plus haut évite d’avoir un yo-yo où ton PC gueule quand tu as des pics de températures courts.

Si tu as tout branché entre hub et CM et que tu n’as que des PWM (ceux du CPU le sont d’office sauf si tu a un très vieux modèle), tu règles tes courbes en fonction de ce que tu mesures (TCdie etc). En général tu prends la température du die pour le CPU et tu règles une constante large à 40/50% max, puis tu marques des points de progression jusqu’à la temp max.

Là j’ai un affichage simple, mon CPU, mon bloc d’entrée d’air avant/top et l’extraction à l’arrière :

Tu vois que j’ai réglé l’hystérésis à 5°c et le décalage à 3 secondes histoire de laisser monter un petit peux avant une montée dans les tours. Pour mon 5900X c’est efficace, mais c’est parce que j’ai une tour qui a de la place et un air flow important avec 3 140 mm qui pousse de l’air dedans. Chaque machine a ses besoins en fonction de ses composants, du nombre de ventilateurs et de la taille du case.

Oui c’est normal, le compte de ta petite a pas accès à tes « documents » où est stocké le programme (et dedans t’as tes profils) vu que c’est une session administrateur et elle est séparée des dossiers sensibles. Si tu clones le dossier et que tu le mets dans une section de son côté de la session, possible qu’il retrouve ses petits et charge tes profils.

2 « J'aime »

Il y a une raison particulière pour que je découvre à l’instant que les courbes que j’avais définies ont disparu ?

En PWM tu peux régler plus finement et tu peux descendre jusqu’à une valeur assez faible de RPM. Alors qu’en DC il y a un seuil bas au-delà duquel le ventilo va s’arrêter (genre 40%, ça dépend bien entendu des modèles).

Merci de la confirmation. Et effectivement en terme de bruit, ça n’a pas d’incidence perceptible.

Je sais ça peut paraître idiot, mais ne pas oublier de sauver la conf ! Celle-ci n’est pas sauvée automatiquement et j’ai déjà eu le cas où parfois il ne demande pas de sauver.

Il demande si tu fermes l’appli. Mais si tu éteins le PC ça ne sauve rien

OK, merci, je comprends mieux ce qui a du m’arriver ! :slight_smile:

Comme mentionné un peu plus haut, il y a un plugin officiel développé pour supporter HWInfo.

Ça fonctionne plutôt bien et permet de renvoyer n’importe quelle info de température à FanControl et de l’utiliser comme source. Exemple : température VRM ou VR VCC.

On peut imaginer combiner plusieurs source dans un « Mix » custom sensor, qui lui-même servira de source pour une courbe.

image

Au delà de ça, je n’avais jamais vraiment utilisé HWInfo, mais je vois que celui-ci donne des infos plutôt intéressantes qui peuvent être utile pendant la phase de réglage, surtout si on est peu trop agressif en visant à tout prix le silence.

Notamment si le CPU a fait du throttling à cause d’une température trop élevée, ou si une température critique a été atteinte sur l’un des core :

image

On peut aussi avoir des détails sur les raisons de limitation des perfs CPU :

image

De la même manière, côté GPU (j’imagine que cela varie d’une CG à une autre), on peut avoir la température max avant que le GPU throttle les perfs, ou là encore les détails sur les raisons de limitation des perfs.

Les possibilités sont assez impressionnantes, au risque de s’y perdre un peu…

J’ai des courbes qui ressemblent a ca perso:

Aka, 900rpm jusqu’à ce que ca chauffe (beaucoup(trop)). Mais ca fait pas un bruit (presque). Le tout dans un boitier de 10 l.

Question conne : Il faut désactiver quelque chose dans le BIOS pour que FanControl puisse agir ou il prend le dessus tout seul ?

Non, il n’y a rien à changer dans le Bios. Du moment qu’il est lancé c’est lui qui contrôle tout. Si tu l’arrêtes, ça repasse sur les settings du bios. Easy peasy.

Vous en pensez quoi pour un Ryzen 5 5600X avec un Noctua U12S (un truc du genre)?

Avec un tes de 7zip, c’est limite inaudible et ça reste stable à 67-68°C. C’est infiniment mieux !!

Sur ma config, je ne vois pas ce qui pourrait correspondre à la pompe de l’AIO, alors que tout les monde semble l’avoir dans l’appli.
J’aurais tendance à dire tant mieux, puisqu’il ne faut pas y toucher, mais du coup comment savoir si le système la fait varier ou pas ?

Sinon, j’ai bien 4 parties détectées : le front (3 ventilos), le back (1 ventilo), le CPU (les 2 de l’AIO) et les 2 de la CG.

Par contre, j’ai un soucis avec le GPU. J’ai créé une courbe qui reste à 0% jusque 40°. Quand j’associe la courbe avec les contrôles des ventilos GPU, ils passent à 30% (sans activer la courbe ils sont à zéro), avec un « ? » à côté du pourcentage disant qu’un système externe a pris le pas sur FanControl.
J’ai bien vu un truc comme ça au lancement de la détection, sur les Nvidia en idle, il faut ajouter un autre contrôle ?

Edit : Pour la CG, j’ai trouvé, c’est effectivement un contrôle de Nvidia empêchant les softs comme FanControl de prendre la main sous les 30%, les empêchant de générer un 0 RPM. J’ai activé la fonction pour surcharger ça, je vais tester (j’ai vu que la CG lançait les ventilos à 50°, je vais mettre pareil).

Question bête: pour les ventilateurs du boîtier, vous les basez sur quelle température?

image

Pas sur les capteurs de la CM, du coup.
Relis plus haut, le post de l’OP, les screens de FoxMonsieur et regardes la vidéo, en fait, tu vas conditionner les ventilos de boitier aux T° du CPU ou du GPU ou d’un mix des 2.

Du coup, j’ai pris la solution de Pollux : 5 courbes : CPU, GPU, max des 2, flat 5%, sum du max et du 5%.
CPU → courbe CPU (donc sur la sonde core)
GPU → courbe GPU (donc sur la sonde GPU)
boitier back → max (donc de GPU et CPU)
boitier front → sum (donc le max CPU et GPU + 5%)