Optiboot
More info
- Creator
- Peter Knight, Bill Westfield
- Type
- Bootloader
- License
- GPL
- Source
- github.com/Optiboot/optiboot
The 512-byte bootloader that lets an Arduino be programmed over its USB cable with no extra hardware.
Its predecessor ate two kilobytes of an ATmega328P's 32. Optiboot does the same job in a quarter of that and handed 1.5 KB back to the user's sketch, which was enough to make it the default on the Arduino Uno from 2010. It speaks a subset of Atmel's STK500 protocol at 115,200 baud.
The trick that makes it convenient lives off-chip: the USB-serial chip's DTR line is wired to reset through a capacitor, so opening the port reboots the board. Optiboot waits briefly for data and otherwise jumps to the application. It also checks the reset cause — a watchdog reset goes straight to the application, so firmware that resets itself on purpose doesn't sit around waiting for an upload.