avrdude stk500_recv(): programmer is not responding: fixes

This error means the computer sent an upload request and the board never answered in the way the bootloader should. It is almost never a code problem. The cause is the wrong board or port, the wrong bootloader setting, a busy RX/TX pin, a bad cable or a missing driver.

What the message means

avrdude is the upload tool inside the Arduino IDE. “programmer is not responding” and “not in sync: resp=0x..” are the same fault seen at different moments: the bootloader on the chip did not reply to the upload handshake.

Fix it in this order

  1. Check Tools > Board. An Uno sketch will not upload when “Arduino Nano” is selected, and the reverse.
  2. Check Tools > Port. Unplug the board, note the ports, plug it back in and pick the new one.
  3. On a Nano, try Tools > Processor > ATmega328P (Old Bootloader). Many clones ship with the older bootloader.
  4. Disconnect anything wired to pins 0 (RX) and 1 (TX). Modules on those pins block the upload.
  5. Swap the USB cable. Charge-only cables have no data wires and are common.
  6. Install the USB-serial driver for the chip on your board (CH340 or CP210x on most clones), then replug.
  7. Try another USB port, without a hub, and close any other program that holds the serial port.

If you see this, do this

You seeDo this
The port list is emptyCable or driver problem. Fix those before anything else.
It worked yesterday on the same boardCheck the Board and Port menus first, then pins 0 and 1.
It fails only with a shield attachedRemove the shield for the upload, then refit it.
Only the Nano failsSwitch the processor to Old Bootloader.

Arduino IDE setup, Arduino robot not working, avrdude cannot open the port.

Last reviewed: November 2026. These are the usual causes and the order that finds them fastest. Test on your own board; clones and cables differ.