1. Introduction

1.1. What is a Bootloader?

A bootloader is a term that is generally applied to microcontrollers. It is a special type of application that will run under certain conditions that allows the actual application to be erased, updated, verified, or flashed as needed.

There are more comprehensive explanations available with a quick search.

1.2. What is booty

The booty protocol focuses on the relatively simple bootloaders required for microcontroller applications. If your microcontroller is in the PIC, dsPIC, STM32F, Atmel, or similar families, then booty will likely fulfill your requirements.

1.2.1. The protocol

booty, at its highest level, describes the basic operations of a bootloader implementation and is not an implementation itself. Protocol features include:

  • serial-device based (UART, RS-232, RS-485, etc)
  • device and protocol identification
  • device erasure
  • loading
  • verification
  • self protection
  • open source!

1.2.2. The implementation(s)

On the other hand, since booty is a protocol, then there are any number of possible implementations and workflows possible. For instance, the author has implemented a server using Python (described by this documentation) along with a client implentation in C for the dsPIC series of microcontrollers. The C implementation is small, simple, uses no interrupts, and has been successfully tested.