seerge / g-helper

Lightweight Armoury Crate alternative for Asus laptops and ROG Ally. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models
https://seerge.github.io/g-helper/
GNU General Public License v3.0
7.04k stars 255 forks source link

Fan capped at 48% when supposedly on factory default settings #763

Closed Penwibble closed 1 year ago

Penwibble commented 1 year ago

Describe the bug Fan capped at 48% regardless of temperature when set to any mode and using factory defaults.

Clear scenario to Reproduce Steps to reproduce the behavior: Happens frequently on boot until closing G-Helper or applying custom fan curve. 50/50 as to whether it happens again when returning to to factory defaults after using a custom fan curve.

Expected behavior For the fan to behave according to BIOS defaults when not using a custom fan curve.

App Logs log.txt

Screenshots or screencasts Screenshot 2023-07-12 020112 (Not particularly helpful, I know, but it shows how the fan just sits at 48% consistently. That was in Turbo mode on factory defaults. The fan never went above 48% until I switched to a custom fan curve.)

Desktop (please complete the following information):

Asus software

Additional context Everything worked perfectly until the most recent update. After rebooting, I noticed very poor performance and lagging during work; upon checking, the temperature was at 101 and fan at 48% only, and the CPU was throttling heavily. I believed it to be a one-off issue, and then rebooted, but the issue persists until I apply a custom fan curve. Behaviour is normal with the custom fan curves and the fan will immediately ramp up and lower the temperatures. Closing G-Helper also results in the fan immediately ramping up, so the BIOS default does not seem to have any issues. I can only assume that for some reason, G-Helper is limiting the fan to 48%. I tried a reinstall of G-Helper (well, deleting everything and running the debloat script again, and downloading the latest version) but the issue is still happening.

seerge commented 1 year ago

@Penwibble hello,

  1. I see that you have some asus services running in background, can you go to "Extra" -> "Stop" services?
    12/07/2023 01:59:13: Optimization service is running
  2. Can you click on FAN% label to see what is actual fan RPM (instead of %) ? (and post a screenshot here)
  3. I see that you use custom fan curve (at least for turbo)
    12/07/2023 02:01:42: Mode = 1 : OK
    12/07/2023 02:01:42: FanCPU = 14-3F-44-48-4C-50-54-62-11-1A-22-29-34-43-51-5A : OK
    12/07/2023 02:01:42: FanGPU = 14-3F-44-48-4C-50-54-62-16-1F-26-2D-39-47-55-5F : OK

    can you click "factory defaults" for that too?

  4. And can you upload your config.json from same folder as log please?

Thanks :)

seerge commented 1 year ago

@Penwibble hello, did you had a chance to disable asus services and check other things?

Penwibble commented 1 year ago

Thank you so much for your quick response. I am sorry to take some time to get back to you.

First, I tried stopping the Asus background services. For some reason, it persists in saying that 1 is running, but nothing appears in task manager, so maybe that is intentional? There is only a start button after doing that. image

