Windows 10 Desktop PC will not go to sleep automatically based on set idle timer no matter what I try. What else can I try?
I have a Windows 10 Desktop PC I built recently with all new parts, Windows is fully updated, as are all drivers, BIOS, etc. I had a problem with my PC waking up from sleep randomly at night, and then staying on all night, so I disabled all possible wake timers, which seems to have fixed that issue; however, now the PC stays asleep until I press a key on my keyboard.
- My PC does not go to sleep automatically by itself based on the timer I set in Power Settings (presumably this is why it would stay up all night after automatically waking up with the previous issue above)
- When I try specific programs to make only the monitors go to sleep, such as Turn off LCD and NirCmd, the monitors turn off for 1 second, then turn back on, so that is perhaps a clue
I've tried virtually everything [screenshots below] and nothing makes my PC go to sleep automatically when idle, including disabling all Wake Armed devices in Device Manager, which didn't fix it either, so I only left the Keyboard enabled to ensure I can wake my PC when I manually put it to sleep. I do not want to reset anything as it's taken me a long time to get my PC configured just right and fix the issue of my PC waking randomly from sleep.
-
Advanced Power Settings:
-
Power Troubleshooting Results:
- Group Policy Sleep Settings set to ensure automatic sleep:
-
powercfg
:-
devicequery wake_armed
:HID Keyboard Device (003) HID Keyboard Device (004)
-
-energy
: 14 Errors, 9 Warnings, 58 Informational (rebooted, didn't touch anything) -
-requests
:DISPLAY: None. SYSTEM: None. AWAYMODE: None. EXECUTION: None. PERFBOOST: None. ACTIVELOCKSCREEN: None.
-
What else can I try to find out what in the world is keeping my PC from sleeping automatically and fix this issue, considering powercfg -requests
returns everything as none
?
FINAL UPDATE: With the help of a combination of everyone's suggestions (see my answer below), I was able to find the culprit: Creative Pebble V3 external speakers connected via USB-C. I updated its Firmware and it resolved the problem.
Solution 1:
Try to disconnect PSU USB 'corsair link' cable as googling corsair link sleep has people talking about that being problematic. In the comments you electronically disabled all your devices, please physically disconnect everything possible except for keyboard, might want to even try another one of those. This is a normal troubleshooting step that Microsoft recommends & Level 2 techs at HP (I was a lvl1 tech there) suggested, process of elimination. No one is saying disconnecting everything will BE the fix, it will help us understand IF ANY of the devices are problematic. If not then we know its not those pieces of equipment.
Solution 2:
What you have done should have been enough, but is not working. You have done everything we could think of and answered all our questions, but Windows is still behaving in an abnormal manner.
Here are some more actions that you may take to check for and return Windows to a known state:
-
Run
chkdsk
to check for disk corruption -
Check the SMART data of the disk (for example using Speccy)
-
Run SFC and DISM:
DISM.exe /Online /Cleanup-image /Restorehealth sfc /scannow
-
If nothing is found do Repair Install of Windows 10 with an In-place Upgrade.
Solution 3:
A workaround that might work if nothing else is an AutoHotkey script:
#Persistent
if not A_IsAdmin ; powercfg must run as admin
{
Run *RunAs "%A_ScriptFullPath%"
ExitApp
}
SetTimer, IdleCheck, 15000 ; checks every 15 seconds for idleness
Return
IdleCheck:
If A_TimeIdle > 300000 ; adjust to however many milliseconds you want to wait before standby
{
RunWait, nircmd.exe execmd "powercfg -requests > "%A_Temp%\pwrcfg_output.txt" "
Sleep, 1000
FileRead, PwrOutput, %A_Temp%\pwrcfg_output.txt
If RegExMatch(PwrOutput, "DISPLAY:\r\n *None")
&& RegExMatch(PwrOutput, "SYSTEM:\r\n *None")
&& RegExMatch(PwrOutput, "AWAYMODE:\r\n *None")
&& RegExMatch(PwrOutput, "EXECUTION:\r\n *None")
&& RegExMatch(PwrOutput, "PERFBOOST:\r\n *None")
{
Run, nircmd.exe standby
}
}
Return
You can check to see whether or not the idle timer is not being constantly reset when there's no input by using the following script:
loop
{
Sleep, 500
Tooltip, %A_TimeIdle%
}
ESC::
ExitApp
The milliseconds in the tooltip should keep counting up without resetting when there's no mouse or keyboard input.
Solution 4:
After countless hours over many days, I was finally able to resolve this issue with a combination of all of the other solutions.
I used Aenfa's 2nd script which showed something was definitely continuously resetting the idle timer, so his short script would therefore allow me to easily tell when the idle timer was no longer being reset by something.
So then I followed gregg's solution and acejavelin's suggestion of physically unplugging peripherals. I just did one by one until I noticed the idle timer no longer resetting.
What was culprit? The Creative Pebble V3 external speakers connected via USB-C.
harrymc's had earlier suggested a driver issue. Although there was no new driver for these speakers, there was a Firmware update. So I followed his advice and updated the Firmware of the speakers and it finally fixed the problem.
I want to thank harrmyc, gregg, Aenfa, acejavelin, and all others for their help with this.
I find it completely absurd that PC Sleep issues with Microsoft Windows 10 require this much effort and detective work to simply find the culprit. It's 2021!