@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.
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.
/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
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).
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.
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!
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?
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.
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).
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)
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.
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.
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).