Optiboot version 8.0 release

1 post / 0 new
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 3

Optiboot version 8 is available.

The major points relevant to Arduino users include:

  1. Cleanup of the MCUSR (reset reason) behavior.
  2. Ability to jump to the bootloader "as a service" to reload new code (with a bit of care.)
  3. an available do_spm() function that allows an application to write to flash memory by calling code withing the bootloader.

Other changes:

  1. update switches for more recent compiler versions (as consequence is that it no longer quite works with WinAVR or the IDE1.0.3 compiler.)
  2. Add options and "help" target to makefiles.
  3. Fold in Hans's (MCUDude's) miniCore, megaCore, mightyCore, and majorCore to support a very large number of ATmega targets.
  4. Fold in DrAzzy's ATtinyCore, to support a bunch of the more capable ATtiny targets.
  5. On targets with 1k bootloaders, include text info about the build in the binar
  6. Make sure the "Virtual Boot Partition" targets work (needed for (4), but... other platforms too!)
  7. Add and update test tools and sketches.
  8. with a bit of luck, you COULD compile an ATmega328 Optiboot that includes EEPROM read and write capability that still fits in 512bytes (but you have to turn off the do_spm feature, and removing the startup LED blinking.)
  9. Various internal cleanups and generalizations.

Most of this work has been available for a long time now, from MCUDude, DrAzzy, and/or Majekw.  I've just finally gotten around to including it in the "master" Optiboot tree.


There is a .json package for the board manager on the release sub-page, but it's become quite minimal compared to the targets and options that are supported.  Unless you want to mess with the source code or build a bootloader with a particularly strange combination of features, it is a much better alternative to use one of the "board" definitions from MCUDude or DrAzzy that include a wide variety of .hex files of the bootloader, AND "core" code to support the processors.  (MCUDude's cores contain several thousand permutations of optiboot*.hex files for different baud rate, processor clock rates, and uart choice.