Tuesday, March 2, 2010

Bluetooth on Windows

A few weeks ago, I wrote about Bluetooth on Linux. My Dell D430 laptop was purchased without a Bluetooth card, so I bought a third-party USB adapter to provide Bluetooth. With Linux, it was as easy as plugging in the adapter, and it worked immediately.

I tried the same test under Windows 7. To give Windows credit, the Bluetooth adapter worked, and it really was just a matter of letting Windows do its thing to load support. But it wasn't immediate.

Upon plugging in the adapter, Windows popped up a little information balloon in the lower-right corner of my desktop, telling me it was loading support for a new device, and I could click on the balloon to see details. Curious to see what Windows was doing, I clicked the information balloon (just in time, right before it faded away) and saw this:

I'm not sure where "Generic USB Hub" or "USB Input Device" come from, but I'm guessing Windows probably thought the adapter was a kind of USB hub, like for keyboards and mice (typical input devices over Bluetooth.)

After a few minutes (and I'm not exaggerating) Windows finally finished loading support for this little adapter, and I saw this:

My desktop's top bar then sported a Bluetooth icon, just like Linux. So while Windows supported my Bluetooth adapter like Linux did, the process took a long time. If I hadn't clicked on that information balloon at the beginning, I would never have known what was happening, and probably would have assumed Windows didn't support the adapter.


  1. Kind of a toss-up, both operating systems were able to support the adapter. But I'd say a slight advantage in Linux's favor on this one, since Linux took must less time to load Bluetooth support than Windows did.

  2. "Generic USB Hub" is the software to drive - well, a USB specifications compliant hub such as the one built into the computer. Hardware in a USB setup can be one of HOST, HUB, or DEVICE (the gizmos you plug in such as memory, cameras, etc). Personal computers generally have an internal USB HOST and an internal HUB while many embedded machines only have HOST hardware. The "USB Input Device" would be a USB Human Interface Device (HID) driver; the device can be the mousepad of the computer or even the computer's keyboard; these are often internally connected to the USB bus these days rather than to an internal PS/2 serial bus. In short, those things you saw displayed with green check marks represented drivers already installed for devices which were already operational.

  3. No, actually those first two items didn't have checkmarks next to them when the process started. It just took me a little while to realize I should get a screenshot of the progress popup window, so Windows had loaded them already by then.

    Windows really did load support for "Generic USB Hub" and "USB Input Device". Hence my guess that Windows assumed the adapter provided these functions.

  4. Well, I must admit that's me confused. You would have thought driving a bluetooth adapter over USB would have been a matter of a pre-installed generic USB driver and maybe grabbing a generic bluetooth driver from the internet. But there's at least one propriety driver in that list and why in the nine hells wasn't USB installed by default? Or, probably closer to the mark; why does Windows need a separate instance of each driver for each port? Despite primarily using windows myself, I'm with you JH. This is a fairly clear Windows fail.


Note: Only a member of this blog may post a comment.