Bootloader Arduino Due

Dear Sirs;

I am working and doing tests with the Arduino Due.
I am currently with the bootloader section. I am trying to update the bootloader for the Arduino Due using the Arduino Uno.
For this, I have based on a reference videos of how the bootloader process is done.
The tutorial videos taken as reference are Arduino Uno - Arduino Uno and Arduino Uno - Arduino Mega.
In both processes, the same procedure is used.

Based on the procedure mentioned, these are the steps I take:

Arduino Uno - Arduino Due:

  1. I connect the Arduino Uno via USB cable to the PC.
  2. Open Arduino IDE
  3. tools -> plate -> Arduino Uno (In this process I choose the arduino uno)
  4. tools ->port (In this step I choose the port corresponding to the Arduino Uno)
  5. archives -> examples -> Arduino ISP. (In this step, I open the example mentioned and charge it in the Arduino Uno)
  6. tools -> programmer -> Arduino as ISP
  7. tools -> plate -> Arduino Due (In this step I choose the Arduino Due)
    The Arduino Due has two sections, I choose the programming part, and not the native one.
  8. I check that everything is correct.
    The chosen plate is the Arduino Due.
    The port is the Arduino Uno
    The programmer is like Arduino as ISP
  9. I connect the connections between Arduino Uno and Arduino Due.
    The ICSP connections.
    Connect the ICSP pins of each arduino between them

Arduino Uno - Arduino Due (the ICSP pins)
pin 11(MOSI) - MOSI
pin 12(MISO) - MISO
pin 13(SCK) - SCK
pin 10 - Reset
GND - GND
+5V - +5V // I have also tried connecting 3.3V - 3.3V. I had read that for the Due it is better to use this tension.

  1. Burn Bootloader.
    After having done all the previous steps, at the moment I give it to burn bootloader, I get an error.
    He tells me to select the programmer. tools-> programmer.
    This is the message he tells me.

I've been looking at information everywhere, in the forums too, but I have not managed to do it.
Does anyone know what the error may be?
Is there any other way to do it?

What would be the steps to follow exactly?
I would greatly appreciate your help.

Thank you.

Kind regards.

The microcontroller used on the Due isn't programmed by ISP, so this process won't work with it.
Additionally, the IO pins on the Due are only rated to 3.3V while the Uno works at 5V so you may have damaged the Due by feeding 5V to it.

What BJHenry said.
And finally, the chip used on Due has the bootloader built into ROM, so you don’t need to “burn” it - it’s just always there (the exact circumstances that cause it to run may be a bit fussy, though.)

First of all, thank you for your help.

As I said, I had used the aforementioned reference videos and searched for information on the Internet and forums.
On the other hand I had seen the following link:

https://www.arduino.cc/en/Hacking/Upgrading16U2Due

Say you can not burn the bootloader of the Arduino Due following the same steps?
What would be the way to do?
What steps should be followed?
There is some other way to do it?
I had seen that there is another way to burn the bootloader using programming commands.

Is there any other way to update the firmware of the arduino due?

Or it can not directly burn the bootloader of the Arduino Due?
Or do not need to burn it?

Finally, would there be any way to know if the Arduino Due has been damaged during my tests?

Kind regards.

The reference videos you have seen have been for the Uno and the Mega. The Due uses a vastly different microcontoller and cannot be programmed in the same way as the Uno and the Mega.
This link:

Xirimiri:
Arduino - Upgrading16U2Due

Is for updating the ATMega16U2, which is used as a USB-Serial bridge for the main microcontroller on the Due board. It is not for updating the main microcontroller itself.

Why do you think you need to change the bootloader on your Due? From what westf says, it seems that the bootloader is in ROM so you can't change it.

The "16u2 firmware" (on boards that have a 16u2: Uno, Mega, Due) is a completely separate thing from "the bootloader." On Uno/Mega, you might want to change the firmware in order to make other types of USB device, but on a Due, you should probably just use the native USB port for that.
You could theoretically want to replace the firmware to fix a bug (in the firmware), but I haven't heard of any changes in the last 6 years or so.
Or you could want replacement firmware that does something different...

Arduino - Upgrading16U2Due

The tutorial you think to has many parts in common (the setup of Arduino as ISP) with burning a bootloader on an Uno, but you should notice that the final step involves using "avrdude" from the command line, rather than using the "burn bootloader" feature of the IDE. You're getting the "select a programmer" error because the "Arduino as ISP" programmer is not suitable for burning a SAM3X bootloader, even though it IS appropriate for changing the 16u2 firmware.

I’m doing tests on my Arduino Due board.

From what I have understood, can not follow the same steps to burn the boot loader.
In turn, the bootloader is in the ROM.

Would there be any way to update the firmware of the Arduino Due?
How could the Arduino Due bootloader burn?
What would be the mode or what steps would have to be followed?

This page has a pretty good rundown on the Due bootloader.

Let's say that the bootloader of the Arduino Due is in the ROM.

Even so, can burn the bootloader of the Arduino Due? Can the Arduino Due firmware be updated?
How could it be or what would be the steps to follow to update the bootloader of the Arduino Due?

I have been looking at the following link that you have indicated to me:

https://playground.arduino.cc/Bootloader/DueBootloaderExplained

From what I have been able to see, the SAM3X comes with a built-in bootloader, called SAM-BA.
And SAM3X will boot to SAM-BA when: A) the GPNVM bits have been modified (set to 0) to instruct SAM3X to boot to SAM-BA. It can be done in userspace code.
B) Erasing the chip (Erase button) which will also clear/zeroing the GPNVM bits and leads to the SAM-BA again.

