AsyncElegantOTA
AsyncElegantOTA copied to clipboard
Crash on Wemos D1 Mini lite
I am using the Wemos D1 Mini lite.
The upgrade progress run through 100% but then the device resets.
Here is the Stack Trace:
0x40250d00: etharp_output_LWIP2 at core/ipv4/etharp.c line 885
0x402524f8: ip4_output_if_opt_src at core/ipv4/ip4.c line 1764
0x40254b55: tcp_input at core/tcp_in.c line 501
0x402522d9: ip4_input at core/ipv4/ip4.c line 1467
0x4024af6d: ethernet_input_LWIP2 at netif/ethernet.c line 188
0x4024ad6c: esp2glue_ethernet_input at glue-lwip/lwip-git.c line 116
0x40278d59: ethernet_input at glue-esp/lwip-esp.c line 365
0x40278d6b: ethernet_input at glue-esp/lwip-esp.c line 373
Should it work out of the box?
I used the example: https://randomnerdtutorials.com/esp8266-nodemcu-ota-over-the-air-arduino/
Sketch:
/*
Rui Santos
Complete project details
- Arduino IDE: https://RandomNerdTutorials.com/esp8266-nodemcu-ota-over-the-air-arduino/
- VS Code: https://RandomNerdTutorials.com/esp8266-nodemcu-ota-over-the-air-vs-code/
This sketch shows a Basic example from the AsyncElegantOTA library: ESP8266_Async_Demo
https://github.com/ayushsharma82/AsyncElegantOTA
*/
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <AsyncElegantOTA.h>
const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";
AsyncWebServer server(80);
void setup(void) {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.println("");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
request->send(200, "text/plain", "Hi! I am ESP8266.");
});
AsyncElegantOTA.begin(&server); // Start ElegantOTA
server.begin();
Serial.println("HTTP server started");
}
void loop(void) {
}
Thank you!
Exact issue with mine too. It crashes after 100% complete
22:37:51.696 > 0x4020534c in AsyncWebServerResponse::addHeader(String const&, String const&) at ??:? 22:37:51.696 > 0x402146ce in raise_exception at core_esp8266_postmortem.cpp:? 22:37:51.696 > 0x4020534c in AsyncWebServerResponse::addHeader(String const&, String const&) at ??:? 22:37:51.696 > 0x4021473b in __panic_func at ??:? 22:37:51.696 > 0x40213f3d in yield at ??:? 22:37:51.696 > 0x4020534c in AsyncWebServerResponse::addHeader(String const&, String const&) at ??:? 22:37:51.696 > 0x402014e0 in AsyncElegantOtaClass::begin(AsyncWebServer*, char const*, char const*)::{lambda(AsyncWebServerRequest*)#3}::operator()(AsyncWebServerRequest*) const at ??:? 22:37:51.696 > 0x40201508 in std::_Function_handler<void (AsyncWebServerRequest*), AsyncElegantOtaClass::begin(AsyncWebServer*, char const*, char const*)::{lambda(AsyncWebServerRequest*)#3}>::_M_invoke(std::_Any_data const&, AsyncWebServerRequest*&&) at ??:? 22:37:51.696 > 0x40105609 in lmacProcessAckTimeout at ??:? 22:37:51.696 > 0x402061d9 in AsyncCallbackWebHandler::handleRequest(AsyncWebServerRequest*) at ??:? 22:37:51.696 > 0x4010063c in pvPortMalloc at ??:? 22:37:51.696 > 0x40105609 in lmacProcessAckTimeout at ??:? 22:37:51.696 > 0x40204a00 in AsyncWebServerRequest::_onData(void*, unsigned int) at ??:? 22:37:51.696 > 0x40100409 in millis at ??:? 22:37:51.696 > 0x40204a54 in std::_Function_handler<void (void*, AsyncClient*, void*, unsigned int), AsyncWebServerRequest::AsyncWebServerRequest(AsyncWebServer*, AsyncClient*)::{lambda(void*, AsyncClient*, void*, unsigned int)#8}>::_M_invoke(std::_Any_data const&, void*&&, AsyncClient*&&, std::_Any_data const&, unsigned int&&) at WebRequest.cpp:? 22:37:51.696 > 0x40216d80 in AsyncClient::_recv(std::shared_ptr<ACErrorTracker>&, tcp_pcb*, pbuf*, long) at ??:? 22:37:51.696 > 0x40100000 in _stext at ??:? 22:37:51.696 > 0x40216de0 in AsyncClient::_s_recv(void*, tcp_pcb*, pbuf*, long) at ??:? 22:37:51.696 > 0x402539d1 in tcp_input at /home/earle/src/esp-quick-toolchain/arduino/tools/sdk/lwip2/builder/lwip2-src/src/core/tcp_in.c:501 (discriminator 1) 22:37:51.696 > 0x40251159 in ip4_input at /home/earle/src/esp-quick-toolchain/arduino/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c:1467 22:37:51.696 > 0x40100aff in umm_free_core at umm_malloc.cpp:? 22:37:51.696 > 0x40249e49 in ethernet_input_LWIP2 at /home/earle/src/esp-quick-toolchain/arduino/tools/sdk/lwip2/builder/lwip2-src/src/netif/ethernet.c:188 22:37:51.696 > 0x40249c44 in git2glue_err at /home/earle/src/esp-quick-toolchain/arduino/tools/sdk/lwip2/builder/glue-lwip/lwip-git.c:116 22:37:51.696 > (inlined by) esp2glue_ethernet_input at /home/earle/src/esp-quick-toolchain/arduino/tools/sdk/lwip2/builder/glue-lwip/lwip-git.c:477 22:37:51.696 > 0x40278105 in ethernet_input at /home/earle/src/esp-quick-toolchain/arduino/tools/sdk/lwip2/builder/glue-esp/lwip-esp.c:365 22:37:51.696 > 0x40278117 in ethernet_input at /home/earle/src/esp-quick-toolchain/arduino/tools/sdk/lwip2/builder/glue-esp/lwip-esp.c:373 22:37:51.696 > 0x4026f2c6 in ppPeocessRxPktHdr at ??:? 22:37:51.696 > 0x40273957 in ets_snprintf at ??:? 22:37:51.696 > 0x401059fd in call_user_start_local at ??:? 22:37:51.696 > 0x40105a03 in call_user_start_local at ??:? 22:37:51.696 > 0x40100cb8 in umm_init at ??:? 22:37:51.696 > 0x4010000d in call_user_start at ??:? 22:37:51.696 > 0x401000ac in app_entry_redefinable at ??:? 22:37:51.696 > 0x40105849 in lmacTxFrame at ??:? 22:37:51.696 > 0x4010542e in lmacMSDUAged at ??:? 22:37:51.696 > 0x40104d7d in lmacRecycleMPDU at ??:? 22:37:51.696 > 0x401031ef in rcReachRetryLimit at ??:? 22:37:51.696 > 0x40105331 in lmacMSDUAged at ??:? 22:37:51.696 > 0x40105609 in lmacProcessAckTimeout at ??:? 22:37:51.696 > 0x401038d6 in wDev_ProcessFiq at ??:? 22:37:51.696 > 0x401035a8 in wDev_ProcessFiq at ??:? 22:37:51.696 > 0x4029d125 in chip_v6_unset_chanfreq at ??:? 22:37:51.696 > 0x401058fb in lmacRxDone at ??:? 22:37:51.696 > 0x401031ef in rcReachRetryLimit at ??:? 22:37:51.696 > 0x401058fb in lmacRxDone at ??:? 22:37:51.696 > 0x401033cc in rcReachRetryLimit at ??:? 22:37:51.696 > 0x401002f4 in ets_post at ??:? 22:37:51.696 > 0x401047f3 in lmacProcessTXStartData at ??:? 22:37:51.696 > 0x40105849 in lmacTxFrame at ??:? 22:37:51.696 > 0x40102668 in pp_post at ??:? 22:37:51.696 > 0x4010542e in lmacMSDUAged at ??:? 22:37:51.696 > 0x40104d7d in lmacRecycleMPDU at ??:? 22:37:51.696 > 0x402253ac in _svfprintf_r at /workdir/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:609 22:37:51.696 > 0x40105331 in lmacMSDUAged at ??:? 22:37:51.696 > 0x401047f3 in lmacProcessTXStartData at ??:? 22:37:51.696 > 0x401047f0 in lmacProcessTXStartData at ??:? 22:37:51.696 > 0x40225050 in __ssputs_r at /workdir/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:232 22:37:51.696 > 0x40103757 in wDev_ProcessFiq at ??:? 22:37:51.696 > 0x401035a8 in wDev_ProcessFiq at ??:? 22:37:51.696 > 0x402131c2 in String::concat(char const*, unsigned int) at ??:? 22:37:51.696 > 0x401002f4 in ets_post at ??:? 22:37:51.696 > 0x40102a95 in rcUpdateTxDone at ??:? 22:37:51.696 > 0x40102668 in pp_post at ??:? 22:37:51.696 > 0x401058e3 in lmacTxFrame at ??:? 22:37:51.696 > 0x40104abe in lmacRecycleMPDU at ??:? 22:37:51.696 > 0x40104f2f in lmacRecycleMPDU at ??:? 22:37:51.696 > 0x4020ea07 in ArduinoJson6200_F1::enable_if<ArduinoJson6200_F1::is_unsigned<unsigned long long>::value, void>::type ArduinoJson6200_F1::TextFormatter<ArduinoJson6200_F1::Writer<String, void> >::writeInteger<unsigned long long>(unsigned long long) at ??:? 22:37:51.696 > 0x4020e9ac in ArduinoJson6200_F1::CountingDecorator<ArduinoJson6200_F1::Writer<String, void> >::write(unsigned char const*, unsigned int) at ??:? 22:37:51.696 > 0x401049f7 in lmacProcessTxSuccess at ??:? 22:37:51.696 > 0x4020ea44 in ArduinoJson6200_F1::enable_if<ArduinoJson6200_F1::is_unsigned<unsigned long long>::value, void>::type ArduinoJson6200_F1::TextFormatter<ArduinoJson6200_F1::Writer<String, void> >::writeInteger<unsigned long long>(unsigned long long) at ??:? 22:37:51.696 > 0x401038c0 in wDev_ProcessFiq at ??:? 22:37:51.696 > 0x401033cc in rcReachRetryLimit at ??:? 22:37:51.696 > 0x4020ddfc in ArduinoJson6200_F1::Writer<String, void>::flush() at ??:? 22:37:51.696 > 0x401035a8 in wDev_ProcessFiq at ??:? 22:37:51.696 > 0x402131c2 in String::concat(char const*, unsigned int) at ??:? 22:37:51.696 > 0x40217e77 in AsyncWebSocket::makeBuffer(unsigned char*, unsigned int) at ??:? 22:37:51.696 > 0x40217e77 in AsyncWebSocket::makeBuffer(unsigned char*, unsigned int) at ??:? 22:37:51.696 > 0x4020fc64 in _ZN18ArduinoJson6200_F113serializeJsonI6StringEEjNS_16JsonVariantConstERT_$isra$0 at ESPDash.cpp:? 22:37:51.696 > 0x40100aff in umm_free_core at umm_malloc.cpp:? 22:37:51.696 > 0x40100aff in umm_free_core at umm_malloc.cpp:? 22:37:51.696 > 0x40100aff in umm_free_core at umm_malloc.cpp:? 22:37:51.696 > 0x40100cde in free at ??:? 22:37:51.696 > 0x40244d5c in operator delete(void*) at /workdir/repo/gcc-gnu/libstdc++-v3/libsupc++/del_op.cc:50 22:37:51.696 > 0x4022a974 in operator delete(void*, unsigned int) at /workdir/repo/gcc-gnu/libstdc++-v3/libsupc++/del_ops.cc:34 22:37:51.696 > 0x40100aff in umm_free_core at umm_malloc.cpp:? 22:37:51.696 > 0x40100cde in free at ??:? 22:37:51.696 > 0x40212df9 in String::invalidate() at ??:? 22:37:51.696 > 0x4021035e in ESPDash::generateLayoutJSON(AsyncWebSocketClient*, bool) at ??:? 22:37:51.696 > 0x401002f4 in ets_post at ??:?