I have a Arduino Nano (Sainsmart) that I'm trying to upload a sketch to. Under the Arduino IDE, the device selected was Arduino Nano w/ ATmega328.

However uploading the sketch gives me the error

avrdude: stk500_recv(): programmer is not responding

I tried both USB ports (/dev/tty.usbserial & /dev/cu.usbserial) but the same error persist. The Arduino is connected to a Macbook Air via the USB cable, and the PWR LED indicator light on the Arduino is turned on and the L indicator LED blinks. There was no problem uploading to a Arduino Uno.

Retried after installing the latest FTDI drivers (MAC OSX, x64, v2.2.18, FTDIUSBSerialDriver_10_4_10_5_10_6_10_7.mpkg) from http://www.ftdichip.com/Drivers/VCP.htm. However that did not help.

What could have gone wrong?

12 Answers 12


This error message basically shows up for any communication problem, so by itself, it is not all that instructive. The Arduino Nano is supposed to have auto-reset, but maybe your clone does not? In that case, you'd have to press the reset key on the board just before starting an upload.

  • According to the device description Features: Automatic reset during program... – alexan_e Mar 18 '14 at 22:10
  • 6
    Yes, but according to the comments on the Amazon page, some people who bought this got yet another clone brand, so it seems to me that a healthy dose of skepticism about any claims in the documentation is in order, especially if they can easily be verified with an experiment. – microtherion Mar 19 '14 at 9:56
  • I didn't read the comments but in that case you may be right. – alexan_e Mar 19 '14 at 10:02
  • 1
    While hitting reset at just the right time can work (it may take several tries), with Nano clones it's almost invariably the change in bootloader serial speed by the official Arduino.cc developers that's causing the problem. This answer is more likely to produce a reliable result: Tools → Processor → ATmega328P (Old Bootloader) – scruss Mar 18 '19 at 12:19

Know this is old but I ran onto it during my search for Nano(V3)'s not uploading so thought might help someone else. Problem is the bootloader - Arduino IDE BUT I Found an easy solution (right under my nose).

I realized that my nano's had been uploading just fine then I had finally updated the Arduino AVR Boards from 1.6.20 to 1.6.21. I didn't think there was any problems because it still showed my Nano and ATmega328 etc in the board manager after the change.

But the new boards manager has a new ATmega328 processor choice for the Nano. I changed processor: In the Arduino IDE select TOOLS > PROCESSOR > pulldown menu from ATmega328P to "ATmega328P (Old Bootloader)".

Since then, I have uploaded many programs to several different Nano's V3 (Prolofic interace Chipset) without issue.

  • @sa_leinad - please do not change the meaning of other's posts. What the poster said they updated was the AVR boards package, not the IDE. This specific version break has been reported elsewhere. – Chris Stratton Jun 13 '18 at 14:18
  • 9
    This helped solved the issue for me though! – Ewout Jul 25 '18 at 22:43
  • 3
    The solution is still working, I've tested it on Arduino IDE 1.8.7 Stable, 1.8.8 Hourly Build (Nightly) 2018/11/05 23:59 GMT and 1.9 Beta Build-87 with Arduino AVR Boards 1.6.23 – Unknown123 Nov 6 '18 at 12:38
  • The change in bootloaders was made public with the release of Arduino IDE 1.8.6: github.com/arduino/Arduino/releases/tag/1.8.6 More infos in arduino.stackexchange.com/questions/51866/… An ISP (or another Arduino) is required to update the bootloader: arduino.stackexchange.com/questions/66806/… – handle Jul 3 '19 at 8:57
  • Thanks, switching to ATmega328P (Old Bootloader) had helped me to solve stk500_recv(): programmer is not responding stk500_getsync() attempt 1 of 10: not in sync: resp=0x79 problem. Actually, I have a feeling that before I was using older version of GUI which had this option by default. – dma_k Aug 7 '19 at 22:13

I was having the same problem and got the same error message. Turns out these boards don't come with a bootloader preinstalled. If you have some jumper wires and another working arduino you can use this tutorial to install the bootloader and it should work great, mine did at least! :)


Having a similar issue with my Sainsmart Nano.

Under Preferences check "Show verbose output during [x] upload, then when uploading, you should get a red trace like this:

avrdude: Version 5.11, compiled on Sep  2 2011 at 18:52:52
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf"
         User configuration file is "/Users/johannes/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/tty.usbserial-A403MRTP
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 

You'll notice a little "pause" just before the first line of avrdude: Send: 0 [30] [20]. Try uploading again and have you finger ready on the physical reset button of your Nano. Just the moment before the first avrdude: ... appears, press the reset button.

