[GH-ISSUE #519] Crash Exception(28) with ArduinoOTA() in sketch setup() #435

Open
opened 2026-02-28 01:25:16 +03:00 by kerem · 13 comments
Owner

Originally created by @gibo77 on GitHub (Feb 15, 2018).
Original GitHub issue: https://github.com/tzapu/WiFiManager/issues/519

I am getting exception(28) with Stack Dump.

When I run just the examples, I do not get any crashing. It works fine.
But If I incorporate to ArduinoOTA, it crashes.
The ArduinoOTA example works fine by itself. But combined with WifiManager it crashes.
As per serial monitor, the WifiManager was able to connect successfully. But when the sketch executes the ArduinoOTA, it crashes.
Do you think there is an overlapping memory/EEPROM here?

I have not done any stack trace. Maybe the gurus can do that below.
Below is the stack dump. Thanks!

*WM: Sent config page
*WM: WiFi save
*WM: Sent wifi save page
*WM: Connecting to new AP
*WM: Connecting as wifi client...
*WM: Connection result:
*WM: 3
connected...yeey :)
IP address: 192.168.0.108

Exception (28):
epc1=0x40227b83 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000098 depc=0x00000000

ctx: cont
sp: 3fff0920 end: 3fff0e40 offset: 01a0

stack>>>
3fff0ac0: 3fffc278 401022a4 3fffc200 00000022
3fff0ad0: 40221fb0 3fff2384 3fff1fb4 3fff35f8
3fff0ae0: 3fff30ca 00000030 00000016 ffffffff
3fff0af0: 400044ab 3fffc718 3fff0be0 08000000
3fff0b00: 3fff30ca 4010476e 3fff2384 3fff35f8
3fff0b10: 0000002e 3fff12a4 3fff2384 401046e9
3fff0b20: 3fff3084 3fff0c13 003fe000 00000030
3fff0b30: 80000000 3fffc6fc 00000001 3fff12d9
3fff0b40: 3fff12a4 3fff12a4 3fff3084 40104855
3fff0b50: 40213f73 3fff3084 3fff30ca 40213f7c
3fff0b60: 00000008 3fff0b90 3ffe8e85 3fff0bd0
3fff0b70: 402120a4 3fff0c70 3fff0c0d 3fff30d8
3fff0b80: 3fff3084 3fff3330 3fff12a4 4021a011
3fff0b90: 005e0001 0000fb00 00000010 3ffe9dee
3fff0ba0: 00000018 3fff3330 3fff3084 4021aa98
3fff0bb0: 00000080 4000422e 3ffefd30 00000000
3fff0bc0: 3fff0c34 00000001 00000000 00000002
3fff0bd0: 3fff11fc 00000004 3fff332c 4021b110
3fff0be0: 00000006 0000000e 00302078 3fff332c
3fff0bf0: 00000000 3fff3084 3fff30f0 4021aad8
3fff0c00: 3fff12a4 3fff0c30 00000004 3fff332c
3fff0c10: 00000016 3fff12a4 3fff332c 4021a269
3fff0c20: 3fff12a4 3fff0c30 00000004 40213fd8
3fff0c30: 00000494 0104a8c0 3fff1434 40214014
3fff0c40: 3fff3330 3fff12a4 3ffefd30 4021a33a
3fff0c50: 3fff352c 3ffefa28 0000001c 00000020
3fff0c60: 3fff0ccc 3fff12a4 3fff332c 4021a513
3fff0c70: 3fff0ccc 3ffe9b7c 3fff12a4 4021a59f
3fff0c80: 3fff0d20 00000001 3fff0d00 00000001
3fff0c90: 3ffefa6c 3ffefa24 3ffefa6c 4020913e
3fff0ca0: 00000000 3ffefa24 3fff31ec 401009a4
3fff0cb0: 3ffefd30 000003d1 3fff0cf0 4020cb64
3fff0cc0: 00000000 3ffefa24 3ffefa98 fb0000e0
3fff0cd0: 00000000 3ffefa24 3ffefa6c 3ffefe18
3fff0ce0: 00000000 3ffefa24 3ffefa6c 4020a60a
3fff0cf0: 3fff31f4 009d00a5 40208e30 40209260
3fff0d00: 00000000 00000000 3ffefab0 4020cf6c
3fff0d10: 00000000 3ffefa6c 3ffefab0 4020ad09
3fff0d20: 3fff3174 2d363632 4020a65c 4020d398
3fff0d30: 3ffefab0 00000000 3ffefd58 40202659
3fff0d40: 00000000 00000000 3ffe8b38 00000000
3fff0d50: 3fff1f34 0000000f 00000006 3fff1f54
3fff0d60: 0000000f 0000000a 00000000 00000000
3fff0d70: 00001c2f 3ffe95e8 00000000 3ffe95e8
3fff0d80: 00000000 3ffe95e8 00000000 3ffe95e8
3fff0d90: 00000000 3ffe95e8 00000000 3ffe95e8
3fff0da0: 00000000 00000000 ffffffff fe000001
3fff0db0: 3ffe8ab8 00000000 fe010035 00000000
3fff0dc0: 00000000 feefeffe feefeffe feefeffe
3fff0dd0: feefeffe feefeffe feefeffe feefeffe
3fff0de0: feefeffe feefeffe feefeffe 3fff31f4
3fff0df0: 6c00a8c0 402024e0 40202420 feefeffe
3fff0e00: feefeffe feefeffe feefeffe feefeffe
3fff0e10: feefeffe feefeffe feefeffe 3ffefe18
3fff0e20: 3fffdad0 00000000 3ffefe10 4020cc6f
3fff0e30: feefeffe feefeffe 3ffefe20 40100a28
<<<stack<<<

ets Jan 8 2013,rst cause:2, boot mode:(1,6)

ets Jan 8 2013,rst cause:4, boot mode:(1,6)

wdt reset

Originally created by @gibo77 on GitHub (Feb 15, 2018). Original GitHub issue: https://github.com/tzapu/WiFiManager/issues/519 I am getting exception(28) with Stack Dump. When I run just the examples, I do not get any crashing. It works fine. But If I incorporate to ArduinoOTA, it crashes. The ArduinoOTA example works fine by itself. But combined with WifiManager it crashes. As per serial monitor, the WifiManager was able to connect successfully. But when the sketch executes the ArduinoOTA, it crashes. Do you think there is an overlapping memory/EEPROM here? I have not done any stack trace. Maybe the gurus can do that below. Below is the stack dump. Thanks! *WM: Sent config page *WM: WiFi save *WM: Sent wifi save page *WM: Connecting to new AP *WM: Connecting as wifi client... *WM: Connection result: *WM: 3 connected...yeey :) IP address: 192.168.0.108 Exception (28): epc1=0x40227b83 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000098 depc=0x00000000 ctx: cont sp: 3fff0920 end: 3fff0e40 offset: 01a0 >>>stack>>> 3fff0ac0: 3fffc278 401022a4 3fffc200 00000022 3fff0ad0: 40221fb0 3fff2384 3fff1fb4 3fff35f8 3fff0ae0: 3fff30ca 00000030 00000016 ffffffff 3fff0af0: 400044ab 3fffc718 3fff0be0 08000000 3fff0b00: 3fff30ca 4010476e 3fff2384 3fff35f8 3fff0b10: 0000002e 3fff12a4 3fff2384 401046e9 3fff0b20: 3fff3084 3fff0c13 003fe000 00000030 3fff0b30: 80000000 3fffc6fc 00000001 3fff12d9 3fff0b40: 3fff12a4 3fff12a4 3fff3084 40104855 3fff0b50: 40213f73 3fff3084 3fff30ca 40213f7c 3fff0b60: 00000008 3fff0b90 3ffe8e85 3fff0bd0 3fff0b70: 402120a4 3fff0c70 3fff0c0d 3fff30d8 3fff0b80: 3fff3084 3fff3330 3fff12a4 4021a011 3fff0b90: 005e0001 0000fb00 00000010 3ffe9dee 3fff0ba0: 00000018 3fff3330 3fff3084 4021aa98 3fff0bb0: 00000080 4000422e 3ffefd30 00000000 3fff0bc0: 3fff0c34 00000001 00000000 00000002 3fff0bd0: 3fff11fc 00000004 3fff332c 4021b110 3fff0be0: 00000006 0000000e 00302078 3fff332c 3fff0bf0: 00000000 3fff3084 3fff30f0 4021aad8 3fff0c00: 3fff12a4 3fff0c30 00000004 3fff332c 3fff0c10: 00000016 3fff12a4 3fff332c 4021a269 3fff0c20: 3fff12a4 3fff0c30 00000004 40213fd8 3fff0c30: 00000494 0104a8c0 3fff1434 40214014 3fff0c40: 3fff3330 3fff12a4 3ffefd30 4021a33a 3fff0c50: 3fff352c 3ffefa28 0000001c 00000020 3fff0c60: 3fff0ccc 3fff12a4 3fff332c 4021a513 3fff0c70: 3fff0ccc 3ffe9b7c 3fff12a4 4021a59f 3fff0c80: 3fff0d20 00000001 3fff0d00 00000001 3fff0c90: 3ffefa6c 3ffefa24 3ffefa6c 4020913e 3fff0ca0: 00000000 3ffefa24 3fff31ec 401009a4 3fff0cb0: 3ffefd30 000003d1 3fff0cf0 4020cb64 3fff0cc0: 00000000 3ffefa24 3ffefa98 fb0000e0 3fff0cd0: 00000000 3ffefa24 3ffefa6c 3ffefe18 3fff0ce0: 00000000 3ffefa24 3ffefa6c 4020a60a 3fff0cf0: 3fff31f4 009d00a5 40208e30 40209260 3fff0d00: 00000000 00000000 3ffefab0 4020cf6c 3fff0d10: 00000000 3ffefa6c 3ffefab0 4020ad09 3fff0d20: 3fff3174 2d363632 4020a65c 4020d398 3fff0d30: 3ffefab0 00000000 3ffefd58 40202659 3fff0d40: 00000000 00000000 3ffe8b38 00000000 3fff0d50: 3fff1f34 0000000f 00000006 3fff1f54 3fff0d60: 0000000f 0000000a 00000000 00000000 3fff0d70: 00001c2f 3ffe95e8 00000000 3ffe95e8 3fff0d80: 00000000 3ffe95e8 00000000 3ffe95e8 3fff0d90: 00000000 3ffe95e8 00000000 3ffe95e8 3fff0da0: 00000000 00000000 ffffffff fe000001 3fff0db0: 3ffe8ab8 00000000 fe010035 00000000 3fff0dc0: 00000000 feefeffe feefeffe feefeffe 3fff0dd0: feefeffe feefeffe feefeffe feefeffe 3fff0de0: feefeffe feefeffe feefeffe 3fff31f4 3fff0df0: 6c00a8c0 402024e0 40202420 feefeffe 3fff0e00: feefeffe feefeffe feefeffe feefeffe 3fff0e10: feefeffe feefeffe feefeffe 3ffefe18 3fff0e20: 3fffdad0 00000000 3ffefe10 4020cc6f 3fff0e30: feefeffe feefeffe 3ffefe20 40100a28 <<<stack<<< ets Jan 8 2013,rst cause:2, boot mode:(1,6) ets Jan 8 2013,rst cause:4, boot mode:(1,6) wdt reset
Author
Owner

