[Vorstellung] NoteBook FanControl (NBFC)

@m0rph3u5
Sounds like NBFC is not able to retrieve proper readings from the hardware (temp sensors, EC).
There were no significant changes in the way NBFC accesses the hardware between 1.3.4 and 1.4.2.

Just to be sure if your problem is reproducible:
Could you please download 1.4.2 again and upgrade you current installed verison of NBFC (just start the setup and click install, it should detect the previous version automatically).
 
Hallo,

ich habe nun mal versucht, mit Hilfe von CoreTemp, Prime95 und dem Kommandozeilentool ec-probe eine Grundlage für eine Konfigurationsdatei zu ermitteln, Notebook ist ein Dell Latitude E6520.

Vorgehensweise:
  • CoreTemp gestartet
  • Alle Anwendungen geschlossen, etwas gewartet, bis der Lüfter sehr langsam gedreht hat
  • Folgendes Kommando
    Code:
    ec-probe dump > ec_dump_e6520_50grad.txt
    ausgeführt (Temperatur aus CoreTemp abgelesen)
  • Dann mit Prime95 der Hardware eingeheizt
  • Folgendes Kommando
    Code:
    ec-probe dump > ec_dump_e6520_88grad.txt
    ausgeführt (Temperatur aus CoreTemp abgelesen)


Als ich dann die beiden "dumps" verglichen habe, musste ich feststellen, dass sie identisch sind. Hier noch mal der Inhalt des Dumps:

Code:
00: 00 00 00 00 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 
10: 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 
20: 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 
30: 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 
40: 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 
50: 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 
60: 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 
70: 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 
80: 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 
90: 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F 
A0: A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF 
B0: B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF 
C0: C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF 
D0: D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF 
E0: E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF 
F0: F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF

Darüber hinaus habe ich bemerkt, dass die Temperatur bei NBFC nicht angezeigt wird:


Hat jemand einen Ansatz, was ich falsch mache?
 
Sorry for the long time with no feedback, I hadn't the opportunity to switch to Win10 yet (still doing stuff on 8.1). But I still have problems to make the software work. As I said a long time ago, it would not change the fan speed. I can set a target speed, but the fan do not spin at the target speed. If I restore the windows to a previous point, the software would work one time, but would not after a restart. Also it would work randomly if I run the compatibility troubleshooter.

So, any word on that? Thank you in advance!
 
Kann mir jemand bitte mit der Einrichtung von diesem Program (NBFC) helfen?
Ich habe einen Notebook ASUS A501LX. Zu diesem Notebook habe ich leider keine Konfigurationsdatei gefunden und nutze diese von Asus N56JR. So weit so gut - alles funktioniert prima. Ich würde nur gern die Einstellungen so anpassen, dass der Lüfter bei 50Grad mit 12,5% anstartet und nicht erst bei 70% mit 100%igen Stärke. Kann mir da bitte jemand von Euch helfen? Vielen Dank im Voraus!
 
@sandreas
Sieht auch etwas strange aus der dump. In fast allen Registern steht jeweils nur die "Adresse" Registers selbst drin.
Prüf mal ob RWEverything.com das gleiche anzeigt.
Falls RWEverything was anderes anzeigt, psote bitte nen Screenshot, falls es das gleiche anzeigt befürchte ich, dass NBFC den EC in deinem Notebook nicht ansprechen kann.

Wegen der Temperatur: wenn der Service deaktiviert ist, kann er logischerweise auch keine Temperaturen auslesen ;)

@Zuptr
I still think your config doesn't actually set the fan speeds, but it overrides the temperature which can lead to pretty strange behavior.
You should try to find the regsiter(s) which control the fan speed.

@Robertus
Laut der N56JR config sollte der Lüfter bei 65 Grad mit 28,6% starten.
Wenn er bei dir sofort mit 100% startet kann es sein, dass nicht die normale Steuerung, sondern der "Ciritcal Mode" aktiv ist. In diesem fall steht hinter der Target fan speed in Klammer "Critical".
Beobachte doch mal wie sich "Target fan speed" und "Current fan speed" verhalten und schau ob das so Sinn ergibt.
Falls nicht, dann musst du in der config die Min/Max Werte evtl. anpassen.
 
