Optiboot is an easy to install upgrade to the Arduino bootloader within Arduino boards. It provides the following features:
Optiboot (an older version) is installed by default on the Arduino Uno and (as of 2018) official Arduino Nano boards. It can be installed on all older mega8, 168 or 328 based Arduinos.
As of 2019, Atmel was acquired by Microchip Inc, and released several "new" architectures with the AVR CPU. These are known as the Mega-0, Tiny-0, and Tiny-1 Series. While the basic CPU operation is about the same as older AVRs, the peripherals, including Flash self-programming, are significantly different. This justified a new version of Optiboot with separate source code and Makefiles, which we're calling "optiboot_x" (the new AVR chips closely resemble the "AVR XMega" chips.)
More detailed documentation is being added (slowly) to the repository wiki.
Optiboot is "compatible", in a loose sense, with all versions of the Arduino IDE. It was originally written at about the same time as v1.0, and has some "quirks" that date back to that timeframe. Most significantly, the directory structure of the git repository is "weird."
You do NOT need to "install" Optiboot if you are trying to update an installed platform that already uses some form of Optiboot. In fact, you should almost certainly NOT install Optiboot using the board manager. The Optiboot GitHub repository these days is mostly useful as a source-code repository, for anyone who needs to make a highly customized version for some reason. Or an improvement to Optiboot itself.
Most end users should find a supported "Arduino Core" that includes Optiboot for their desired target, and install that. Many such cores are provided by the hardware vendor, and they'll include Board definitions, Variant files, and Arduino core code needed to support the target as well as one or more Optiboot .hex files that should work.
There are also some major repositories of "generic" versions of cores for various targets, including:
If you need a new Optiboot feature not included in a pre-packaged core, the recommended procedure is to download or fork the source code, manually compile the version you need, and copy the .hex file to the existing board directory (after renaming the old .hex file, in case you need it back.)
Nevertheless, there is an automatically installable Board Manager package that includes the .hex files for Optiboot on several popular Arduino boards (a very small subset of the possible targets.). Using the Optiboot "install" procedure does not install any cores or variants, so it is only useful for CPUs that are already supported by the standard Arduino core.
The following instructions are based on using the Arduino "Board Manager", present in IDE versions 1.6.5 and later.
For additional installation information, see the Optiboot AddingOptibootChipsToIde Wiki page
Optiboot is the work of Peter Knight (aka Cathedrow). Despite some misattributions, it is not sponsored or supported by any organisation or company including Tinker London, Tinker.it! and Arduino.
Maintenance of Optiboot was taken over by Bill Westfield (aka WestfW) in 2011. Major contributions have also been made by Hans "MCUdude", Spence "DrAzzy" Konde, and majekw.