avrdude: stk500_recv(): programmer is not responding / not in sync

I have a clone arduino uno that keeps displaying this error:

-avrdude: Send: 0 [30]   [20] 
-avrdude: Send: 0 [30]   [20] 
-avrdude: Send: 0 [30]   [20] 
-avrdude: ser_recv(): programmer is not responding
-avrdude: stk500_recv(): programmer is not responding
-avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
-avrdude: Send: 0 [30]   [20] 
-avrdude: ser_recv(): programmer is not responding
-avrdude: stk500_recv(): programmer is not responding
-avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
-avrdude: Send: 0 [30]   [20] 
-avrdude: ser_recv(): programmer is not responding
-avrdude: stk500_recv(): programmer is not responding
-avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
-avrdude: Send: 0 [30]   [20] 
-avrdude: ser_recv(): programmer is not responding
-avrdude: stk500_recv(): programmer is not responding
-avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
-avrdude: Send: 0 [30]   [20] 
-avrdude: ser_recv(): programmer is not responding
-avrdude: stk500_recv(): programmer is not responding
-avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
-avrdude: Send: 0 [30]   [20] 
-avrdude: ser_recv(): programmer is not responding
-avrdude: stk500_recv(): programmer is not responding
-avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
-avrdude: Send: 0 [30]   [20] 
-avrdude: ser_recv(): programmer is not responding
-avrdude: stk500_recv(): programmer is not responding
-avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
-avrdude: Send: 0 [30]   [20] 
-avrdude: ser_recv(): programmer is not responding
-avrdude: stk500_recv(): programmer is not responding
-avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
-avrdude: Send: 0 [30]   [20] 
-avrdude: ser_recv(): programmer is not responding
-avrdude: stk500_recv(): programmer is not responding
-avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
-avrdude: Send: 0 [30]   [20] 
-avrdude: ser_recv(): programmer is not responding
-avrdude: stk500_recv(): programmer is not responding
-avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

(note: this error message was generated using the command:
"/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -v -v -v -v -C /Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -patmega328p -carduino -P/dev/cu.wchusbserial1410 -b115200 -D -Uflash:w:/var/folders/w5/x7bjlh1n2x1050rw1qc8v60w0000gn/T/arduino_build_244506/Blink.ino.hex:i"
in avrdude in the directory. The same error message without the Send: 0 [30] [20] stuff is seen when uploading in the arduino IDE + verbose output)