@gibo77 commented on GitHub (Feb 15, 2018):

Update: I was able to run StackTrace result below.

Exception 28: LoadProhibited: A load referenced a page mapped with an attribute that does not permit loads
Decoding 37 results
0x40227b83: cnx_node_search at ?? line ?
0x401022a4: wDev_ProcessFiq at ?? line ?
0x40221fb0: ieee80211_output_pbuf at ?? line ?
0x4010476e: glue2esp_linkoutput at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/glue-esp/lwip-esp.c line 292
0x401046e9: glue2esp_linkoutput at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/glue-esp/lwip-esp.c line 263
0x4023db0f: wifi_station_get_connect_status at ?? line ?
0x40104855: new_linkoutput at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/glue-lwip/lwip-git.c line 240
0x40213f73: ethernet_output at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/netif/ethernet.c line 305
0x40213f7c: ethernet_output at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/netif/ethernet.c line 305
0x402120a4: __ssputs_r at /Users/igrokhotkov/e/newlib-xtensa/xtensa-lx106-elf/newlib/libc/stdio/../../../.././newlib/libc/stdio/nano-vfprintf.c line 180
0x4021a011: etharp_output_LWIP2 at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/etharp.c line 893
0x4021aa98: ip4_output_if_opt_src at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c line 962
0x4021b110: mem_malloc at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/mem.c line 136
0x4021aad8: ip4_output_if_opt at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c line 788
0x4021a269: igmp_send at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 570
0x40213fd8: do_memp_malloc_pool at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/memp.c line 231
0x40214014: memp_malloc at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/memp.c line 231
0x4021a33a: igmp_lookup_group at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 570
0x4021a513: igmp_start_timer at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 570
(inlined by) igmp_joingroup_netif at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 521
0x4021a59f: igmp_joingroup at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 570
0x4020913e: MDNSResponder::_listen() at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ESP8266mDNS/ESP8266mDNS.cpp line 396
0x401009a4: free at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\cores\esp8266\umm_malloc/umm_malloc.c line 1737
0x4020cb64: operator delete(void*) at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\cores\esp8266/abi.cpp line 84
0x4020a60a: MDNSResponder::begin(char const*) at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ESP8266mDNS/ESP8266mDNS.cpp line 396
0x40208e30: _M_manager at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ESP8266mDNS/ESP8266mDNS.cpp line 396
0x40209260: operator() at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ESP8266mDNS/ESP8266mDNS.cpp line 396
(inlined by) _M_invoke at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 2071
0x4020cf6c: std::_Function_base::~_Function_base() at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 2031
0x4020ad09: ArduinoOTAClass::begin() at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ArduinoOTA/ArduinoOTA.cpp line 64
0x4020a65c: std::_Function_base::_Base_manager (ArduinoOTAClass*)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ArduinoOTA/ArduinoOTA.cpp line 64
0x4020d398: std::_Function_base::_Base_manager (ArduinoOTAClass*)> >::_M_get_pointer(std::_Any_data const&) at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 1893
(inlined by) std::_Function_handler (ArduinoOTAClass*)> >::_M_invoke(std::_Any_data const&) at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 2071
0x40202659: setup at D:\Documents\Arduino\Interrupt_Dimmer_EEPROM/Interrupt_Dimmer_EEPROM.ino line 92
0x402024e0: _M_manager at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 1931
0x40202420: _M_invoke at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 2069
0x4020cc6f: loop_wrapper at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\cores\esp8266/core_esp8266_main.cpp line 57
0x40100a28: cont_norm at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\cores\esp8266/cont.S line 109
<!-- gh-comment-id:365793969 --> @gibo77 commented on GitHub (Feb 15, 2018): Update: I was able to run StackTrace result below. Exception 28: LoadProhibited: A load referenced a page mapped with an attribute that does not permit loads Decoding 37 results 0x40227b83: cnx_node_search at ?? line ? 0x401022a4: wDev_ProcessFiq at ?? line ? 0x40221fb0: ieee80211_output_pbuf at ?? line ? 0x4010476e: glue2esp_linkoutput at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/glue-esp/lwip-esp.c line 292 0x401046e9: glue2esp_linkoutput at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/glue-esp/lwip-esp.c line 263 0x4023db0f: wifi_station_get_connect_status at ?? line ? 0x40104855: new_linkoutput at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/glue-lwip/lwip-git.c line 240 0x40213f73: ethernet_output at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/netif/ethernet.c line 305 0x40213f7c: ethernet_output at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/netif/ethernet.c line 305 0x402120a4: __ssputs_r at /Users/igrokhotkov/e/newlib-xtensa/xtensa-lx106-elf/newlib/libc/stdio/../../../.././newlib/libc/stdio/nano-vfprintf.c line 180 0x4021a011: etharp_output_LWIP2 at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/etharp.c line 893 0x4021aa98: ip4_output_if_opt_src at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c line 962 0x4021b110: mem_malloc at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/mem.c line 136 0x4021aad8: ip4_output_if_opt at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c line 788 0x4021a269: igmp_send at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 570 0x40213fd8: do_memp_malloc_pool at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/memp.c line 231 0x40214014: memp_malloc at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/memp.c line 231 0x4021a33a: igmp_lookup_group at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 570 0x4021a513: igmp_start_timer at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 570 : (inlined by) igmp_joingroup_netif at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 521 0x4021a59f: igmp_joingroup at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 570 0x4020913e: MDNSResponder::_listen() at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ESP8266mDNS/ESP8266mDNS.cpp line 396 0x401009a4: free at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\cores\esp8266\umm_malloc/umm_malloc.c line 1737 0x4020cb64: operator delete(void*) at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\cores\esp8266/abi.cpp line 84 0x4020a60a: MDNSResponder::begin(char const*) at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ESP8266mDNS/ESP8266mDNS.cpp line 396 0x40208e30: _M_manager at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ESP8266mDNS/ESP8266mDNS.cpp line 396 0x40209260: operator() at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ESP8266mDNS/ESP8266mDNS.cpp line 396 : (inlined by) _M_invoke at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 2071 0x4020cf6c: std::_Function_base::~_Function_base() at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 2031 0x4020ad09: ArduinoOTAClass::begin() at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ArduinoOTA/ArduinoOTA.cpp line 64 0x4020a65c: std::_Function_base::_Base_manager (ArduinoOTAClass*)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ArduinoOTA/ArduinoOTA.cpp line 64 0x4020d398: std::_Function_base::_Base_manager (ArduinoOTAClass*)> >::_M_get_pointer(std::_Any_data const&) at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 1893 : (inlined by) std::_Function_handler (ArduinoOTAClass*)> >::_M_invoke(std::_Any_data const&) at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 2071 0x40202659: setup at D:\Documents\Arduino\Interrupt_Dimmer_EEPROM/Interrupt_Dimmer_EEPROM.ino line 92 0x402024e0: _M_manager at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 1931 0x40202420: _M_invoke at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 2069 0x4020cc6f: loop_wrapper at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\cores\esp8266/core_esp8266_main.cpp line 57 0x40100a28: cont_norm at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\cores\esp8266/cont.S line 109
Author
Owner