Grantig schrieb:
@Zuptr
I still think your config doesn't actually set the fan speeds, but it overrides the temperature which can lead to pretty strange behavior.
You should try to find the regsiter(s) which control the fan speed.
Yes, it does change the package temperature, unfortunately no other EC Table value can change fan speed only.
There is only 3 EC Table values that changes with the fan speed rotation: 1st is the temperature one (the one I use), 2nd acts exactly like the example in the user manual but even if used as a Write value, it does not change fan speed, 3rd goes from ~7 to ~16 also does not changes fan speed. All tested paying attention/changing EC poll interval.
 
@GRANTIG:
Vielen Dank für Deine Antwort! Ich habe noch ein Paar Fragen.
1) Wie hoch darf denn die Temperatur ansteigen?
Ich habe den kritischen Wert auf 60Grad heruntergesetzt. Das war vielleicht der Grund, warum der Lüfter gleich mit 100% startete.
2) Gibt es eine Möglichkeit, dass ich den kritischen Wert von 75Grad auf 60Grad runtersetze und der Lüfter trotzdem erst mit einer halben Stärke anstartet, anstatt gleich mit 100%
3) Ich denke im ASUS A501LX gibt es zwei Lüfter. Das Program sieht aber nur einen. Kann es zu Problemen führen?
 
@grantig
Sieht auch etwas strange aus der dump. In fast allen Registern steht jeweils nur die "Adresse" Registers selbst drin.
Prüf mal ob RWEverything.com das gleiche anzeigt.
Falls RWEverything was anderes anzeigt, psote bitte nen Screenshot, falls es das gleiche anzeigt befürchte ich, dass NBFC den EC in deinem Notebook nicht ansprechen kann.



RW 1.6.8.1 gibt, sobald ich auf den EC-Button in der Toolbar drücke, keine weitere Rückmeldung auf dem Dell-Notebook (Absturz). Nach einer Zeit zeigt es dann die Register alle mit 00 an, aber keine weitere Reaktion mehr.

Es wäre aber auch möglich, dass das ganze an fehlenden Berechtigungen oder einem Antivirusprogramm scheitert.

Dann werde ich das ganze mal mit dem HP ProBook ausprobieren :-) Dell fällt dann wohl erstmal raus.
 
@ Zuptr
Maybe you have to "unlock" the register before you can access it.
What is the address of the one that acts like described in the manual?

@ Robertus
1. Theoretisch bis ca. 95-100 Grad.
Ein vernünftiger "Critical"-Wert wäre imho irgendwo zwischen 70-85 Grad
2. Nein, der Critical Mode sollte nur dann aktiviert werden wenn die normale Steuerung versagt (z.B. weil die Thresholds falsch eingestellt sind). Wieso benutzt du die N56JR config nicht so wie sie ist? Die Thresholds sehen ganz gut aus.
3. Es werden beide Lüfter parallel angesteuert, deswegen zeigt NBFC nur einen Lüfter an. Sollte also keine Probleme geben.

@sandreas
Ich hoffe mit dem ProBook hast ud mehr Glück.
 
@ Grantig
I found the value! The value was one of the 00. Apparently it only appears when the fan speed changes, when it is on a constant the value goes back to 00. Thats why I couldnt find it easily.

