Async Mode
ElegantOTA includes an async mode feature, enabling asynchronous web server functionality for managing OTA updates. When async mode is enabled, ElegantOTA utilizes ESPAsyncWebServer to handle all HTTP routes.
This mode should only be enabled if you are using ESPAsyncWebServer library in your project/firmware.
Recommended Dependencies
For ESP8266
- (mathieucarbou) esphome-ESPAsyncTCP - v2.0.0
- (mathieucarbou) ESPAsyncWebServer - v3.3.20
For ESP32
- (mathieucarbou) AsyncTCP @ v3.2.10
- (mathieucarbou) ESPAsyncWebServer - v3.3.20
For RP2040 (+ WiFi)
- (khoih-prog) AsyncTCP_RP2040W @ v1.2.0
- (mathieucarbou) ESPAsyncWebServer - v3.3.20
Use of Unrecommended Dependencies (Experimental)
Incase your project is strictly dependent on a fork of dependency which is not listed above, you need to follow these steps if you are using PlatformIO:
-
Please make sure to install ElegantOTA ‘manually’ using the steps provided in installation guide
-
Open
library.json
file in ElegantOTA library folder and delete thedependencies
parameter. This will disable auto installation of recommended dependencies.
Enabling Async Mode
For Arduino IDE
-
Go to your Arduino libraries directory
-
Open
ElegantOTA
folder and then opensrc
folder -
Locate the
ELEGANTOTA_USE_ASYNC_WEBSERVER
macro in theElegantOTA.h
file, and set it to1
:#define ELEGANTOTA_USE_ASYNC_WEBSERVER 1
-
Save the changes to the
ElegantOTA.h
file. -
You are now ready to use ElegantOTA in async mode for your OTA updates, utilizing the ESPAsyncWebServer library.
For PlatformIO
If you use PlatformIO then we can use a neat trick! You can set build_flags
in your platformio.ini
file that enables Async Mode of ElegantOTA.
- Open
platformio.ini
file of your project - Paste this line
build_flags=-DELEGANTOTA_USE_ASYNC_WEBSERVER=1
at bottom - Done!
PlatformIO will now compile ElegantOTA in Async Mode!
Benefits of Async Mode
Enabling async mode for ElegantOTA offers several advantages:
-
Non-blocking Operation: In async mode, ElegantOTA leverages the asynchronous web server capabilities of ESPAsyncWebServer. This means that OTA updates won’t block your device’s main loop. It allows your device to continue executing other tasks while handling OTA updates in the background.
-
Improved Responsiveness: Your device can remain responsive to user interactions or other processes during OTA updates, ensuring a smoother user experience.