Windows 7 Device Manager Error (Code 10) - A Tale of Two Leonardo Boards

I recently purchased two Arduino Leonardo boards, one that I cannot connect to, an Arduino.cc version, the other I am able to connect to and upload the “Blink” sketch to, an Arduino.org version. (I purchased the second board due to problems with the first, but from a different distributor.) I would like to understand where the problem lies with getting the Arduino.cc version board to work. The steps in the install troubleshooting forum post did not correct the problem, and neither did any of the other tips I found online during days worth of online research.

My System: Dell Model E6420 Laptop; Windows 7 Enterprise, Service Pack 1, 32-Bit (used for both Arduinos)

Arduino.org Leonardo (successful upload): Windows recognized the device as PNP, and uploaded the correct driver. I burned the bootloader using a USBtinyISP, and then uploaded the “Blink” sketch using the Arduino IDE, version 1.8.3. The board responded appropriately, with the yellow LED blinking as programmed.

Arduino.cc Leonardo (unsuccessful installation): Windows does not recognize the board as PNP, so I have to manually load the driver from the Arduino IDE Driver directory. Upon loading, Device Manager gives the following error: “This device cannot start. (Code 10)” Attached is the setupapi.dev.log for the install. At the end of the Class Installer process, it reads: “Device not started: Device has problem: 0x0a: CM_PROB_FAILED_START.” My research discovered the following from a Microsoft developer regarding this error:

"CM_PROB_FAILED_START means that your driver loaded, passed through DriverEntry, passed

  • through AddDevice, and then failed during IRP_MN_START_DEVICE.*"

The install process calls up the Code 10 error, giving the following setupapi.dev.log entry: " Queueing up error report since device has a PnP problem…"

I am able to successfully burn the bootloader to this board, using the same process as the other board. However, I cannot upload the “Blink” sketch. During the upload process I get the following error message: “avrdude: butterfly_recv(): programmer is not responding.”

So, here’s my question. Is there something different between the .cc and .org versions of the Arduino Leonardo board that is causing this?

If this is not the case, I either have a defective board, or I damaged it while I was wiring up my project and unintentionally powered the board with an AC-DC adapter (14.5 volt)? I did have a motor controller shield driving two DC motors connected to it, along with some LDRs, a UV sensor, some limit switches, a LCD display and push button, and an on/off switch (which is suspect since it has an LED light that I correctly wired not to always be on, but is always on anyway - possible short inside the switch.)

Any insight would be greatly appreciated!

Don

setupapi.dev.log.txt (17.2 KB)

Double check your motor board as most have a jumper or track that needs to be cut so that you can supply that shield with its own power. Running motors of just an Arduino is never to be recommended as motors often draw too much for the Arduino to cope with. Add to that an LCD display which also tends to be power hungry and you have a recipe for failure.

There is not really enough difference between .cc and .org on the more common boards. each of the Arduinos pins have a maximum limit and exceeding that can cause issues. Also try stay below 10 volts as there have been a lot of reports about 12 volt or higher causing issues on some of the more common boards too.

The onboard regulator has to get rid of excess voltage which it does by way of heat dissipation in the regulator and in your case it has to dump 9.5 volts which is a lot.

By the sounds of it, I suspect something happened to the board when I unintentionally gave it 14.5 volts before even burning the bootloader. I was just fitting my boards and wires into my project, and forgot to unplug the AC-DC adapter.

Thanks for the good advice. I was planning a 12 volt power supply for the Arduino, as well as the motors that will be powered separately, based on the recommended range of 7-12 volts. However, given your advice and explanation on how the extra voltage is dissipated, will step the Arduino's power down to 5 to 7 volts. (I live in Las Vegas and don't need any more heat!)

I'm preparing to build a solar powered battery charger for a 12 volt battery, with backup from AC-DC adapter, that will power for both devices. I'll modify that to accommodate the Arduiono.

The LCD display is a small 16x2, and states it only draws 2.5 mA for the push button analog input and 0.15 mA on the 6 digital I/O pins it will use, according to the manufacturer. My research showed a recommended maximum of 20 mA on each pin, so should be well below that.

Again, thanks for the sage advice!

Its not the LCD itself that is the current monster its the backlight which can draw up to 120mA but as that's on the 5V buss it should be fine.

Try 6-7 or 6-9 volts you don't want to be too low as that can also affect signals. (presuming the power barrel is what you are going to use)

Good luck with your project.