Storage

Get IT Done: Troubleshoot USB problems in Windows XP

Solve common USB problems on Windows XP


While I think it's fair to say that USB devices are generally easier to configure and less prone to problems than their serial- and parallel-based ancestors, problems can still occur. When USB devices fail to function properly in Windows XP, you should tailor your troubleshooting efforts to the type of problem and when it occurs. Here are some examples of the more common USB configuration problems, and their corresponding solutions.

USB problems after Windows XP upgrade
As with other peripherals, it's not uncommon for USB devices to cause problems after upgrading a computer from Windows 98, Me, or 2000 to XP. If you encounter a problem after upgrading, you'll first want to determine whether the device is compatible with XP. Check the Windows XP hardware compatibility list (HCL) and manufacturer’s site for information regarding XP compatibility. You should also download and install the latest device drivers.

Unfortunately, neither action is guaranteed to solve the problem. I've seen devices listed on the XP HCL not function properly and devices not listed on the HCL function perfectly, depending on the particular driver used. Sometimes it just comes down to a process of trial and error. For more information on ensuring your hardware plays nice with Windows, check out this TechRepublic article from John Sheesley.

Windows XP's failure to recognize any USB devices
When Windows XP won't recognize any USB device, regardless of which port it's connected to, there is likely a BIOS or Windows configuration problem. On some computers there is a configuration option in the BIOS that asks whether an IRQ should be assigned to USB. Although the option's actual wording varies among BIOS manufacturers, you must enable this option by setting it to either On or Yes (depending on your BIOS manufacturer and BIOS version). Otherwise no USB devices will work on XP.

A problem with Windows XP’s USB Controller configuration can also prevent any USB devices from working. To determine whether the USB controllers are working properly, open Device Manager and expand the Universal Serial Bus Controllers node. Beneath this node, you should see a USB Universal Host Controller and a USB Root Hub. Depending on your PC, there will either be a USB Universal Host Controller and a USB Root Hub listed for each of your computer’s USB ports or a USB Universal Host Controller and USB Root Hub for multiple ports.

All of my test machines, for example, have a separate USB Universal Host Controller and USB Root Hub entry for each USB port, as shown in Figure A, while my editor's HP Kayak has a single USB Universal Host Controller and USB Root Hub for both his machine's ports. I'm not entirely sure why this is, but I assume it depends on the PC's motherboard. Some motherboard manufacturers may place multiple ports on a single USB controller while others place each port on a separate controller.

Figure A
Expand the Universal Serial Bus Controllers node to look for problems.


Regardless of how many USB Universal Host Controller and USB Root Hub entries your PC has, if any of the icons have a red X over them, they've been disabled. If a device is disabled, you can enable it by right-clicking the device and selecting Enable from the resulting shortcut menu.

While you have Device Manager open, I also recommend you check the driver that is being used for your USB ports. To do so, right-click on a USB component and click Properties and select the Driver tab. Unless you are running some abnormal hardware, the Driver tab should list the Driver provider as Microsoft, as shown in Figure B. The Digital Signer should be Microsoft Windows XP Publisher. If you have anything else, then you have a couple of options available to you.

You could supply a new device driver by clicking the Update Driver button. If, on the other hand, you had recently updated the driver and then started having problems, you could click the Roll Back Driver button to revert to the previous version.

Figure B
The Driver tab should list Microsoft as the Driver Provider and should list Microsoft Windows XP Publisher as the Digital Signer.


If the driver appears to be OK, but you can’t seem to make any USB device function, then use the Uninstall button. This will allow you to remove the driver completely and make Windows think that the USB ports don’t even exist. After doing so, you can return to the System Properties sheet and click the Add Hardware Wizard button. This will allow Windows to redetect your computer’s USB ports. Normally, during the redetection process, Windows will try to enable the ports using the standard Microsoft drivers. Assuming that there is nothing physically wrong with your computer’s USB ports, this should fix the problem.

Bandwidth and power problems
Another common problem with USB devices is that you can only use so many USB devices simultaneously. This is because each USB 1.1 port is limited to 12 Mbps (megabits per second) of bandwidth (USB 2.0 allows for 480 Mbps) and 500 mA. If you exceed either of these limitations, then the USB devices will cease to function.

Let’s take a look at bandwidth limitations first. Unfortunately, I can’t tell you the exact number of USB devices that will exceed your bandwidth limitations and there is no Performance Monitor option to examine USB bandwidth. The type of USB device and how the device is used both affect the amount of bandwidth the device consumes. For example, scanners and digital cameras tend to consume a lot of bandwidth because they transfer large chunks of data to the computer. At the same time, though, a scanner will consume almost no bandwidth unless you are actively in the process of transferring data.