I tested the tresholds again, I set the default ones, it worked until it needed to go from 100% to 70% and 100% speed again (after that, the fan started to spin like if I wasn't using the software).
 
Hallo Grantig,

Die normale Steuerung funktioniert nicht. Ich habe die N56JR config so wie sie ist benutzt. Aber dann schaltet sich der Lüfter erst bei 75Grad ein und gleich mit einer 100%-igen Leistung.
Weißt Du vielleicht, ob ich besser eine andere Config Datei benutzen könnte oder wie ich die bestehende Config Datei an meinen Notebook anpassen kann?

Viele Grüße,
Robert
 
Hier eine erste Konfigurationsdatei zum Testen für das HP ProBook 440 G3:


http://www37.zippyshare.com/v/dTDlYEvt/file.html

Ich experimentiere aber noch. Falls die Datei nicht mehr zum Download verfügbar sein sollte, hier der Inhalt:

Dateiname: HP ProBook 440 G3.xml
Speichern im Notebook Fan Control Verzeichnis unter /Configs/
Inhalt:
Code:
<?xml version="1.0"?>
<FanControlConfigV2 xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <NotebookModel>HP ProBook 440 G3</NotebookModel>
  <Author>sandreas</Author>
  <EcPollInterval>3000</EcPollInterval>
  <ReadWriteWords>false</ReadWriteWords>
  <CriticalTemperature>75</CriticalTemperature>
  <FanConfigurations>
    <FanConfiguration>
      <ReadRegister>46</ReadRegister>
      <WriteRegister>47</WriteRegister>
      <MinSpeedValue>255</MinSpeedValue>
      <MaxSpeedValue>20</MaxSpeedValue>
      <IndependentReadMinMaxValues>false</IndependentReadMinMaxValues>
      <MinSpeedValueRead>0</MinSpeedValueRead>
      <MaxSpeedValueRead>0</MaxSpeedValueRead>
      <ResetRequired>false</ResetRequired>
      <FanSpeedResetValue>255</FanSpeedResetValue>
      <FanDisplayName>CPU fan</FanDisplayName>
      <TemperatureThresholds>
        <TemperatureThreshold>
          <UpThreshold>0</UpThreshold>
          <DownThreshold>0</DownThreshold>
          <FanSpeed>0</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>60</UpThreshold>
          <DownThreshold>48</DownThreshold>
          <FanSpeed>10</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>63</UpThreshold>
          <DownThreshold>55</DownThreshold>
          <FanSpeed>20</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>66</UpThreshold>
          <DownThreshold>59</DownThreshold>
          <FanSpeed>50</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>68</UpThreshold>
          <DownThreshold>63</DownThreshold>
          <FanSpeed>70</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>71</UpThreshold>
          <DownThreshold>67</DownThreshold>
          <FanSpeed>100</FanSpeed>
        </TemperatureThreshold>
      </TemperatureThresholds>
      <FanSpeedPercentageOverrides />
    </FanConfiguration>
  </FanConfigurations>
  <RegisterWriteConfigurations />
</FanControlConfigV2>

Wie bei den anderen Konfigs für HP Notebooks sind die Register:

Read Register: 46
Write Register: 47

Unterschied ist bisher:
MaxSpeedValue: 20
MinSpeedValue: 255 (schaltet den Lüfter ab)

Ein Reset scheint nicht mehr notwendig zu sein, ebenso wie die Initialisierung... Bei mir funktioniert diese Konfiguration bisher ganz gut. Würde mich über Feedback freuen, ob noch Probleme auftreten. Wenn ich meine Tests abgeschlossen habe, mache ich einen Pull-Request.
 
@ Zuptr
Good job! :daumen:
If you have a working config, it would be great if you'd post it here, so I can publish it in the NBFC repository.

@ Robertus
Da die Ansteuerung der Lüfter bei dir anscheinend grundsätzlich funktioniert musst du nur die Min/Max Werte der config anpassen. Welche Werte passen kannst du einfach durch ausprobieren rausfinden.

@ sandreas
Super! :daumen: Wenn du mit experimentieren fertig bist und ne stabil laufende config hast, dann sag bescheid oder mach nen pull-request auf github auf ;)
 
@Grantig

No problem!

Actually, I took the time to disassemble my laptop and re-paste the CPU and GPU (which helped a lot).

It turns out there is no need to read the GPU temperature. There are two fans with two heat pipes (one bigger than the other) that both cover each chip (not exclusive) which explained why the GPU temperature rose when the CPU was at 100%. The two pipes are different sizes, and the bulk of the heat would go to the left fan.

I therefore wrote a profile calling one fan 'Primary' and the other 'Secondary', and for usual brosing etc, only the primary fan kicks in (keeping noise down) them the secondary fan helps in stages until they both go critical at 90 degrees.

Seems like a nice set-up now!

The only thing I would like to do now is somehow pull the Fan percentages as I use Rainmeter to display all my computer metrics and having the fan speeds on a graph would be epic!

When I get home, I'll post up my profile.
 
Zuletzt bearbeitet:
@grantig
Pull Request erstellt für HP ProBook 440 G3: https://github.com/hirschmann/nbfc/pull/39

