Burn Bootloader from UNO4 to UNO3

Hello,
I bought a UNO4 card to check if my current installation was the problem.
It turns out that it's my old UNO3 board that seems to be KO.
I would like to do a "burn bootloader" from my UNO4 to the UNO3 because it is impossible to burn or upload a program on the UNO3 board.

I saw from this link (https://support.arduino.cc/hc/en-us/articles/4841602539164-Burn-the-bootloader-on-UNO-Mega-and-classic-Nano-using-another-Arduino) that the UNO4 should not be used.
But I don't know if it's a misunderstanding on my part or if it's possible to burn bootloader from the UNO4 to the UNO3 to repair my old board.
Does anyone have any information on this subject?
Thanks

Your understood that article correctly. You can't use R4 because the ArduinoISP sketch is not compatible with R4.

What makes you believe that re-flashing the R3 will fix it?

Many R3 have an atmega328 28-pin dip chip in a socket so that it can be removed. You can buy replacement chips on eBay etc with the R3 bootloader already flashed, so that could be an option.

1 Like

Hi @t0mt0m. Yes, you can use the UNO R4 WiFi or UNO R4 Minima board as a programmer to burn the bootloader to the UNO R3 board.

The procedure is slightly different from how it would be when using an UNO R3 or other AVR board as the programmer. I'll provide instructions for doing it:


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".


A. Prepare "Arduino as ISP" programmer

  1. Disconnect the USB cables of the Arduino boards from your computer.

  2. Make the following connections between the pins on the "programmer board" and the "target board".

    Programmer Target
    10 reset
    12 SPI CIPO (AKA "MISO")
    5V 5 V
    13 SPI SCK
    11 SPI COPI (AKA "MOSI")
    GND ground

    The documentation for the target board 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.

  3. Connect the "programmer board" to your computer with a USB cable.

  4. Select File > Examples > 11.ArduinoISP > Arduino ISP from the Arduino IDE menus.
    The "ArduinoISP" sketch will open in Arduino IDE.

  5. Add the following line at the top of the "ArduinoISP" sketch:

    #define USE_OLD_STYLE_WIRING
    
  6. Select your "programmer board" from Arduino IDE's Tools > Board menu.

  7. Select the port of your "programmer board" from Arduino IDE's Tools > Port menu.

  8. Select Sketch > Upload from the Arduino IDE menus.

  9. Wait for the upload to finish.

You are now ready to burn the bootloader using your "Arduino as ISP" programmer.

B. Burn Bootloader

Instructions for burning the bootloader:


It is not possible to do this via "Arduino Web Editor". You will need to use Arduino IDE or Arduino CLI.


  1. Select the "target board" from the Tools > Board menu, and any other custom Tools menus (e.g., Tools > Processor).
  2. Select Tools > Programmer > Arduino as ISP (ATmega32U4) from the Arduino IDE menus.
  3. Select Tools > Burn Bootloader from the Arduino IDE menus.
  4. Wait for the process to finish successfully.
  5. Disconnect the USB cable of the "programmer board" from your computer.
  6. Disconnect the "programmer board" from the "target board".

I don't really know, my ArduinoUno R3 can no longer be uploaded.
if I want to Burn Bootloader on my R3:

"avrdude: ser_open(): can't open device "\\.\COM20": acces denied"

And if I want to upload a program :

Using Port                    : COM20
Using Programmer              : arduino
Overriding Baud Rate          : 115200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x24

I've changed the COM port, reinstalled the drivers, changed the usb cable, changed the pc, changed the version of Arduino IDE, the only thing I haven't changed is my house and my wife ... but I'm not sure if that has anything to do with it :sweat_smile:

I've got port com 20 selected and it's the right one. But I can't find an explanation for this problem ... That's why I'm looking for help.

You have some good news from @ptillisch and something to try.

Although it sounds to me like it is the USB-serial chip that is the problem on the R3, not the main chip. I think that can also be reflashed on R3, but the process may be different to the one described above.

I found this error can occur when the serial port of the UNO R4 board is open in the Serial Monitor of another Arduino IDE window.

Please close any open Arduino IDE windows other than the one where you are performing the "Burn Bootloader" operation so that you only have a single Arduino IDE window open. Then try the "Burn Bootloader" operation once more.

I've already tried it because at first I didn't have R4. I bought it when I noticed that my R3 was down.
So it's not a serial monitor problem.
i can see my "Get Board Info", i detect the card on port com 20.
But i can't burn loader or upload a program.

Do you have the Arduino IDE Serial Plotter open? It could cause the same problem as Serial Monitor. If you do have it open, close the Serial Plotter window and then try again.

Are you still getting the exact same error message when you attempt that?:

if i upload a program :

Why are you attempting an upload? Your stated goal was to perform a "Burn Bootloader" operation. It is confusing that you suddenly switched the discussion from burning the bootloader to uploading.

Have you successfully accomplished a "Burn Bootloader" operation already?

Is COM20 the port produced when the UNO R4 WiFi board is connected to your computer with a USB cable, or the port produced when the UNO R3 is connected to your computer with a USB cable?

The problem is that my arduino R3 can not burn bootloader nor upload a program.
I think the two are linked.

i didnt accomplish a burn bootloader on the R3.

about port com 20, my arduino R4 is on port 4 and the R3 is on port com 20.
The R4 is connected in USB-C and the R3 in USB-AB.

Please focus the discussion exclusively on the attempts to achieve a "Burn Bootloader" operation for now.

Please provide a detailed description of the problem you experienced when you attempted the "Burn Bootloader" operation.

To avoid any chance for confusion, please disconnect the USB cable of the UNO R3 from your computer and then repeat the instructions I provided in post #3.

You must have the port of the UNO R4 selected throughout the entire process. The UNO R4 will provide power to the UNO R3 so there is no need to have the USB cable of the UNO R3 connected.

I followed the instructions
image
The upload of the ArduinoISP program worked well but I got an error at the end for the burn bootloader through the UNO4 :

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

Failed chip erase: uploading error: exit status 1

Normally I followed the pins correctly.
Here's a photo of the connections.

Looks like the ATmega328P is no longer, just to be sure redo the wiring and try again.
After that buy another ATmega328P dip chip to replace that one and do what you want with the current chip on the board.

1 Like

Its time to buy a new ATmega328P on AE.
i'll feedback there at this moment.

I also suspect the cause of the upload failure, and the cause of the "Burn Bootloader" failure is permanent physical damage to the UNO R3.

It is worth a try to recover boards that are in this class of non-functionality (produces serial port, which indicates the USB chip is at least somewhat functional, but uploads fail unexpectedly) by doing a "Burn Bootloader" operation, but it is unclear what sort of conditions could unexpectedly corrupt or erase the bootloader (which is in a protected area of memory on the ATmega328P) without also doing physical damage to the hardware. I have never personally experienced this after over a decade of subjecting many Arduino boards to all sorts of strange conditions. Some do report that they manage to recover their boards, but I think the truth is that many times it is a lost cause and the only way forward is to replace the damaged hardware. In most cases it is not feasible to repair the board, but the socketed version of the UNO R3 you have is unique in that it is fairly easy for anyone to replace the ATmega328P.

I think it is definitely worth a try. At worst, you will end up with a spare ATmega328P chip, which you can do all sorts of projects with even without a working UNO board to pop it into.

You should take some care when removing the existing ATmega328P from the socket. It takes a fair bit of force to remove the chip and it tends to come loose suddenly and unevenly, which can severely bend the pins on the chip. That is not such a big deal if the chip being removed is bad anyway, but in the very worst case scenario a pin could break off, which will then be difficult to remove from the socket. You probably won't have any problem, but I thought it was worth mentioning in case this is your first time doing it. Another slightly tricky thing is that the new ATmega328P chips come with the pins splayed out a bit to the sides of the chip, making them not line up with the holes in the socket. You can press each of the two rows of pins against a flat surface to bend them inwards to a right angle that will allow them to insert into the socket without strain.

Unless you buy a chip that already has the bootloader installed (which is possible, but less readily available and more expensive), once you put the chip into the UNO R3, you will need to do a "Burn Bootloader" operation. You can use the UNO R4 for that purpose, following the same procedure as before.

1 Like

I've ordered an R3, which will arrive on Thursday.
I'm going to test the chip change to see if it's from the ATmega328P.
If it is, then I'll buy a new chip, if it isn't then it doesn't matter I've got a new R3.

I received my card.
So it's not coming from the chip, but probably from another component of the card because I exchanged the ATmega328P chip and the result was the same.
So I think my card is KO.
I'll keep the new one to continue my projects.
Thanks anyway everyone!

Thanks for the update. I'm glad you are now able to continue your projects with the new UNO R3.

Best wishes for success with your Arduino endeavors!

If your broken Uno is not using the CH340 serial-to-usb converter, you can run the loopback test. It basically tests the communication path from PC through the serial-to-usb converter and back.

If it fails, you can use a serial-to-usb converter (like e.g. https://www.sparkfun.com/products/9716) for uploading and other serial communication.