Is USB unreliable by design or are there just so many broken devices around? [closed]

Often, I've had the case that some USB device starts behaving "strange" (e.g. not being recognized by Windows; not being recognized after waking from standby; being recognized only after plugging it off and on a few times; etc.) and that the problem can be fixed by

  • plugging the device into an active USB hub or
  • replacing the USB hub in question or
  • using another USB port of the computer.

I've had these same symptoms with various devices (external TV cards, USB hard drives, USB-to-serial adapters, phones connected via USB, ...) and with various computers and notebooks.

My naive assumption is that if I have a port that conforms to the USB standard, and a device that conforms to the USB standard, and use them together, they must work (at least on the hardware level, I've not even started talking about drivers yet). So the cause of this common issue must be that either:

  • The device manufacturers regularly don't implement the USB standard correctly, or
  • the PC and USB hub manufacturers regularly don't implement the USB standard correctly, or
  • the USB standard is so ambiguous that it is not guaranteed that two parts who think they implemented it correctly work together.

Which one is it?


Windows tends to take its sweet time when recognizing and searching/loading for drivers for newly connected hardware. This is exacerbated if:

  • it's a Microsoft mouse under Windows 7 - it will actually load software from the Internet displaying terms, conditions, and warnings, before enabling the device, at least on one type of Microsoft mouse

  • it's a USB device that actually consists of multiple "sub" devices - 3G modems and some cell phones I've noticed tend to actually present themselves sometimes as two or more devices.

  • sometimes completely randomly. It could be chipset drivers causing an issue.

It seems to me that if you connect a USB device under Windows to a port it hasn't connected before, it takes longer for it to load the driver for it.

So if you suspect an issue with a device, try connecting it under Linux (sometimes a tail -f /var/log/dmesg.log is needed to witness exactly how the kernel reacts to it) or OSX and see how things go. This should verify whether it is a Windows issue or not.

If your USB device needs a manufacturer provided driver, note that this driver may have bugs or other problems. Sometimes this is a source of problems, particularly with CD/DVD burners that come with accelerator or other weird drivers purporting to increase burning speed.

Last, USB devices themselves often, if not always, have on-board device firmware that may need to be updated, or may be buggy. So don't overlook updating the firmware on such devices.

USB hubs have a power draw limit, if you exceed this limit, problems could ensue. External USB hubs are sometimes problematic on their own. I've had more than a couple cheap external USB hubs that simply needed to be powered off and back on periodically.

Then there is the possibility a USB device may be physically damaged, or the port you are connecting it to, or the controller hardware within either the PC or the device itself.