So, ich habe nun noch mal etwas herumexperimentiert. Jetzt formuliere ich mal die Funktionsweise von NBFC in eigenen Worten, um sicherzustellen, dass ich es richtig verstanden habe.


Falls das, was ich unten schreibe, so in etwa hin kommt, hier ein kleiner Rechner für eine eigene Konfig, in den man nur ein paar Daten eingeben muss und der Rest ausgerechnet wird:
  • Ab wie viel Grad soll der Lüfter einschalten? (1. Up Threshold)
  • Ab wie viel Grad soll der Lüfter abschalten? (1. Down Threshold)
  • Wie ist die kritische Temperatur? (Critical temperature)
  • Wie groß sollen die Schritte sein? (Abstand zwischen den Up Thresholds)


Link geht leider nicht, da jsbin im Forum nicht auf der Whitelist steht, hier ist die URL

Code:
http://output.jsbin.com/cajomoridi

Würde mich freuen, wenn du mal kurz überprüfst, ob der halbwegs sinnvolle Werte ausgibt. Anpassungen kann ich noch machen, wenn du Korrekturwünsche hast :-)

Mein Verständnis von NBFC:

  • Bei den Temperatureinstellungen gibt es einen UpThreshold und einen DownThreshold (kurz: Up, Down)
  • In jedem Interval (Standardmäßig alle 3 Sekunden) prüft NBFC die Richtung (steigend, fallend), die aktuelle Temperatur und vergleicht sie jedem Up mit der Liste
  • Steigt die Temperatur und ist Up kleiner als die aktuelle Temperatur, geht er zum nächsthöheren Up
  • Steigt die Temperatur und ist Up größer als die aktuelle Temperatur, nimmt der den zugehörigen Geschwindigkeitswert für den Lüfter und setzt ihn
  • Fällt die aktuelle Temperatur unter den aktuellen Down-Wert, nimmt er den nächst niedrigeren Wert für den Lüfter und setzt ihn
  • Steigt die Temperatur weiter über den aktuellen Up-Wert, wird der nächsthöhere Wert für den Lüfter gesetzt
  • Wird die kritische Temperatur erreicht, wird der Maximalwert für den Lüfter gesetzt und er läuft so lange, bis die Temperatur 15 Grad unter Maximalwert ist


Ein Beispiel zur Verdeutlichung:

Folgende Konfiguration (Up, Down, Fan-Speed in Prozent):
Code:
UP     DWN     SPD
------------------
0°      0°      0%
63°    48°     25%
70°    55°     50%
75°    60°    100%


Beim Start von NBFC liegt die Temperatur liegt bei 50 Grad:
Up=0, ist kleiner als die aktuelle Temperatur, nächster Wert
Up=63, ist größer als die aktuelle Temperatur, Lüfter wird auf 25 % gestellt

Temperatur steigt weiter auf 64 Grad:
Up=0, ist kleiner als die aktuelle Temperatur, nächster Wert
Up=63, ist kleiner als die aktuelle Temperatur, nächster Wert
Up=70, ist größer als die aktuelle Temperatur, Lüfter wird auf 50% gestellt

Nun fällt die Temperatur wieder auf 57 Grad:
Der Down-Wert der aktuellen Einstellung greift
Down=57, ist größer als der Down-Wert der aktuellen Einstellung, also passiert nichts

Nun fällt die Temperatur auf 55 Grad:
Der Down-Wert der aktuellen Einstellung greift
Down=55, ist gleich dem Down-Wert der aktuellen Einstellung, Lüfter wird auf den nächst niedrigeren Wert gestellt (25%)

Temperatur fällt weiter auf 50 Grad:
Der Down-Wert der aktuellen Einstellung greift
Down=48, ist größer als der Down-Wert der aktuellen Einstellung, also passiert nichts

Temperatur fällt weiter auf 48 Grad:
Der Down-Wert der aktuellen Einstellung greift
Down=48, ist gleich dem Down-Wert der aktuellen Einstellung, Lüfter wird auf den nächst niedrigeren Wert gestellt (0%)


