40f2d290aec4a6b0111a2e8b136ac7945c1fc062
ESP32 ESP-IDF component for simple OTA server
Features
- HTTP-based OTA firmware updates via standard HTTP POST requests.
- Automatic partition management with next available OTA partition detection.
- Embedded web interface for browser-based firmware uploads.
- Automatic boot activation and device reboot after successful update.
- Chunked data reception with 1000-byte blocks for efficient memory usage.
- Seamless integration with ESP-IDF HTTP server and OTA APIs.
- Comprehensive error handling with detailed ESP_LOGE logging.
- Low memory footprint with minimal RAM consumption.
Using
In an existing project, run the following command to install the component:
cd ../your_project/components
git clone https://github.com/aZholtikov/zh_ota_server
In the application, include the header:
#include "zh_ota_server.h"
Example
#include "nvs_flash.h"
#include "esp_wifi.h"
#include "zh_ota_server.h"
#define WIFI_SSID "SSID"
#define WIFI_PASS "password"
static httpd_handle_t http_server_handle = NULL;
void app_main(void)
{
esp_log_level_set("zh_ota_server", ESP_LOG_ERROR);
nvs_flash_init();
esp_event_loop_create_default();
esp_netif_init();
esp_netif_create_default_wifi_ap();
wifi_init_config_t wifi_config = WIFI_INIT_CONFIG_DEFAULT();
esp_wifi_init(&wifi_config);
wifi_config_t ap_config = {
.ap = {
.ssid = WIFI_SSID,
.password = WIFI_PASS,
.max_connection = 4,
.authmode = WIFI_AUTH_WPA2_PSK,
},
};
esp_wifi_set_mode(WIFI_MODE_AP);
esp_wifi_set_config(WIFI_IF_AP, &ap_config);
esp_wifi_start();
httpd_config_t config = HTTPD_DEFAULT_CONFIG();
httpd_start(&http_server_handle, &config);
zh_ota_server_init(http_server_handle, "/ota");
}
Description
ESP32 ESP-IDF component for simple OTA server.
81 KiB
0 Stars
1 Watchers
0 Forks
Languages
C
76.3%
HTML
22.5%
CMake
1.2%