I had to replace a bad USB hub over the weekend (I replaced both
with two identical powered hubs), and ended up doing some USB
troubleshooting at the same time. As you probably know, not all USB
ports are created equal, and some things (like my Novation
X-Station and my Samson C01U) are both very picky about where
they're plugged in.
In any case, I mentioned on twitter that I thought I had around
22 USB cables hanging off my PC. Here's the list of items:
Always Connected and Powered On
- Mouse (Microsoft Wireless Laser Mouse 6000)
- Keyboard (Microsoft Natural Ergonomic Keyboard 4000)
-
Logitech C910 Webcam (this is my main webcam)
- Microsoft Cinema HD webcam pointed away from desk so I can see
when people come in the room (I can't see over the 30" monitors.
Yeah, definitely a first-world problem)
-
Novation X-Station 25 (used as synth, ASIO-compatible high-perf
sound card, and MIDI interface for my other synthesizers)
- Western Digital backup drive (backup software automatically
runs) - on USB 3 Port
- HP Laserjet 1320 Printer
- Epson Scanner
-
Samson C01U USB Microphone (the mic I use for all calls and for
recording video)
- Two
Cables Unlimited Multi-TT Powered USB Hubs
-
Dr Who TARDIS USB Hub
- Xbox wired PC controller
Always Connected, but not always powered on
Transient Connections (Cables are there, but devices not always
connected)
- One USB Mini, for my old phone and for grabbing photos off my
HD camera
- One USB Micro for my Netduino
projects
-
- Once in a while I'll plug a b-type cable in as well, as some of
the older NETMF boards use those clunky things. The cable isn't
always attached, though)
- One USB Micro cable for Kindle/WP7 charging and sync (opposite
side of desk from Netduino)
- Bluetooth thumb used to control bluetooth-enabled robots
Others
-
Thermaltake eSata BlacX for loading raw drives. Not USB. Useful
for getting information from old PCs, and for fixing my relatives'
machines.
- Network cable, two monitors - the usual.
- Any number of thumb drives I use to share files with other
computers, and backup presentations when heading to a
conference
Recently Retired and No longer Connected
- My Office Communicator phone. I do all my calls directly
through the PC using Communicator or Skype rather than rely on an
external Communicator phone.
So, not counting the eSata stuff, that makes 21 USB devices, 3
of which are hubs, the rest of which are actual "things". Yes, I've
definitely run into bandwidth concerns, and have to be smart about
which ports and controllers I combine things on. The x-station and
C01U, in particular, love their bandwidth as they both send audio
information back to the PC. Webcams love it too, of course.
Have we pushed USB too far?
If you go into a musician's studio, you'll find that many of the
new synthesizers and modules use MIDI over USB (and often audio
over USB) rather than relying on MIDI cables. Most new pro sound
modules/interfaces are USB or dual firewire.
As we head towards more and more USB devices on our machines,
many of which use a ton of bandwidth, I can't help but think that
even with USB3, we've pushed this design a little too far. I mean,
I shouldn't have drivers re-installing just when I connect the
device to a different port on a hub. There shouldn't be such port
affinity for devices (all USB ports should be equal), and the
bandwidth sharing that you run into when using hubs (especially
those of you with 14 port hubs) is annoying. And, for sure, USB
devices shouldn't be able to crash your machine (yeah, I know).
There are also distance limitations with USB that prevent you being
able to do things like, oh, run a USB cable around the corner so
you can watch the front door with your webcam :)
Apple is putting a newer interface called Thunderbolt
on their latest generation machines. This was developed by Intel,
but will first appear on various Apple machines. If this takes off,
I hope to see it on PCs soon and adopted by some of the makers of
the more high-bandwidth devices to help offload some of the traffic
from USB. Thunderbolt is (among other things) basically PCI in
serial form, so the bandwidth is there. As to driver behavior -
that remains to be seen.