Leonardo USB -- device not accepting address, unable to enumerate.

I am getting the following error in dmseg on Ubuntu 12.10 as well as Ubuntu 10.04 when I attempt to program my Leonardo over USB.

[275401.132287] usb 6-2: new full speed USB device using uhci_hcd and address 2
[275401.256304] usb 6-2: device descriptor read/64, error -71
[275401.480284] usb 6-2: device descriptor read/64, error -71
[275401.696285] usb 6-2: new full speed USB device using uhci_hcd and address 3
[275401.816281] usb 6-2: device descriptor read/64, error -71
[275402.040099] usb 6-2: device descriptor read/64, error -71
[275402.256276] usb 6-2: new full speed USB device using uhci_hcd and address 4
[275402.664288] usb 6-2: device not accepting address 4, error -71
[275402.776285] usb 6-2: new full speed USB device using uhci_hcd and address 5
[275403.192307] usb 6-2: device not accepting address 5, error -71
[275403.192345] hub 6-0:1.0: unable to enumerate USB device on port 2

This same error (or similar enough, some of the addresses and times changed of course) occurred on both a custom built desktop computer with an old VIA motherboard as well as my much newer Asus UL30-A. However, my friend was able to get it to program perfectly fine using his computer (also running Ubuntu).

Clearly the boards work, so this seems like it is either an issue with Linux drivers (although 12.10 is about as modern as it gets in terms of kernels), hardware (perhaps my desktop and laptop are too old and have some hardware compatibility), or software (perhaps the arduino IDE doesn't quite work right for some unknown reason).

I'm at a loss as to how to troubleshoot this one. It readily programs on one computer, but on both of mine it doesn't. Are there any known issues with hardware level incompatibilities between USB ports and the Leonardo? This seems like it might be a fairly major issue since it effects both of my computers, and both are less than five years old for the motherboards at least... it must effect a reasonable number of other people who similarly can't afford to purchase a new computer more than once every five years or so.

Brian

Figured it out (hopefully). Bad USB cable. Odd that it worked with other devices, but problem solved.

My leonardo works 75% of the time, and then randomly this will occur after a reboot. I cannot get it to correct itself unless I reboot my box. Between this and the constant bouncing between ttyACM0 and ttyACM1 the Leonardo is driving me crazy.

Solved it by installing Service Pack 3 for windows XP. Thanks for all your help.

I've found that changing USB ports works for a while. Eventually the new port will do the same thing. Moving back doesn't work, it's like the USB port gets stuck. Only solution I've found (on Fedora Linux) is to reboot.

Because the USB handling of the Leonardo is slipped in as part of your sketch by the Arduino library, if your sketch is doing something evil (like getting stuck in an infinite loop, or not sleeping very often), it won't respond correctly to USB (which requires pretty much constant attention). You can test this by uploading something like BareMinimum and seeing if you still have connection problems. To upload in this situation you will normally need to hold down reset, press upload in the IDE, and then release reset just as the IDE says "Uploading...". This is because the routine that responds to upload attempts will not be running, and you need to ensure that the upload attempt happens while the bootloader is running.

Posting to this ancient thread because this just happened to me and since Google sent me here I'm assuming it will send other people here too :slight_smile: