2

The question is meant as in, can I lock myself out of the Arduino using the bootloader, if I flash a hex file that doesn't contain the bootloader?

Or does the bootloader automatically add the flashed file after itself, so that it's never overwritten?

The device in question is an Arduino Pro Micro (ATMega32u4). Asking, because I don't have an ISP available right now, and I have to flash pre-compiled hex files.

1 Answer 1

3

If you don't play around ISP programming and have not already been playing around with ISP programming, your bootloader is fine and will remain fine no matter what you try to upload. The bootloader has its own protected section, so it's not necessary to tack it onto your sketch code on every upload. The Pro Micro bootloader can't be updated via itself anyway.

Worst case what you try to upload your precompiled binaries and they simply don't work.

You can upload code that fails to respond to the 1200 baud touch request that is used to reset the board into the bootloader, which may make you think you've screwed up the board, but you haven't. The Pro Micro version of Caterina bootloader supports a double-tap reset for an 8-second upload window no matter what you've put (or tried putting) on the chip.

Practically speaking, the existing bootloader is immutable and will always work for you until ISP becomes involved at some point.

8
  • Nice, that was the answer I was looking for, thanks!
    – Dakkaron
    Commented Aug 20, 2022 at 19:49
  • as the question title doesn't mention the MCU, I just want to add a note that this answer doesn't apply to all MCU. even on the new AVR MCUs the bootloader is not protected by default
    – Juraj
    Commented Aug 21, 2022 at 6:38
  • @Juraj: I had the ATMega32u4 both in the question and in the tag. Which new AVR MCUs do you refer to? I guess, you mean anything beyond the ATMega line? Your input is definitely valid.
    – Dakkaron
    Commented Aug 21, 2022 at 20:43
  • @Dakkaron for example ATmega4809 used on Nano Every and Uno WiFi
    – Juraj
    Commented Aug 21, 2022 at 20:52
  • The ATmega4809 doesn't support the protocol that Atmel/Microchip refer to as "ISP".
    – timemage
    Commented Aug 21, 2022 at 21:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.