@tablatronix commented on GitHub (Feb 15, 2018):

You should have been presented with a template when submitting

<!-- gh-comment-id:365798345 --> @tablatronix commented on GitHub (Feb 15, 2018): You should have been presented with a template when submitting
Author
Owner

@tablatronix commented on GitHub (Feb 15, 2018):

You provided no information on your enviroment

<!-- gh-comment-id:365952836 --> @tablatronix commented on GitHub (Feb 15, 2018): You provided no information on your enviroment
Author
Owner

@gibo77 commented on GitHub (Feb 16, 2018):

----------------------------- Remove above -----------------------------

Basic Infos

I use the latest and the greatest.
image

image

image

Hardware

WiFimanager Branch/Release: Development

Hardware: Wemos D1 R2 with 4Mbits memory using 1Mbits SPIFFS

Core Version: 2.4.0, staging

Description

Problem description
I am getting exception(28) with Stack Dump.
When I run just the examples, I do not get any crashing. It works fine.
But If I incorporate to ArduinoOTA, it crashes.
The ArduinoOTA example works fine by itself. But combined with WifiManager it crashes.
As per serial monitor, the WifiManager was able to connect successfully. But when the sketch executes the ArduinoOTA, it crashes.
Do you think there is an overlapping memory/EEPROM here?
I have not done any stack trace. Maybe the gurus can do that below.
Below is the stack dump. Thanks!
*WM: Sent config page
*WM: WiFi save
*WM: Sent wifi save page
*WM: Connecting to new AP
*WM: Connecting as wifi client...
*WM: Connection result:
*WM: 3
connected...yeey :)
IP address: 192.168.0.108 ------>The ESP8266 was able to connect, but after executing ArduinoOTA it crashes.

Exception (28):
epc1=0x40227b83 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000098 depc=0x00000000
ctx: cont
sp: 3fff0920 end: 3fff0e40 offset: 01a0

Settings in IDE

Module: Wemos D1 R2

Additional libraries:

#include <ESP8266WiFi.h>
//#include <DNSServer.h>            //Local DNS Server used for redirecting all requests to the configuration portal
#include <ESP8266WebServer.h>     //Local WebServer used to serve the configuration portal
#include <WiFiManager.h>          //https://github.com/tzapu/WiFiManager WiFi Configuration Magic


#include <WiFiClient.h>
#include <EEPROM.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

### Sketch

ESP8266WebServer server ( 80 );


//const char *ssid = "Johnny";
//const char *password = "772000";

//int ZeroCrossingPin = 2;

volatile int Light_Percent = 10; //Value passed from TCP is 0-100
int Glow = 0;

    unsigned long previous_millis = 0;
    unsigned long current_millis = 0;
    int Dimming_Up = 0;

void setup()  {
    Serial.begin(115200);
    pinMode(2, OUTPUT);

      
    WiFiManager wifiManager;
    //reset settings - for testing
    wifiManager.resetSettings();
    wifiManager.autoConnect("AutoConnectAP");

    //if you get here you have connected to the WiFi
    Serial.println("connected...yeey :)");
    //keep LED on
    digitalWrite(2, LOW);

    //Connect to Wifi  
//    WiFi.mode(WIFI_STA);
//    WiFi.begin ( ssid, password );
//    while (WiFi.waitForConnectResult() != WL_CONNECTED) {
//    Serial.println("Connection Failed! Rebooting...");
//    delay(5000);
//    ESP.restart();
//    }
    Serial.print("IP address: ");
    Serial.println(WiFi.localIP());

//************************** OTA BEGINS
  ArduinoOTA.onStart([]() {
    digitalWrite(2, LOW);
  });
  ArduinoOTA.onEnd([]() {
    digitalWrite(2, HIGH);
  });

  ArduinoOTA.onError([](ota_error_t error) {
    Serial.printf("Error[%u]: ", error);
    if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
    else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
    else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
    else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
    else if (error == OTA_END_ERROR) Serial.println("End Failed");
  });
  ArduinoOTA.begin();
  Serial.println("Ready");
//******************** OTA ENDS
  

//     EEPROM.begin(10); //When EEPROM are all zero, EEPROM.write first address 0 to any number
//     Light_Percent = EEPROM.read(0); //Read Light Intensity(Address 0) from EEPROM to remember previous value after turning off.
//     Serial.println(Light_Percent);
//     EEPROM.end();
  
    server.on ( "/on", handleRoot_ON);
    server.onNotFound(handleNotFound);

    server.begin();
    Serial.println("HTTP server started");
    
//   pinMode(2, INPUT); //This is the Zero Crossing Input but also the LED on ESP12e
   pinMode(4, OUTPUT);
   digitalWrite(4, LOW);
//   attachInterrupt(2, ZeroCrossingFunction, FALLING); 
  }

void loop() {

  server.handleClient();
  ArduinoOTA.handle();

  if(Glow == 1){
    current_millis = millis();
    if((current_millis - previous_millis) > 20){

      previous_millis = current_millis;
        
      if((Light_Percent > 8200) ){
        Dimming_Up = 0;   
      }

      if((Light_Percent < 300) ){
        Dimming_Up = 1;
      }

      if(Dimming_Up == 0){
        Light_Percent = Light_Percent - 30;
      }

      if(Dimming_Up == 1){
        Light_Percent = Light_Percent + 30;
      }      
    }//if((current_millis - previous_millis)
  }//if(Glow=1)
    
} // end loop


//void ZeroCrossingFunction()  // Maximum delay in Microseconds is 8333 usec. 
//   {
my function here. Nothing wrong with this.
//    }//ZeroCrossingFunction
      
 
void handleRoot_ON() {

    String Light_Percent_string = server.arg("IGBT");
    String Amps;
    
    //This EEPROM storage will store the last Light_Percent if in case power goes out for user convenience.
    if (Light_Percent != Light_Percent_string.toInt()){
    Light_Percent = Light_Percent_string.toInt();
    EEPROM.begin(5);
    EEPROM.write(0, Light_Percent);
    
    if( (EEPROM.read(0))<50 ) digitalWrite(2, HIGH);
    else digitalWrite(2, LOW);
    Amps = String(EEPROM.read(0));
    EEPROM.end(); // Use EEPROM.end instead of confirm to release tied RAM
    }
    
    String Glow_String = server.arg("glow");
    Glow = Glow_String.toInt();
    
   
    server.send ( 200, "text/plain", Amps);
 
}

void handleNotFound(){
  String message = "File Not Found\n\n";
  message += "URI: ";
  message += server.uri();
  message += "\nMethod: ";
  message += (server.method() == HTTP_GET)?"GET":"POST";
  message += "\nArguments: ";
  message += server.args();
  message += "\n";
  for (uint8_t i=0; i<server.args(); i++){
    message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
  }
  server.send(404, "text/plain", message);
}


### Debug Messages
Exception 28: LoadProhibited: A load referenced a page mapped with an attribute that does not permit loads
Decoding 37 results
0x40227b83: cnx_node_search at ?? line ?
0x401022a4: wDev_ProcessFiq at ?? line ?
0x40221fb0: ieee80211_output_pbuf at ?? line ?
0x4010476e: glue2esp_linkoutput at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/glue-esp/lwip-esp.c line 292
0x401046e9: glue2esp_linkoutput at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/glue-esp/lwip-esp.c line 263
0x4023db0f: wifi_station_get_connect_status at ?? line ?
0x40104855: new_linkoutput at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/glue-lwip/lwip-git.c line 240
0x40213f73: ethernet_output at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/netif/ethernet.c line 305
0x40213f7c: ethernet_output at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/netif/ethernet.c line 305
0x402120a4: __ssputs_r at /Users/igrokhotkov/e/newlib-xtensa/xtensa-lx106-elf/newlib/libc/stdio/../../../.././newlib/libc/stdio/nano-vfprintf.c line 180
0x4021a011: etharp_output_LWIP2 at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/etharp.c line 893
0x4021aa98: ip4_output_if_opt_src at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c line 962
0x4021b110: mem_malloc at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/mem.c line 136
0x4021aad8: ip4_output_if_opt at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c line 788
0x4021a269: igmp_send at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 570
0x40213fd8: do_memp_malloc_pool at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/memp.c line 231
0x40214014: memp_malloc at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/memp.c line 231
0x4021a33a: igmp_lookup_group at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 570
0x4021a513: igmp_start_timer at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 570
: (inlined by) igmp_joingroup_netif at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 521
0x4021a59f: igmp_joingroup at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 570
0x4020913e: MDNSResponder::_listen() at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ESP8266mDNS/ESP8266mDNS.cpp line 396
0x401009a4: free at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\cores\esp8266\umm_malloc/umm_malloc.c line 1737
0x4020cb64: operator delete(void*) at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\cores\esp8266/abi.cpp line 84
0x4020a60a: MDNSResponder::begin(char const*) at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ESP8266mDNS/ESP8266mDNS.cpp line 396
0x40208e30: _M_manager at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ESP8266mDNS/ESP8266mDNS.cpp line 396
0x40209260: operator() at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ESP8266mDNS/ESP8266mDNS.cpp line 396
: (inlined by) _M_invoke at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 2071
0x4020cf6c: std::_Function_base::~_Function_base() at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 2031
0x4020ad09: ArduinoOTAClass::begin() at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ArduinoOTA/ArduinoOTA.cpp line 64
0x4020a65c: std::_Function_base::_Base_manager (ArduinoOTAClass*)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ArduinoOTA/ArduinoOTA.cpp line 64
0x4020d398: std::_Function_base::_Base_manager (ArduinoOTAClass*)> >::_M_get_pointer(std::_Any_data const&) at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 1893
: (inlined by) std::_Function_handler (ArduinoOTAClass*)> >::_M_invoke(std::_Any_data const&) at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 2071
0x40202659: setup at D:\Documents\Arduino\Interrupt_Dimmer_EEPROM/Interrupt_Dimmer_EEPROM.ino line 92
0x402024e0: _M_manager at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 1931
0x40202420: _M_invoke at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 2069
0x4020cc6f: loop_wrapper at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\cores\esp8266/core_esp8266_main.cpp line 57
0x40100a28: cont_norm at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\cores\esp8266/cont.S line 109

