Perfectly running Arduino Uno Rev3 Not accepting new codeAvrdude

I'm new to Arduino and I've purchased an Arduino Uno Rev3. I had been using it to take some input from potentiometers, and using some motor controllers when my computer crashed and now I am unable to upload new code to my Arduino. The previous code still functions perfectly and it even reads to the serial monitor the changing potentiometers value and outputs. I have tried redownloading the IED, using a different cable and a different computer, (it only had the web version) but the code does not upload. The ON, TX and L lights are on when plugged in however the L is dimmer than the others. The specific error when I attempt to upload the Blink example is:

FQBN: arduino:avr:uno
Using board 'uno' from platform in folder: C:\Users\joauk\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
Using core 'arduino' from platform in folder: C:\Users\joauk\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6

Detecting libraries used...
"C:\\Users\\joauk\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Users\\joauk\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\joauk\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\standard" "C:\\Users\\joauk\\AppData\\Local\\Temp\\arduino\\sketches\\63E18C78C9A03000F7F5A09E605CEA2E\\sketch\\Blink.ino.cpp" -o nul
Generating function prototypes...
"C:\\Users\\joauk\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Users\\joauk\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\joauk\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\standard" "C:\\Users\\joauk\\AppData\\Local\\Temp\\arduino\\sketches\\63E18C78C9A03000F7F5A09E605CEA2E\\sketch\\Blink.ino.cpp" -o "C:\\Users\\joauk\\AppData\\Local\\Temp\\arduino\\sketches\\63E18C78C9A03000F7F5A09E605CEA2E\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"C:\\Users\\joauk\\AppData\\Local\\Arduino15\\packages\\builtin\\tools\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\joauk\\AppData\\Local\\Temp\\arduino\\sketches\\63E18C78C9A03000F7F5A09E605CEA2E\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"C:\\Users\\joauk\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Users\\joauk\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\joauk\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\standard" "C:\\Users\\joauk\\AppData\\Local\\Temp\\arduino\\sketches\\63E18C78C9A03000F7F5A09E605CEA2E\\sketch\\Blink.ino.cpp" -o "C:\\Users\\joauk\\AppData\\Local\\Temp\\arduino\\sketches\\63E18C78C9A03000F7F5A09E605CEA2E\\sketch\\Blink.ino.cpp.o"
Compiling libraries...
Compiling core...
Using precompiled core: C:\Users\joauk\AppData\Local\Temp\arduino\cores\arduino_avr_uno_8a7ae4c10ba1be0a8b161e7332dcc388\core.a
Linking everything together...
"C:\\Users\\joauk\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o "C:\\Users\\joauk\\AppData\\Local\\Temp\\arduino\\sketches\\63E18C78C9A03000F7F5A09E605CEA2E/Blink.ino.elf" "C:\\Users\\joauk\\AppData\\Local\\Temp\\arduino\\sketches\\63E18C78C9A03000F7F5A09E605CEA2E\\sketch\\Blink.ino.cpp.o" "C:\\Users\\joauk\\AppData\\Local\\Temp\\arduino\\sketches\\63E18C78C9A03000F7F5A09E605CEA2E/..\\..\\cores\\arduino_avr_uno_8a7ae4c10ba1be0a8b161e7332dcc388\\core.a" "-LC:\\Users\\joauk\\AppData\\Local\\Temp\\arduino\\sketches\\63E18C78C9A03000F7F5A09E605CEA2E" -lm
"C:\\Users\\joauk\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\\Users\\joauk\\AppData\\Local\\Temp\\arduino\\sketches\\63E18C78C9A03000F7F5A09E605CEA2E/Blink.ino.elf" "C:\\Users\\joauk\\AppData\\Local\\Temp\\arduino\\sketches\\63E18C78C9A03000F7F5A09E605CEA2E/Blink.ino.eep"
"C:\\Users\\joauk\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -R .eeprom "C:\\Users\\joauk\\AppData\\Local\\Temp\\arduino\\sketches\\63E18C78C9A03000F7F5A09E605CEA2E/Blink.ino.elf" "C:\\Users\\joauk\\AppData\\Local\\Temp\\arduino\\sketches\\63E18C78C9A03000F7F5A09E605CEA2E/Blink.ino.hex"

"C:\\Users\\joauk\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-size" -A "C:\\Users\\joauk\\AppData\\Local\\Temp\\arduino\\sketches\\63E18C78C9A03000F7F5A09E605CEA2E/Blink.ino.elf"
Sketch uses 924 bytes (2%) of program storage space. Maximum is 32256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
"C:\Users\joauk\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude" "-CC:\Users\joauk\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf" -v -V -patmega328p -carduino "-PCOM6" -b115200 -D "-Uflash:w:C:\Users\joauk\AppData\Local\Temp\arduino\sketches\63E18C78C9A03000F7F5A09E605CEA2E/Blink.ino.hex:i"

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 "C:\Users\joauk\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"

         Using Port                    : COM6
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
avrdude: ser_drain(): read error: The I/O operation has been aborted because of either a thread exit or an application request.



avrdude done.  Thank you.

Any help would be great
Thank you

Hi @joaun12

It is possible for a short or external circuitry connected to the Arduino board to interfere with the upload process, causing this type of upload error.

Make sure the board is not sitting on anything conductive that could short the contacts on the bottom of the board.

If you have a shield or any external circuitry or components connected to your Arduino board, try this:

  1. Unplug your board's USB cable from your computer.
  2. Disconnect any shields, modules, external circuitry, etc. from your board.
  3. Plug your board's USB cable back into your computer.

Now try uploading a sketch to the board again, as you did before. If the upload succeeds this time, you know the problem was caused by the external circuitry. You can then focus your attention on identifying the specific problem with the circuit and resolving it.

Do you have a second Arduino?

If not, can you get one and try uploading something (like the Blink example) to that?

If the second one works (i.e. you can upload something to it) then it is possible that you have messed up the bootloader on this Arduino.

Since you said you tried a different computer, that sort of indicates that the second will work (assuming it doesn't have the same problem) and the problem is with your Arduino.

Have a look at this Arduino as ISP and Arduino Bootloaders guide if the second one does work. You will need the second Arduino to play the role of the "Programmer" to your "broken" Arduino (the "target").

If you need to restore the bootloader (i.e. follow that guide) I strongly suggest reading through teh guide entirely before trying it and work out the bits you will need to do. My recollection of the guide was that there were a few "I wish they told me that earlier" moments the first time I tried it. :slight_smile:

If that doesn't work, reply back - I recently had a similar problem with an Uno R3 where I deliberately overwrote the bootloader to test something.

The above "ISP and Arduino bootloaders" process worked (had no errors), but did not solve the problem. In the end I had to copy an image from another Uno R3 - which is a whole 'nother level of recovery. It's not impossible, but is a bit more complicated than the process covered in the guide. So, check the above out first and hopefully that will solve your problem.

Good luck.

I suspect that the USB to serial IC was damaged.
Try the loopback test and see if it works

So, I had tried unplugging everything before, with the loopback test and when i typed "Hello" the RX light would blink but there was no message in the serial monitor sent back. I will try to get a new Arduino and try the other methods. However does the loopback test failing mean that the board is done for? It still runs and I guess ill continue to use its previous function if its unsavable .

It is definitely worth getting another Arduino regardless because having a spare on hand is always a good idea.

However, we can do a simple test to determine whether there is any point in doing a "Burn Bootloader" operation. Please try this and report the results:

  1. Connect the Arduino board to your computer with the USB cable.
  2. Press and release the button on the Arduino board that is marked "RESET".

Do you see the "L" LED blink immediately after you release the "RESET" button?


:exclamation: NOTE: This will not solve the problem. This is only done to gather some more information about the problem.


If you are using an official Arduino Uno board manufactured by Arduino, yes. But if you are using a cheap derivative board, it is not certain. The reason is that some of the Uno derivative boards have a difference in the USB to serial adapter circuitry that causes the loopback test to fail even when the board is working perfectly.

When I press the reset button first the "TX" LED turns off then the "L" LED blinks 2 or 3 times and turns off. After about half a second the "TX" LED blinks once then is steady on, and then about 1 second later the "L" LED fades on. The board is an official one. My friend has a ESP32 which I could use until I get my next board, would this be capable, if needed to "burn the bootloader."

Thanks for all the help.

This shows the bootloader is already present on the ATmega328P microcontroller on the Uno. So I don't think there is any hope that doing a "Burn Bootloader" operation could help your problem.

I'm not sure.

In theory, even though the "Arduino as ISP" programmer can only be used to program targets that are a microcontroller of the AVR architecture, boards with a microcontroller of any architecture should be usable as the programmer board. My experiments have shown that some boards unfortunately can't be used as "Arduino as ISP" programmers.

I just made a quick test of using an ESP32 board as an "Arduino as ISP" programmer and the "Burn Bootloader" process failed. But I didn't put a lot of effort into troubleshooting the problem so it is possible it was a user error rather than a fundamental incompatibility of the ESP32 board in this application.

I think I'll just let it be for now, and use the program loaded on it. Maybe in the future as I get more experience and maybe am capable of doing the other complicated fixes I will try them. Thank you for the help.

My recommendation is to purchase a spare board. It will be useful to have one on hand regardless.

The truth is that, although it can be interesting to learn how to perform a "Burn Bootloader" operation, and this skill can be used for more advanced things like installing enhanced bootloaders that add other capabilities to an Arduino board (e.g., uploading sketches over an Ethernet connection), the chances are that the problem was caused by physical damage to the board that will not be repaired by burning the bootloader. Sometimes it is best to accept that a certain amount of burned up hardware is an inevitable part of all stages of working with electronics.

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