I am having trouble with ArduinoOTA which seems to be caused by mDNS:
Minimal example - Arduini IDE 1.8.8:
#include <ArduinoOTA.h>
#include <Streaming.h>
void setup()
{
Serial.begin(74880);
delay(1); // esp doesnt like writing to serial right away
Serial<<endl<<endl;
Serial<<F("Build date/time: " __DATE__ " / " __TIME__)<<endl;
Serial<<F("Reset info: ")<<ESP.getResetInfo()<<endl;
Serial<<F("Boot mode: ")<<ESP.getBootMode()<<endl;
Serial<<F("Boot version: ")<<ESP.getBootVersion()<<endl;
Serial<<F("Reset cause: ")<<ESP.getResetReason()<<endl;
Serial<<F("CPU frequency (MHz): ")<<ESP.getCpuFreqMHz()<<endl;
Serial<<F("Core version: ")<<ESP.getCoreVersion()<<endl;
Serial<<F("SDK version: ")<<ESP.getSdkVersion()<<endl;
Serial<<F("Flash chip mode: ")<<ESP.getFlashChipMode()<<endl;
Serial<<F("Flash size (by SDK): ")<<ESP.getFlashChipSize()<<endl;
Serial<<F("Flash size (by chip ID): ")<<ESP.getFlashChipRealSize()<< endl;
Serial<<F("Flash speed (MHz): ")<<ESP.getFlashChipSpeed()/1000000<<endl;
Serial<<F("Sketch size/left: ")<<ESP.getSketchSize()<<F(" / ") << ESP.getFreeSketchSpace()<<endl;
Serial<<F("Sketch usage: ")<<(ESP.getFreeSketchSpace()+ESP.getSketchSize())/ESP.getSketchSize()<<F("%")<<endl;
Serial<<F("Sketch MD5: ")<<ESP.getSketchMD5()<<endl;
Serial<<F("Free heap: ")<<ESP.getFreeHeap()<<endl;
Serial<<endl<<"start ota";
ArduinoOTA.setHostname("espOTA"); // Hostname defaults
ArduinoOTA.begin();
}
void loop() {
ArduinoOTA.handle();
}
Serial:
ets Jan 8 2013,rst cause:2, boot mode:(3,7)
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v0fd86a07
~ld
Build date/time: Jan 21 2019 / 20:08:24
Reset info: Fatal exception:0 flag:6 (EXT_SYS_RST) epc1:0x00000000 epc2:0x00000000 epc3:0x00000000 excvaddr:0x00000000 depc:0x00000000
Boot mode: 1
Boot version: 31
Reset cause: External System
CPU frequency (MHz): 80
Core version: 2_5_0_BETA2
SDK version: 3.0.0-dev(c0f7b44)
Chip ID: 0xE3232C
Flash ID: 0x1640E0
Flash chip mode: 0
Flash size (by SDK): 4194304
Flash size (by chip ID): 4194304
Flash speed (MHz): 40
Sketch size/left: 361008 / 3829760
Sketch usage: 11%
Sketch MD5: 6fb3b7badf1313bcb2d3276daed7dcd8
Free heap: 48760
start ota
...
Stack trace:
its not always the same it differs from boot to boot but its always related to some mDNS methods:
Exception 9: LoadStoreAlignmentCause: Load or store to an unaligned address
PC: 0x4020689f: esp8266::MDNSImplementation::MDNSResponder::_parseMessage() at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266mDNS\src\LEAmDNS_Control.cpp line 119
EXCVADDR: 0x40206977: esp8266::MDNSImplementation::MDNSResponder::_process(bool) at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266mDNS\src\LEAmDNS_Control.cpp line 74
Decoding stack results
0x40206998: esp8266::MDNSImplementation::MDNSResponder::_callProcess() at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266mDNS\src\LEAmDNS_Helpers.cpp line 175
0x4020b9af: std::_Function_handler (esp8266::MDNSImplementation::MDNSResponder*)> >::_M_invoke(std::_Any_data const&) at c:\users\<user>\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-3-20ed2b9\xtensa-lx106-elf\include\c++\4.8.2/functional line 2073
0x40202e5e: std::function ::operator()() const at c:\users\<user>\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-3-20ed2b9\xtensa-lx106-elf\include\c++\4.8.2/functional line 2465
0x40202ea4: UdpContext::_s_recv(void*, udp_pcb*, pbuf*, ip4_addr const*, unsigned short) at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266WiFi\src/include/UdpContext.h line 423
0x401002b0: pvPortMalloc at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\cores\esp8266\heap.c line 153
0x4021afcc: udp_input at core/udp.c line 404
0x401007fc: malloc at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\cores\esp8266\umm_malloc\umm_malloc.c line 1673
0x40220000: raw_input at core/raw.c line 187
0x4021f0c0: ip4_input at core/ipv4/ip4.c line 704
0x401005ac: _umm_free at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\cores\esp8266\umm_malloc\umm_malloc.c line 1300
0x40217041: ethernet_input_LWIP2 at netif/ethernet.c line 188
0x40216e77: esp2glue_ethernet_input at glue-lwip/lwip-git.c line 422
0x40236442: ethernet_input at glue-esp/lwip-esp.c line 363
0x40236453: ethernet_input at glue-esp/lwip-esp.c line 371
0x40208b8c: esp8266::MDNSImplementation::MDNSResponder::_udpAppendBuffer(unsigned char const*, unsigned int) at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266mDNS\src\LEAmDNS_Transfer.cpp line 1036
0x40208bba: esp8266::MDNSImplementation::MDNSResponder::_udpAppend8(unsigned char) at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266mDNS\src\LEAmDNS_Transfer.cpp line 1048
0x40208cfd: esp8266::MDNSImplementation::MDNSResponder::_write8(unsigned char, esp8266::MDNSImplementation::MDNSResponder::stcMDNSSendParameter&) at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266mDNS\src\LEAmDNS_Transfer.cpp line 1176
0x40208f39: esp8266::MDNSImplementation::MDNSResponder::_writeMDNSHostDomain(char const*, bool, esp8266::MDNSImplementation::MDNSResponder::stcMDNSSendParameter&) at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266mDNS\src\LEAmDNS_Transfer.cpp line 1289
0x40208c0e: esp8266::MDNSImplementation::MDNSResponder::_udpAppend32(unsigned int) at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266mDNS\src\LEAmDNS_Transfer.cpp line 1066
0x40208d29: esp8266::MDNSImplementation::MDNSResponder::_write16(unsigned short, esp8266::MDNSImplementation::MDNSResponder::stcMDNSSendParameter&) at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266mDNS\src\LEAmDNS_Transfer.cpp line 1186
0x4020920d: esp8266::MDNSImplementation::MDNSResponder::_writeMDNSAnswer_PTR_IP4(IPAddress, esp8266::MDNSImplementation::MDNSResponder::stcMDNSSendParameter&) at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266mDNS\src\LEAmDNS_Transfer.cpp line 1421
0x40216a31: glue2esp_linkoutput at glue-esp/lwip-esp.c line 299
0x40216cb3: new_linkoutput at glue-lwip/lwip-git.c line 233
0x402170c8: ethernet_output at netif/ethernet.c line 312
0x4021e7f9: etharp_output_LWIP2 at core/ipv4/etharp.c line 896
0x4020b535: loop_wrapper() at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\cores\esp8266\core_esp8266_main.cpp line 124
0x4020b524: loop_wrapper() at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\cores\esp8266\core_esp8266_main.cpp line 120
0x4020b518: loop_wrapper() at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\cores\esp8266\core_esp8266_main.cpp line 117
0x401005ac: _umm_free at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\cores\esp8266\umm_malloc\umm_malloc.c line 1300
0x401009f0: free at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\cores\esp8266\umm_malloc\umm_malloc.c line 1760
0x4021fdf0: mem_free at core/mem.c line 237
0x40206964: esp8266::MDNSImplementation::MDNSResponder::_process(bool) at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266mDNS\src\LEAmDNS_Control.cpp line 84
0x40204efc: esp8266::MDNSImplementation::MDNSResponder::update() at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266mDNS\src\LEAmDNS.cpp line 1077
0x402038b6: ArduinoOTAClass::handle() at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ArduinoOTA\ArduinoOTA.cpp line 366
0x4020b4ad: esp_schedule() at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\cores\esp8266\core_esp8266_main.cpp line 95
0x4020b53e: loop_wrapper() at C:\Users\<user>\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\cores\esp8266\core_esp8266_main.cpp line 127
Stack dump:
Exception (9):
epc1=0x4020689f epc2=0x00000000 epc3=0x00000000 excvaddr=0x40206977 depc=0x00000000
>>>stack>>>
ctx: sys
sp: 3fffec60 end: 3fffffb0 offset: 01a0
3fffee00: 72616843 69646279 3ffe0073 00000000
3fffee10: 00000001 00000000 4000050c 00000000
3fffee20: 40223a0d 0000001f 4010508d 4000050c
3fffee30: 401051d0 006261b9 3fff0344 00000000
3fffee40: 3ffee260 3ffef1f4 00000000 402283db
3fffee50: 00000000 0045c581 40228446 3fff05bc
3fffee60: 3fff05ee 00000000 3fff0344 40206998
3fffee70: 00000011 00000001 00000020 4020b9af
3fffee80: 00000000 10310606 00640100 40202e5e
3fffee90: 3fff05ee 00000000 3fff038c 40202ea4
3fffeea0: 00000065 401002b0 3fff038c 4021afcc
3fffeeb0: 000014e9 3ffeef94 3ffeef94 401007fc
3fffeec0: 40220000 00000065 3fffef30 3ffeef94
3fffeed0: 3ffef03c 3fff05bc 3fff05da 4021f0c0
3fffeee0: 00000014 00000000 3ffeef94 401005ac
3fffeef0: 3fffdc80 3ffef5a4 3fff04fc 3ffef5ec
3fffef00: 00000008 3ffeef94 3fff05bc 40217041
3fffef10: 3fffdc80 3ffef5a4 3fff04fc 40216e77
3fffef20: 40236442 3ffef5a4 3fff04fc 40236453
3fffef30: 3fff05cc 3fff05bc 00000002 3ffe85e8
3fffef40: 4023112f 00000000 3fff04fc 402380bf
3fffef50: 40000f49 3fffdab0 3fffdab0 40000f49
3fffef60: 40000e19 40001878 00000004 3fffffb0
3fffef70: 3fffff10 aa55aa55 000000ba 401048b4
3fffef80: 401048ba 00000004 3fffffb0 40104424
3fffef90: 4010000d 00000002 00000000 b94f2195
3fffefa0: 00000000 3fffef3c 00000000 3fffff58
3fffefb0: 3fffffc0 00000000 00000000 feefeffe
3fffefc0: feefeffe feefeffe feefeffe feefeffe
...
3ffffa50: feefeffe feefeffe feefeffe feefeffe
3ffffa60: 00000001 feefeffe feefeffe feefeffe
3ffffa70: feefeffe feefeffe feefeffe 0000000c
3ffffa80: 3ffef6ec 3ffee92c 00000001 40208b8c
3ffffa90: feefeffe feefeffe 3fffff00 40208bba
3ffffaa0: feef020c feefeffe feefeffe feefeffe
3ffffab0: feefeffe feefeffe 3fffff00 40208cfd
3ffffac0: feefeffe feefeffe 3fffff00 40208f39
3ffffad0: 00000000 00000000 00000000 00000000
3ffffae0: 00000000 00000000 00000000 00000000
3ffffaf0: 00000000 00000000 00000000 00000000
3ffffb00: 00000000 00000000 00000000 00000000
3ffffb10: 00000000 00000000 00000000 00000000
3ffffb20: 00000000 00000000 00000000 00000000
3ffffb30: 00000000 00000000 00000000 00000000
3ffffb40: 00000000 00000000 00000000 00000000
3ffffb50: 00000000 00000000 00000000 00000000
3ffffb60: 00000000 00000000 00000000 00000000
3ffffb70: 00000000 00000000 00000000 00000000
3ffffb80: 00000000 00000000 00000000 00000000
3ffffb90: 00000000 00000000 00000000 00000000
3ffffba0: 00000000 00000000 00000000 00000000
3ffffbb0: 00000000 00000000 00000000 00000000
3ffffbc0: 00000000 00000000 00000000 00000000
3ffffbd0: 00320000 00000000 3ffee92c 40208c0e
3ffffbe0: 00000001 3fffff00 3fffff00 40208d29
3ffffbf0: 00000000 00000000 3fffff00 3ffffe6c
3ffffc00: 00000102 3ffee92c 3fffff00 4020920d
3ffffc10: 00000000 00000000 00000000 00000000
3ffffc20: 00000000 00000000 00000000 00000000
3ffffc30: 00000000 00000000 00000000 00000000
3ffffc40: 00000000 00000000 00000000 00000000
3ffffc50: 00000000 00000000 00000000 00000000
3ffffc60: 00000000 00000000 4023228b 00000001
3ffffc70: ffffffff 00000000 3ffe90a1 00000008
3ffffc80: 402322da 3ffec6c0 3ffef1dc 00000001
3ffffc90: 402323e6 3ffec6c0 3ffef1dc 3ffec6c0
3ffffca0: 00000002 00000000 00000020 401013a6
3ffffcb0: 3ffe8f52 40231397 3ffec6c0 3fff0a90
3ffffcc0: 00000000 40224647 3ffedb78 00000000
3ffffcd0: 00000000 00000002 00000001 3ffec6c0
3ffffce0: 3fff0af6 40104e33 3fff0a90 3ffef5a4
3ffffcf0: 3fff0ab4 00000000 00000000 00000000
3ffffd00: 00000000 40216a31 3ffeeb74 3ffef5a4
3ffffd10: 3fff0af6 0000007b 36310337 39310338
3ffffd20: 6e690732 6464612d 72610472 00000000
3ffffd30: 3ffeefcc 3ffeef94 3fff0ab4 40216cb3
3ffffd40: 00000000 3ffeef94 3fff0ab4 402170c8
3ffffd50: 3ffffd80 00000000 00000000 00000000
3ffffd60: 00000000 00000000 00000020 401013a6
3ffffd70: 3ffe8f50 40104790 3ffec800 4021e7f9
3ffffd80: 00000005 00000000 00000020 401013a6
3ffffd90: 3ffe8f55 401047ab 3ffec918 40102292
3ffffda0: 00000005 00000000 00000020 401013a6
3ffffdb0: 3ffe8f55 401047ab 3ffec918 40102292
3ffffdc0: 401020c1 3ffec918 3ffed0d0 401013a6
3ffffdd0: 00007fff 00dfa387 3ffed3ec 40102292
3ffffde0: 3ffe97e8 00000000 00000000 00000001
3ffffdf0: 00007fff 00dfa387 401026d2 00000100
3ffffe00: 00000005 00000000 00000020 401013a6
3ffffe10: 3ffe8f55 401047ab 3ffec918 00000022
3ffffe20: 401020c1 3ffec918 00000000 4000050c
3ffffe30: 00000000 00dfa5b5 3ffed3ec 40102292
3ffffe40: 3ffe97f4 00000000 00000000 00000000
3ffffe50: 00000000 00dfa5b5 401026d2 00000100
3ffffe60: 7fffffff 3ffe97f4 3ffe97f4 00000001
3ffffe70: 00000001 00006208 00000000 00000001
3ffffe80: ffffffff 00dfa5b5 00000000 4000050c
3ffffe90: 3fffc278 4010246c 3fffc200 00000022
3ffffea0: 3ffe9800 3fffc6fc 00000001 3ffeea8c
3ffffeb0: 4020b535 00000030 0000001e ffffffff
3ffffec0: 4020b524 00000001 4020b518 00000000
3ffffed0: 00000000 00000000 00000000 fffffffe
3ffffee0: ffffffff 3fffc6fc 00000001 3ffeea8c
3ffffef0: 00000000 3fffdad0 3ffeeac0 00000030
3fffff00: 3ffeeb40 000002a3 000002a3 401005ac
3fffff10: 3ffee92c 00000000 3fff05bc 401009f0
3fffff20: 00000002 3fff03cc 3ffee92c 4021fdf0
3fffff30: 4020bef8 00000000 4020bef8 00000000
3fffff40: 00000001 3ffee92c 3fff0344 40206964
3fffff50: 00000000 00000000 3ffee880 3ffeeac0
3fffff60: 00000000 3ffee92c 3ffee880 3ffeeac0
3fffff70: 3fffdad0 00000000 3ffee880 40204efc
3fffff80: 003ff230 3ffee990 3ffee880 402038b6
3fffff90: 00000000 00000000 00000001 4020b4ad
3fffffa0: 3fffdad0 00000000 3ffeea8c 4020b53e
<<<stack<<<
- Hardware: [ESP-12F]
- Development Env: [Arduino IDE]
- Operating System: [Windows]
Settings in IDE
- Module: [Generic ESP8266 Module]
- Flash Mode: [qio]
- Flash Size: [4MB]
- lwip Variant: [v2 Lower Memory]
- Reset Method: [nodemcu]
- Flash Frequency: [40Mhz]
- CPU Frequency: [80Mhz]
- Upload Using: [SERIAL]
- Upload Speed: [74880]
I am having trouble with
ArduinoOTAwhich seems to be caused by mDNS:Minimal example - Arduini IDE 1.8.8:
Serial:
Stack trace:
its not always the same it differs from boot to boot but its always related to some mDNS methods:
Stack dump:
Settings in IDE