messages here

<!-- gh-comment-id:366139125 --> @gibo77 commented on GitHub (Feb 16, 2018): ----------------------------- Remove above ----------------------------- ### Basic Infos I use the latest and the greatest. ![image](https://user-images.githubusercontent.com/35072102/36293069-8c7ff800-12a4-11e8-8849-c9b109357554.png) ![image](https://user-images.githubusercontent.com/35072102/36293082-a1a722bc-12a4-11e8-8105-a5c0cbb2ce4b.png) ![image](https://user-images.githubusercontent.com/35072102/36293278-fc567c48-12a5-11e8-8740-8cf39adaee42.png) #### Hardware WiFimanager Branch/Release: Development Hardware: Wemos D1 R2 with 4Mbits memory using 1Mbits SPIFFS Core Version: 2.4.0, staging ### Description Problem description I am getting exception(28) with Stack Dump. When I run just the examples, I do not get any crashing. It works fine. But If I incorporate to ArduinoOTA, it crashes. The ArduinoOTA example works fine by itself. But combined with WifiManager it crashes. As per serial monitor, the WifiManager was able to connect successfully. But when the sketch executes the ArduinoOTA, it crashes. Do you think there is an overlapping memory/EEPROM here? I have not done any stack trace. Maybe the gurus can do that below. Below is the stack dump. Thanks! *WM: Sent config page *WM: WiFi save *WM: Sent wifi save page *WM: Connecting to new AP *WM: Connecting as wifi client... *WM: Connection result: *WM: 3 connected...yeey :) IP address: 192.168.0.108 ------>The ESP8266 was able to connect, but after executing ArduinoOTA it crashes. Exception (28): epc1=0x40227b83 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000098 depc=0x00000000 ctx: cont sp: 3fff0920 end: 3fff0e40 offset: 01a0 ### Settings in IDE Module: Wemos D1 R2 Additional libraries: ```c++ #include <ESP8266WiFi.h> //#include <DNSServer.h> //Local DNS Server used for redirecting all requests to the configuration portal #include <ESP8266WebServer.h> //Local WebServer used to serve the configuration portal #include <WiFiManager.h> //https://github.com/tzapu/WiFiManager WiFi Configuration Magic #include <WiFiClient.h> #include <EEPROM.h> #include <ESP8266mDNS.h> #include <WiFiUdp.h> #include <ArduinoOTA.h> ### Sketch ESP8266WebServer server ( 80 ); //const char *ssid = "Johnny"; //const char *password = "772000"; //int ZeroCrossingPin = 2; volatile int Light_Percent = 10; //Value passed from TCP is 0-100 int Glow = 0; unsigned long previous_millis = 0; unsigned long current_millis = 0; int Dimming_Up = 0; void setup() { Serial.begin(115200); pinMode(2, OUTPUT); WiFiManager wifiManager; //reset settings - for testing wifiManager.resetSettings(); wifiManager.autoConnect("AutoConnectAP"); //if you get here you have connected to the WiFi Serial.println("connected...yeey :)"); //keep LED on digitalWrite(2, LOW); //Connect to Wifi // WiFi.mode(WIFI_STA); // WiFi.begin ( ssid, password ); // while (WiFi.waitForConnectResult() != WL_CONNECTED) { // Serial.println("Connection Failed! Rebooting..."); // delay(5000); // ESP.restart(); // } Serial.print("IP address: "); Serial.println(WiFi.localIP()); //************************** OTA BEGINS ArduinoOTA.onStart([]() { digitalWrite(2, LOW); }); ArduinoOTA.onEnd([]() { digitalWrite(2, HIGH); }); ArduinoOTA.onError([](ota_error_t error) { Serial.printf("Error[%u]: ", error); if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed"); else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed"); else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed"); else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed"); else if (error == OTA_END_ERROR) Serial.println("End Failed"); }); ArduinoOTA.begin(); Serial.println("Ready"); //******************** OTA ENDS // EEPROM.begin(10); //When EEPROM are all zero, EEPROM.write first address 0 to any number // Light_Percent = EEPROM.read(0); //Read Light Intensity(Address 0) from EEPROM to remember previous value after turning off. // Serial.println(Light_Percent); // EEPROM.end(); server.on ( "/on", handleRoot_ON); server.onNotFound(handleNotFound); server.begin(); Serial.println("HTTP server started"); // pinMode(2, INPUT); //This is the Zero Crossing Input but also the LED on ESP12e pinMode(4, OUTPUT); digitalWrite(4, LOW); // attachInterrupt(2, ZeroCrossingFunction, FALLING); } void loop() { server.handleClient(); ArduinoOTA.handle(); if(Glow == 1){ current_millis = millis(); if((current_millis - previous_millis) > 20){ previous_millis = current_millis; if((Light_Percent > 8200) ){ Dimming_Up = 0; } if((Light_Percent < 300) ){ Dimming_Up = 1; } if(Dimming_Up == 0){ Light_Percent = Light_Percent - 30; } if(Dimming_Up == 1){ Light_Percent = Light_Percent + 30; } }//if((current_millis - previous_millis) }//if(Glow=1) } // end loop //void ZeroCrossingFunction() // Maximum delay in Microseconds is 8333 usec. // { my function here. Nothing wrong with this. // }//ZeroCrossingFunction void handleRoot_ON() { String Light_Percent_string = server.arg("IGBT"); String Amps; //This EEPROM storage will store the last Light_Percent if in case power goes out for user convenience. if (Light_Percent != Light_Percent_string.toInt()){ Light_Percent = Light_Percent_string.toInt(); EEPROM.begin(5); EEPROM.write(0, Light_Percent); if( (EEPROM.read(0))<50 ) digitalWrite(2, HIGH); else digitalWrite(2, LOW); Amps = String(EEPROM.read(0)); EEPROM.end(); // Use EEPROM.end instead of confirm to release tied RAM } String Glow_String = server.arg("glow"); Glow = Glow_String.toInt(); server.send ( 200, "text/plain", Amps); } void handleNotFound(){ String message = "File Not Found\n\n"; message += "URI: "; message += server.uri(); message += "\nMethod: "; message += (server.method() == HTTP_GET)?"GET":"POST"; message += "\nArguments: "; message += server.args(); message += "\n"; for (uint8_t i=0; i<server.args(); i++){ message += " " + server.argName(i) + ": " + server.arg(i) + "\n"; } server.send(404, "text/plain", message); } ``` ``` ### Debug Messages Exception 28: LoadProhibited: A load referenced a page mapped with an attribute that does not permit loads Decoding 37 results 0x40227b83: cnx_node_search at ?? line ? 0x401022a4: wDev_ProcessFiq at ?? line ? 0x40221fb0: ieee80211_output_pbuf at ?? line ? 0x4010476e: glue2esp_linkoutput at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/glue-esp/lwip-esp.c line 292 0x401046e9: glue2esp_linkoutput at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/glue-esp/lwip-esp.c line 263 0x4023db0f: wifi_station_get_connect_status at ?? line ? 0x40104855: new_linkoutput at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/glue-lwip/lwip-git.c line 240 0x40213f73: ethernet_output at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/netif/ethernet.c line 305 0x40213f7c: ethernet_output at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/netif/ethernet.c line 305 0x402120a4: __ssputs_r at /Users/igrokhotkov/e/newlib-xtensa/xtensa-lx106-elf/newlib/libc/stdio/../../../.././newlib/libc/stdio/nano-vfprintf.c line 180 0x4021a011: etharp_output_LWIP2 at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/etharp.c line 893 0x4021aa98: ip4_output_if_opt_src at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c line 962 0x4021b110: mem_malloc at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/mem.c line 136 0x4021aad8: ip4_output_if_opt at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c line 788 0x4021a269: igmp_send at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 570 0x40213fd8: do_memp_malloc_pool at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/memp.c line 231 0x40214014: memp_malloc at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/memp.c line 231 0x4021a33a: igmp_lookup_group at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 570 0x4021a513: igmp_start_timer at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 570 : (inlined by) igmp_joingroup_netif at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 521 0x4021a59f: igmp_joingroup at /home/david/dev/esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/igmp.c line 570 0x4020913e: MDNSResponder::_listen() at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ESP8266mDNS/ESP8266mDNS.cpp line 396 0x401009a4: free at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\cores\esp8266\umm_malloc/umm_malloc.c line 1737 0x4020cb64: operator delete(void*) at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\cores\esp8266/abi.cpp line 84 0x4020a60a: MDNSResponder::begin(char const*) at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ESP8266mDNS/ESP8266mDNS.cpp line 396 0x40208e30: _M_manager at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ESP8266mDNS/ESP8266mDNS.cpp line 396 0x40209260: operator() at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ESP8266mDNS/ESP8266mDNS.cpp line 396 : (inlined by) _M_invoke at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 2071 0x4020cf6c: std::_Function_base::~_Function_base() at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 2031 0x4020ad09: ArduinoOTAClass::begin() at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ArduinoOTA/ArduinoOTA.cpp line 64 0x4020a65c: std::_Function_base::_Base_manager (ArduinoOTAClass*)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\libraries\ArduinoOTA/ArduinoOTA.cpp line 64 0x4020d398: std::_Function_base::_Base_manager (ArduinoOTAClass*)> >::_M_get_pointer(std::_Any_data const&) at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 1893 : (inlined by) std::_Function_handler (ArduinoOTAClass*)> >::_M_invoke(std::_Any_data const&) at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 2071 0x40202659: setup at D:\Documents\Arduino\Interrupt_Dimmer_EEPROM/Interrupt_Dimmer_EEPROM.ino line 92 0x402024e0: _M_manager at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 1931 0x40202420: _M_invoke at c:\users\gilbert\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 2069 0x4020cc6f: loop_wrapper at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\cores\esp8266/core_esp8266_main.cpp line 57 0x40100a28: cont_norm at C:\Users\Gilbert\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.0\cores\esp8266/cont.S line 109 ``` messages here ```
Author
Owner