I am using a MacBook Pro with the CH34x driver running macOS High Sierra (10.13.1). The arduino worked fine initially, and I was able to use a CNC shield with 2 stepper motors.
But one time, with none of the hardware setup changed, the arduino restarted my mac. (this had happened before when I hadn't installed the driver, but that time it displayed "you need to restart your mac" while this time there was no message at all) I tried plugging in the arduino again; it didn't restart but it displayed the error message above upon uploading.

Currently, the arduino lights up when plugged in and is recognized by the serial port. The built in LED "L" lights up constantly as well, though I have been able to turn it off a few times as mentioned below. I am able to power it with a 9V through the VIN and GND pins, and using digital pin 13 turns off the built in LED.

What I've tried:

  • uninstalling and reinstalling the drivers (as well as different drivers)
  • using a different arduino (it worked fine, so not a problem with computer)
  • changing the USB wire
  • changing the USB port
  • changing the board type
  • checked all soldering points, not touching any metal etc.
  • unplugging everything but the usb cord from the arduino
  • resetting the board after uploading to check if a bootloader is on the board (LED blinked, so it should be)
  • used simple sketches like bareMinimum and blink
  • restarting IDE and computer

I've also tried to reset the arduino while uploading as suggested by some people on stackexchange, before the packets are sent, after the packets are sent, holding the reset button while plugging the arduino in, using a jumper wire on reset pin while doing the previous steps. I was sometimes able to manipulate the built in LED "L" and turned it off while holding the reset button, however the code never uploaded successfully.

Try burning the bootloader. You can use :Arduino as ISP" if you don't have a programmer.

I can tell you how to do a Loop-Back test on the ch340 chip, but most of the time they just work.

kprims:
Try burning the bootloader. You can use :Arduino as ISP" if you don't have a programmer.

https://www.arduino.cc/en/Tutorial/ArduinoISP

I can tell you how to do a Loop-Back test on the ch340 chip, but most of the time they just work.

Thanks for the reply! I've tried to burn the bootloader, but I only have a mega2560 board. I followed the tutorials online but the same error is displayed when attempting to burn the bootloader. I've read that this might be due to the auto-reset on the mega, but I don't have a 10µF electrolytic capacitor that is required to do that. I've also read it is possible to disable auto-reset with a 120ohm resistor connecting 5v and RESET, though that hasn't worked either.

I am guessing it’s a clone. I have a Mega 2560 that is working the same way. Put a 10uF Cap between GND and Reset and away it goes. Looks like you are at a standstill until you get a Capacitor or another kind of programmer.
Good Luck.

Arduino: 1.8.5 (Windows 10), Board: "Arduino/Genuino Uno"

Sketch uses 1150 bytes (3%) of program storage space. Maximum is 32256 bytes.
Global variables use 13 bytes (0%) of dynamic memory, leaving 2035 bytes for local variables. Maximum is 2048 bytes.
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x0f
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x10

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

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

avrdude: arduino_read_sig_bytes(): (a) protocol error, expect=0x10, resp=0x04
avrdude: error reading signature data for part "ATmega328P", rc=-3
avrdude: error reading signature data, rc=-1
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x10
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x10

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

kprims:
I am guessing it's a clone. I have a Mega 2560 that is working the same way. Put a 10uF Cap between GND and Reset and away it goes. Looks like you are at a standstill until you get a Capacitor or another kind of programmer.
Good Luck.

Alright, so I went and bought a 10uF capacitor and connected reset to GND, but I still cannot burn the bootloader. After many tries the following errors still occur:

Arduino: 1.8.5 (Mac OS X), Board: "Arduino/Genuino Uno"

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
Error while burning bootloader.

or

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Error while burning bootloader.
Reading | ################################################## | 100% 0.02s

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

I cannot recreate the first error anymore and now I keep getting the second one.

Here are my steps:

  • uncomment #define USE_OLD_STYLE_WIRING in sketch, baud rate set to 19200
  • set board to Arduino Mega2560, set serial port, set programmer to AVRISP mkll
  • upload ArduinoISP sketch
  • connect 10uF capacitor from reset to GND (Led blinks)
  • set board to Arduino Uno, set programmer to Arduino as ISP
  • burn the bootloader

I'm not sure if leaving the uno plugged in while compiling the sketch to the mega is ok, so I've tried connecting the wires after uploading, but the same error occurs.
I have tried:

  • checking/changing the wires
  • discharging the capacitor
  • using an external battery to power the slave arduino

I am connecting:
Mega(programmer) Uno(target)
D52 D13
D50 D12
D51 D11
D10 RESET
5V 5V
GND GND

Is there anything I am doing wrong? Do I need to change any additional parameters in the sketch? Thanks!

uncomment #define USE_OLD_STYLE_WIRING in sketch, baud rate set to 19200

Put the comment back on #define USE_OLD_STYLE_WIRING . Try again with it hooked-up just like you posted.

I cannot recreate the first error anymore and now I keep getting the second one.

The second one is good. That says your Arduino as ISP is loaded. You changed the pins the Mega 2560 uses with your uncomment. You are close.

Thanks for the help! Unfortunately, I'm still getting an error:

Error while burning bootloader.
Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000102
avrdude: Expected signature for ATmega328P is 1E 95 0F
         Double check chip, or use -F to override this check.

avrdude done.  Thank you.

I've read that it might be due to having an atmega328 rather than an atmega328p, but my chip reads "atmega328p" so I'm pretty sure I've got the right one. I have also tried the steps for changing avrdude.conf and boards.txt but the same error occurs.

I've read that it might be due to having an atmega328 rather than an atmega328p, but my chip reads "atmega328p" so I'm pretty sure I've got the right one. I have also tried the steps for changing avrdude.conf and boards.txt but the same error occurs.

The target chip still isn't answering with the correct signature. Check your wiring again , but you may have blown the chip.

It would help if you had one more target chip, so you could get a successful upload.

If you had the wrong chip, it would give you the correct signature for that chip.

Here is my example when I forgot to select the Arduino Uno before burning the bootloader.

avrdude: AVR device initialized and ready to accept instructions

Error while burning bootloader.
Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: Expected signature for ATmega2560 is 1E 98 01
         Double check chip, or use -F to override this check.

avrdude done.  Thank you.