Avrdude: stk500_recv(): programmer is not responding

I had a similar issue today, turns out it was my USB cable!

I was using a charge only cable, not a data cable. Definitely worth a check.

1 Like

Worked like a charm few months ago..
I installed a new SSD on my laptop so installed the latest Arduino IDE since than the upload not works.

OS: Ubuntu 19.10
I using an official starter Arduino Uno kit with all of its own cable and parts.

power off/on, cable unplug, board reset not helped...
no cabling on the pins.

Here is the dmesg output:

[19433.210539] cdc_acm 3-4:1.0: ttyACM0: USB ACM device
[19720.400759] usb 3-4: USB disconnect, device number 6
[19725.856779] usb 3-4: new full-speed USB device number 7 using xhci_hcd
[19726.006591] usb 3-4: New USB device found, idVendor=2a03, idProduct=0043, bcdDevice= 0.01
[19726.006594] usb 3-4: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[19726.006596] usb 3-4: Product: Arduino Uno
[19726.006597] usb 3-4: Manufacturer: Arduino Srl 
[19726.006598] usb 3-4: SerialNumber: 75435363138351D07180
[19726.007305] cdc_acm 3-4:1.0: ttyACM0: USB ACM device

Upload output:

Arduino: 1.8.10 (Linux), Board: "Arduino Uno"

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.
/home/$USER/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/bin/avrdude -C/home/$USER/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf -v -patmega328p -carduino -P/dev/ttyACM0 -b115200 -D -Uflash:w:/tmp/arduino_build_51263/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 "/home/$USER/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
User configuration file is "/home/$USER/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/ttyACM0
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

avrdude done. Thank you.

Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Any Idea?
Thanks!

Eris1173:

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

Try a loopback test:

  • Disconnect power from the board.
  • Remove all connections and shields from the board.
  • Force the processor to remain in reset by connecting a jumper wire from the RESET to the GND pin.
  • Connect a jumper from the RX pin (Arduino pin 0) to the TX pin (Arduino pin 1).
  • Connect the board to your computer.
  • Select the port of your board from the Tools > Port menu.
  • Tools > Serial Monitor
  • Type some text into the input field at the top of the Serial Monitor window.
  • Press Enter. If the text you typed is shown in Serial Monitor's output window, the loopback test passed. If the text was not shown, the loopback test failed.
  • Close Serial Monitor.
  • Disconnect the board from the computer.
  • Remove the two jumper wires.

If the loopback test failed, the USB to TTL serial adapter is damaged and it's unlikely to be worth repairing your board.

If the loopback test passed, or if you skipped the loopback test. Try doing a Burn Bootloader. You'll need an ISP programmer. If you don't own a programmer, you can use a spare Arduino board as an "Arduino as ISP" programmer:
https://www.arduino.cc/en/Tutorial/ArduinoISP

2 posts were split to a new topic: Upload to UNO R3 connected via USBIP fails: "programmer is not responding"

After installing some updates I also got the issue that I couldn't upload any sketch anymore, the only thing I had to change is to select the old bootloader to fix the problem.
Now everything works as it did before so I highly recommend for those with the same issue to first try to select the old bootloader and then try again before you start doing anything else.
For those with the Chinese clone with the CH340 USB SERIAL chip on board make sure you have selected the right programmer, it should be AVRISP mkII
Check your COM port too and if you selected the right Arduino board.
If these changes still don't work I suggest to completely remove your IDE software and reinstall everything, don't forget to reinstall the USB driver too if you have the Chinese clone, then it should be working again.
I hope this is helpful to you and I wish you success figuring it out.

Arduino: 1.8.9 (Windows Store 1.8.21.0) (Windows 10), Board: "Arduino/Genuino Uno"

Sketch uses 5578 bytes (17%) of program storage space. Maximum is 32256 bytes.
Global variables use 248 bytes (12%) of dynamic memory, leaving 1800 bytes for local variables. Maximum is 2048 bytes.
C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\tools\avr/bin/avrdude -CC:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:C:\Users\nicoj.000\AppData\Local\Temp\arduino_build_89552/Turret_code_arduinouno_.ino.hex:i 

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

         System wide configuration file is "C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM3
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x3f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x3f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x3f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x3f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x3f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x3f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x3f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x3f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x3f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x3f

avrdude done.  Thank you.

Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

RicardoPenders1982:
I highly recommend for those with the same issue to first try to select the old bootloader and then try again before you start doing anything else.

Good advice for anyone with a Nano having this problem.

RicardoPenders1982:
make sure you have selected the right programmer, it should be AVRISP mkII

