ESPHome 2026.1.0-dev
Loading...
Searching...
No Matches
esphome::ota::ESP8266OTABackend Class Reference

OTA backend for ESP8266 using native SDK functions. More...

#include <ota_backend_esp8266.h>

Inheritance diagram for esphome::ota::ESP8266OTABackend:
esphome::ota::OTABackend

Public Member Functions

OTAResponseTypes begin (size_t image_size) override
 
void set_update_md5 (const char *md5) override
 
OTAResponseTypes write (uint8_t *data, size_t len) override
 
OTAResponseTypes end () override
 
void abort () override
 
bool supports_compression () override
 
- Public Member Functions inherited from esphome::ota::OTABackend
virtual ~OTABackend ()=default
 

Protected Member Functions

bool erase_sector_if_needed_ ()
 Erase flash sector if current address is at sector boundary.
 
bool flash_write_ ()
 Write buffer to flash (does not update address or clear buffer)
 
bool write_buffer_ ()
 Write buffered data to flash and update MD5.
 
bool write_buffer_final_ ()
 Write buffered data to flash without MD5 update (for final padded write)
 
bool verify_end_ ()
 Verify the firmware header is valid.
 
uint8_t get_flash_chip_mode_ ()
 Get current flash chip mode from flash header.
 

Protected Attributes

std::unique_ptr< uint8_t[]> buffer_
 
size_t buffer_size_ {0}
 
size_t buffer_len_ {0}
 
uint32_t start_address_ {0}
 
uint32_t current_address_ {0}
 
size_t image_size_ {0}
 
md5::MD5Digest md5_ {}
 
uint8_t expected_md5_ [16]
 
bool md5_set_ {false}
 

Detailed Description

OTA backend for ESP8266 using native SDK functions.

This implementation bypasses the Arduino Updater library to save ~228 bytes of RAM by not having a global Update object in .bss.

Definition at line 15 of file ota_backend_esp8266.h.

Member Function Documentation

◆ abort()

void esphome::ota::ESP8266OTABackend::abort ( )
overridevirtual

Implements esphome::ota::OTABackend.

Definition at line 303 of file ota_backend_esp8266.cpp.

◆ begin()

OTAResponseTypes esphome::ota::ESP8266OTABackend::begin ( size_t image_size)
overridevirtual

Implements esphome::ota::OTABackend.

Definition at line 53 of file ota_backend_esp8266.cpp.

◆ end()

OTAResponseTypes esphome::ota::ESP8266OTABackend::end ( )
overridevirtual

Implements esphome::ota::OTABackend.

Definition at line 239 of file ota_backend_esp8266.cpp.

◆ erase_sector_if_needed_()

bool esphome::ota::ESP8266OTABackend::erase_sector_if_needed_ ( )
protected

Erase flash sector if current address is at sector boundary.

Definition at line 154 of file ota_backend_esp8266.cpp.

◆ flash_write_()

bool esphome::ota::ESP8266OTABackend::flash_write_ ( )
protected

Write buffer to flash (does not update address or clear buffer)

Definition at line 167 of file ota_backend_esp8266.cpp.

◆ get_flash_chip_mode_()

uint8_t esphome::ota::ESP8266OTABackend::get_flash_chip_mode_ ( )
protected

Get current flash chip mode from flash header.

Definition at line 347 of file ota_backend_esp8266.cpp.

◆ set_update_md5()

void esphome::ota::ESP8266OTABackend::set_update_md5 ( const char * md5)
overridevirtual

Implements esphome::ota::OTABackend.

Definition at line 125 of file ota_backend_esp8266.cpp.

◆ supports_compression()

bool esphome::ota::ESP8266OTABackend::supports_compression ( )
inlineoverridevirtual

Implements esphome::ota::OTABackend.

Definition at line 23 of file ota_backend_esp8266.h.

◆ verify_end_()

bool esphome::ota::ESP8266OTABackend::verify_end_ ( )
protected

Verify the firmware header is valid.

Definition at line 310 of file ota_backend_esp8266.cpp.

◆ write()

OTAResponseTypes esphome::ota::ESP8266OTABackend::write ( uint8_t * data,
size_t len )
overridevirtual

Implements esphome::ota::OTABackend.

Definition at line 132 of file ota_backend_esp8266.cpp.

◆ write_buffer_()

bool esphome::ota::ESP8266OTABackend::write_buffer_ ( )
protected

Write buffered data to flash and update MD5.

Definition at line 177 of file ota_backend_esp8266.cpp.

◆ write_buffer_final_()

bool esphome::ota::ESP8266OTABackend::write_buffer_final_ ( )
protected

Write buffered data to flash without MD5 update (for final padded write)

Definition at line 223 of file ota_backend_esp8266.cpp.

Field Documentation

◆ buffer_

std::unique_ptr<uint8_t[]> esphome::ota::ESP8266OTABackend::buffer_
protected

Definition at line 44 of file ota_backend_esp8266.h.

◆ buffer_len_

size_t esphome::ota::ESP8266OTABackend::buffer_len_ {0}
protected

Definition at line 46 of file ota_backend_esp8266.h.

◆ buffer_size_

size_t esphome::ota::ESP8266OTABackend::buffer_size_ {0}
protected

Definition at line 45 of file ota_backend_esp8266.h.

◆ current_address_

uint32_t esphome::ota::ESP8266OTABackend::current_address_ {0}
protected

Definition at line 49 of file ota_backend_esp8266.h.

◆ expected_md5_

uint8_t esphome::ota::ESP8266OTABackend::expected_md5_[16]
protected

Definition at line 53 of file ota_backend_esp8266.h.

◆ image_size_

size_t esphome::ota::ESP8266OTABackend::image_size_ {0}
protected

Definition at line 50 of file ota_backend_esp8266.h.

◆ md5_

md5::MD5Digest esphome::ota::ESP8266OTABackend::md5_ {}
protected

Definition at line 52 of file ota_backend_esp8266.h.

◆ md5_set_

bool esphome::ota::ESP8266OTABackend::md5_set_ {false}
protected

Definition at line 54 of file ota_backend_esp8266.h.

◆ start_address_

uint32_t esphome::ota::ESP8266OTABackend::start_address_ {0}
protected

Definition at line 48 of file ota_backend_esp8266.h.


The documentation for this class was generated from the following files: