The curse of the auto update
If your PC is running one of the dominant operating systems other than Linux or OSX, you are undoubtedly familiar with the feeling of being subjected to poorly timed software updates. Right before that big presentation or during an important pitch or tech demo, your computer boots up and everything seems fine. Lulled into a false sense of security, before your wifi kicks in and auto-connects to one of many open networks, you plug in the projector and stand in front of the board room. All of a sudden, out of the blue, a breaking change is installed (an unexpected and painful act of God).
While agile development and frequent (or daily) releases means you can always be up-to-date with the latest and greatest apps, short dev cycles, when not handled very carefully, introduce the possibility for inadvertent and breaking changes. Increasingly, I find that PC software updates from a variety of vendors occasionally don't maintain compatibility or backwards-compatibility across versions as specified in SEMVER. Excusable (for beta software) or not, these things happen. Knowing how to clear and update your devices drivers will save you a lot of time and let you keep your hardware and software in sync through updates.
Windows handles installing the latest drivers for unrecognized devices automatically, which is nice. When your drivers are out of date because of software advances, however, Windows doesn't always seem to auto-update the drivers. (I intend to investigate the reason for this and will report back if I make any progress on how you can avoid these kinds of version discrepancies entirely.) Error feedback is peculiar because when a device driver fails, the machine will display a notification saying "The USB Device is Unrecognized." At this point, you'll want to update your drivers, but if that happens automatically, then how do you proceed?
The key to updating failing drivers is to remove the old drivers and trick Windows into thinking that you're plugging a USB device in for the first time. I had an "opportunity" to take some screen shots during this process when SteamVR auto-updated, outpacing my HTC Vive device drivers. (For the record, the hardware and software is all in beta, and these breaking changes are totally excusable and expected. Valve is still awesome.)
Fix failing drivers
The process for removing drivers is simple, just a little hidden.
- Plug in your failing USB Device. This will help you identify the issue. Notice the nondescript warning notification that appears in the lower-right corner of your desktop for a few moments.
- Hit the Windows key, search for, and open your "Device Manager"
- Look through the list for things that have a little yellow symbol. Most likely, failing USB drivers will be under "USB Controllers"
- Uninstall the failing driver by right-clicking on the list item and selecting "uninstall"
- Unplug your USB device and restart your computer. Note that on some Windows laptops, you can't just select "shut down" because it sends the machine into hibernate mode and it won't actually restart. Make sure you do a real "restart" instead.
- After your PC starts back up, plug the USB cable back in. After a moment or two, you'll see an additional icon in the task bar that fills with green progress. It will exit automatically when it's complete.
NOTE: In the case of the HTC Vive (Pre), it is important that you reconnect the cables / link box in the right order after restarting to get the drivers to install properly.
- Unplug the orange cables that connect the link box to the HMD if necessary.
- Plug in the link box power cable and the HDMI cable that connects the link box to your PC (making sure it's plugged into the graphics card).
- Next, plug in the black USB cable that connects the Link Box to your PC.