What bootloader should I be using for Nano?

Hi there

I have built my own Nano, forking from the original.
Can someone confirm what bootloader I should be using for my ATmega 328p MCU?

Thanks
Jack,

Two obvious choices

Stick to the Nano bootloader
Pro: It says Nano op the tin
Con: Older/slower then the second obvious choice

Use the Uno bootloader
Pro: Newer, faster and smaller
Con: You have to select Uno when uploading, not Nano.

septillion:
Two obvious choices

Stick to the Nano bootloader
Pro: It says Nano op the tin
Con: Older/slower then the second obvious choice

Use the Uno bootloader
Pro: Newer, faster and smaller
Con: You have to select Uno when uploading, not Nano.

And what HEX files are these?
Interested in the newer one if it is faster (and can do everything the Nano bootloader can do).

Uno bootloader also doesn't have the bug that causes an endless loop after reset loop.

If you're looking for the bootloader included with the Arduino IDE they're:
Uno:

Nano with ATmega328P:

You can find the file name of the bootloader for any board in boards.txt:

The version of optiboot included with the Arduino IDE is actually a bit outdated, though not in any terrible significant way. The latest official optiboot is here:

There's also a modified version of Optiboot that allows you to write to flash from the application:

Compiled versions of that here:
https://github.com/MCUdude/MiniCore/tree/master/avr/bootloaders/optiboot_flash/atmega328p

The fact you can burn an Arduino bootloader to your ATmega328p is because that's the same micro as a Nano. Bu a Nano, Uno and Pro Mini all use the ATmega328p :wink:

And you don't even need the hex. Just select Uno from the board menu, connect your programmer of choice, select it in the programmer menu and hit burn bootloader.

I am using a chip programmer to program the bootloader into the MCUs rather than through an ISP method.
Thus why I am after finding out the proper bootloader HEX.

pert:
Uno bootloader also doesn't have the bug that causes an endless loop after reset loop.

If you're looking for the bootloader included with the Arduino IDE they're:
Uno:
Arduino/boards.txt at 1.8.2 · arduino/Arduino · GitHub

Nano with ATmega328P:
Arduino/ATmegaBOOT_168_atmega328.hex at 1.8.2 · arduino/Arduino · GitHub

You can find the file name of the bootloader for any board in boards.txt:
Arduino/boards.txt at 1.8.2 · arduino/Arduino · GitHub

The version of optiboot included with the Arduino IDE is actually a bit outdated, though not in any terrible significant way. The latest official optiboot is here:
GitHub - Optiboot/optiboot: Small and Fast Bootloader for Arduino and other Atmel AVR chips
There's also a modified version of Optiboot that allows you to write to flash from the application:
GitHub - majekw/optiboot: Small and Fast Bootloader for Arduino and other Atmel AVR chips
Compiled versions of that here:
https://github.com/MCUdude/MiniCore/tree/master/avr/bootloaders/optiboot_flash/atmega328p

Thanks, Ill give those a go.

Jackster:
I am using a chip programmer to program the bootloader into the MCUs rather than through an ISP method.

And to what pins is the programmer connected? Right, the ISP pins :wink: ISP just stands for In-System Programming and has nothing to do with Arduino. The confusing might com from the fact you can turn an Arduino into a programmer with the ArduinoISP sketch. But then the Arduino just acts as a programmer. So just do as I explained in reply #4 and you're done :wink: