Tackling a USB device enumeration error in OS X
USB is perhaps one of the most convenient I/O technologies for computing systems, and supports a variety of different peripherals, including printers, mice and keyboards, audio interfaces, and storage options, among many others. When you connect a USB device, the system should recognize it and load a proper driver in a process called USB enumeration, but if this fails in OS X, then you might see little or no activity from the device and a repeated message in the OS X console that states the system was not able to enumerate the device.
USB enumeration is a fairly complex process that involves detecting the device, identifying its speed, getting its configuration and description information, assigning port addresses and loading drivers for the device, but to the lay person it essentially means the device is detected and properly loaded for use. If an enumeration error occurs in OS X, the system will try several times to get the necessary information from the device for loading it, but if not then the system will eventually give up.
An enumeration error will generally happen because the device is not working, a driver is corrupt, or a communications error is occurring. In these cases, there are several things you can do to address the problem:
- The device is not working
If the device is not showing any indication of activity, such as power to lights or motorized components, then it may be receiving just enough power to turn on the controllers but not communicate with them properly. In these cases you can try using an external power adapter if the device will accept one to keep from using the less-reliable bus power from the computer. Additionally, the device might need to be reset, which can sometimes be done by unplugging it for a while; other times it may require depressing a special button.
- Corrupt drivers
Another possibility is if the system cannot load the driver for the USB device. While many USB devices contain a generic driver, which can be passed to the OS for use, often the system may have a more-featured stand-alone driver that it uses to run the device. If these drivers are corrupt, outdated, or otherwise have an incompatibility with the system or the device itself, then you may run into an error loading the device. In this case try updating the driver from the manufacturer's Web site, or uninstall a previously downloaded one and rely on the generic ones in the device or which shipped with the OS.
- Communications errors
A final reason why an enumeration error could be occurring is if there is a communications error between the device and the computer. USB cables usually fit snugly in their ports and make relatively secure connections, but if the connection is dirty or loose then even if the device is receiving power, the system may not be able to properly communicate with it. Therefore, try unplugging the device and plugging it back in, or try cleaning the cable and the device's contacts to ensure there is proper communication.
In addition to cleaning the device's contacts, you can also try using a different USB port on your computer and swap out the cable for a new one, since kinks or other faults in the cable could result in poor communication with the device.