Arduino bootloader UNO Mini

Hi,
I don't know the details of the Arduino bootloaders.
A doubt arose in my head:
The UNO arduino uses an Atmega328 DIP 28 processor, and the Mini arduino uses an Atmega328 VQFN 32 SMD.
Besides the package, the only difference between them is that the SMD has 2 more ADCs than the DIP.
My question:
Is it possible to load the UNO bootloader on the Mini considering using only 6 ADCs?

If so, how should I proceed?

RV mineirin

I have not checked, but it probably is the same bootloader on both. Its only job is to wait a bit in case you want to upload, then start your program.
MiniBootloader

You will need an ISP programmer.

1 Like

Yes : Google - 'upload bootloader to UNO'

They are identical as far as the IDE goes.

1 Like

It depends on what @ruilviana means by "Mini". If it's the retired and rarely seen Arduino Mini, then it appears that it does ship with the same Optiboot bootloader as the Uno:
https://github.com/arduino/ArduinoCore-avr/blob/1.8.3/boards.txt#L464

mini.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328-Mini.hex

However, if it's the ubiquitous Pro Mini, then it ships with a significantly different bootloader:
https://github.com/arduino/ArduinoCore-avr/blob/1.8.3/boards.txt#L680

pro.menu.cpu.16MHzatmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex

The biggest problem with this "ATmegaBOOT" bootloader is that it causes the microcontroller to go into an endless reset loop if your sketch uses a watchdog reset:

Optiboot handles watchdog resets fine.

The other problem is that the "ATmegaBOOT" bootloader requires a 2 kB boot section, whereas Optiboot fits in 0.5 kB boot section. So using Optiboot allows you to free up 1.5 kB of precious flash memory, while also actually having superior functionality. Cool stuff!

Despite this, for some mysterious reason the Mini's fuses are set for a 2 kB boot section
https://github.com/arduino/ArduinoCore-avr/blob/1.8.3/boards.txt#L462

mini.menu.cpu.atmega328.bootloader.high_fuses=0xd8

even more mysterious, the IDE is configured to fail compilation if the sketch exceeds 28 kB of flash memory, as if the board had a 4 kB boot section:
https://github.com/arduino/ArduinoCore-avr/blob/1.8.3/boards.txt#L458

mini.menu.cpu.atmega328.upload.maximum_size=28672

Anyway, missdrew is correct in saying that the Uno's bootloader can be used on the Mini (or Pro Mini), and I would recommend that advanced users do this. For less advanced users, I would recommend just sticking with the bootloader you have now until such time as it causes you a problem because the bootloader burning process is very challenging for less advanced users. Many thousands of people are happily using boards with the "ATmegaBOOT" bootloader, while many less than that are impacted by the resulting reduced flash memory and inability to use the watchdog reset.

PROBABLY it ships with the ATmegaBoot bootloader. Since the "pro mini" is so widely cloned, and since "bootloader software version control" is not a strong point of cloners, it COULD have something else :frowning:

1 Like

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.