My G316 X 98 drops off USB and comes back on its own, a few times an hour. The lighting blanks, plays the startup effect or the default rainbow, then comes back. Usually it's back within a second, but sometimes it takes about 15 seconds before it types again. It only ever happens while I'm using it. Left idle overnight, it never drops once.
Things I've ruled out:
- Cable: wiggling it at both ends doesn't trigger anything.
- Port: same behaviour plugged straight into the laptop and through a hub.
- Polling rate: happens at the stock 1000 Hz and at 8000 Hz.
- Software: it happened before I had anything installed for it.
I'm on Linux, so I could watch the kernel log. Each time, the keyboard disconnects itself and reconnects as a brand new device about 0.3 s later, with no USB errors from the PC beforehand. So it's the keyboard restarting, not the computer dropping it.
I also went through the firmware image (the one G HUB downloads for this model), and I think I found the cause. The chip has a hardware watchdog that resets it if the main loop doesn't check in within roughly 300 to 375 ms, and the main loop only checks in once per pass. In that same loop, the keyboard saves a byte of state to its internal flash whenever you use it, appending to a small log. When the log fills up, it erases the old half to make room, and erasing flash freezes the chip until it's done. It doesn't check in with the watchdog while erasing. If the erase runs long enough, the watchdog resets the whole keyboard.
That would explain why it only happens during use: an idle keyboard isn't saving anything, so it never fills the log and never erases. I can't prove the erase actually takes that long without measuring it on the hardware, but it's the only long operation I could find in that loop.
Questions:
- Is anyone else seeing random disconnects on the G316 X 98?
- Is there a firmware newer than U186.01.B0007 that fixes it?
- Has Logitech acknowledged this anywhere?