I do not know how the SAM-BA process works. I do not know how to update the bootloader using the SAM-BA process.
I do not know what steps to take.

On the other hand, if I have not misunderstood it, it can be done using the ATmega16U2 wizard.
Says the following:

If the host is connected to the programming port at baud rate 1200, the ATMEGA16U2 will assert the Erase pin and Reset pin of the SAM3X. Forcing it to the SAM-BA bootloader mode.

The code, firmware of the ATMEGA16U2, currently lives in ide-1.5.x branch of /hardware/arduino/sam/firmwares/atmega16u2/arduino-usbserial/Arduino-usbserial.c

In this case, what would have to be done, look for the Arduino-usbserial.c program and load it directly into the Arduino Due, and with that the firmware would be updated?

I would greatly appreciate your help, as I am blocked in this process.

Xirimiri:
Let's say that the bootloader of the Arduino Due is in the ROM.

Even so, can burn the bootloader of the Arduino Due? Can the Arduino Due firmware be updated?
How could it be or what would be the steps to follow to update the bootloader of the Arduino Due?

The is in the term 'ROM'. That is Read Only Memory. It is programmed at the factory and then it cannot be reprogrammed.

Xirimiri:
I do not know how the SAM-BA process works. I do not know how to update the bootloader using the SAM-BA process.
I do not know what steps to take.

What process? The process of interacting with the bootloader to upload code is handled transparently by the IDE.
What makes you think that your bootloader needs updating?

I'm doing tests with the arduino due.

I am working and doing tests in the firmware update for the arduino due.

I would like to know if the bootloader can be applied in the Due arduino. If there is any way to do it

I would like to know, if you can and how it would be to apply the bootloader for the arduino due.

I would like to know how to apply the bootloader for the Arduino Due, if it can be applied, what steps should be followed to do it.
What steps should be applied to apply the bootloader of the Arduino Due.

I would greatly appreciate your help.

Xirimiri:
I'm doing tests with the arduino due.
(snip)

I don't believe so, since the bootloader is in ROM which is not reprogrammable.

Let's say you can not apply the bootloader for the Arduino Due.

The Arduino Due firmware could not be updated.

For what I've seen also,
For AVR, the bootloader can be erased. The Arduino IDE makes it difficult (but not impossible) to accidentally erase the bootloader.
The SAM bootloader is ROM. Read Only Memory. It can't be erased without physically destroying the chip with a hammer.

The SAM3X has a bootloader in ROM that cannot be erased. I'm not sure whether there's an Arduino bootloader as well. The ROM bootloader is activated when the flash is erased

Xirimiri:
Let’s say you can not apply the bootloader for the Arduino Due.

The Arduino Due firmware could not be updated.

For what I’ve seen also,
For AVR, the bootloader can be erased. The Arduino IDE makes it difficult (but not impossible) to accidentally erase the bootloader.
The SAM bootloader is ROM. Read Only Memory. It can’t be erased without physically destroying the chip with a hammer.

The SAM3X has a bootloader in ROM that cannot be erased. I’m not sure whether there’s an Arduino bootloader as well. The ROM bootloader is activated when the flash is erased

There’s no second ‘Arduino only’ bootloader on the Due, there is only the SAM-BA bootloader.

If I understood correctly, SAM-BA is the bootloader that is in the SAM3X, which in turn is in the ROM.
Therefore, the bootloader can not be applied to the Arduino Due.
Unable to update the firmware of the Arduino Due.

Thank you.

My objective is to update and apply the bootloader for the ATmega16U2 of Arduino Due.
I have followed the same steps that I mentioned at the beginning, taking the mentioned reference videos.

I have done the test with Arduino UNO-Arduino UNO.
But when doing the test with Arduino UNO-Arduino Due, it gives me an error.
Tells me to select the programmer, tools-->programmer.
But I have already selected the programmed: Arduino as ISP.

At the time of doing the test, I have discovered that the communication between the two microcontrollers if given. At the moment that I must select the port of the other microprocessor to apply the bootloader, I leave it as Arduino UNO. At the moment I give it to burn the bootloader, it detects that the microprocessor that is connected, is not the indicated microprocessor, therefore, the communication is given, since it detects that it is not the indicated microprocessor to which I want to apply the bootloader.

My objective is to update and apply the bootloader for the ATmega16U2 of Arduino Due. I would appreciate your help, I don't know if there will be any other way to do it.

Kind regards.

My objective is to update and apply the bootloader for the ATmega16U2 of Arduino Due.

That's not an "objective." That's a process step. WHY do you think you want to "update and apply the bootloader" on a Due?

The 16u2 on a Due does not have a bootloader in the traditional sense, and you can NOT update it using the "burn bootloader" feature of the IDE - you need to to use avrdude directly.

See Arduino - Upgrading16U2Due

I'm doing tests with the arduino due and and I want to update the firmware of the atmega16u2 of the arduino due.

I have taken as reference the link that you just mentioned:
https://www.arduino.cc/en/Hacking/Upgrading16U2Due

To begin with, I have a question about the capacitor. The capacitor should be connected to the arduino UNO or the Arduino Due?

Having reference to the aforementioned link, it must follow the indicated steps and then execute the avrdude using commands.

But I do not understand the last phase.

I have the version of Arduino IDE 1.8.8, and having reference link, I can not do it.

I do not know how to make the last step. I do not know how to execute the avrdude.

..im not sure that i understand you correctly, but, atmega16u2 you are looking for is one used with DUE equivalent of yours (i assume, you are after your own version of DUE and want it to be programmed)..