When you succeed, you'll see the screen filling with all sort of gibberish, and ending something like this after a few seconds:

[78] . [00] S [53] h [68] o [6f] u [75] l [6c] d [64]   [20] b [62] e [65]   [20] 0 [30] x [78] 4 [34] 9 [39] D [44] 4 [34] . [00] . [01] . [00] . [00] . [00] . [02] . [00] . [03] . [00] . [04] . [00] . [00] . [00] . [00] . [00] . [e6] . [06] . [b5] . [06] n [6e] . [06] w [77] . [06] . [8c] . [06] . [9d] . [06] . [00] . [00] . [00] . [00] . [02] . [0d] . [aa] . [0d] . [95] . [0c] . [c9] . [0c] . [a9] . [0c] . [f2] . [0c] . [00] 
avrdude: Recv: . [10] 
# | 100% 3.71s

avrdude: verifying ...
avrdude: 8824 bytes of flash verified
avrdude: Send: Q [51]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [10] 

avrdude done.  Thank you.
  • This is to say that the Arduino (or knock-off) in question does not automatically reset before uploading and you have to manually do this by pressing the button. – kontur Aug 7 '15 at 21:35

I recently had the same issue with 3 Nano boards I just purchased from Amazon. I can confirm that the suggested fix (changing to "old bootloader") solved my problem.

I think the main problem is the upload speed. The "old bootloader" version successfully uploads at 57600, but the default "new" version tries to upload at 115200 and fails.


I also had that error message. I think there are many possible causes, so I haste to specify my special case.

I have a hackintosh with OS X Yosemite 10.10.2, Arduino software 1.0.6 and Funduino UNO. Uploading the example for Serial.write() succeeded the first time. Thereafter most uploads failed. Even when the upload succeeded the serial monitor would not always show output.

This seemed to me to be due to miscommunication on the USB port. I had to repeatedly reset the funduino, unplug and replug the USB cable or even restart the system. When replugging the USB cable sometimes my system would freeze.

By googling I found a solution to "Inserting USB device causes Mavericks 10.9.1 to freeze". Answer no 12 on tonymacx86.com basically instructs you to remove GenericUSBXHCI.kext from /System/Library/Extensions.

I am happy to report that after removing this kext I have no problems uploading the example and monitoring the output. Because I don't need to replug the USB cable I don't know whether this solves my system freeze. I'm not even sure it was a system freeze, because my system may only have become unresponsive to my USB keyboard and mouse.


Did you remember to tell the IDE that the board type is a Nano?

Tools -> Board => Arduino Nano ...

This gets me ever time I swap between my Nano and Uno.


Had same issue and solution was as follows:

  • identified my arduino as CH340/ATmega168P (written on PCB)
  • went to IDE and picked from list not UNO but "Arduino Pro or Pro Mini"
  • when this option is selected new menu "Processor" selection is available (just under Board selection)
  • selected my processor ATmega168P there and upload worked like a charm!
  • The board selection does not depend on the USB interface chip, only on the processor and baud rate. – Chris Stratton Jun 13 '18 at 4:36

The Arduino IDE version 1.8.5 gave the same error every time I tried to connect it to my OSEPP Nano. I tried with multiple nano boards with different versions of the IDE. I had the board set to "Arduino Nano".

The solution was: Instead of Nano choose Arduino/Genuino Uno. This worked for me.


If this doesn't work you will have to use spi to program the nano. You'll need to look up the connection and use a uno since it has a serial chip at16u2 with a driver that recognizes all atmel products. After connections setting uno as a programmer by flashing the uno as isp set the programmer as Arduino as isp and flash the chip. Double check. The benefit is it is less error prone than uart and has better timing but is a hassle to wire up. Good Luck


That problem, ocurred to me when I upgraded the Arduino IDE. I solved it by changing the processor to "old"

Tools->Processor->"ATmega328P (old bootloader)" thanks!!!!

  • 1
    This is just a duplicate of an answer previously posted – Chris Stratton Jun 13 '18 at 4:35

Ok. I had the same programmer is not responding error on Arduino Nano on Atmel MEGA168PA, USB chip: CH340G. Macbook Pro under macOS 10.14.2.

It hand Blink example installed and the port wasn't visible in the list.

I was trying to figured out, whats wrong and connected my Arduino Due through the programming port. After 2 attempts the sketch was uploaded... Then I connected the Nano back, the port was visible this time (actually two of them: /dev/cu.wchusbserial14120 and /dev/cu.usbserial-14120) and guess what, the upload had been successful!


Not the answer you're looking for? Browse other questions tagged or ask your own question.