An open source bootloader for the ESP8266
FreeFlexible open source boot loader for ESP8266
About An open source bootloader for the ESP8266
rBoot is an open source boot loader for the ESP8266 microcontroller, designed as a flexible replacement for the proprietary binary blob supplied with the Espressif SDK. Written in C, it supports up to 256 roms with variable sizes, allows testing multiple roms to find a valid backup without resetting, and enables flash layout changes on the fly. Key advantages include GPIO support for rom selection, zero stack waste (the SDK loader uses 144 bytes), a documented config structure for easy editing from user code, and checksum validation of the .irom0.text section. Limitations arise from the ESP8266's hardware: only 8Mbits (1MB) of flash can be mapped to memory, and individual roms must not straddle an 8Mbit boundary; support for larger flash (>8Mbit) is disabled by default and requires additional configuration. Building requires the gcc xtensa cross compiler and esptool2, while installation involves writing rboot.bin to the first sector of the flash, after which it creates its own config at the start of sector two.
Key Features
Pros & Cons
- Open source allows full customization and inspection
- Support for many roms (up to 256) with variable sizes
- No stack overhead compared to the SDK boot loader
- GPIO selection enables hardware-based rom switching
- Ability to validate rom integrity with checksum
- Each rom limited to 1MB due to 8Mbit flash mapping
- Roms cannot straddle 8Mbit boundaries, restricting layout flexibility
- Support for flash larger than 8Mbit requires additional manual steps
- Building requires gcc xtensa cross compiler and esptool2