"Force apply" wrong behaviour on MSI B850
Good day,
continuation from this https://github.com/Rem0o/FanControl.Releases/issues/3155
So the issue I found is this https://github.com/Rem0o/FanControl.Releases/issues/3155#issuecomment-2855213295 https://github.com/Rem0o/FanControl.Releases/issues/3155#issuecomment-2855832322
I found the cause, which is the "Force apply" function. On the previous AM4+B550 motherboard system "Force apply" worked as intended described in the "question mark" information-tab, with not problems casuing; that's why I had it enabled on all fans with this B850 motherboard build, thinking it would cause no problems. But now on this shitty MSI 850 and the workarounds done by Alcolawl and others to fix this, it works faulty.
When "force apply" is enabled:
- "Manual control" for any fan does not work. I can set the slide to 100 % it simply doesn't move at all, no matter the time or sensors/input temperature (CPU's or GPU's temperature in this case).
- the same issue in the "Manual Fan Calibration" mode when calibrating the fans
- the same issue with the "Pair speed sensors manually" function when linking the sensors/headers to the fan/control. As described in the other topic it is believed that is only due to the shitty MSI's 1%/1sec behaviour that fans are not found/linked by the programmed (in automatic mode), but I now see it's also due to this.
- I noticed it makes the whole issue on the topic linked above, about the "1%/1 sec" problem even worse. Either fans ramp up/down their RPM even more slowly, or the discrepancy is getting bigger
- the whole problem about the discrepancy I mentioned https://github.com/Rem0o/FanControl.Releases/issues/3155#issuecomment-2855222973
- It also breaks the fans not going down to 0 RPM as I mentioned here https://github.com/Rem0o/FanControl.Releases/issues/3155#issuecomment-2855832322
Both rear/top case fans shut down (0 RPM) at 23 %; 24 % is near 280 RPM. The value of 21.9 % and 23.5% is set by me so the fans should stop spinning entirely (not needed at such low CPU/GPU utilization). The fact that the case fan top is still spinning means it's wrong and not doing as intended. :(
Deactivating "Force apply" and reloading the profile immediately fixed all of them; the fans even go down to 0 RPM now. All what remains is the issue about slow reaction and 1%/1 sec behaviour, which can't be helped at all I see - only buying another non-MSI motherboard.
So, you Rem0o can fix it, or is this a case for @Alcolawl to fix this? Or, is no fix possible again and it's all due to this shitty MSI employee decision with this controller.? D:
Thanks in advance
@Rem0o About your suggestions from the other topic.
set the step up and step down values to the max.
Really helps? Set it to "100%/1sec" now.
Calibration are only used if your fan curves are in RPM mode, which yours are not, they are in % directly.
I don't understand this. Explain please.
@Rem0o So both of you aware of this behaviour? If both of you now say again it's not fixable, would you at least change the description of your "question mark" information tab? Nothing in the fancontrol program gives a hint "Be CAREFUL of this function with shitty MSI B850/X870 motherboards. It works wrongly and not as intended". You should at least mention it to have it turned off.
Thanks in advcance :)
I don't understand this. Explain please.
Fan calibration is basically a RPM -> % map
Eg:
500 rpm -> 26%
700 rpm -> 35%
1000 rpm -> 45%
and so on.
This is only useful if your fan curve is set to output a RPM value. You can switch that in the 3dot menu of each fan curve. Yours output a %, so the calibration is not used.
@1kartafal4
As stated very clearly before, the slow fan reaction time is out of our control. This is the last time I'm speaking on this topic with you.
@Rem0o Thanks. Never saw that "RPM" function until now. Will try for convenience.
@Alcolawl It's about "Force apply", not slow fan reaction time or the 1%/1sec behaviour. Are you reading?
I am reading. Thanks for checking up on me. Perhaps there's a language barrier issue here or something but I have a feeling you're not comprehending what the author of this program is telling you and what I've been stating for the last couple of days.
It seems like you've found the solution already. Disable Force Apply.
Bottom Line: You, the user, are causing the issue you're experiencing. You are applying a configuration (Force Apply for no reason), RPM Mode fan control, etc. You're not showing the calibration for the fan in question, which makes me think that my hypothesis of two PWM Duty Cycle mappings are too close to one another in terms of RPM. I already tried explaining that to the fullest extent so as to avoid confusion, yet here we are.
Not a single other MSI user that had tested this for months in our Slack channel had the issues you're describing after calibrating their fans properly. I also cannot replicate the issue with my setup on my X870 Tomahawk WiFi.
All what remains is the issue about slow reaction and 1%/1 sec behaviour, which can't be helped at all I see - only buying another non-MSI motherboard.
Correct. Cannot be helped unless MSI hands over the documentation for this SIO Controller.
So, you Rem0o can fix it, or is this a case for @Alcolawl to fix this?
There's nothing to fix from my end. Force Apply is not a function of LibreHardwareMonitor
Or, is no fix possible again and it's all due to this shitty MSI employee decision with this controller.? D:
Though Rem0o can obviously answer more on this, but from what I gather is that Force Apply simply re-sends the PWM command to the fan controller if a discrepancy is detected. A discrepancy will always exist with a bad calibration. I think that's where the misunderstanding is coming from.
Just for the sake of argument, let these facts be true:
- 40% is mapped to 400 RPM
- 45% is mapped to 440 RPM
- The fan has a +/- 10% variance in RPM reporting or actual speed.
So, in this hypothetical situation: You want your fan to spin at 450 RPM, so you set it to 46%. The fan responds, but due to variance, the fan is spinning at 420 RPM. LHM reports back that the fan is spinning at 43%. You notice this discrepancy and enabled Force Apply. It keeps sending the 46% Command, and the fan doesn't react, because it's getting the correct PWM signal of 46% but the fan continues to spin at 420 RPM. The calibration you have set is what's causing this issue. You cannot set the manual calibration based off of what they used to be on the previous motherboard or what you think PWM Duty Cycle should correspond to in RPM.
In this case, the calibration is too granular; the difference in RPM between 40% and 45% is too small. This will sometimes vary between models of fan and even between fans of the same make and model. Ideally, you'd set 46% to 420 RPM and continue from there. This is how manual calibration should work. Adjust the fan in 5% or 10% intervals, wait a minute for it to react and level out, and add it to the table so the program knows what actual RPM to expect at that duty cycle.
Notice the steps in RPM in 10% duty cycle increments for my Arctic P14s. Obviously you're using different fans but my point remains. You need to correctly calibrate your fan otherwise this behavior will continue. Force Apply is working as intended, but the program will continue to report a discrepancy until you've configured it correctly.
@Alcolawl I'm not sure what to say. On the hand I'm grateful that you spent so much time explaining and helping, but on the other hand it's not getting use anywhere closer now to anything. I explained in the other topic that everything is manually calibrated properly already months before on the AM4 system and now again on the B850 motherboard system (all the RPM values are very close to each other), and judging by your explanations, the faulty behaviour I saw it's not due to variance too big or fan percentages/RPM to closely set.
Here are both case top/rear fans (same models, the values are nearly identical within 1- 2 %)
Here are all 3 front fans (same model, the values are nearly identical within 1- 2 %)
(As explained, front fans don't go down to 300 RPM, or 0 RPM/shut down with this shitty B850 motherboard, but did previously on the B550 motherboard)
@Rem0o So long story short, please no lengthy explanations anymore. Any one of you want to look into why "Force apply" behaves differently now on this shitty MSI B850 motherboard and breaks things, which it didn't on e.g. the previous MSI b550 motherboard? There is also no warning message in your program which warns users of this.
If you can't, don't want to due to whatever reason, just say so ;) If the explanation is again "due to shitty MSI employee decision", so be it. I buy a Gigabyte B850 motherboard then.
@Alcolawl You sure that that only MSI's B850, 870, X870E motherboards are affecteded? Are Asus and Gigabyte's new B850/X870 mainboards safe? Previous B650/670?
I commented in the first topic started I had an annoying annoying issue with the "ASUS TUF Gaming B650-E WIFI" I already returned. Every 4-5 PC starts a CPU_fFAN or SYSTEM_FAN was simply not being detected by FanControl/LibreaHardwareMonitor. I had to manually unplug/replug the fan from the motherboard header. This was on fancontrol version 219 (or 221, not sure anymore). I haven't manually switched the files from Alcolawl's fork back then)
Cheers, thanks for taking the time ;=)
@1kartafal4 this is just yet another consequence of the slow reacting behavior of the control sensor.
Every control I've ever interfaced with, the control value changes instantly. Force apply will apply a "reset" to the current value followed by the actual wanted command. Since the control value doesn't changes instantly to the set value, this whole logic breaks, as it thinks the current% is due to an external source, and you get probably some kind of ping pong of +1% then -1% as it tries to reset to the current value.
The force apply in this case is not triggered by the calibration, but simply by the fact the control sensor doesn't read the last set value. You set 70%, it should read back 70%, but it doesn't for these MSI boards as it only changes in 1%/sec increments -> triggers force apply.
The expected use case is the following for force apply:
You set 70% in fan control -> control is at 70% for a while. Some times later, an other software sets 50%. Fancontrol sees a 20% difference between what it last set and the current value. It resets itself as if it was at 50% (because it is), then it will use it's usual logic to go from 50 back to 70.
As stated in the dialog, force apply is only useful "IF" the control is overridden by an other source:
It has 1 purpose and @Alcolawl got it correct. It should not be used in any other case.
I don't know exactly what to "fix" here as force apply does what its supposed to do for normal boards. You should just leave it off.
@Rem0o Man, again a lengthy explanation :D Okay, thanks for the explanation. So even manually setting the fan to 2000 RPM or 100 % after 5 minutes, the fan still not changes, is normal behaviour? Hmm, okay. Okay, so nothing can be done I understand. I just checked it again right now after 2 days, and it's still causing the same issues; I could make a video if it sounds unbelievable.
Well I personally couldn't care right now as I already found out how to solve it (simply disabling it), but maybe you could do smt. for the other users who might not know? I asked for maybe a single warning explanation the first time a user wants to activate it? (which could be deactivated with a button). Your description right now doesn't mention anyhting to warn dunces like myself or others ;)
Cheers
@Rem0o I don't want to pestering you anymore, just one question asking your both expertise, already asked above: Only the MSI motherboards got this specific Nuvoton controller issue? So Asus, Gigabyte, Asrock etc. are safe for now?
Thanks for everything!