Bring your Arduboy back from the dead (burn bootloader)

here my pin layout:

on the plan

97259fd928f1b379e11f4cc05874e0e1dff6d9a1_1_500x500

on the plug

the wires

I think the layout is correct, but I still get the same error

Looks correct. The final attempt would be to lighty solder the wires to the pads since the programmer is seeing the chip, so I think you are not holding the wires still enough

Yeah, thats my last guess too, but I am too worried to soldering this. I bought the fancy clips, but maybe I will exercise and try it on the arduboy anyway.

I tried some other things, I read the fuse bits and they are as they are wished.

The first time I recovered an Arduboy, my gf helped me holding the wires and it worked properly. The second time happened in my office, so I did it myself holding everything and taping enter with my foot in an external keyboard, the third time I was just unable to achieve perfect connection to the pads after several attempts so I solder the wires and it worked.

I think I would make a jig with pogo pins if it happens again. Too bad (or good) after fixing them once, they are more resilient to die again (I guess because the proper lock bits setting)

2 Likes

If you’re still having troubles please do reach out to us at www.arduboy.com/contact/ and we can try to help you there!

3 Likes

sorry, for all!

I have tried it over and over again and after a while, I had enough of trying with just hands.
At first I just soldered the tip of the cables and it helped me at last to reach the read/write process of caterina.hex, which did not work out.
I was afraid to solder the cables on the arduboy (hence buying these test clips, which are still not here), because of damaging it. I lost my patience and did it anyway anyway and some desperate testing by solder/desolder later (without continuity tester),

it worked out and now he is alive again

TL;DR; Soldered cables on arduboy, process worked, its alive again!!

3 Likes

Yeah, as I said, it is really hard to held all the wires, even if you think they are all connected, but they are not

2 Likes

alive

1 Like

Nice guide. very easy to follow. Hopefully I don’t need it in the future, but good to know. Might have been easier if there was a standard header on the PCB.

I have seen some companies starting to use Tag-Connect. It’s pretty slick and doesn’t take up much board space. http://www.tag-connect.com/ Would be much easier than holding the wires down by hand.

8 Likes

Wow man gold star, I don’t even have something like that. You are too elite. :trophy:

2 Likes

Brilliant ! I wish I had one of those 
 could have saved Kevin and I some time.

1 Like

Use springy contacts for the connection to the “pings”, then use the screws to lock the add-on to the arduboy board through the screw boss.
Try and make a entire board for the back, and the stress from the springy contacts will be seperated to the 4 screw bosses.
Consider a “developer back” to replace the current alumium back for protection against
dust and other things while providing access to the test points is what I am thinking about.

That is
a platnium-user build for doing things.
I will still consider the mounting holes for the screws and then you can just attatch this to the back of the arduboyboard and
you know, let it be a attatchment instead of you having to presss against it.
And our (Aviation club, me as host) 3D printer stop huring itself but it keep messing up the things it printed and now one if its arm is broken
That thing only costed something like 200$. Made in China, headquarter in Shenzhen. That help explain the quality (even the writing diargram is wrong)

Hi all,

I bricked the bootloader of my Arduboy but I’m unable to reflash it again with a USBasp. It seems that it works correctly but at the end I get a “verification error”. Maybe someone can help me about my problem. Thanks!.

Here is the log:

Log

Arduino: 1.8.5 (Windows 10), Board: “Arduino Leonardo”

C:\Users\Ignacio\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/bin/avrdude -CC:\Users\Ignacio\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf -v -patmega32u4 -cusbasp -Pusb -e -Ulock:w:0x3F:m -Uefuse:w:0xcb:m -Uhfuse:w:0xd8:m -Ulfuse:w:0xff:m

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
Copyright © 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright © 2007-2014 Joerg Wunsch

     System wide configuration file is "C:\Users\Ignacio\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf"

     Using Port                    : usb
     Using Programmer              : usbasp
     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 : usbasp
     Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9587 (probably m32u4)
avrdude: erasing chip
avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file “0x3F”
avrdude: writing lock (1 bytes):

C:\Users\Ignacio\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/bin/avrdude -CC:\Users\Ignacio\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf -v -patmega32u4 -cusbasp -Pusb -Uflash:w:C:\Users\Ignacio\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21/bootloaders/caterina/Caterina-Leonardo.hex:i -Ulock:w:0x2F:m

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
Copyright © 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright © 2007-2014 Joerg Wunsch

     System wide configuration file is "C:\Users\Ignacio\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf"

     Using Port                    : usb
     Using Programmer              : usbasp

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x3F:
avrdude: load data lock data from input file 0x3F:
avrdude: input file 0x3F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying 

avrdude: 1 bytes of lock verified
avrdude: reading input file “0xcb”
avrdude: writing efuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xcb:
avrdude: load data efuse data from input file 0xcb:
avrdude: input file 0xcb contains 1 bytes
avrdude: reading on-chip efuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying 

avrdude: 1 bytes of efuse verified
avrdude: reading input file “0xd8”
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xd8:
avrdude: load data hfuse data from input file 0xd8:
avrdude: input file 0xd8 contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying 

avrdude: 1 bytes of hfuse verified
avrdude: reading input file “0xff”
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xff:
avrdude: load data lfuse data from input file 0xff:
avrdude: input file 0xff contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying 

avrdude: 1 bytes of lfuse verified

avrdude done. Thank you.

     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 : usbasp
     Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9587 (probably m32u4)
avrdude: NOTE: “flash” memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file “C:\Users\Ignacio\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21/bootloaders/caterina/Caterina-Leonardo.hex”
avrdude: writing flash (32730 bytes):

Writing | ################################################## | 100% 11.44s

avrdude: 32730 bytes of flash written
avrdude: verifying flash memory against C:\Users\Ignacio\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21/bootloaders/caterina/Caterina-Leonardo.hex:
avrdude: load data flash data from input file C:\Users\Ignacio\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21/bootloaders/caterina/Caterina-Leonardo.hex:
avrdude: input file C:\Users\Ignacio\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21/bootloaders/caterina/Caterina-Leonardo.hex contains 32730 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 8.61s

avrdude: verifying 

avrdude: verification error, first mismatch at byte 0x0600
0x00 != 0x89
avrdude: verification error; content mismatch

avrdude done. Thank you.

Error while burning bootloader.

1 Like

How are you holding the wires?

2 Likes

That was the problem. I held the wires in a better way and finally the bootloader was flashed correctly. Now my Arduboy is back to life again. :grinning:
Thanks for the tutorial, really helpful!

4 Likes

That is awesome! congrats on bringing back that little guy

2 Likes

A post was split to a new topic: How to set the ATmega32U4 lock bits