Skip to content

Instantly share code, notes, and snippets.

@meetnick
Last active April 18, 2024 20:58
Show Gist options
  • Save meetnick/0f5bebe5ada90f52fd6afe44be171873 to your computer and use it in GitHub Desktop.
Save meetnick/0f5bebe5ada90f52fd6afe44be171873 to your computer and use it in GitHub Desktop.
ASUS ROG Zephyrus M16 Tweak guide

As some people reported sleep-related problems and also other issues with the M16, which I also encountereed on my own and fixed on my device, I decided to write this down so that everyone with these problems can fix them on their machine if they run into them.

Some of them are also just features that some people are unaware of.

These fixes mostly involve changes in Windows Power Plan and Registry. I only tested them for Windows 10 for the Zephyrus M16 2021, but I'm sure they also work for Windows 11 and also for the 2022 version.

Note: My Windows is set to German. I took the English names for the power plan settings out of the registry. They might be called different depending on language settings. The names of the registry keys themselves are unaffected by your language setting.

Overview

Laptop sometimes not going to sleep when closing the lid.

Sometimes, the laptop wakes up instantly from sleep by opening the lid, and sometimes you have to press the power button.

When on AC, the laptop gets really hot during standby and the fans ramp up to full speed once the machine resumes from Standby.

When booting Windows on battery, the display colors are washed out and have weird contrast that changes randomly.

My display goes black when I unplug the power cord or plug it back in.

Keyboard light "flickers" when the laptop is in sleep.

When on battery, the keyboard light goes off too quickly.

How to check whether the Nvidia GPU is in use

Chrome/Edge flickers on certain sites and even causes full screen glitches

WiFi exhibits high ping spikes (added by /u/Jakub0002)

  1. Laptop sometimes not going to sleep when closing the lid

This is a "feature" of Windows Modern Standby (S0). It's called "precense awarness". Windows tries to assume whether you will be using the computer again shortly and decides to not put the machine into sleep at all but only disables the display. This can be problematic if you want to put the laptop into a bag to travel as the machine runs at full power. And as you might know, the M16 can produce a lot of heat.

The fix for this is to change the setting Presence Aware Power Behavior > User Presence Prediction mode in your power plan(s) to Disabled. This setting is hidden by default. To unhide it, open the registry, navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\8619B916-E004-4dd8-9B66-DAE86F806698\82011705-FB95-4D46-8D35-4042B1D20DEF and create a DWORD with the name Attributes and set its value to 2. If the DWORD already exists, just change its value to 2. Now open your power plan settings and disable the setting. You will have to do that for every plan you use. Armoury Crate switches power plans when you change the power setting in it. You can also decide to only disable it for on battery or for both. This is up to you.

There is another setting which can cause this behavior. It is called "Away Mode". To unhide it do the same procedure as above but for the key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\25DFA149-5DD1-4736-B5AB-E8A37B5B8187 You can then find the setting under Sleep transition settings > Allow Away Mode Policy. Disable that one, too.

Keep in mind that there are some applications that trigger Away mode on purpose to keep the laptop awake when you close the lid to continue their process. If you have such applications, you probably know that and might want to reconsider whether you want to disable Away Mode in power plan. Otherwise, it is not really needed and causes standby issues with this device.

After applying this setting, the laptop should always go to sleep when closing the lid. To make sure that it really does that, I would recommend to wait for the status light of the laptop to "breath" before putting it in a bag. Some applications can still hold your computer awake.

In some cases, a reboot is required for the settings to fully apply.

  1. Sometimes, the laptop wakes up instantly from sleep by opening the lid, and sometimes you have to press the power button.

This is also a feature of S0 (Windows Modern standby). The laptop decides after a certain amount of time, or after a certain amount of battery was consumed during S0, to hibernate the machine. This means, writing the RAM onto SSD, and shutting down the laptop. When this happens, you have tp press the power button to wake up the machine again. Otherwise, opening the lid is enough to wake it up. The timeout for this and the amount of battery that is allowed to be consumed during S0 can be configured through power plan, but are, again, hidden by default.

This is the setting that controls how much battery is allowed to be consumed during S0 before hibernate kicks in: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\8619B916-E004-4dd8-9B66-DAE86F806698\9FE527BE-1B70-48DA-930D-7BCF17B44990

As with Setting 1), create a DWORD called Attributes (or modify if it already exists) and set its value to 2. Then you can change the setting in Power Plan. It is called Presence Aware Power Behavior > Standby Budget Percent.

The other setting is the time after which the machine will definitely go to hibernate, no matter how much battery was consumed. The setting can be unhidden through this registry node: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\9d7815a6-7ee4-497e-8888-515a05f02364. Do the same as above (create the Attributes DWORD with value 2). Then you can find the setting in power plan under Sleep transition settings > System hibernation timeout. This is given in minutes. You can set it to 0 to disabe that setting completely. Or set it to a value that doesn't interfere with your usage but hibernates the computer when it slept for a long time (if you want that to happen at all). I set it to 10h (600 minutes). This way the machine never hibernates during my university day, so it is always ready. The laptop consumes bareley any power during S0 sleep, so this is perfectly fine. It actually consumes way more power when waking up from hibernate than it does when in S0 for a few hours.

In some cases, a reboot is required for the settings to fully apply.

  1. When on AC, the laptop gets really hot during standby and the fans ramp up to full speed once the machine resumes from Standby.

