[FAN ISSUE] Fan always on

@Lp36746 - I remember you brought up nbfc a while back on IGG.
Hope this above information is useful to you.

I vaguely remember someone doing a tear down of P2 MAX, listing the fan controller chipā€™s make/model. Maybe someone remembers it? There should be a spec sheet and then it will be clear why fan behaves the way it behaves.

I was able to create working configuration for NoteBook FanControl, please take a look
GPD P2 MAX.xml (3.5 KB)
UPD: thereā€™s an updated version of this file several messages down
What it does - it silences the fan on temperatures lower than 50C. Once it hits 60C - the slowest fan mode kicks in, and if thereā€™s no temperature increase - cools CPU down to 50C and switches off. If it reaches 70C - slow fan mode kicks in and itā€™s active down to 60C. If CPU heats up to 75 - all fan control is reset and system manages the fan on itā€™s own (frankly I wasnā€™t able to make RPM stable on medium fan mode, thatā€™s why itā€™s easier to just let the system do the job).
Please! Monitor VRM temperature using HWINFO32/64 or something similar, I was able to heat up my VRM up to 85 degrees (while CPU was still at comfy 68C). Especially if youā€™re charging the device and thereā€™s additional heat from the charging process.

UPD: Turns out itā€™s pretty easy to heat-up VRMs up to 99C even with default fan control. Just plug in power, choose Max Performance power profile in Windows and voila. CPU Package consumes 8-9W, VRM temp spikes. VRMs can be pretty tough and be rated up to 125C, but I donā€™t know, it feels unsafe, maybe I need thermopads mod or something.

4 Likes

Wow, impressive work. Iā€™ll give it a try asap.

Thanks!! Unfortunately my GPD P2 Max got bricked on a BIOS update, letā€™s see If I will get a new one from warranty then I can be back to test and use this.

@MutableLambda I have given the profile you created for Notebook Fancontrol a spin (n.p.i.). Thing is, the temperature reported by NBFC is a large negative number. As a consequence, enabling the fan control service does not seem to do anything. Any idea what could be going on? Temperatures are reported correctly in HWinfo and other tools.
image

/UPDATE It seems the cause is knownā€¦ It is the 1903 update of Windows 10: Doesn't function after Windows 10 v1903 Update (Here's Why and Solution) Ā· Issue #690 Ā· hirschmann/nbfc Ā· GitHub

After spending way too much time on this, Iā€™ve made some correlations. It appears the fan has at least 22 speed settings. Iā€™ve labeled them below, and will hopefully write a bash script to make this easier for linux users.

0x00    auto?
0x01    auto?
0x02    0x02-0x08 seem to be variable profiles
0x03
0x04
0x05
0x06
0x07
0x08
0x09    speed 0 / 0% / 0%
0x0a
0x0b
0x0c
0x0d
0x0e
0x0f
0x10    speed 1 / 5% / lowest
0x11    speed 2 / 9%
0x12    speed 3 / 14%
0x13    speed 4 / 18%
0x14    speed 5 / 23%
0x15    speed 6 / 27%
0x16    speed 7 / 31%
0x17    speed 8 / 36%
0x18    speed 9 / 41%
0x19
0x1a    speed 10 / 45%
0x1b    speed 11 / 50%
0x1c    speed 12 / 55%
0x1d    speed 13 / 59%
0x1e    speed 14 / 64%
0x1f    speed 15 / 68%
0x20    speed 16 / 73%
0x21    speed 17 / 77%
0x22    speed 18 / 82%
0x23    speed 19 / 86%
0x24    speed 20 / 91%
0x25    speed 21 / 95%
0x26    speed 22 / 100% / highest
2 Likes

Yes, the issue is not connected to my profile, NBFC reads the temp on its own. I have all the updates installed and itā€™s working. Maybe I had integrity checks disabled from the beginning (which is suspicious) or the driver got whitelisted again somehow. I didnā€™t reinstall Windows after getting the laptop.

Thank you for your effort! Iā€™ll check the values, for some reason I wasnā€™t able to find the same nice linear correlation between the value in 0x31 and fan speed. Can confirm that 0 is ā€˜autoā€™.

