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
- Check Tools > Board. An Uno sketch will not upload when “Arduino Nano” is selected, and the reverse.
- Check Tools > Port. Unplug the board, note the ports, plug it back in and pick the new one.
- On a Nano, try Tools > Processor > ATmega328P (Old Bootloader). Many clones ship with the older bootloader.
- Disconnect anything wired to pins 0 (RX) and 1 (TX). Modules on those pins block the upload.
- Swap the USB cable. Charge-only cables have no data wires and are common.
- Install the USB-serial driver for the chip on your board (CH340 or CP210x on most clones), then replug.
- Try another USB port, without a hub, and close any other program that holds the serial port.
If you see this, do this
| You see | Do this |
|---|---|
| The port list is empty | Cable or driver problem. Fix those before anything else. |
| It worked yesterday on the same board | Check the Board and Port menus first, then pins 0 and 1. |
| It fails only with a shield attached | Remove the shield for the upload, then refit it. |
| Only the Nano fails | Switch the processor to Old Bootloader. |
Related
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.