The reason for this is likely Windows Memory Diagnostics. It is some sort of "Memtest Light" that runs when the device is on AC and idles for 10 minutes or longer. This task can also run during S0 standby. I personally see no reason for it to run randomly. You can disable it in Windows Task Planner. It is located under Microsoft > Windows > MemoryDiagnostsics > RunFullMemoryDiagnostic. Edit the task and set it to disabled. If you have memory related issues, or suspect such issues, better run an offline Memtest ot verify memory integrity.

  1. When booting Windows on battery, the display colors are washed out and have weird contrast that changes randomly.

This is Intel DPST. There is a bug in the Intel GPU driver that prevents the setting to be preserved between reboots. So, even if you disable it in Intel Control Center, it will revert itself after a reboot.

To fully disable it, there is a little script on GitHub that can permanently disable this feature by making a small edit to the registry.

https://github.com/orev/dpst-control

This has to be re-run after every update of the Intel GPU driver and likely also after every larger "Feature Upgrade" of Windows itself. You can also use the included get-status.bat to check whether it is currently disabled. Remember, that Windows update might update your GPU driver without your knowledge.

Reboot the machine after running the disable-dpst.bat script (as administrator) for it to take effect.

  1. My display goes black when I unplug the power cord or plug it back in.

This is a feature of the laptop. It switches the refreh rate between 165Hz (or 144Hz) when plugged in and 60Hz when on battery to prolong battery life a bit. This setting can easily be disabled. Open Armoury Crate. On the dashboard, you will find a setting called "Panel Power Saver". Just click it, so it gets disabled. If you're currently on battery, you might have to manually revert to the full refresh rate. On AC this is automatically the case. Now your laptop won't switch refresh rates anymore. This will cause some more battery usage, but you get no black screen and it is smoother. Whether the trade-off is worth it for you, is something you have to decide for yourself. If you want to re-enable it again, just open Armoury Crate and click "Panel Power Saver" again.

  1. Keyboard light "flickers" when the laptop is in sleep.

This is, again, a "feature" of this laptop. You can disable it in Armoury Crate under the System > Device. Then head to the Lighting Tab and then click on Settings on the right. There is a switch to disable the lighting during standby.

  1. When on battery, the keyboard light goes off too quickly.

This is an energy saving feature. There is no exposed setting for this. But, I found a key in the registry that controls this. Go to HKEY_LOCAL_MACHINE\SOFTWARE\ASUS\ASUS System Control Interface\AsusOptimization\ASUS Keyboard Hotkeys and find the DWORD TurnOffKeybdLight. This is the time in seconds after which the keyboard light gets turned off when no user input was detected. Change the value to whatever you find reasonable for yourself. I personally want it to stay on longer, so I set it to 1800 (decimal) / 708 (hex). This will set the time to 30 minutes. You have to reboot the laptop for the settings to take effect. Updates of Armoury Crate might revert it to the default setting. So you have to change it back to your value again. Not ideal, but also not a deal breaker for those that want the backlight to stay on.

  1. How to check whether the Nvidia GPU is in use.

There are two easy ways to do that.

Option one is to open Armoury Crate. Then head to System > Device and open the Tab GPU Power Saving. There is a list of processes that cause the Nvidia GPU to be online. If the list is empty, then the Nvidia GPU is likely not on.

The more comfortable way is, to enable the GPU Indicator icon in Nvidia Control Panel. To do that, Open Nvidia Control Panel, then in the top menu select "Desktop" and check the option "Display GPU Activity Icon in Notificiation Area". This will add a little icon to your taskbar. It is gray if the Nvidia GPU is off. It turns green when the Nvidia GPU is on. When you click it, it will open a little menu which shows which process or display causes the Nvidia GPU to be online, if any.

  1. Chrome/Edge flickers on certain sites and even causes full screen glitches.

This is caused by a compatibility issue of Chromium's hardware acceleration and the Intel GPU driveres. This can be (mostly) fixed by changing the Angle GPU Backend. To do that, open chrome://flags if you use Google Chrome or use edge://flags/#use-angle. Set it to either D3D11 or OpenGL. D3D11on12, which is the default, the issues are most prominent. For me on Windows 10, D3D11 fixed them almost completely. They still rarely appear on reddit but it's like once a week and only very briefly. If that still doesn't fix it, you might have to fully disable HW acceleration. Also make sure to update the Intel GPU driver as Intel supposedly improved the drivers in that regards. If that still doesn't fix the issue, add --disable-direct-composition-video-overlays to the startup parameter of your browser. For this to work, you have to disable the startup boost on Edge. This should also work on any other Chromium baseed browser, until Intel or the Chromium team fixes the issue.

  1. WiFi exhibits high ping spikes (added by /u/Jakub0002)

If your WiFi connection suffers from sudden high ping spikes that have no other explanation, you might want to disable Smart WiFi in the MyAsus App. It is intended to prioritize certain types of traffic, but it can get in your way and cause packets to get delayed too much.

I might expand this post when I find new stuff or better solutions to common issues or "improvements".

Hopefully, some of you finds this helpful and enonjoy their device even more.

References

@FckTrend
Copy link

Thank you so much, been struggling with sleep for a long time!

@sebastianwis
Copy link

Thank you!!! The keyboard flickering was such a pain.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment