FANDOM


Bricked arduinos can be restored by putting them in DFU mode. This also apparently fixes linux problems.

WindowsEdit

Tried using Flip and DFU mode to reload firmware; for both ATmega8u2 and AT90USB82 the error (in DFU mode) is "Could not open USB device" from com.atmel.flip.IspException ; nothing shows up on Device Manager.

LinuxEdit

wget --no-check-certificate https://github.com/arduino/Arduino/raw/master/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-mega.hex

apt-get installs version 0.4.3 of dfu-programmer. We get

sudo apt-get install dfu-programmer
$sudo dfu-programmer at90usb82 erase    
dfu-programmer: no device present.  

Try removing and updating.

sudo apt-get remove dfu-programmer

The latest version is available here: http://sourceforge.net/projects/dfu-programmer/files/

tar -xzf dfu-programmer-0.5.4.tar.gz
cd dfu-programmer-0.5.4
./bootstrap.sh
->> aclocal, autoheader, automake, autoconf not found, so:
sudo apt-get install automake autoconf
./bootstrap.sh
./configure
->> ./configure: line 3461: syntax error near unexpected token `LIBUSB_1_0,'
->> PKG_CHECK_MODULES(LIBUSB_1_0,  libusb-1.0 >= 1.0.0 , have_libusb_1_0=yes, have_libusb_1_0=no)'

Also, if we just try

make
->> same error here,  usb.h: No such file or directory so:
sudo apt-get install libusb-dev
make install
->> this doesnt work, still doesnt know what LIBUSB_1_0 is; must be missing some sort of include

This http://packages.ubunut.com/source/lucid/devel/dfu-programmer website says that debhelper is a dependancy as well

sudo apt-get install debhelper (already installed)

This http://packages.ubunut.com/source/lucid/devel/dfu-programmer has a built version for ubuntu:

tar -xzf dfu-programmer_0.5.1.orig.tar.gz
cd dfu-programmer-0.5.1
./bootstrap.sh
./configure
make 
sudo make install
cd src
sudo ./dfu-programmer at90usb82 erase 
->> dfu-programmer: no device present.

Our arduino seems to be completely bricked. Also

lsusb

does not show anything for the arduino; it is also not detected on windows.


Forum SuggestionsEdit

Steps for linux dfu reflashing -- also there are suggestions to first upload an empty sketch before reflashing

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1286088093/45 Forum post about problems with linux:

Search for 8u2 firmware on mega2560, this seems to be the fix, and patching avr-gcc

"Please remember if you want to use the mega2560, you also need the patched version of avr-gcc. Not sure if the windows software includes the patch. On linux you have to build avr-gcc yourself (or find a pre-compiled copy somewhere)"

rm /var/lock/LCK..ttyACM0 can remove the lock file on the port

Setting the serial.debug_rate=9600 (which was atm 38400, possibly a relict of testing something) solved all my problems.

sudo chown username /dev/ttyUSB0 dmesg

thank you, i could solve my problem with some further reading in this fine forum. it is a problem of the old firmware of the 8u2 (uno's replacement for the ftdi). basically it blocks the serial port by constantly sending data when serial output is used in a sketch. i solved it by 1. setting the arduino in dfu-mode http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1285962838/10#10 2. uploading the new firmware http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1286088093/34#34 3. unplugging the arduino and plugging it in again

cat /dev/ttyACM0 with a program plugged in

2) If you have to use serial, put delay(5000); before Serial.begin to give yourself a chance to open the serial monitor or gtkterm before the output starts


I got the firmware from here: https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares/arduin...(click on the right firmware, then click raw, then save it) Reflashing the firmware on the 8u2 is a little tricky. Don't try this unless you are prepared to risk bricking your board completely! You need the dfu-programmer utility: sudo apt-get install dfu-programmer Then follow the instructions here to get the Uno into DFU mode: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1285962838/10#10 Then to flash the firmware, do this: sudo dfu-programmer at90usb82 erase sudo dfu-programmer at90usb82 flash --debug 1 Arduino-usbserial-uno.hex sudo dfu-programmer at90usb82 reset Finally unplug the USB plug, wait a few seconds, plug back in.

"killall -KILL avrdude" is quite often necessary after a failed upload

"Here's a way to get the Uno into DFU mode without any soldering. Put two wires into GND pins on either side of the board. Then put the other ends of the wires on the board as follows: arduinodfu.jpg The sequence is, hold the first wire on the top left 8u2 ICSP pad, then touch the second wire against the left side of the capacitor below the RX LED. Then remove both wires. It's slightly different to the sequence in the instructions but it seems to work. Be careful with the second wire as the capacitor is quite near a 5v track. You can try using a low-value resistor instead of a wire if you are worried about blowing up your board. To get back to normal mode, hold wire 1 in place as above, press the reset button, then remove wire 1. Or just unplug the USB cable and plug it back in."

"Just installed the updated 8u2 firmware on my mega2560, and it runs like a charm now... I even removed the 4 second delay on Serial.begin in my code, and the IDE still can program the mega. (I run Linux, IDE v0021) In case anyone wonders, if you follow http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1285962838/10#10 wire 2 on the mega2560 needs to contact the left side of the capacitor immediately above the two pads labelled RESET-EN. This in just above the righthand of the two 47uF capacitors, not in the centre as shown on the Uno. You know if the 8u2 is ready to program if it does not appear as ID 2340:0010 when you run lsusb - it appears under an Atmel ID Also, if you have the problem of ttyACM0 not appearing in the serial port list, you can make ttyS7 be a symlink to it, and then it works... I automated it in /etc/udev/rules.d/55-odd.rules KERNEL=="ttyACM0", SYMLINK+="ttyS7" Now I can get on using the mega2560 under Linux"

"got it also working on my mega2560 after some trouble: - on my debian in standard repository was only dfu-programmer Version 0.4.3. The at90usb82 device was not recognized (dfu-programmer: no device present) , although the device is listed when dfu-programmer is called with no options. - upgraded to dfu-programmer 0.5.2 from source reference: http://www.wiki.elektronik-projekt.de/mikrocontroller/avr/at90usb/dfu_programmer... Code: svn co https://dfu-programmer.svn.sourceforge.net/svnroot/dfu-programmer dfu-programmer cd dfu-programmer/trunk/dfu-programmer/ ./bootstrap.sh ./configure make sudo make install - dfu-programmer now recognizes the at90usb82 - erased with no error message - when trying to flash got the message: Something went wrong with creating the memory image - after some time of troubleshooting I found that the downloaded .hex file was wrong. I don't know why, but it was not possible to download the raw file with epiphany - downloaded the .hex file with wget, flashed it and it works perfectly."

Arduino as ISP 8u2Edit

Following How to use another arduino as an ISP programmer

With pins 50-53 connected.

Burning bootloader to i/o board (blah) Error. avrdude: stk500_getsync(): not in sync: resp=0x00 With ISCP header on 8u2:

8u2ISP

Connection from ArduinoISP to the 8u2 ISCP header on the bricked arduino

>avrdude -p at90usb82 -F -P usb -c avrispmkii -U flash:w:MEGA-dfu_and_usbserial_combined.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m
avrdude: AVR Part "at90usb82" not found.
Valid parts are:
m6450 = ATMEGA6450      [C:\WinAVR-20100110\bin\avrdude.conf:11732]
.... big list
>cd \arduino-0022\hardware\tools\avr\bin
>avrdude.exe -p at90usb82 -F -P usb -c avrispmkii -U flash:w:MEGA-dfu_and_usbserial_combined.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m
avrdude: AVR Part "at90usb82" not found.
Valid parts are:
m6450 = ATMEGA6450      [C:\WinAVR-20100110\bin\avrdude.conf:11732]
.... big list


Reinstalled WinAVR. Now, "avrdude: usbdev_open(): did not find any USB device "usb"". Changed to -P com4. avrdude: stk500_2_ReceiveMessage(): timeout

"avrdude -P comport -b 19200 -c avrisp -p m328p -v -e " (the -e means erase the chip, and -v verbose)
  • maybe switch to -P usb with the proper programmer selected
  • could also change the config settings
  • could add an AVR chip to the arduino menu
  • should probably include a -b 19200 command, this is on the forum for using ArduinoISP

Tried without force; device signatures dont match:

>avrdude -p at90usb82 -P com4 -c avrisp -v -e -b 19200 -U flash:w:MEGA-dfu_and_usbserial_combined.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m
avrdude: Version 5.10, compiled on Jan 19 2010 at 10:45:23
        Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
        Copyright (c) 2007-2009 Joerg Wunsch
        System wide configuration file is "C:\WinAVR-20100110\bin\avrdude.conf"
        Using Port                    : com4
        Using Programmer              : avrisp
        Overriding Baud Rate          : 19200
        AVR Part                      : AT90USB82
        Chip Erase delay              : 9000 us
        PAGEL                         : PD7
        BS2                           : PC6
        RESET disposition             : possible i/o
        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  Max W   ReadBack
          ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- --- -- ---------
          eeprom        65    20     4    0 no        512    4    128  9000  90 00 0x00 0x00
          flash         65     6   128    0 yes      8192  128     64  4500  45 00 0x00 0x00
          lfuse          0     0     0    0 no          1    0      0  9000  90 00 0x00 0x00
          hfuse          0     0     0    0 no          1    0      0  9000  90 00 0x00 0x00
          efuse          0     0     0    0 no          1    0      0  9000  90 00 0x00 0x00
          lock           0     0     0    0 no          1    0      0  9000  90 00 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 AVR ISP
        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.13s
avrdude: Device signature = 0x1e9389
avrdude: Expected signature for AT90USB82 is 1E 93 82
        Double check chip, or use -F to override this check.
avrdude done.  Thank you.


Then with force, seems to have worked:

> avrdude -p at90usb82 -F -P com4 -c avrisp -v -e -b 19200 -U flash:w:MEGA-dfu_and_usbserial_combined.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.13s
avrdude: Device signature = 0x1e9389
avrdude: Expected signature for AT90USB82 is 1E 93 82
avrdude: safemode: lfuse reads as EF
avrdude: safemode: hfuse reads as D9
avrdude: safemode: efuse reads as F4
avrdude: erasing chip
avrdude: reading input file "MEGA-dfu_and_usbserial_combined.hex"
avrdude: input file MEGA-dfu_and_usbserial_combined.hex auto detected as raw binary
avrdude: writing flash (8192 bytes):
Writing | ################################################## | 100% 9.42s
avrdude: 8192 bytes of flash written
... (skipped a bunch of the output to keep this short)
Reading | ################################################## | 100% 0.03s
avrdude: verifying ...
avrdude: 1 bytes of lock verified
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as D9
avrdude: safemode: efuse reads as F4
avrdude: safemode: Fuses OK
avrdude done.  Thank you.


It seems I've reloaded the 8u2 firmware. However, plugging into the USB still doesnt detect the Arduino mega2560; nothing shows up.

Arduino as ISP m2650Edit

Trying to reload the atmega2560's firmware with the ISP header set up as per the 8u2, selecting "Burn Bootloader -> Arduino as ISP gives "avrdude: stk500_getsync(): not in sync: resp=0x00". Selecting w/ AVR ISP gives "avrdude: stk500_getsync(): not in sync: resp=0x00 ; avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51"

With avrdude:

avrdud -p m2560 -c usbtiny -e -v -U flash:w:blabla.hex -U lock:w:0xCF:m

These caused errors:

>avrdude -p m2560 -P com4 -c avrisp -v -e -U flash:w:Arduino-usbserial-mega.hex -U lock:w:0xCF:m
  avrdude: stk500_getsync(): not in sync: resp=0x00 
>avrdude -p m2560 -P com4 -c avrisp2 -v -e -U flash:w:Arduino-usbserial-mega.hex -U lock:w:0xCF:m
  avrdude: stk500_2_ReceiveMessage(): timeout

The secret was setting the baud rate:

> avrdude -p m2560 -P com4 -c avrisp -b 19200 -v -e -U flash:w:Arduino-usbserial-mega.hex -U lock:w:0xCF:m
avrdude: Version 5.10, compiled on Jan 19 2010 at 10:45:23
        Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
        Copyright (c) 2007-2009 Joerg Wunsch
        System wide configuration file is "C:\WinAVR-20100110\bin\avrdude.conf"
        Using Port                    : com4
        Using Programmer              : avrisp
        Overriding Baud Rate          : 19200
        AVR Part                      : ATMEGA2560
        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  Max W   ReadBack
          ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- --- -- ---------
          eeprom        65    10     8    0 no       4096    8      0  9000  90 00 0x00 0x00
          flash         65    10   256    0 yes    262144  256   1024  4500  45 00 0x00 0x00
          lfuse          0     0     0    0 no          1    0      0  9000  90 00 0x00 0x00
          hfuse          0     0     0    0 no          1    0      0  9000  90 00 0x00 0x00
          efuse          0     0     0    0 no          1    0      0  9000  90 00 0x00 0x00
          lock           0     0     0    0 no          1    0      0  9000  90 00 0x00 0x00
          calibration    0     0     0    0 no          1    0      0     0    0    0x00 0x00
          signature      0     0     0    0 no          3    0      0     00       0x00 0x00
        Programmer Type : STK500
        Description     : Atmel AVR ISP
        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.13s 
avrdude: Device signature = 0x1e9801
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as D0
avrdude: safemode: efuse reads as FD
avrdude: current erase-rewrite cycle count is 1191250039 (if being tracked)
avrdude: erasing chip
avrdude: reading input file "Arduino-usbserial-mega.hex"
avrdude: input file Arduino-usbserial-mega.hex auto detected as raw binary
avrdude: writing flash (65096 bytes):
Writing | ################################################## | 100% 63.13s 
avrdude: 65096 bytes of flash written
avrdude: verifying flash memory against Arduino-usbserial-mega.hex:
avrdude: load data flash data from input file Arduino-usbserial-mega.hex:
avrdude: input file Arduino-usbserial-mega.hex auto detected as raw binary
avrdude: input file Arduino-usbserial-mega.hex contains 65096 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 55.05s
avrdude: verifying ...
avrdude: 65096 bytes of flash verified
avrdude: reading input file "0xCF"
avrdude: writing lock (1 bytes):
Writing |                                                    | 0% 0.00s ***failed;
Writing | ################################################## | 100% 0.36s
avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0xCF:
avrdude: load data lock data from input file 0xCF:
avrdude: input file 0xCF contains 1 bytes
avrdude: reading on-chip lock data:
Reading | ################################################## | 100% 0.03s
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
        0xcf != 0x0f
avrdude: verification error; content mismatch
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as D0
avrdude: safemode: efuse reads as FD
avrdude: safemode: Fuses OK
avrdude done.  Thank you.


I tried again, to see if the verification error would be fixed; nope.


Changed the baudrate on the \arduino-0022\hardware\tools\avr\etc\avrdude.conf and \WinAVR-20100110\bin\avrdude.conf files.

programmer
 id    = "avrisp";
 desc  = "Atmel AVR ISP";
 type  = stk500;
 baudrate = 19200;    # default is 115200
;

Didnt work.

Tried to upload blink. Compiled in Arduino IDE. Output was in \Local Settings\Temp\build###########.tmp Copied to desktop.

> avrdude -p m2560 -P com4 -c avrisp -b 19200 -v -e -U flash:w:Blink.cpp.hex -U lock:w:0xCF:m
  avrdude: Verification error.

Maybe I need to upload the bootloader again? \arduino-0022\hardware\arduino\bootloaders\stk500v2

> avrdude -p m2560 -P com4 -c avrisp -b 19200 -v -e -U flash:w:stk500boot_v2_mega2560.hex -U lock:w:0xCF:m
  avrdude: verification error

The output was:


> avrdude -p m2560 -P com4 -c avrisp -b 19200 -v -e -U flash:w:Blink.cpp.hex -U lock:w:0xCF:m

avrdude: Version 5.10, compiled on Jan 19 2010 at 10:45:23

        Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
        Copyright (c) 2007-2009 Joerg Wunsch
        System wide configuration file is "C:\WinAVR-20100110\bin\avrdude.conf"


        Using Port                    : com4
        Using Programmer              : avrisp
        Overriding Baud Rate          : 19200
        AVR Part                      : ATMEGA2560
        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  Max

W ReadBack

          ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ---

-- ---------

          eeprom        65    10     8    0 no       4096    8      0  9000  90

00 0x00 0x00

          flash         65    10   256    0 yes    262144  256   1024  4500  45

00 0x00 0x00

          lfuse          0     0     0    0 no          1    0      0  9000  90

00 0x00 0x00

          hfuse          0     0     0    0 no          1    0      0  9000  90

00 0x00 0x00

          efuse          0     0     0    0 no          1    0      0  9000  90

00 0x00 0x00

          lock           0     0     0    0 no          1    0      0  9000  90

00 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 AVR ISP
        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.11s

avrdude: Device signature = 0x1e9801 avrdude: safemode: lfuse reads as FF avrdude: safemode: hfuse reads as D0 avrdude: safemode: efuse reads as FD avrdude: current erase-rewrite cycle count is 1191250039 (if being tracked) avrdude: erasing chip avrdude: reading input file "Blink.cpp.hex" avrdude: input file Blink.cpp.hex auto detected as Intel Hex avrdude: writing flash (1588 bytes):

Writing | ################################################## | 100% 1.56s

avrdude: 1588 bytes of flash written avrdude: verifying flash memory against Blink.cpp.hex: avrdude: load data flash data from input file Blink.cpp.hex: avrdude: input file Blink.cpp.hex auto detected as Intel Hex avrdude: input file Blink.cpp.hex contains 1588 bytes avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.38s

avrdude: verifying ... avrdude: 1588 bytes of flash verified avrdude: reading input file "0xCF" avrdude: writing lock (1 bytes):

Writing | | 0% 0.00s ***faile d; Writing | ################################################## | 100% 0.33s

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

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

avrdude: verifying ... avrdude: verification error, first mismatch at byte 0x0000

        0xcf != 0x0f

avrdude: verification error; content mismatch

avrdude: safemode: lfuse reads as FF avrdude: safemode: hfuse reads as D0 avrdude: safemode: efuse reads as FD avrdude: safemode: Fuses OK

avrdude done. Thank you.


> avrdude -p m2560 -P com4 -c avrisp -b 19200 -v -e -U flash:w:stk500boot_v2_mega2560.hex -U lock:w:0xCF:m

avrdude: Version 5.10, compiled on Jan 19 2010 at 10:45:23

        Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
        Copyright (c) 2007-2009 Joerg Wunsch
        System wide configuration file is "C:\WinAVR-20100110\bin\avrdude.conf"


        Using Port                    : com4
        Using Programmer              : avrisp
        Overriding Baud Rate          : 19200
        AVR Part                      : ATMEGA2560
        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  Max

W ReadBack

          ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ---

-- ---------

          eeprom        65    10     8    0 no       4096    8      0  9000  90

00 0x00 0x00

          flash         65    10   256    0 yes    262144  256   1024  4500  45

00 0x00 0x00

          lfuse          0     0     0    0 no          1    0      0  9000  90

00 0x00 0x00

          hfuse          0     0     0    0 no          1    0      0  9000  90

00 0x00 0x00

          efuse          0     0     0    0 no          1    0      0  9000  90

00 0x00 0x00

          lock           0     0     0    0 no          1    0      0  9000  90

00 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 AVR ISP
        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.14s

avrdude: Device signature = 0x1e9801 avrdude: safemode: lfuse reads as FF avrdude: safemode: hfuse reads as D0 avrdude: safemode: efuse reads as FD avrdude: current erase-rewrite cycle count is 1191250039 (if being tracked) avrdude: erasing chip avrdude: reading input file "stk500boot_v2_mega2560.hex" avrdude: input file stk500boot_v2_mega2560.hex auto detected as Intel Hex avrdude: writing flash (262106 bytes):

Writing | ################################################## | 100% 7.91s

avrdude: 262106 bytes of flash written avrdude: verifying flash memory against stk500boot_v2_mega2560.hex: avrdude: load data flash data from input file stk500boot_v2_mega2560.hex: avrdude: input file stk500boot_v2_mega2560.hex auto detected as Intel Hex avrdude: input file stk500boot_v2_mega2560.hex contains 262106 bytes avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 219.19s

avrdude: verifying ... avrdude: verification error, first mismatch at byte 0x1e000

        0xff != 0x0d

avrdude: verification error; content mismatch

avrdude: safemode: lfuse reads as FF avrdude: safemode: hfuse reads as D0 avrdude: safemode: efuse reads as FD avrdude: safemode: Fuses OK

avrdude done. Thank you.


Programming directly with the ISP headers, adding an ISP header for the 8u2

Comments on using avrdude with the 8u2

Using ISP to program 8u2 directly

TinyISP working with windows 7

External LinksEdit

Official arduino.cc instructions to reload firmware

Pictures of pins used to reset the mega into DFU mode

Uno tutorial for linux

Burning bootloaders

Can reflash 8u2 firmware with ISP, or just upload to the Mega with an ISP programmer

How to use another arduino as an ISP programmer

Our forum post about our bricked Mega

Issues ISP programming mega2560 with Nano, mega pins

Googlecode Issue about mega not working for ISP

Deuilamove not working to ISP program a Mega

Blog about reflashing firmware to create MIDI and keyboard interfaces

http://arduino.cc/en/Hacking/Programmer

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.