Is my Arduino Leonardo dead?

Hi,

I've been using an Arduino Leonardo for some time now, implementing some simple projects.

I wanted to continue today, but couldn't get the Leonardo to show up on my OSX macbook.
After some searching I see the following messages in my system log:

Feb 23 23:14:08 Dieter-Mac kernel[0]: USBF:    2839.206    The IOUSBFamily is having trouble enumerating a USB device that has been plugged in.  It will keep retrying.  (Port 2 of Hub at 0xfd100000)
Feb 23 23:14:08 Dieter-Mac kernel[0]: USBF:    2839.507    The IOUSBFamily was not able to enumerate a device.
Feb 23 23:14:09 Dieter-Mac kernel[0]: USBF:    2840. 38    The IOUSBFamily is having trouble enumerating a USB device that has been plugged in.  It will keep retrying.  (Port 2 of Hub at 0xfd100000)
Feb 23 23:14:09 Dieter-Mac kernel[0]: USBF:    2840.339    The IOUSBFamily was not able to enumerate a device.
Feb 23 23:14:10 Dieter-Mac kernel[0]: USBF:    2840.868    The IOUSBFamily is having trouble enumerating a USB device that has been plugged in.  It will keep retrying.  (Port 2 of Hub at 0xfd100000)
Feb 23 23:14:10 Dieter-Mac kernel[0]: USBF:    2841.170    The IOUSBFamily was not able to enumerate a device.
Feb 23 23:14:11 Dieter-Mac kernel[0]: USBF:    2841.703    The IOUSBFamily is having trouble enumerating a USB device that has been plugged in.  It will keep retrying.  (Port 2 of Hub at 0xfd100000)
Feb 23 23:14:11 Dieter-Mac kernel[0]: USBF:    2842.205    The IOUSBFamily was not able to enumerate a device.
Feb 23 23:14:12 Dieter-Mac kernel[0]: USBF:    2843. 45    The IOUSBFamily is having trouble enumerating a USB device that has been plugged in.  It will keep retrying.  (Port 2 of Hub at 0xfd100000)
Feb 23 23:14:12 Dieter-Mac kernel[0]: USBF:    2843.346    The IOUSBFamily was not able to enumerate a device.
Feb 23 23:14:13 Dieter-Mac kernel[0]: USBF:    2843.877    The IOUSBFamily is having trouble enumerating a USB device that has been plugged in.  It will keep retrying.  (Port 2 of Hub at 0xfd100000)
Feb 23 23:14:13 Dieter-Mac kernel[0]: USBF:    2844.178    The IOUSBFamily was not able to enumerate a device.
Feb 23 23:14:14 Dieter-Mac kernel[0]: USBF:    2844.710    The IOUSBFamily is having trouble enumerating a USB device that has been plugged in.  It will keep retrying.  (Port 2 of Hub at 0xfd100000)
Feb 23 23:14:14 Dieter-Mac kernel[0]: USBF:    2845. 11    The IOUSBFamily was not able to enumerate a device.
Feb 23 23:14:14 Dieter-Mac kernel[0]: USBF:    2845.541    The IOUSBFamily is having trouble enumerating a USB device that has been plugged in.  It will keep retrying.  (Port 2 of Hub at 0xfd100000)
Feb 23 23:14:15 Dieter-Mac kernel[0]: USBF:    2846.444    The IOUSBFamily was not able to enumerate a device.

Tried other ports, same thing.

I also tried on a different Linux laptop, and get pretty much the same error ("Enumeration failed. Read error -72" or something like that...)

Can hardly find any Google matches on Arduino + that log message.

Sooo... Not looking very good me thinks ...

Simple question: is my Arduino Leonardo dead?

If so: how can this happen...? Didn't do much weird stuff with it. Pretty basic small-voltage projects.

What happens when you press the reset button on the Leonardo?

dmjlambert:
What happens when you press the reset button on the Leonardo?

When I plug in the Leonardo, the green power led lights.

When pressing the reset button, the orange 'L' led lights up as long as I press the button.
I've tried many combinations of pressing the button and plugging in, but no success...

What's the "hardest" way to reset an Arduino?

When you press and release the reset button, does the L LED pulsate for a few seconds? During that time does a port enumerate that you can select in the IDE menu in Tools, Port?

Powering up or pressing the reset button are both hard resets. Sometimes sketches uploaded to Leonardo malfunction and make it difficult to upload the next sketch. In some cases the easiest way to recover is to burn a fresh bootloader on them, using an ISP programmer or using another Arduino as an ISP programmer. That's what I would call a pretty damn hard reset. :slight_smile:

dmjlambert:
When you press and release the reset button, does the L LED pulsate for a few seconds? During that time does a port enumerate that you can select in the IDE menu in Tools, Port?

Powering up or pressing the reset button are both hard resets. Sometimes sketches uploaded to Leonardo malfunction and make it difficult to upload the next sketch. In some cases the easiest way to recover is to burn a fresh bootloader on them, using an ISP programmer or using another Arduino as an ISP programmer. That's what I would call a pretty damn hard reset. :slight_smile:

Well it's probably most likely indeed that there's some bad code on there that messes with the Serial part (ie. USB communication right?).
However I've always been able to recover from that before using the "press reset button and release when the IDE says 'Uploading' "-trick. Not now though :frowning: .

Thanks for the tip on using another Arduino as ISP programmer. Gives me something extra to try, and it seems like a nice new project to get that working.
I'm assuming the Leonardo is probably recoverable, just not sure in what state it is right now.

Is the enumeration error consistent with 'bad code' behaviour? Because I was a little spooked that I can find so little about this error (and one of the articles I find with the same error have the manufacturer requesting the user send back his device :confused: ).

dietervdw:
Is the enumeration error consistent with 'bad code' behaviour?

No not necessarily. The problem could manifest in many ways.

While the bootloader is running, the L LED pulsates. This USB device is presented by the bootloader code that runs in high flash memory, and which only runs when the board is reset, not when it is powered on or plugged in.

The USB port is enumerated again using a different PID number during normal run, after the bootloader is done running. The USB device is presented by the core Arduino code that runs in the "background" with the sketch.

Well dang!

I just plugged it in, uploaded a sketch and pushed the reset button a few times and lo-and-behold! It's working again.

I must have messed around with this for 2 hours yesterday, and now I get it going in litteraly 30s ...

Thanks for the advice guys, sorry for wasting your time :slight_smile: .