Thanks. The video makes it clear that the bootloader program is present and at least functional enough to make the blink. Even though this doesn't provide evidence of a problem with the bootloader, I am left with two possible causes of the upload failure:
- The bootloader program is partly corrupted
- There is physical damage to the hardware
In the case of your specific UNO board, which has the socketed ATmega328P microcontroller chip, it might be possible to recover the board from physical damage by replacing the ATmega328P. However, that requires acquiring a replacement chip (unless you happen to have one on hand) and burning the bootloader to the new chip (unless the seller of the one you acquire installed the bootloader on the chip in advance, which is less common).
On the other hand, it might be possible for you to attempt to restore a corrupted bootloader right away by performing a "Burn Bootloader" operation. As I mentioned above, even if that doesn't recover the board, the experience might still be useful to you later if you attempt to replace the ATmega328P. I should warn you though that there is no guarantee that the "Burn Bootloader" operation will restore your board. If you have the necessary hardware on hand and are up for a challenge it is worth a try at least:
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".
ⓘ Refer to the "Connections" table on the SPI library reference page to determine the pin numbers.
Programmer |
Target |
CIPO (AKA "MISO") |
CIPO |
VCC |
5V (VCC on 3.3 V boards) |
SCK |
SCK |
COPI (AKA "MOSI") |
COPI |
10 |
RESET |
GND |
GND |
-
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:
- 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".
Conclusion
Now connect the "target board" to your computer with a USB cable and try uploading again. Does the upload succeed now?