hirschmann / nbfc

NoteBook FanControl
Other
2.9k stars 488 forks source link

NBFC seems to ignore temparature settings #1329

Closed berndbausch closed 1 year ago

berndbausch commented 1 year ago

This is not really a bug report, except perhaps for usability/documentation. I am certain I am doing something wrong, but don't know where else to ask for help.

I am veru grateful for NBFC, which has kept my HP Probook 450 G5 (Windows 10) quiet for the months since I bought it. All of a sudden, however, the fan spins loudly although it should be off.

The screenshot below illustrates the problem. The temperature is 48 degrees, which should either turn the fan off entirely, or at worst run it at 10% (which would be inaudible). However, it constantly and noisily turns at 66%. Apart from the temperature thresholds, the critical temperature is set to 88 degrees. Other than that, the config is untouched (I think anyway). At the moment I am writing this, the fan was off for a while until the temperature went up to 58 degrees, which prompted the fan to spin at 66%. However, it should remain totally off before reaching 60 degrees.

Which setting, either in NBFC or in Windows, could lead to this behaviour? Where should I check?

notebook fan control

Full XML file:

<?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 450 G5</NotebookModel>
  <Author>bbausch based on 440 G3 by sandreas</Author>
  <EcPollInterval>3000</EcPollInterval>
  <ReadWriteWords>false</ReadWriteWords>
  <CriticalTemperature>90</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>70</UpThreshold>
          <DownThreshold>55</DownThreshold>
          <FanSpeed>20</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>75</UpThreshold>
          <DownThreshold>68</DownThreshold>
          <FanSpeed>40</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>80</UpThreshold>
          <DownThreshold>72</DownThreshold>
          <FanSpeed>60</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>85</UpThreshold>
          <DownThreshold>77</DownThreshold>
          <FanSpeed>80</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>
berndbausch commented 1 year ago

Well. Somehow, I managed to prevent NBFC from changing fan speed. Sorry for the lost bandwidth. image