Fix “avrdude: stk500_getsync(): not in sync: resp=0x00”
The upload to an Uno or Nano times out with stk500_getsync. Usually the wrong port or processor, something on pins 0/1, or a clone needing the old bootloader.
Community draft — report a mistake
What you see
Sketch uses 924 bytes (2%) of program storage space. Maximum is 32256 bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
...
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
Failed uploading: uploading error: exit status 1Sketch uses 924 bytes (2%) of program storage space. Maximum is 32256 bytes. avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00 ... avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00 Failed uploading: uploading error: exit status 1
avrdude is the tool that talks to the bootloader on AVR boards like the Uno and Nano. “Not in sync” means it reset the board and asked the bootloader to say hello — and got nothing usable back.
Most of the time this is a settings problem, not a broken board: wrong processor option for a Nano clone, wrong COM port, or something plugged into the serial pins D0 and D1.
Quick fix — try in order
- 1
Nano clone? Select the Old Bootloader
Tools → Processor → ATmega328P (Old Bootloader). Most Nano clones still ship with the older bootloader at 57600 baud.
- 2
Check the port
Unplug the board and see which COM port disappears from Tools → Port; that is the right one.
- 3
Free pins 0 and 1
D0/D1 are the serial lines used for uploading. Disconnect Bluetooth modules, GPS or anything else wired there during the upload.
- 4
Reset by hand
Press RESET just as the IDE prints “Uploading…”. If that works, the auto-reset capacitor or DTR line is weak.
- 5
Test with the loopback check
Hold RESET, short D0 to D1, open Serial Monitor and type. If text echoes back, the USB-serial side works and the bootloader is the problem.
Why it happens
What does “not in sync: resp=0x00” mean?
avrdude sent the STK500 “get sync” command and got zeros or nothing back. The bootloader did not run, ran at another baud rate, or the reply never reached the PC.
Wrong board selected
Uploading Uno settings to a Nano with the old bootloader, or Nano settings to a Mega, gives exactly this error.
Something connected to D0/D1
A module on the serial pins drives the RX line and garbles the bootloader’s reply.
Missing or damaged bootloader
Bare ATmega328P chips or a board flashed with an ISP programmer may have no bootloader. Burn one with another Arduino as ISP.
Board-specific notes
Arduino Uno R3: Genuine boards use the 16U2 USB chip; if even Blink fails, try another USB port and reinstall the board package. See the Uno page.
Did this fix it?
Thanks — that helps us keep this page right.