The Tools > Programmer menu selection is only used when you are doing Tools > Burn Bootloader or Sketch > Upload Using Programmer. When you are doing a standard upload, the Tools > Programmer menu selection is completely ignored, so it doesn’t matter what you have it set to.

RicardoPenders1982:
Check your COM port too and if you selected the right Arduino board.

More good advice!

RicardoPenders1982:
If these changes still don't work I suggest to completely remove your IDE software and reinstall everything

I can't think of a case where re-installing the IDE would solve this particular error. There are other upload errors that can be fixed by reinstalling the hardware package (e.g., Arduino AVR Boards), but that is when it's installed to the Arduino15 (or .arduino15 on Linux) folder, and uninstalling the Arduino IDE doesn't touch that folder, so the problem remains after the IDE re-installation.

Lazerblade604:

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

Remove any connections to pins 0 and 1. These pins are used for communication with your computer, including uploads. Connecting anything to these pins can interfere with uploads.

Make sure you have the correct board selected from the Tools > Board menu.

Make sure you have selected the port of your Arduino board from the Tools > Port menu.

Sometimes the port will be labeled with the board name in the menu. Other times it will not. If you don’t know which port is your Arduino, you can find it like this:

  • Unplug your Arduino board from the computer.
  • Tools > Port
  • Note the ports, if any, listed in the menu.
  • Close the Tools menu.
  • Plug your Arduino board into the computer.
  • Tools > Port - The new port listed in the menu is your Arduino board.

</>

Arduino: 1.8.10 (Windows 7), Board: "Arduino/Genuino Uno"

Sketch uses 3468 bytes (10%) of program storage space. Maximum is 32256 bytes.
Global variables use 306 bytes (14%) of dynamic memory, leaving 1742 bytes for local variables. Maximum is 2048 bytes.
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM5 -b115200 -D -Uflash:w:C:\Users\ADMINI~1\AppData\Local\Temp\arduino_build_399939/tachometer.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:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM5
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xb4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xb4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xb4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xb4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xb4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xb4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xb4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xb4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xb4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xb4

avrdude done.  Thank you.

Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

manjureddy:
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xb4
avrdude: stk500_recv(): programmer is not responding

Remove any connections to pins 0 and 1. These pins are used for communication with your computer, including uploads. Connecting anything to these pins can interfere with uploads.

Make sure you have the correct board selected from the Tools > Board menu.

Make sure you have selected the port of your Arduino board from the Tools > Port menu.

Sometimes the port will be labeled with the board name in the menu. Other times it will not. If you don’t know which port is your Arduino, you can find it like this:

  • Unplug your Arduino board from the computer.
  • Tools > Port
  • Note the ports, if any, listed in the menu.
  • Close the Tools menu.
  • Plug your Arduino board into the computer.
  • Tools > Port - The new port listed in the menu is your Arduino board.

harshith08:
stk500_recv(): programmer is not responding).

In my case with two brandnew Nano v3/CH340.

  1. Check is board connected and responsing - Tools->Get Board Info
  2. Change PROCESSOR type for ATmega328P (Old Bootloader)
  3. Try upload sketch from Examples (like Blink) File->Examples->01.Basics->Blink (Crl+U)
    Thats all!

Thanks glebscape, but I already gave harshith08 that same advice 10 months ago. I certainly hope they are not still having problems with their board.

pert:
Are you saying you have multiple Arduino boards that all started having the same problem at the same time?
It's impossible to say whose problem this is. Many thousands of people are using Arduino's software every day with absolutely no problems uploading. Of the tiny percentage who do have uploading errors, the vast majority are caused by user error or damaged/defective hardware. Anyway, it's not really productive to talk about whoese problem it is.

If you have any external circuitry connected to your Arduino board, try disconnecting it to see if that solves the problem.

Second option solved the issue. Take out all the external circuits which are connected to your board

I'm glad to hear you're able to upload again @Kukka!

Now you just need to identify the specific problem with the external circuitry you had connected when you weren't able to upload. The most common way for external circuitry to interfere with uploads is if you have anything connected to pins 0 and 1 on the non-native USB boards (e.g., Uno, Nano, Mega, Pro Mini). Those pins are also used for uploads, so connecting anything to them can interfere with the uploads.

pert:
Try a loopback test:

  • Disconnect power from the board.
  • Remove all connections and shields from the board.
  • Force the processor to remain in reset by connecting a jumper wire from the RESET to the GND pin.
  • Connect a jumper from the RX pin (Arduino pin 0) to the TX pin (Arduino pin 1).
  • Connect the board to your computer.
  • Select the port of your board from the Tools > Port menu.
  • Tools > Serial Monitor
  • Type some text into the input field at the top of the Serial Monitor window.
  • Press Enter. If the text you typed is shown in Serial Monitor's output window, the loopback test passed. If the text was not shown, the loopback test failed.
  • Close Serial Monitor.
  • Disconnect the board from the computer.
  • Remove the two jumper wires.

If the loopback test failed, the USB to TTL serial adapter is damaged and it's unlikely to be worth repairing your board.

Thanks Pert, seems the loopback test failed :frowning:
Do I need a new board than? That`s sure?

Hello,

I had the same problem that says "stk500_recv(): programmer is not responding".

I have chosen ATmega328P (Old Bootloader) from the Tools drop-down menu.
Also, I made sure my board and ports are correct.

I hope it helps.
Thank you.

Yeah thanks but I got the UNO board.

Arduino: 1.8.12 (Mac OS X), Board: "Arduino Uno"

Sketch uses 7592 bytes (23%) of program storage space. Maximum is 32256 bytes.
Global variables use 342 bytes (16%) of dynamic memory, leaving 1706 bytes for local variables. Maximum is 2048 bytes.
/private/var/folders/yk/z00xc0352xs2qbj6ss4mctf80000gn/T/AppTranslocation/40E7AD16-B114-4745-8BE1-2468A36C784F/d/Arduino-2.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/private/var/folders/yk/z00xc0352xs2qbj6ss4mctf80000gn/T/AppTranslocation/40E7AD16-B114-4745-8BE1-2468A36C784F/d/Arduino-2.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -carduino -P/dev/cu.SOC -b115200 -D -Uflash:w:/var/folders/yk/z00xc0352xs2qbj6ss4mctf80000gn/T/arduino_build_745727/RFID_Solenoid_Door_Lock.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 "/private/var/folders/yk/z00xc0352xs2qbj6ss4mctf80000gn/T/AppTranslocation/40E7AD16-B114-4745-8BE1-2468A36C784F/d/Arduino-2.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf"
User configuration file is "/Users/elizataylor/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/cu.SOC
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

avrdude done. Thank you.

Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Remove any connections to pins 0 and 1 on your Arduino board. These pins are used for communication with your computer, including uploads. Connecting anything to these pins can interfere with uploads.

Make sure you have the correct board selected from Arduino IDE's Tools > Board menu.

Make sure you have selected the port of your Arduino board from the Tools > Port menu.

Sometimes the port will be labeled with the board name in the menu. Other times it will not. If you don’t know which port is your Arduino, you can find it like this:

  1. Unplug your Arduino board from the computer.
  2. Select Tools > Port from the Arduino IDE menus.
  3. Note the ports, if any, listed in the menu.
  4. Close the "Tools" menu.
    The ports list is only updated when the Tools menu is re-opened, so this step is essential.
  5. Plug your Arduino board into the computer.
  6. Select Tools > Port from the Arduino IDE menus.

The new port listed in the menu is your Arduino board.

Hi all! Just a quick summary of what has worked for me.
I noticed that all my arduino nano's suddenly had this issue of "not being in sync" or something when I tried to upload a code. (you need verbose output during upload/compilation to see this). What's WEIRD is that I was able to upload code using the Pocket AVR Programmer and the 3x2 pin header on the nano/uno, but it didn't work with the USB... odd.

SO.

I did two things and I'm not even sure they were both necessary:

  1. (may be optional) I went to sparkfun and followed their link to WCH website. You can use google chrome and translate the webpage (unless you speak mandarin). Then download the CH340/CH341/etc. driver package. Once you have this, put it in the folder for arduino/drivers/ftdi bus drivers (or similar). Go to the device manager and plug in your arduino, assuming you already have some sort of CH340 drivers (windows usually does). right click the port for your CH340 device and click update driver. It will show you the folder you need and you can put your new drivers there. Then inside the popup window for "update driver" go to that same folder, and select the .inf file that came in your CH340 package. The driver is now up to date.

  2. Idk why this works but give it a shot. I've done this before with success, but can't explain why. You will need the Pocket AVR Programmer or similar (like $15 on amazon or sparkfun). Plug it in and make sure you already have all the necessary drivers installed. Go to tools and select the programmer (USBtinyISP) and select the board nano. Change the processor to "ATMEGA328 (old bootloader)". Then click "burn bootloader" in tools. Now go back and change the board to "Arduino Genuino Uno". Burn the bootloader with these settings. Now you basically changed the bootloader from A to B back to A. In my experience this works.

I think the reason this works is because I mostly use knockoff arduino's for cheap because I use so many of them for little projects and such. But this has worked for me so far. I hope this is helpful!