Many new people find this error avrdude: stk500_getsync(): not in sync: resp=0x00 while uploading program to board.
Before we start to conclude the error first know how arduino works.
What is Arduino IDE?
Arduino IDE is a special software running on your system that allows you to write sketches (synonym for program in Arduino language) for different Arduino boards. The Arduino programming language is based on a very simple hardware programming language called processing, which is similar to the C language.
What is the programming language for Arduino?
In fact, you already are; the Arduino language is merely a set of C/C++ functions that can be called from your code. Your sketch undergoes minor changes (e.g. automatic generation of function prototypes) and then is passed directly to a C/C++ compiler (avr-g++).
How Arduino Program upload works?
Arduino board is basically consists of main three components.
- ATmega328p or similar
- USB to Serial Converter
- 5V Power supply
In most cases program is uploaded using usb cable or using external usb to serial converter.
Error Reason 1: Blank ATmega328p Chip
When u buy fresh micrcontroller such as ATmega328p from market. It is completely blank. To program using arduino you need USB-ASP (SPI based programmer) shown below.
Reason 1: You are trying to program using serial of arduino to a blank controller.
Flashing Arduino boot-loader to fresh ATmega328p.
- Connect usbasp programmer to arduino.
- Select Board from Tools>>Boards>>Arduino UNO
- Select programmer usbAsp from Tools>>Programmer>>USBASP
- Click on Tools >> Burn Bootloader
After uploading bootloader you can use serial port / usb to program your arduino.
Error Reason 2: Power Supply
When using external USB2Serial converter, May be you have not connected +5V to microcontroller or Incorrect connections of Rx TX.
Error Reason 3: External Device on Rx Tx Line
You have connected external device on Rx Tx pin i.e. Arduino Pin 0 and Pin 1.
Remove or Disconnect any circuit present on Rx Tx lines and try again.
Error Reason 4: Wrong Selection of Port
You have selected incorrect Serial Port. Go to Tools>>Ports Menu and select proper port.
or Incorrect board selection.
Error Reason 5: Missing Drivers
If you will not find correct serial port, check that you have installed correct USB to Serial converter or Arduino Drivers. for windows look for any yellow sign (indicates error) on Serial ports.
For linux see this
Common solutions to correct the error
- Disconnect and reconnect the USB cable.
- Press the reset button on the board.
- Restart the Arduino IDE.
- Make sure you select the right board in
Tools ► Board ►
, e.g. If you are using the Duemilanove 328, select that instead of Duemilanove 128. The board should say what version it is on the microchip. - Make sure you selected the right port in
Tools ► Serial Port ►
. One way to figure out which port it is on is by following these steps:- Disconnect the USB cable.
- Go to
Tools ► Serial Port ►
and see which ports are listed (e.g. COM4 COM5 COM14). - Reconnect the USB cable.
- Go back to
Tools ► Serial Port ►
, and see which port appeared that wasn’t there before.
- Make sure digital pins 0 and 1 do not have any parts connected, including any shields.
Error Reason 6: Damaged controller
Unfortunately, it can also mean that you burned your microcontroller. Were you doing anything dangerous right before you tried to upload a new sketch?
Error Reason 7: Using External USB to Serial converter
When using external USB to serial converter you need to connect RTS pin of usb2serial converter to reset pin of micro-controller through a 0.1uF (104) capacitor.
You need four pins from external serial converter RX, TX, GND and RTS —||— with 0.1uF capacitor connect one terminal of capacitor to RTS pin and another to reset pin of micro-controller.
Error Reason 8: Windows 10 permission
Try running Arduino IDE in administrator mode.
Error Reason 9: External Crystal is missing or faulty
Check that Most of the Arduino boards use 16MHz or 8MHz crystal, If you are trying with fresh chip, this is common mistake. Use 16MHz crystal for ATmega328p with Arduino UNO boot-loader
These are the most common mistakes that cause error avrdude: stk500_getsync(): not in sync: resp=0x00