5

According to official web info bootloader sizes are 0.5, 2 and 8 kilo bytes for UNO, Pro mini and ATMega2560. I believe all three boot loaders do similar job of receiving serial link data and write to Flash memory.

UNO and Pro mini use same/similar ATMega168/328 chips but boot loader size are 0.5 and 2 KB.

ATMega2560 apparent has a more advanced MCU which presumably should use similar or even less memory to do the same task, but the size is significantly large at 8 KB.

Why sizes differ? Small difference may be explained by different development teams, but, should be that much different, from 0.5 to 8KB.

5

Bootloader of the Mini and Uno are pretty much the same. (I can't find the source-code but the hex files are only slightly different).

The 2k is because they haven't updated mini328.upload.maximum_size in boards.txt. Probably because that would break the board for users that haven't updated the bootloader yet.

The 2560 is using a stk500v2 compatible boot loader instead of Optiboot (uno and mini), because optiboot only supports upto 64kb addresses. Not sure why it is that much bigger though.

  • How to find out if UNO, Pro Mini/ATMega2560 boards are loaded with latest version boot loader (hoping that it is smaller in size to allow max user program)? Where can I get latest boot loaders for these 3 boards? If needed, how to re-program boot loader of UNO/Pro Mini/ATMega2560? – EEd Aug 17 '14 at 18:17
  • Uploading the latest is probably easier than testing which version is on it. Bootloaders can be found at: github.com/arduino/Arduino/tree/master/hardware/arduino/… . Just google how to upgrade. If you can work it out ask a new question here on SE. – Gerben Aug 18 '14 at 15:32
0

Generally speaking the chips offer four possible bootloader size configurations. For example, on the Atmega328 you can have 512, 1024, 2048 or 4096 bytes (notice that the sizes increase by a power of 2).

The chips with less program memory offer smaller bootloaders because they won't want to use a lot of that memory for something that is only used to upload code. The chips with more memory (like the Atmega2560) offer larger bootloaders, ie. 1k, 2k, 4k, 8k (again it increases by a power of 2).

The Uno manages to use a 512 byte bootloader (Optiboot). The Mega, which has more complex instructions (to handle a larger address space) would need larger bootloaders. Also in some cases the bootloader writers add in extra stuff like a debugging console.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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