Windows – Why is the keyboard and mouse freezing periodically while connected to another device over USB-to-serial

dell-xpsfreezeusbwindows 10

I am programming and debugging external devices such as Arduino and Atmel ARM chips (in electronics development). Whenever I connect via serial (USB-to-serial), I notice that my keyboard and mouse (both external USB) periodically freeze, symptoms such as:

  • No mouse cursor movement for a second or two
  • No keyboard input registers for a second or two
  • Keyboard strokes repeat like a stuck or sticky key (e.g. keeeeeeeeeeeyboard)
  • Sometimes the Windows sound of USB disconnect/connect will also happen, suggesting that the USB hub has rebooted or something

To trigger the issue, I needed to only connect to the external device using PuTTY, XCTU, or the serial monitor within Arduino's IDE. Terminating the connection would resume normal USB operation.

I've tried:

  • Different keyboards and mice
  • Different USB ports
  • Disabling unused USB hubs/ports
  • Remove all other peripherals including Dell D6000 docking station
  • Ensuring Windows 10 (Pro) is fully up to date
  • Updating driver software
  • Updating motherboard BIOS
  • Removing applications (unneeded or presumed to have potential to interfere)
  • Windows Registry tweaks, such as disabling serial mouse support/detection

Nothing has worked. I'm about to sell this computer and become a Mac user.

How can I troubleshoot this USB-input freeze issue? Are there any tools to investigate what's going on at a deeper level? I've not been able to see anything unusual with Process Explorer, Process Monitor, etc.

I'm using a Dell XPS 9570 with Windows 10 Pro. The CPU is an Intel Core i9-8950HK and the machine has 32 GB RAM.

Best Answer

After a couple of days of being very frustrated and not sure if it was an OS or hardware problem, I started to zero in on model-specific complaints. I found this thread on Dell's support forum.

For me the issue has been solved. It came down to two suggestions by forum users:

  1. In BIOS, under Performance, disable C-States Control.

    This option enables or disables additional processor sleep states.

    The forum poster mentioned that this may incur higher power usage and temperatures.

  2. Also in BIOS, under System Configuration > Thunderbolt Auto-Switch, disable Auto Switch. Click 'Apply', then check Native Enumeration.

    This option configures the method used by the Thunderbolt controller to perform PCIe device enumeration.

I am not sure if only one of these changes solved the issue, or if both were required.

Related Question