Sich daraus ergebende Regeln:
  • Ein Wert für Up der 15 Grad unter der kritischen Temperatur oder größer ist und nicht bei 100% Speed steht, macht keinen Sinn
  • Ein Wert für Up, der gleich einem anderen Wert für Up ist, macht keinen Sinn
  • Ein Wert für Down, der größer dem vorherigen Up-Wert ist, macht keinen Sinn
  • Ein Wert für Down, der kleiner oder gleich dem vorherigen Down-Wert ist, macht keinen Sinn
  • Der Lüfter schaltet ab, wenn die Temperatur fällt und der kleinste Down-Wert erreicht bzw. unterschritten wird (sofern ein Eintrag mit 0 existiert)

Meine Ideen, für eine "gute" Konfiguration:


  • Es sollte immer ein Wert mit 0,0,0 existieren
  • Der kleinste "Down"-Wert in der Liste sollte eine Temperatur sein, die ca. 5 Grad über der Idle-Temperatur des Geräts liegt
  • Die kleinste "Up" Temperatur sollte ca. 15 Grad über der Idle-Temperatur liegen
  • Die nächsthöhere Down-Temperatur sollte immer den Mittelwert des vorherigen Eintrags haben
  • Die nächsthöhere Up-Temperatur sollte 2 Grad höher als die vorherige sein
  • Der größte "Up"-Wert in der Liste sollte eine Temperatur sein, die ca. 5 Grad unter der kritischen Temperatur liegt und 100% als Speed-Wert hat
 
Zuletzt bearbeitet:
@Bozzy
You can pull the fan percentages via the NBFC CLI.
Get full status info via:
Code:
nbfc.exe status

Or the status of a single fan (the first one in this example) via:
Code:
nbfc.exe status --fan 0

I'm looking forward to your profile :)

@sandreas
Du hast es fast richtig verstanden. Es ist nur so, dass erst dann auf die nächsthöhere threshold gewechselt wird, wenn deren UpThreshold überschritten wurde.

In deinem Beispiel läuft der Lüfter bei 63 Grad an (was ok ist, hab ich bei meiner config auch so).

Btw danke für den pull request :daumen:
 
@grantig:
Cool, danke für das schnelle Feedback. Den Calculator baue ich dann in meinem Blog-Beitrag ein, dauert aber sicher noch, bis der fertig ist, ist ja bald Weihnachten :-)

Es hatte sich beim Pull-Request übrigens noch ein Copy & Paste Fehler eingeschlichen (Bindestriche und ein paar falsche Werte). Ich habe einen neuen Pull-Request gemacht und die neue Config mit den Default-Values (insert default values) von NBFC belegt. Ist wahrscheinlich besser so und die sollte jetzt auch funktionieren. Für alle, die nicht auf dem trunk arbeiten, hier der neue Inhalt der Konfiguration für das HP ProBook 440 G3, müsste sauber funktionieren:

