Are USB interfaces inherently buggy?

I have heard all kinds of nightmares about USB interfaces on various platforms. I have had a couple sleepless nights myself. Maybe in the not too distant future they will have some of the bugs worked out?

It does seem inconsistant, but most of the time it is something that can be worked around, like by unplugging the device then re-plugging, or plugging it into a different port (or unplugging it and throwing it out the window).

I have to say it has come a long way, but still far from true plug and play.

I disagree. Current USB hardware connecting with XP is straightforward and problem free 99% of the time. The main problems are seen on older USB hardware and OSes.

Seconded. I have two modern systems, 1 Mac and 1 XP Windows box. I also have a plethora (literally dozens) of USB devices, including the keyboard and mouse which I use for both systems by a USB switchbox & hub, switched several times a day. That also includes about a dozen flash drives and media readers which I use to test some software I’m writing, so they’re installed and removed several times an hour.

I haven’t had a mount failure on any of these devices in months.

The other secret (aside from modern devices and OSes) is POWERED HUBS if you’re going to use USB hubs. Many, many USB devices draw power from the port, and if you put two many of them (2 may be too many) on an unpowered hub, they’ll act flakey. Windows will usually tell you when you do this, I haven’t tried it on the Mac.

Actually, let me expand on that a little bit. On properly cared for* modern computers, NO modern hardware should be flakey, intermittent, or failure-prone. I’m not saying that devices don’t fail now and then, or even that correctly-operating ones don’t occasionally have a hiccup. But if you have anything on your system that’s failing you on a regular basis, either it or the computer is broken, and should be fixed.

It amazes me the superstitious things people will do, and the errors they’ll put up with, because they think that “they’re all that way.” If your hardware is failing, go to the manufacturer’s web site and see if there’s a new driver. That fixes roughly 75% of all problems. Removing the manufacturer’s driver altogether and letting Windows handle it fixes another 15% or so. What’s left is stuff that’s broken - I repeat, NOTHING should be failling “intermittently.” That’s NOT normal, no matter how often people tell you it is.

*properly cared for:

  • No viruses, and virus software up to date
  • All Windows or Mac system updates in place
  • Outlook not installed
  • Firewall of some sort installed and running
  • User uses basic caution about programs downloaded, web sites visited, etc.
  • Physical machine not abused, dusty, vibrating, airflow blocked, etc.
  • Disks formatted with NTFS on Windows, or error-checked
  • User properly shuts machine down, etc.
  • No funky old drivers lying about
  • Computer has decent power, preferably a UPS or other filtered power (a surge suppressor is NOT good enough, especially if you get power failures or “brownouts.”

My big beef with USB is that it’s a slow, low-bandwidth interface, but everyone and their kid brother keeps trying to shoehorn fast, high-speed applications into it.

(And don’t bring up USB 2.0; it’s only a marginal improvement over the original)

High speed USB 2 (sorry, rjung) is more than a marginal improvement on paper, but is often let down by poor/cheap implementation and logistics such as the mix of devices that are plugged into the controller; a legacy USB1.1 device may drag all of the other devices on the bus down to its level; a bus-powered device may make unreasonable transient demands, causing others (or itself) to brown out; processes making isochronous transfers may be nobbled by other processes making bulk or interrupt transfers. That’s quite a few things that can go wrong, but it’s not really a correct summary to simply say that 2.0 is only a marginal improvement over 1.1.

My advice is simply: don’t buy cheap USB interface hardware (i.e. PCI cards or hubs).

This is simply wrong. There are obviously overhead issues that will limit maximum device IO in many cases, but in using a USB 2.0 compliant external hard drive and going from a 1.1 to 2.0 interface (on the same PC) the real world transfer rate increased by about 300%.