All guides

Arduino Nano clone won't upload? Try the old bootloader

Updated 20 October 2026

Most Arduino Nano clones, especially those with a CH340 USB chip, still use the old ATmegaBOOT bootloader, which listens at 57,600 baud. Current Arduino Nanos use Optiboot at 115,200 baud. If the uploader uses the wrong speed, the board never answers. Choose ATmega328P (Old Bootloader) and upload again.

What the error looks like

  • The Arduino IDE prints avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
  • Pinstrike says "The bootloader didn't respond" and suggests the old bootloader option.

The board usually looks fine otherwise. The power LED is on, the L LED flashes briefly when the upload starts, and the phone or computer sees the USB port.

Why it happens

When the uploader opens the port, the board resets and runs its bootloader for a moment, waiting for a new sketch. The uploader and bootloader have to agree on the serial speed. In 2018 Arduino moved the official Nano to the smaller, faster Optiboot bootloader at 115,200 baud and added a separate "Old Bootloader" option for older boards. Many clones are still made with the old bootloader at 57,600 baud, so the default Nano setting talks too fast for them.

Fix it in Pinstrike

  1. Open Board & connection.
  2. Choose Arduino Nano with ATmega328P (Old Bootloader).
  3. Go back to your sketch and tap Upload.

Fix it in the Arduino IDE

  1. Open the Tools menu and set Board to Arduino Nano.
  2. In the same menu, set Processor to ATmega328P (Old Bootloader).
  3. Upload again.

How to tell which bootloader you have

There is no label for it, so the practical test is to try both options. A Nano with a CH340 chip (a small chip marked CH340G or CH340C on the underside) almost always needs the old bootloader. Genuine Nanos from 2018 onwards use the new one. Nothing is harmed by trying the wrong option; the upload simply doesn't start.

Still failing?

  • Unplug anything connected to pins 0 (RX) and 1 (TX), because they share the serial line used for uploading.
  • Check the chip on top of the board. If it says ATmega168, choose the ATmega168 option instead.
  • Try a different cable. Charge-only cables power the board but carry no data.
  • If neither speed works with a good cable, the bootloader itself may be missing or damaged. Reinstalling it needs an ISP programmer (or a second Arduino set up as one) and a computer; Pinstrike can't do that from a phone.

New to uploading from a phone? Start with How to upload Arduino code from an Android phone.