@tablatronix commented on GitHub (Feb 16, 2018):

I had a similar error and commited a fix earlier today, maybe try again.
Also maybe try with esp staging (it can be a pain in arduino ide)

<!-- gh-comment-id:366142627 --> @tablatronix commented on GitHub (Feb 16, 2018): I had a similar error and commited a fix earlier today, maybe try again. Also maybe try with esp staging (it can be a pain in arduino ide)
Author
Owner

@tablatronix commented on GitHub (Feb 16, 2018):

Considering you are running 2 webservers, I am sure that has something to do with it

<!-- gh-comment-id:366143204 --> @tablatronix commented on GitHub (Feb 16, 2018): Considering you are running 2 webservers, I am sure that has something to do with it
Author
Owner

@gibo77 commented on GitHub (Feb 16, 2018):

As per the serial monitoring, the ESP8266 was able to connect to the Wifi because of the IP Address being sent to serial monitor. The crash happens when executing ArduinoOTA.begins().
From what I know, ArduinoOTA reserves a flash memory space that has the same size bytes of the sketch all the time. So that when an OTA is called, the new sketch will be dumped there.

It seems the WifiManager is using these same flash memory space as the ArduinoOTA. I could be wrong. But I have to say what I think is causing the crash. I have not fully studied the memory usage of WifiManager. It looks like it uses a lot of flash space due to the HTML program. Is it correct to say that WifiManager uses SPIFFS?

