Last chance for Leonardo

Hej,
I have here a Leonardo that doesn't respond at all. This is a last call before I throw it.
When connected the two leds are lit, but I even don't see the USB port in Arduino IDE... This happened after no obvious improper use.
Any chance to revive?

Did you select the Leonardo board correctly in the IDE?

Hi @Blindekinder. Does the LED marked "L" on the Leonardo board pulse after you press and release the button marked "RESET"?

Hi,
sure, I selected Leonardo. And no, reset doesn't respond at all. Both leds remain lit constantly...

OK, this means one of two things:

  • There is physical damage to the board that causes the microcontroller to be non-functional.
  • The bootloader program on the microcontroller was somehow erased or corrupted.

In the case of physical damage, repair is very difficult and time consuming. Unless you have the tools, skills, time, and interest, it is best to buy a new board and toss the burned one in your e-waste bin.

In the case of a missing bootloader, you can recover the board by connecting an ISP programmer to the board and then using Arduino IDE to do a "Burn Bootloader" operation. If you don't have access to a dedicated ISP programmer, you can use a spare Arduino board as a DIY "Arduino as ISP" programmer. You can learn how to do that from this tutorial:

I tried to burn the bootloader as explained on your link ptillisch. I used a Nano Every. No success. It doesn't even recognize the signature.

I have tried using a Nano Every board as an "Arduino as ISP" programmer and unfortunately it didn't work for me. Do you have access to any other spare Arduino boards?

did it work for you with another arduino flavour? I can try with a duemilanove, but after that I'll give up...

A Duemilananove board should work just fine as an "Arduino as ISP" programmer.

no way, still not in sync error whether Leonardo is connected to 2009 or not.

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x15

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x01
avrdude: stk500_initialize(): (a) protocol error, expect=0x14, resp=0x10
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: stk500_disable(): unknown response=0x12
Erreur lors de la gravure de la séquence d'initialisation.

Connect a 10 uF capacitor between the GND and RST pins on the Duemilanove and then try the "Burn Bootloader" operation again.

still not:

avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

Erreur lors de la gravure de la séquence d'initialisation.
``` (Yikes!..)

Which version of Arduino IDE are you using (e.g., "2.0.1")? The version is shown on the window title bar and also in the Help > About dialog.

I ask for this information because I want to give you the appropriate instructions for the IDE version you are using.

Thank you for your help prillisch!
It is v1.8.19

I tried with 2009 pins 13 12 11 10 to Leonardo ISCP (and +/-), then to pins 13 12 11 and RST with old style method, with option old_style enabled in the code, with and without cap, etc..
I'm now pretty sure Leonardo passed away, but since I have everything handy, let's try if you have any suggestion.

This is the correct wiring. Unlike boards like the Uno, you can't program the Leonardo by connecting the programmer to pins 13, 12, 11 on the Leonardo. You can connect to those pins on the Duemilanove programmer board though.

I also suspect there is physical damage. It is quite rare for a bootloader program to be erased or corrupted on the Leonardo. Physical damage is much more common. The microcontroller is designed to protect this memory so bootloader damage could only occur under some extraordinary conditions.

But we can take a look anyway. Please do this:

  1. Select File > Preferences from the Arduino IDE menus.
  2. Uncheck the box next to "Show verbose output during: compilation".
  3. Check the box next to "Show verbose output during: ☐ upload".
  4. Click the OK button.
  5. Attempt a "Burn Bootloader operation, just as you did before.
  6. After the process fails fails, you'll see a button on the right side of the orange bar in Arduino IDE: Copy error messages. Click that button.
    This copies the full output to the clipboard.
  7. Open a forum reply here by clicking the Reply button.
  8. Click the <CODE/> icon on the post composer toolbar.
    This will add the forum's code block markup (```) to your reply to make sure the error messages are correctly formatted.
    Code tags icon on toolbar
  9. Press Ctrl+V.
    This will paste the error output from the upload into the code block.
  10. Move the cursor outside of the code tags before you add any additional text to your reply.
  11. Click the Reply button to post the output.

Hi again ptillisch,
sorry I was occupied in other stuff and no time to go further with that.
Here is the output:

Arduino : 1.8.19 (Linux), Carte : "Arduino Leonardo"

/home/raphael/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/bin/avrdude -C/home/raphael/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf -v -patmega32u4 -cstk500v1 -P/dev/ttyUSB0 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xcb:m -Uhfuse:w:0xd8:m -Ulfuse:w:0xff:m 

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/home/raphael/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
         User configuration file is "/home/raphael/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB0
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega32U4
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  9000  9000 0x00 0x00
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.04s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x000000 (retrying)

Erreur lors de la gravure de la séquence d'initialisation.
Reading | ################################################## | 100% 0.04s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

I'm using the cap on RST, I guess it is correct, right?

Do I throw it away?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.