Soft WDT reset Any useful info here? NodeMCU 12E

Soft WDT reset

stack>>>

ctx: cont
sp: 3ffffd10 end: 3fffffc0 offset: 01b0
3ffffec0: 3ffe8698 00000000 3ffe8694 402058e2
3ffffed0: 00000009 3ffeebc0 3ffeec9c 0000000f
3ffffee0: 00015180 3ffeeb94 3ffeec9c 40203fd8
3ffffef0: 3ffeebbc 3ffeebc0 3ffeebc0 40204271
3fffff00: 3ffe8691 3ffeeb94 3ffeec9c 402044e8
3fffff10: 3ffe86d1 3ffeebc0 3ffeec9c 402042cc
3fffff20: 00015180 3ffeeb94 3ffeec9c 40201946
3fffff30: 3ffeeafc 3ffeeaf8 3ffeec9c 3ffeec9c
3fffff40: 3ffeeafc 3ffeebac 3ffeec9c 40201b2c
3fffff50: 3ffeeafc 3ffeeaf8 3ffeeb30 40202061
3fffff60: 0000007d 00000000 40100142 ad916872
3fffff70: 00000000 3ffeec9c 3ffeebcc 3ffeed04
3fffff80: 3fffdad0 00000000 3ffe84f4 402020a4
3fffff90: 3fffdad0 00000000 3ffeecd4 402020c4
3fffffa0: 3fffdad0 00000000 3ffeecd4 40204b74
3fffffb0: feefeffe feefeffe 3ffe8524 40100459
<<<stack<<<

thanks

This reset is due to the watchdog timer in ESP8266 boards.

You need to implement delay(0); or yield(); within while and/or for loops that are longer running.

https://www.sigmdel.ca/michel/program/esp8266/arduino/watchdogs_en.html

Agreed, basically you must have a part of you code running for over 2.5secs without a yield() having been executed. delay() executed yield(), and an automatic yield() is executed at the end of loop()