I also reset the turbo fan curve (I don't usually run a custom curve, but I tried adjusting it to see if that would cause any change in the behaviour with the fan.)

Here is a full screenshot showing the fan rpm along with the fan window to show nothing custom, all set to factory default. Screenshot 2023-07-13 220931

I wasn't able to upload the file with the json extension, so here is it rebadged as txt. configjson.txt

Please let me know if there is anything else I can provide that would help.

seerge commented 1 year ago

@Penwibble hello, thanks.

  1. Can you just run windows -> Services app (and check if there is any asus services running? if so just manually click on them and try to stop). I'm mainly interested if Optimization service is running (or you can just click Start and then Stop will appear under Extra)

  2. I see that CPU temp is indeed high, but it's strange that GPU is actually ok (given they share same vapor champer). G-Helper takes temp from asus bios, may be it's just reported incorrectly? Just to exclude some "measurement" mistake, can you check your CPU temp in some other way (for example by running HWinfo ?)

  3. Do you load laptop with something for that screenshot ? (cause honestly if it's idle even with fans off it won't heat up)


And mainly: as I was mentioning before g-helper doesn't control your fans, it can just set one of 3 (predefined in bios) modes. So there is no such thing as "g-helpers fan curve" :) Even if app runs it literally does nothing (it just sets mode on start / wake up and every time you change it manually of course)

You can change modes also in powershell (as admin) with a following command (w/o any g-helper or AC)

(Get-WmiObject -Namespace Root/WMI -Class AsusAtkWmi_WMNB).DEVS(0x00120075, 0)

Where 0 - Balanced, 1 - Turbo, 2 - Silent

If you close app, and just change modes like that do fans still behave same (you can monitor fans + temps via HWinfo just in case) ?

P.S. There is another 2 commands (for each fan) that would run fans on max speed. G-Helper doesn't use them, but try to run them and see if in your case it will follow

(Get-WmiObject -Namespace Root/WMI -Class AsusAtkWmi_WMNB).DEVS(0x00110013, 1)
(Get-WmiObject -Namespace Root/WMI -Class AsusAtkWmi_WMNB).DEVS(0x00110014, 1)

And run same , but with 0 to set fans back to "auto" (i.e. normal) behavior

(Get-WmiObject -Namespace Root/WMI -Class AsusAtkWmi_WMNB).DEVS(0x00110013, 0)
(Get-WmiObject -Namespace Root/WMI -Class AsusAtkWmi_WMNB).DEVS(0x00110014, 0)
seerge commented 1 year ago

@Penwibble and by the way, for how long do you observe 96C ?

I have noticed that default fan behavior for Tubro mode has quite high "hysteresis" (i.e. it will wait for like 5 seconds before actually pushing fans up even when CPU is already at 96 (it's default throttle temp), and probably like 10-20 seconds before it goes to something like 5000-5100 RPM. And that's ok.

Check the charts of Temp (top) and Fan RPM (bottom)

Screenshot 2023-07-14 001643

Penwibble commented 1 year ago

Thank you again for looking into this.

I tried both the start then stop, and checking in Services, and all the Asus processes are listed as disabled.

For that screenshot, I did make an artificial load with Cinebench just to show what is happening, so it was not running all that long, which is why I think there was no time for the GPU to also warm up. In actual work, both will be fairly high in temperature (CPU reaching 99+ and GPU in the 80s). The fan will not ramp up no matter how long I leave it at 96+ - watching in hwinfo shows the CPU just keeps throttling to manage temps with no change in fan speed. The throttling is what made me aware of the issue to begin with, it became so bad that performance slowed to a crawl and I realised that where it would normally have been running the fans hard there was nothing happening.

I know that G-Helper doesn't actually control the fan curve on defaults, which is why it is so strange! If I turn custom fan curve on, it behaves exactly as I would expect with the fans ramping up after there being a rise in temperature, etc. If I close G-Helper, it also behaves the same way and the fans will increase beyond the 48%/2800rpm level. It is interesting that if I have G-Helper closed and am running a load with the fans at a high rpm, the second that I open G-Helper the fans will immediately drop in speed to the 48% level. So it is clearly something strange interfering. Also, even when custom fan curves are set to defaults, they ramp up immediately when turned on.

Video after Cinebench has been running 10 minutes: https://github.com/seerge/g-helper/assets/139297212/9433dc50-2d2e-4bc1-820e-d3016a8884c3

The behaviour is the same on Eco, Standard, and Optimized (I didn't test it on Ultimate just now because of rebooting.) I tried the commands and everything worked as expected (I don't think I had ever heard the fans on full maximum before, haha).

For the moment, I have custom fan curves enabled (with defaults because I am too lazy to tweak them) and everything is working as I would normally expect it to be with custom curves off... So at least it is not making G-Helper unusable.

seerge commented 1 year ago

@Penwibble hello, thanks for checking.

If I close G-Helper, it also behaves the same way and the fans will increase beyond the 48%/2800rpm level.

Does close means "quit" with a button or just closing main window (and keeping app running in backgorund). How do you measure fan speeds then?

It is interesting that if I have G-Helper closed and am running a load with the fans at a high rpm, the second that I open G-Helper the fans will immediately drop in speed to the 48% level.

Every time you launch app it will set last remembered mode (i.e. will run this command for Turbo for example) :

(Get-WmiObject -Namespace Root/WMI -Class AsusAtkWmi_WMNB).DEVS(0x00120075, 1)

And every time mode is set, bios will "re-init" fans and first slow them a bit then ramp again (so if you see that for a few seconds fans change speed it's ok, it behaves like that on my device too). You can run that command in powershell, and behavior will be same :)


Anyway, based on what you explain it looks by some reason fan behavior in default Turbo mode is not acting as it should. Given that you have exact same device as I do (G14 2022), and it's literally a "base" model for a whole app - it's strange :)

At the moment I'm keen to think that it's something isolated purely to your device, as I literally copied your config, and tried to uncheck custom fan curve, going back to defaults - for me fans ramp up as they should (not immediately, but with time).

  1. Can you just download and run some older version now like https://github.com/seerge/g-helper/releases/tag/v0.86 ? does it behave OK or same? (You have mentioned that it worked ok before last update)
  2. Can you install Armoury and check how Turbo mode acts there ?
  3. Can you try to do a hardware reset ?

Thanks :)

P.S. What BIOS version do you have? and what version of Asus System Control Interface under device manager? : Screenshot 2023-07-14 130722

seerge commented 1 year ago

@Penwibble hello, did you had any chance to check the things from previous comment? :)

Penwibble commented 1 year ago

I'm sorry I hadn't had a chance to get back to you, this past week has been a lot of business travel so I have had very little time to actually tinker with anything.

Does close means "quit" with a button or just closing main window (and keeping app running in backgorund). How do you measure fan speeds then?

I mean right-clicking the icon and selecting "Quit". If I keep it running in the background, it behaves the same as if the window is open. When it comes to the fans, I can see them in Hwinfo. But even without looking there, it is very obvious by the sound. If the fan is stuck on 48% with high temps and I quit G-Helper, they start to speed up immediately (and then slow down once heavy processing is done, etc.).

And every time mode is set, bios will "re-init" fans and first slow them a bit then ramp again (so if you see that for a few seconds fans change speed it's ok, it behaves like that on my device too). You can run that command in powershell, and behavior will be same :)

But then after it will only go up to 48% at maximum. That is what is strange to me. It will slow down to 48% and stay there indefinitely even if the temperatures are very high.

At the moment I'm keen to think that it's something isolated purely to your device, as I literally copied your config, and tried to uncheck custom fan curve, going back to defaults - for me fans ramp up as they should (not immediately, but with time).

I am at least glad to hear it might be something isolated to my device instead of a wider issue. Even if it is slightly annoying to me, I know to just turn on custom fan curves for now and everything acts normal.

  1. Can you just download and run some older version now like https://github.com/seerge/g-helper/releases/tag/v0.86 ? does it behave OK or same? (You have mentioned that it worked ok before last update)
  2. Can you install Armoury and check how Turbo mode acts there ?
  3. Can you try to do a hardware reset ?

At the moment, I am away from home on a business trip relying on my laptop so I can't really try many things. I am happy to try these once I am back home and don't have a fear of anything causing problems though.

P.S. What BIOS version do you have? and what version of Asus System Control Interface under device manager?

I have BIOS version GA402RK.318, and the Asus System Control Interface is identical to the one in the screenshot.

I was thinking though, could it be connected to the Windows version? I am running a beta version of Windows (22631.2048).

I will be back at home the beginning of next week so I will try the suggestions above. The client's proprietary software is very bad so it was a nightmare getting it to work at all and I don't want to risk having to spend hours fixing it while on site.

seerge commented 1 year ago

@Penwibble hello,

Asus has released newer System Control interface v3.0.16 I would recommend to update it just in case (but keep in mind it will start all asus services again, so you need to stop them from Extra one more time)

https://dlcdnets.asus.com/pub/ASUS/nb/Image/CustomComponent/ASUSSystemControlInterfaceV3/ASUSSystemControlInterfaceV3.exe

Penwibble commented 1 year ago

@seerge Hello again,

Thank you so much for being so patient with me. I have had time over this weekend to discover that it seems to be some sort of issue with either my hardware or Windows. It has nothing to do with G-Helper, and the timing seems to have been a total coincidence.

I tried running an older version of G-Helper; same issue. I tried using just Armory Crate. Same issue. That seemed weird, so I tried a wipe of everything and fresh Windows install with Armoury Crate and all Asus stuff. Same issue. So I thought it must be a BIOS issue. I reflashed the BIOS. Same issue.

Then I tried running Linux from an external drive; there were no problems. It behaved as I expected. So then I tried removing all Asus stuff and NOT using G-Helper. It behaved normally.

I now assume that there is something weird going on when any software is open that can change fan settings; Armoury Crate being open seems to make it stick at 2800 rpm. G-Helper open on default and it sticks on 2800 rpm. But nothing open and it will ramp up normally. No clue what the problem is, but it obviously isn't related to G-Helper.

I am sorry that I wasted your time while thinking the issue must be linked. And thanks for all your hard work otherwise too, I don't know what is wrong with my G14, but at least I can feel safer using it with G-Helper and custom fan curves. Those work perfectly.

seerge commented 1 year ago

@Penwibble hello. Thanks for checking and confirming that it's not an app issue :)

Strange thing that linux works ok. I can only imagine that if you don't set any of the BIOS performance modes after rebooting, it behaves normally.

But since your system is in one of those modes anyway, it probably stays in "Balanced" mode all the time (so you can't set silent / turbo w/o breaking fan behavior)

Mb try to install previous bios (317 i think?), or indeed just use custom fan curves :)

Do you mind to post an update on reddit as well about your case (in old topic)

I'm closing this issue as completed then :)