Code:
<?xml version="1.0"?>
<FanControlConfigV2 xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <NotebookModel>HP ProBook 440 G3</NotebookModel>
  <Author>sandreas</Author>
  <EcPollInterval>3000</EcPollInterval>
  <ReadWriteWords>false</ReadWriteWords>
  <CriticalTemperature>75</CriticalTemperature>
  <FanConfigurations>
    <FanConfiguration>
      <ReadRegister>46</ReadRegister>
      <WriteRegister>47</WriteRegister>
      <MinSpeedValue>255</MinSpeedValue>
      <MaxSpeedValue>20</MaxSpeedValue>
      <IndependentReadMinMaxValues>false</IndependentReadMinMaxValues>
      <MinSpeedValueRead>0</MinSpeedValueRead>
      <MaxSpeedValueRead>0</MaxSpeedValueRead>
      <ResetRequired>true</ResetRequired>
      <FanSpeedResetValue>255</FanSpeedResetValue>
      <FanDisplayName>CPU fan</FanDisplayName>
      <TemperatureThresholds>
        <TemperatureThreshold>
          <UpThreshold>0</UpThreshold>
          <DownThreshold>0</DownThreshold>
          <FanSpeed>0</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>60</UpThreshold>
          <DownThreshold>48</DownThreshold>
          <FanSpeed>10</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>63</UpThreshold>
          <DownThreshold>55</DownThreshold>
          <FanSpeed>20</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>66</UpThreshold>
          <DownThreshold>59</DownThreshold>
          <FanSpeed>50</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>68</UpThreshold>
          <DownThreshold>63</DownThreshold>
          <FanSpeed>70</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>71</UpThreshold>
          <DownThreshold>67</DownThreshold>
          <FanSpeed>100</FanSpeed>
        </TemperatureThreshold>
      </TemperatureThresholds>
      <FanSpeedPercentageOverrides>
        <FanSpeedPercentageOverride>
          <FanSpeedPercentage>0</FanSpeedPercentage>
          <FanSpeedValue>255</FanSpeedValue>
          <TargetOperation>ReadWrite</TargetOperation>
        </FanSpeedPercentageOverride>
      </FanSpeedPercentageOverrides>
    </FanConfiguration>
  </FanConfigurations>
  <RegisterWriteConfigurations>
    <RegisterWriteConfiguration>
      <WriteMode>Set</WriteMode>
      <WriteOccasion>OnInitialization</WriteOccasion>
      <Register>34</Register>
      <Value>1</Value>
      <ResetRequired>true</ResetRequired>
      <ResetValue>1</ResetValue>
      <ResetWriteMode>Set</ResetWriteMode>
      <Description>Select thermal zone</Description>
    </RegisterWriteConfiguration>
    <RegisterWriteConfiguration>
      <WriteMode>Set</WriteMode>
      <WriteOccasion>OnInitialization</WriteOccasion>
      <Register>38</Register>
      <Value>28</Value>
      <ResetRequired>true</ResetRequired>
      <ResetValue>0</ResetValue>
      <ResetWriteMode>Set</ResetWriteMode>
      <Description>Fake thermal zone temperature</Description>
    </RegisterWriteConfiguration>
  </RegisterWriteConfigurations>
</FanControlConfigV2>
 
@Grantig, thanks for the heads up on the status!

Here's my profile for the Aspire VN7-591G


Code:
<?xml version="1.0"?>
<FanControlConfigV2 xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <NotebookModel>Aspire VN7-591G</NotebookModel>
  <Author>JBozzy</Author>
  <EcPollInterval>1000</EcPollInterval>
  <ReadWriteWords>false</ReadWriteWords>
  <CriticalTemperature>90</CriticalTemperature>
  <FanConfigurations>
    <FanConfiguration>
      <ReadRegister>149</ReadRegister>
      <WriteRegister>148</WriteRegister>
      <MinSpeedValue>255</MinSpeedValue>
      <MaxSpeedValue>98</MaxSpeedValue>
      <IndependentReadMinMaxValues>false</IndependentReadMinMaxValues>
      <MinSpeedValueRead>0</MinSpeedValueRead>
      <MaxSpeedValueRead>0</MaxSpeedValueRead>
      <ResetRequired>true</ResetRequired>
      <FanSpeedResetValue>255</FanSpeedResetValue>
      <FanDisplayName>Primary Fan</FanDisplayName>
      <TemperatureThresholds>
        <TemperatureThreshold>
          <UpThreshold>60</UpThreshold>
          <DownThreshold>50</DownThreshold>
          <FanSpeed>20</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>90</UpThreshold>
          <DownThreshold>75</DownThreshold>
          <FanSpeed>100</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>80</UpThreshold>
          <DownThreshold>65</DownThreshold>
          <FanSpeed>80</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>70</UpThreshold>
          <DownThreshold>55</DownThreshold>
          <FanSpeed>50</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>50</UpThreshold>
          <DownThreshold>0</DownThreshold>
          <FanSpeed>0</FanSpeed>
        </TemperatureThreshold>
      </TemperatureThresholds>
      <FanSpeedPercentageOverrides />
    </FanConfiguration>
    <FanConfiguration>
      <ReadRegister>152</ReadRegister>
      <WriteRegister>151</WriteRegister>
      <MinSpeedValue>255</MinSpeedValue>
      <MaxSpeedValue>98</MaxSpeedValue>
      <IndependentReadMinMaxValues>false</IndependentReadMinMaxValues>
      <MinSpeedValueRead>0</MinSpeedValueRead>
      <MaxSpeedValueRead>0</MaxSpeedValueRead>
      <ResetRequired>true</ResetRequired>
      <FanSpeedResetValue>255</FanSpeedResetValue>
      <FanDisplayName>Secondary Fan</FanDisplayName>
      <TemperatureThresholds>
        <TemperatureThreshold>
          <UpThreshold>70</UpThreshold>
          <DownThreshold>55</DownThreshold>
          <FanSpeed>25.4777069</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>80</UpThreshold>
          <DownThreshold>65</DownThreshold>
          <FanSpeed>60.5095558</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>90</UpThreshold>
          <DownThreshold>75</DownThreshold>
          <FanSpeed>100</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>60</UpThreshold>
          <DownThreshold>0</DownThreshold>
          <FanSpeed>0</FanSpeed>
        </TemperatureThreshold>
      </TemperatureThresholds>
      <FanSpeedPercentageOverrides />
    </FanConfiguration>
  </FanConfigurations>
  <RegisterWriteConfigurations>
    <RegisterWriteConfiguration>
      <WriteMode>Set</WriteMode>
      <WriteOccasion>OnInitialization</WriteOccasion>
      <Register>147</Register>
      <Value>20</Value>
      <ResetRequired>true</ResetRequired>
      <ResetValue>4</ResetValue>
      <ResetWriteMode>Set</ResetWriteMode>
      <Description>Set EC to manual control</Description>
    </RegisterWriteConfiguration>
    <RegisterWriteConfiguration>
      <WriteMode>Set</WriteMode>
      <WriteOccasion>OnInitialization</WriteOccasion>
      <Register>150</Register>
      <Value>20</Value>
      <ResetRequired>true</ResetRequired>
      <ResetValue>4</ResetValue>
      <ResetWriteMode>Set</ResetWriteMode>
    </RegisterWriteConfiguration>
  </RegisterWriteConfigurations>