The best way to tell if you might be exceeding your USB bandwidth limitation is to take a look at the number of devices connected to a particular USB port, how those devices are being used, and then apply some common sense. If you have many USB devices connected or your devices tend to transmit and receive a lot of data, then you could be pushing the limits of a port's available bandwidth.

Power consumption is a lot easier to figure out than bandwidth consumption. To figure out how much power you are consuming, there are a few things to keep in mind. First, each USB port on your computer supplies 500 mA. This 500 mA has to be shared among all devices connected to it. If you connect a single device to a USB port, power consumption isn’t a consideration, because most USB devices only consume around 100 mA.

Things start getting interesting when you start connecting USB hubs. If you connect a USB hub to a USB port, then the port’s 500 mA must be shared between the USB hub and all of the devices connected to the hub. You can also daisy chain USB hubs. If you daisy chain USB hubs together, you can have up to five hubs connected in a series. Remember, though, that 500 mA must be sufficient to power all connected hubs and devices. A USB hub does consume power, even if no other devices are connected to it.

To get around this problem, many manufacturers have started making USB hubs that have an external power supply. If you have a USB hub with an external power supply, the power supply will supply a total of 500 mA to the hub. This means that if you have multiple powered hubs daisy chained together, then each hub will be self sufficient and will consume almost no power from the computer’s USB port or from other hubs in the chain.

Even if all of your hubs are powered, though, there are still limitations that you must be aware of. First, the five-hub limit still applies whether the hubs are powered or not. The other limit is that you must still avoid overburdening any one hub with USB devices with excessive power consumption. Finally, external power sources do nothing to provide extra bandwidth. If you were to interconnect five hubs with four devices each, you could connect 20 USB devices to a single USB port, as long as none of the devices had excessive power consumption. At the same time, though, these 20 devices would have to share the 12 Mbps of available bandwidth.

When I first started talking about power consumption, I said that it is easier to determine whether you are using too much power than it is to determine if you are using too much bandwidth. Windows will actually tell you how much power your USB devices are using. Before I show you how to figure this out, though, there is one thing that you need to understand. The number that I am about to show you doesn’t actually measure power consumption, but rather how much of the USB port’s power is being used. Remember that you can have powered USB hubs connected to the computer. If a powered hub is connected, then the devices will be feeding off of the hub’s power, not off of the computer’s power. Therefore, the computer will show you that there is very little or no power being drawn from the USB port.

To view USB power consumption, return to the Device Manager, right-click the USB Root Hub entry, and click Properties to display the USB Root Hub Properties sheet. Select the Power tab and you will see how much power is being drawn from the USB ports, as shown in Figure C.

Figure C
The Power tab shows how much power your USB devices are drawing.


If a device (or a combination of devices) draws too much power, then the hub will usually turn off the port. To get the port to function again, you must disconnect the device and reattach it to the port. Depending on the type of hub that you are using, there may also be a dialog box that prompts you to reset the port.

Troubleshooting a specific USB device
If you are having trouble with one particular USB device rather than with all of your USB ports, there are some relatively easy steps that you can take to get the device working. I recommend unplugging all USB devices from the system, including USB hubs. Next, take a known good USB device and attach it to the system. If the known good device works, then you can be sure that there is nothing wrong with the port itself.

Now take the device that was malfunctioning and plug it directly into one of the computer’s USB ports while no other USB devices are connected to the system. If the device starts working, there are a couple of possible reasons for the earlier problem. More than likely, the device was conflicting with another USB device. One way that USB devices can conflict with each other is if they share a common serial number. Each USB device in a system must have a unique serial number. Having two devices with a common serial number is very rare, but there are documented cases of it happening.

If the device now works and it isn’t sharing a serial number with another device, it more than likely was malfunctioning due to an overloaded USB hub or a conflicting device driver. The only real way to sort out the problem is to use trial-and-error by plugging in various combinations of USB devices until you find the device or devices that the malfunctioning device is conflicting with. Once you track down the offending device, you can often solve the problem by moving the devices to different physical USB ports or by updating the drivers for both devices.

If plugging in the malfunctioning device without any other USB devices being plugged in doesn’t cure the problem, you aren’t completely without options. I recommend checking the computer’s Event Logs for clues to the malfunction. If the event log doesn’t give any clues, try plugging the malfunctioning device into another computer. If the device works on the other computer, then you can be sure that the device is good.

If the alternate computer is using an operating system other than Windows XP, it could be that the device or its driver isn’t Windows XP-compatible. If this is the case, you might call the device’s manufacturer to see if there are any known issues with using the device with Windows XP. I have run into a couple of cases in which a USB device simply required a new driver and a firmware upgrade to work with Windows XP.

If the alternate computer is running Windows XP and the device is working, then I recommend checking out what version of the device driver is being used on each machine and using the one that works, even if it isn't the most recent.

Editor's Picks

Free Newsletters, In your Inbox