# avrdude stk500\_recv\(\): programmer is not responding: fixes

> Fix avrdude stk500\_recv programmer is not responding and stk500\_getsync not in sync on Arduino Uno and Nano, in the order that finds the cause fastest.

Canonical: https://roboticsengineering.in/fix/avrdude-stk500-recv-programmer-is-not-responding/ | Published: 2026-11-03 | Updated: 2026-11-04

**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.

## Why it happens

Uploading to an Arduino is a conversation. The IDE runs avrdude, which opens the serial port, sends a reset, and waits for the bootloader to answer with an expected sign-on reply. If the reply never arrives or is out of step, avrdude reports that the programmer is not responding. The bootloader is a small program in flash that waits briefly after reset, so timing and the correct port both matter.

Many clone boards use a different bootloader version, often the older Optiboot build, so the IDE setting must match. The USB-to-serial chip, such as a CH340 or CP210x, needs a driver before the port appears at all. Pins 0 and 1 are shared with the USB serial link, so a shield or wire on them can block the bootloader’s traffic. Each of these causes shows the same message, which is why the list of checks matters.

## 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. |

## Confirm the fix

1. Compare the Tools, Port lists with and without the board plugged in; the new COM entry is the one to select.
2. Open Device Manager and confirm the board appears under Ports with its driver loaded, not with a warning icon.
3. Remove any shield or wire from pins 0 and 1, then upload a blink sketch; a successful upload confirms the link works.

**Common mistake:** Many readers assume the stk500 message means their code is wrong, when the failure happens before any code runs, during the handshake between the IDE and the bootloader.

## Related

[Arduino IDE setup](https://roboticsengineering.in/arduino-ide-setup/), [Arduino robot not working](https://roboticsengineering.in/arduino-robot-not-working-troubleshooting/), [avrdude cannot open the port](https://roboticsengineering.in/fix/avrdude-ser-open-cant-open-device/).

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.