Tried the values, it doesnā€™t work for me for some reason (I mean they work, but fan speed doesnā€™t correlate). Though your table certainly makes much more sense than the values I discovered. Itā€™s improbable that they use different fan controllers on different laptops. Maybe the issue is with the software we use (different byte order or something).

1 Like

If it helps, I was using the Acer perl script (on Arch) to get/set values. Reading the value oftentimes yields a different byte, but pretty consistently returns whatā€™s set.

I also started a small Rust project specific to the P2Max to control the fan. I still need to get the read/write port timing correct, and it does concern me if those values arenā€™t consistent.

1 Like

Ok, I got it to work. What do you set your target fan speed to? ā€˜Auto (0.0%)ā€™ for me results in high speed. Strangely, 10 or 20% results in low speeds as youā€™d expect, but 0% results in medium speed. Even more weirdly, 90% results in fan off.

But, it works for me. In fact, I want to be able to turn off the fan in silent environments; in all other cases some fan spinning is OK. With this tool, I can achieve that. So thanks!

1 Like

Funny. So, so far we have four devices (@casainho @joshwiththegoodhair @Milly and mine), and the fan values do not seem to be consistent. What is your BIOS version by the way? Can you maybe try running ec-probe (just run Command Prompt as Administrator, then change directory to NoteBook FanControl folder) and check what values work for you?
ec-probe write 0x31 0xf?

1 Like

Iā€™m on bios 0.24, silent profile. I donā€™t feel confident enough to start playing with the ec-probe tool until I find out what the write command does. Iā€™ll dive into it, but later.

1 Like

A-ha! Thatā€™s where the issue was. The values that need to be written to the register are dependent on Fan/Performance profiles in BIOS. I rebooted, set the Fan mode to Quiet in BIOS, and then was able to reproduce the behaviour you described.
I can conclude that if you set Fan to ā€œStandard modeā€ and CPU to ā€œPerformance modeā€ in BIOS you will be able to use my profile normally (with 0 being full stop and ā€˜autoā€™ working as expected).

2 Likes

Also, I played around with the profile I gave earlier and wasnā€™t completely happy with how warm the laptop becomes after a while, so I made a more conservative profile that keeps the fan silent only under 45C. In my case (I also undervolted my CPU by 0.085 volts using Intel XTU) it means that the laptop is silent during normal use, it will spin up the fan during youtube videos (slowest mode, which is not really noticeable). The fan will still get loud on any substantial workload, but thatā€™s expected. Itā€™s for standard ā€˜Balancedā€™ power profile in Windows and no charger connected.
GPD P2 MAX.xml (3.5 KB)
And yes, the profile is valid only for BIOS 0.24, BIOS settings - Fan to ā€œStandard modeā€ and CPU to ā€œPerformance modeā€ (the default)

3 Likes

Thanks, this works great now. Hopefully at some point such a silent profile will be built into the bios settings, but for now, this solves the noise for me.

2 Likes

Great! Iā€™m glad itā€™s working for you. We still donā€™t know why the fan values arenā€™t increasing linearly, but at least the results are reproducible.

About the controller, I didnā€™t open my laptop yet, but itā€™s probably the same chip as P2 non-max ITE IT8987D which doesnā€™t have a datasheet available publicly.

1 Like

Does anyone know if @MutableLambda xml profile solution works using the nbfc build for linux - mentioned in the readme.md here https://github.com/hirschmann/nbfc

Appreciate any feedback. Thanks

I checked the config by @Bluegizmo83 and itā€™s consistent with the values that @joshwiththegoodhair posted in this thread. Josh, can you confirm that you also got those values on BIOS 0.21? If yes, then the values are consistent between Windows and Linux, therefore BIOS version / BIOS fan settings are responsible for discrepancies we noted earlier.

To finalize the config for BIOS 0.24 we need a way to tell the chip that the fan is being controller manually, otherwise it seems impossible to make FAN RPMs steady on speeds equal or greater than medium. NBFC sets one value, it immediately gets replaced by chipā€™s own programming, we get fluctuations. The approach my config uses currently is to set the fan to auto for 40% fan speed an up, but it still conflicts with the chip programming and temps may get a bit high if the charger is connected (itā€™s fine on battery).

1 Like