TL;DR After a lot of testing and isolating devices, I’ve determined that the RK G68 RF receiver for my swanky new mechanical keyboard causes my Windows 10 machine to wake up immediately after putting it to sleep. And I’m not sure how to fix it.
Join me on an epic journey of heartbreak, anger, loss, triumph and sadness as I try to diagnose some sleep issues.
—-
So, the issue is that if I manually put my computer to sleep (Start Menu -> Power -> Sleep
), the machine goes to sleep, fans turn off, and all that. Sweet! Then, after about 5 seconds, it wakes right back up. Uh, what?
I’ve done a number of debugging and testing steps which I’ll outline below (hopefully, this helps some folks in the future).
Let’s do a couple of finger stretches, put on our hacker pants, and open up PowerShell (with admin access). We can run a nifty command called powercfg /requests
I see the following output:
DISPLAY:
None.
SYSTEM:
None.
AWAYMODE:
None.
EXECUTION:
None.
PERFBOOST:
[DRIVER] Legacy Kernel Caller
Power Manager
ACTIVELOCKSCREEN:
None.
Great! But not really super helpful. We visit our friend, Google, and I see that there is a command to disable this:
powercfg -requestsoverride Driver "Legacy Kernel Caller" System
You haven’t lived until you’ve copy and pasted random commands from the Internet into your terminal. Let’s do it! I run that and make the computer go to sleep again. Monitor turns off, fans spool down. Yes! Yes?
Obviously, it immediately wakes up. No dice.
Ah, ha! Maybe read the command first, dude? The issue here is that the Legacy Kernel Caller is in the PERFBOOST category, not SYSTEM category. That’s easy to fix.
…but it isn’t.
Of course, you can’t actually disable the driver for items in the PERFBOOST category. Of course.
Hey, Google…
Next up: A suggestion to check waketimers. I have no idea what that is, but sure: powercfg -waketimers
There are no active wake timers in the system.
Okay.
Yo, Goooooooogle… again!
Ah, another command! powercfg -lastwake
Now we’re getting somewhere. We see that this is a USB device that is waking the computer:
Wake History Count - 1
Wake History [0]
Wake Source Count - 1
Wake Source [0]
Type: Device
Instance Path: USB\VID_25A7&PID_FA70\8&e5ec113&0&4
Friendly Name:
Description: USB Composite Device
Manufacturer: (Standard USB Host Controller)
But… how do we determine what it is? Looking at the path, we see VID and PID. That means:
Vendor ID: 25A7
Product ID: FA70
Let’s Google those: It turns out, the vendor is Areson Technology Corp
and it looks like they make RF receivers for various input devices, such as wireless mice. Interesting! No hits for the product ID. That’s fine, there’s probably more types of RF receivers on planet Earth than there are people.
But that gives me a starting point.
I decide to start unplugging various devices and put my computer to sleep.
- Unplug Logitech USB receiver: Still wakes up.
- Unplug Anker USB Bluetooth receiver / transmitter: Still wakes up. I feel like I’m not having much fun anymore.
- Unplug this random, unlabeled RF receiver: Hey, my keyboard input stopped working from my mechanical keyboard! Ah well. Go to sleep computer…
IT DOESN’T WAKE BACK UP!!!!
Victory. Party dance. Switch out the hacker pants for party pants. Now we’re getting somewhere!
I plug the receiver back in and open device manager. I go to the keyboard section (randomly, there are like 4 different devices listed there). I open the properties dialog box for each of them, go to the Power Management
tab and uncheck “Allow this device to wake the computer.
”
I got you now, pesky sleep problems! :blow-smoke-off-gun-gif-dot-com-dot-net:
I put the computer to sleep.
IT IMMEDIATELY WAKES BACK UP!
I’ll be honest. There was a lot of screaming, kicking, swearing. My dog got up and left the room (he never does that). I almost knocked over a coffee cup onto my keyboard and I DIDN’T CARE.
Okay, fine.
No big deal, really. I’m not okay, you’re okay.
On a hunch, I expand the Universal Serial Bus controllers
section inside the device manager. Sure enough, there are a bunch of things that say USB Composite Device.
You might remember from earlier (but probably not), that a “USB Composite Device” was called out using the --lastwake
command.
If you open up the properties for each USB Composite Device and go to the events tab, you will see the device ID in the information section. Keep looking until you find the device ID that was called out: USB\VID_25A7&PID_FA70\8&e5ec113&0&4
Click. Close. Click. Close. Click. FOUND IT!
Device USB\VID_25A7&PID_FA70\8&e5ec113&0&4 was configured.
Driver Name: usb.inf
Class Guid: {36fc9e60-c465-11cf-8056-444553540000}
Driver Date: 06/21/2006
Driver Version: 10.0.19041.488
Driver Provider: Microsoft
Driver Section: Composite.Dev.NT
Driver Rank: 0xFF2003
Matching Device Id: USB\COMPOSITE
Outranked Drivers:
Device Updated: false
Parent Device: USB\VID_0BDA&PID_5411\7&b8f002b&0&2.
Sweet, now to just open up the Power M…. THERE IS NO POWER MANAGEMENT TAB.
My dog came back. He immediately left again. You can probably guess why.
Back to Google again:
“Ensure drivers are updated”.
Okay. Sure. Blah, blah. But maybe it’ll work. It won’t though. I already know. Who am I kidding?
The best drivers for your device are already installed.
Fine. I’ll just uninstall the driver.
Oh, cool, now my keyboard doesn’t work.
BUT YOU KNOW WHAT?! MY COMPUTER STAYS ASLEEP!
Head, meet Desk. Desk, meet Head.
—-
A few other things to note.
-
- If I have a USB-C cable plugged into the keyboard, it will stay asleep (even though the RF receiver is still plugged in).
- If I turn off the keyboard itself, it will stay asleep.
- If you just walk away from the computer, it will go to sleep (according to my power plan settings — 15 minutes). I suspect this is because the RK software (I’m on version 2, by the way, which I think just came out and the latest firmware) is setup to put the keyboard to sleep after about 5 minutes or so. I really haven’t tried to experiment with this because I DON’T CARE ANYMORE.
(I do care. Deeply. I just can’t right now.)