Welcome to Pete Brown's 10rem.net

First time here? If you are a developer or are interested in Microsoft tools and technology, please consider subscribing to the latest posts.

You may also be interested in my blog archives, the articles section, or some of my lab projects such as the C64 emulator written in Silverlight.

(hide this)

Hordes of USB Devices. Maybe too many USB devices

Pete Brown - 13 June 2011

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.

image

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.

image

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 :)

image

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.

   
posted by Pete Brown on Monday, June 13, 2011
filed under:    

5 comments for “Hordes of USB Devices. Maybe too many USB devices”

  1. Tomsays:
    Yes, I've always found it annoying that drivers have to be reinstalled when you switch ports. I've never found any explanation for why that is, though. Of course I have my suspicions.

    Regarding your C910 webcam, did you install Logitech's driver for that or just use the Windows USB video device class driver? Does it work ok? Just curious because I'm thinking of upgrading from an older Logitech webcam sometime. Thanks.
  2. Petesays:
    @Tom

    Scott Hanselman and I both have the same webcam (and almost identical computers since we spec'd them together as a project). The auto-detected drivers for the C910 are the WORST things in the world. I would get a blue screen after log-in every time.

    Download the latest drivers from logitech before hooking up the webcam and you'll be fine. Took forever to figure out the webcam was the cause of the bluescreen.

    Pete
  3. Petesays:
    @Neyah

    Thanks. I have to say, though, that with so many device manufacturers doing this, the spec must not be robust enough. I blame USB.

    It's like people blaming Windows for video driver crashes. :)

    Pete
  4. Tomsays:
    Thank you both for the information. Raymond to the rescue as usual!

    It seems to me that the OS could break devices into two categories for this purpose: 1) devices that have only ever had one of them plugged into the current computer, 2) devices that have had multiple of them plugged into the current computer AND do not have unique serial #'s. Then users could suffer the inconveniences of driver re-installations, changing device names, and lost/mangled settings only for those relatively few devices that fall into the second category.

    I suppose that would be more difficult to implement, though.

Comment on this Post

Remember me