Hello! I am currently receiving an error on my Arduino IDE, when trying to upload some code to my microcontroller, which is "vrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xb6". Before uploading, i set the board to "Arduino Uno" and the port properly, while in my device manager, the assigned port is displayed along with driver CH340 installed. Also, i tried to remove all circuits connected to microcontroller, reinstalled IDE, driver, unplug & plug and also the reset push trick, but when pushing, the led lights off and on one time.
Hi @alexpog. Great work on performing the relevant troubleshooting procedures and reporting your findings!
There is a program named a "bootloader" that is stored in a special area of the memory in the primary microcontroller of your Arduino board. This program receives the data sent by the computer when you upload a sketch to the board.
The symptoms you describe indicate that the bootloader is not running when it should be activated. This could have either of the following causes:
- The memory in the microcontroller where the bootloader was stored has somehow been erased or corrupted.
- There is physical damage to the microcontroller or its support circuitry.
If the cause is a missing bootloader, the board might be recoverable by a "Burn Bootloader" operation. I'll provide instructions you can follow if you want to try that:
Prepare ISP programmer
You will need an ISP programmer. If you don't have a programmer, you can use a spare Arduino board as an "Arduino as ISP" programmer.
Arduino as ISP
The following instructions are for using an Arduino board as an "Arduino as ISP" programmer. If you have a dedicated programmer, you can skip to the next set of instructions.
Although the "Arduino as ISP" only works for programming targets of the AVR architecture, you can also use boards of a variety of architectures (e.g., "AVR", "SAMD", "megaAVR") as an "Arduino as ISP" programmer.
ⓘ In the instructions below, the board used as an "Arduino as ISP" is referred to as the "programmer board". The board the bootloader is being burned on is referred to as the "target board".
-
Disconnect the USB cable of the Arduino boards from your computer.
-
Make the following connections between the "programmer board" and the "target board".
Programmer Target CIPO (AKA "MISO") CIPO VCC 5V (VCC on 3.3 V boards) SCK SCK COPI (AKA "MOSI") COPI 10 RESET GND GND ⓘ The documentation for the boards you are using will identify the location of these pins. If you are using an official Arduino board, check the pinout diagram on the documentation page for the board.
-
Connect the "programmer board" to your computer with a USB cable.
-
Select File > Examples > 11.ArduinoISP > ArduinoISP from the Arduino IDE menus.
The "ArduinoISP" sketch will open in Arduino IDE. -
Select your "programmer board" from Arduino IDE's Tools > Board menu.
-
Select the port of your "programmer board" from Arduino IDE's Tools > Port menu.
-
Select Sketch > Upload from the Arduino IDE menus.
-
Wait for the upload to finish.
You are now ready to burn the bootloader using your "Arduino as ISP" programmer.
Burn Bootloader
Instructions for burning the bootloader:
ⓘ It is not possible to do this via Arduino Cloud Editor. You will need to use Arduino IDE or Arduino CLI.
- Connect an ISP programmer to your Arduino board.
ⓘ If you are using an "Arduino as ISP", then you have already connected it according to the previous instructions. - Select the target board from the Tools > Board menu and any other custom Tools menus (e.g., Tools > Processor).
- Select the appropriate programmer from the Tools > Programmer menu.
- Tools > Burn Bootloader
- Wait for the process to finish successfully.
- Disconnect the USB cable of the programmer from your computer.
- Disconnect the programmer from the "target board".
Now connect the "target board" to your computer with a USB cable, select its port from the Tools > Port menu, and try uploading a sketch as usual.
Conclusion
Now connect the "target board" to your computer with a USB cable and try uploading again. Does the upload succeed now?