<!-- gh-comment-id:366146381 --> @gibo77 commented on GitHub (Feb 16, 2018): As per the serial monitoring, the ESP8266 was able to connect to the Wifi because of the IP Address being sent to serial monitor. The crash happens when executing `ArduinoOTA.begins()`. From what I know, ArduinoOTA reserves a flash memory space that has the same size bytes of the sketch all the time. So that when an OTA is called, the new sketch will be dumped there. It seems the WifiManager is using these same flash memory space as the ArduinoOTA. I could be wrong. But I have to say what I think is causing the crash. I have not fully studied the memory usage of WifiManager. It looks like it uses a lot of flash space due to the HTML program. Is it correct to say that WifiManager uses SPIFFS?
Author
Owner

@tablatronix commented on GitHub (Feb 16, 2018):

Does ota use interrupts?
Wifimanager uses progmem for now

<!-- gh-comment-id:366241505 --> @tablatronix commented on GitHub (Feb 16, 2018): Does ota use interrupts? Wifimanager uses progmem for now
Author
Owner

@gibo77 commented on GitHub (Feb 20, 2018):

I am not sure of OTA does interrupts. The interrupts you see in my program is specific to the application that I am controlling with ESP8266.
So WifiManager ONLY uses PROGMEM and that is it?

Thanks for your reply!

<!-- gh-comment-id:366834524 --> @gibo77 commented on GitHub (Feb 20, 2018): I am not sure of OTA does interrupts. The interrupts you see in my program is specific to the application that I am controlling with ESP8266. So WifiManager ONLY uses PROGMEM and that is it? Thanks for your reply!
Author
Owner

@tablatronix commented on GitHub (Feb 20, 2018):

Well am working on abstracting all strings to progmem, so this might make it easier to grab from spiffs in the future by using another abstraction layer eventually.

<!-- gh-comment-id:366836453 --> @tablatronix commented on GitHub (Feb 20, 2018): Well am working on abstracting all strings to progmem, so this might make it easier to grab from spiffs in the future by using another abstraction layer eventually.
Author
Owner

@gibo77 commented on GitHub (Feb 20, 2018):

I have not tried PROGMEM. But is it correct to say that since they are an extension of RAM, if you turn off the unit, the PROGMEM data will be erased as well? We all know that SPIFFS and EEPROM retain data after when removing power.

<!-- gh-comment-id:366842000 --> @gibo77 commented on GitHub (Feb 20, 2018): I have not tried PROGMEM. But is it correct to say that since they are an extension of RAM, if you turn off the unit, the PROGMEM data will be erased as well? We all know that SPIFFS and EEPROM retain data after when removing power.
Author
Owner

@tablatronix commented on GitHub (Feb 20, 2018):

progmem is an avr thing, but ported to esp compatible.
http://arduino-esp8266.readthedocs.io/en/latest/PROGMEM.html
ICACHE_RODATA_ATTR

There is also icache iram
https://bbs.espressif.com/viewtopic.php?t=1183
ICACHE_FLASH_ATTR

I have yet to find a decent concise explanation for understanding it all

<!-- gh-comment-id:366845159 --> @tablatronix commented on GitHub (Feb 20, 2018): progmem is an avr thing, but ported to esp compatible. http://arduino-esp8266.readthedocs.io/en/latest/PROGMEM.html ICACHE_RODATA_ATTR There is also icache iram https://bbs.espressif.com/viewtopic.php?t=1183 ICACHE_FLASH_ATTR I have yet to find a decent concise explanation for understanding it all
Author
Owner

@tablatronix commented on GitHub (Jun 17, 2020):

This is old and outdated the wm webserver is now shared and can be used

<!-- gh-comment-id:645101412 --> @tablatronix commented on GitHub (Jun 17, 2020): This is old and outdated the wm webserver is now shared and can be used
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/WiFiManager#435
No description provided.