</FanControlConfigV2>
 
Hallo,

ein wirklich nützliches und gut entwickeltes Programm! Ich würde es gern benutzen, da mein Laptop irgendwie Probleme mit der bordeigenen Lüftersteuerung macht. Anfangs (nach Start des Laptops) regelt sich der Lüfter so wie es sich gehört. Geht in der Drehzahl eicht hoch, dann wiede runter, alles kein Problem. Dann irgendwann, immer unterschiedlich, springt der Lüter sofort au 100% und bleibt für relativ lang Zeit dabei, selbst wenn die Temperatur auf unter 40° gesunken ist und der Laptop grad "nichts" zu tun hat. Das stört ungemein, da es natürlich rech laut ist
Ic bekomme aber NBFC leider nicht ordentlich konfiguriert. Das einzige was ich herausgefunden habe ist, wo im EC die aktuelle Temperatur gelesen werden kann. Und welcher Wert (wahrscheinlich) für das ein und ausschalten des Lüfters zuständig ist.

Bild 1:
An Register 209 lese ich die Temperatur aus.
null2.jpg

Bild 2:
Hier läuft der Lüfter auf voller Drehzahl, obwohl die Temperatur unkritisch ist. An Register 206. Was dort auffällt ist,
dass dort FF drinsteht (in grüner Farbe) und zwischendurch mal A0 oder A1 erscheint, aber solange der Lüfter läuft steht dort immer FF. Auch den Wert "manuell" ändern hilft nicht. Er läuft und läuft und läuft.....
an.jpg

Bild 3:
Hier hat sich der Lüfter wieder beruhigt und steht still.
null.jpg

Vielleicht kann mir jemand beim konfigurieren behilflich sein, das wäre sehr freundlich. Ich kann im EC leider nicht erkennen, wo ich die Drehzahl ablesen kann. Egal was ich einstelle, die Anzeige im NBFC ist immer falsch....
Also, vielleicht erkennt ja einer von euch "Spezialisten" an welchem Register ich was lesen, schreiben kann/muss, damit es ordentlich arbeitet.

Ach ja, fast vergessen: Laptop ist ein XMG/Schenker (genaue Bezeichnung kenne ich leider nicht), mit i5 CPU - falls das etwas bei der Analyse hilft.

Vielen Dank im Voraus!
 

Anhänge

  • an.jpg
    an.jpg
    410 KB · Aufrufe: 567
Zurück
Oben