Closed vangalvin closed 6 years ago
Are You sure that You get the letter "M" in MCVE (Minimal) right? :-) this does not look like MCVE to me. I don't want to waste my time studying this poorly formatted and hard-to-read code, but as I remember I faced similar problem with weak wifi - try to check wifi status before any outgoing communication - especially when creating new connection.
@Pablo2048 This is the complete code, I tried to format it but had no luck doing so.
The issue defiantly seems to be a result of having poor wireless signal, for testing purposes I have set up a wireless repeater in the workshop and the issue has now vanished however this project is destined to end up in a rather remote location as a stand alone device where there may not be any internet connectivity.
What I was thinking is doing a check on the RSSI and either denying access to the user or if its in client mode stopping the unit from connecting to an AP if the signal is below the threshold.
I thought I would share this issue mainly because the problem was not obvious and quite random resulting in me chasing ghosts when the problem was a lot less complex than I had thought. And it appears that a few others may have been having the same issue and blaming it on the power supply or other things rather than what has ended up being an RSSI signal issue.
Can you please try to monitor (and log somewhere) WiFi.status(), RSSI and decode exception dump?
@Pablo2048 I turn off the repeater I have set up and log the RSSI. I don't seem to be getting an exception dump any more, Initially I did get one but was not able to decide it with the exception decoder not returning anything.
What I did see was that as soon as the signal level dropped to below -87 to -91 this is when the WDT would randomly trigger often resulting in either cyclic restarts or the system just stopping.
Cyclic restarts? Can You check power source (and whole power path to the ESP), try another power supply, add some capacitors, ...
@Pablo2048 I replaced the PSU, built another one and checked the ripple. Defiantly not that. With another AP set up as a repeater in my workshop and a signal level of -42 there have been no more wdt reset's
When I say cyclic restarts, the system will trigger a wdt reset, restart and run for what seems to be anything from 5 minutes to half an hour then do another wdt reset and restart again.
Ok, so without stack trace decoding and wifi.status monitoring I have no idea what else to do...
@Pablo2048 working on that now, as these things always go its not throwing the error as quickly as it was earlier.
Reset Reason: External System WiFi Status: 3 RSSI: -92 Reset Reason: External System WiFi Status: 3 RSSI: -92 Reset Reason: External System WiFi Status: 3 RSSI: -92 Reset Reason: External System WiFi Status: 3 RSSI: -92 Reset Reason: External System WiFi Status: 3 RSSI: -93
ets Jan 8 2013,rst cause:4, boot mode:(1,7)
wdt reset
@Pablo2048 Looks like as soon as the signal drops to about -93 that is when the wdt reset is triggered.
IMHO boot mode (1,7) is not the good one.
@Pablo2048 Finally i got a stack dump Sadly I can not decode it as the decoder will not run on my system for some reason.
eset Reason: External System WiFi Status: 3 RSSI: -91
Soft WDT reset
ctx: sys sp: 3fffecf0 end: 3fffffb0 offset: 01b0
stack>>> 3fffeea0: 00000000 000007c6 00000000 3fffee34
3fffeeb0: 00000000 3fffdcb0 3ffeedd8 00000030
3fffeec0: 3fffeee0 3fffeee0 00000004 40237b56
3fffeed0: 00000000 00000008 00000018 00000000
3fffeee0: 3ffe9650 3ffe966c 000007c6 00000001
3fffeef0: 00000018 0000000c 00000000 60000600
3fffef00: c50b9bbe 3ffef940 3ffeed88 4021bec5
3fffef10: 00000000 3ffede48 00000000 00000000
3fffef20: 40237968 3ffede48 3ffeedb0 60000600
3fffef30: 4023a5b9 3ffede48 3ffeedb0 c50b9bbe
3fffef40: 4023a5fe 3fffdab0 00000000 3fffdcb0
3fffef50: 3ffeedd8 3fffdad0 3ffef788 402124e7
3fffef60: 40000f49 40000f49 3fffdab0 40000f49
3fffef70: 40000e19 40001878 00000002 00000000
3fffef80: 3fffff10 aa55aa55 000000ee 40104424
3fffef90: 4010442a 00000002 00000000 0e31c8f7
3fffefa0: 4010000d 8ae2a40f c577916c 8249d4fc
3fffefb0: 00000000 3fffef4c 00000000 3fffff18
3fffefc0: 3fffffd0 00000000 00000000 feefeffe
3fffefd0: feefeffe feefeffe feefeffe feefeffe
3fffefe0: feefeffe feefeffe feefeffe feefeffe
3fffeff0: feefeffe feefeffe feefeffe feefeffe
3ffff000: feefeffe feefeffe feefeffe feefeffe
3ffff010: feefeffe feefeffe feefeffe feefeffe
3ffff020: feefeffe feefeffe feefeffe feefeffe
3ffff030: feefeffe feefeffe feefeffe feefeffe
3ffff040: feefeffe feefeffe feefeffe feefeffe
3ffff050: feefeffe feefeffe feefeffe feefeffe
3ffff060: feefeffe feefeffe feefeffe feefeffe
3ffff070: feefeffe feefeffe feefeffe feefeffe
3ffff080: feefeffe feefeffe feefeffe feefeffe
3ffff090: feefeffe feefeffe feefeffe feefeffe
3ffff0a0: feefeffe feefeffe feefeffe feefeffe
3ffff0b0: feefeffe feefeffe feefeffe feefeffe
3ffff0c0: feefeffe feefeffe feefeffe feefeffe
3ffff0d0: feefeffe feefeffe feefeffe feefeffe
3ffff0e0: feefeffe feefeffe feefeffe feefeffe
3ffff0f0: feefeffe feefeffe feefeffe feefeffe
3ffff100: feefeffe feefeffe feefeffe feefeffe
3ffff110: feefeffe feefeffe feefeffe feefeffe
3ffff120: feefeffe feefeffe feefeffe feefeffe
3ffff130: feefeffe feefeffe feefeffe feefeffe
3ffff140: feefeffe feefeffe feefeffe feefeffe
3ffff150: feefeffe feefeffe feefeffe feefeffe
3ffff160: feefeffe feefeffe feefeffe feefeffe
3ffff170: feefeffe feefeffe feefeffe feefeffe
3ffff180: feefeffe feefeffe feefeffe feefeffe
3ffff190: feefeffe feefeffe feefeffe feefeffe
3ffff1a0: feefeffe feefeffe feefeffe feefeffe
3ffff1b0: feefeffe feefeffe feefeffe feefeffe
3ffff1c0: feefeffe feefeffe feefeffe feefeffe
3ffff1d0: feefeffe feefeffe feefeffe feefeffe
3ffff1e0: feefeffe feefeffe feefeffe feefeffe
3ffff1f0: feefeffe feefeffe feefeffe feefeffe
3ffff200: feefeffe feefeffe feefeffe feefeffe
3ffff210: feefeffe feefeffe feefeffe feefeffe
3ffff220: feefeffe feefeffe feefeffe feefeffe
3ffff230: feefeffe feefeffe feefeffe feefeffe
3ffff240: feefeffe feefeffe feefeffe feefeffe
3ffff250: feefeffe feefeffe feefeffe feefeffe
3ffff260: feefeffe feefeffe feefeffe feefeffe
3ffff270: feefeffe feefeffe feefeffe feefeffe
3ffff280: feefeffe feefeffe feefeffe feefeffe
3ffff290: feefeffe feefeffe feefeffe feefeffe
3ffff2a0: feefeffe feefeffe feefeffe feefeffe
3ffff2b0: feefeffe feefeffe feefeffe feefeffe
3ffff2c0: feefeffe feefeffe feefeffe feefeffe
3ffff2d0: feefeffe feefeffe feefeffe feefeffe
3ffff2e0: feefeffe feefeffe feefeffe feefeffe
3ffff2f0: feefeffe feefeffe feefeffe feefeffe
3ffff300: feefeffe feefeffe feefeffe feefeffe
3ffff310: feefeffe feefeffe feefeffe feefeffe
3ffff320: feefeffe feefeffe feefeffe feefeffe
3ffff330: feefeffe feefeffe feefeffe feefeffe
3ffff340: feefeffe feefeffe feefeffe feefeffe
3ffff350: feefeffe feefeffe feefeffe feefeffe
3ffff360: feefeffe feefeffe feefeffe feefeffe
3ffff370: feefeffe feefeffe feefeffe feefeffe
3ffff380: feefeffe feefeffe feefeffe feefeffe
3ffff390: feefeffe feefeffe feefeffe feefeffe
3ffff3a0: feefeffe feefeffe feefeffe feefeffe
3ffff3b0: feefeffe feefeffe feefeffe feefeffe
3ffff3c0: feefeffe feefeffe feefeffe feefeffe
3ffff3d0: feefeffe feefeffe feefeffe feefeffe
3ffff3e0: feefeffe feefeffe feefeffe feefeffe
3ffff3f0: feefeffe feefeffe feefeffe feefeffe
3ffff400: feefeffe feefeffe feefeffe feefeffe
3ffff410: feefeffe feefeffe feefeffe feefeffe
3ffff420: feefeffe feefeffe feefeffe feefeffe
3ffff430: feefeffe feefeffe feefeffe feefeffe
3ffff440: feefeffe feefeffe feefeffe feefeffe
3ffff450: feefeffe feefeffe feefeffe feefeffe
3ffff460: feefeffe feefeffe feefeffe feefeffe
3ffff470: feefeffe feefeffe feefeffe feefeffe
3ffff480: feefeffe feefeffe feefeffe feefeffe
3ffff490: feefeffe feefeffe feefeffe feefeffe
3ffff4a0: feefeffe feefeffe feefeffe feefeffe
3ffff4b0: feefeffe feefeffe feefeffe feefeffe
3ffff4c0: feefeffe feefeffe feefeffe feefeffe
3ffff4d0: feefeffe feefeffe feefeffe feefeffe
3ffff4e0: feefeffe feefeffe feefeffe feefeffe
3ffff4f0: feefeffe feefeffe feefeffe feefeffe
3ffff500: feefeffe feefeffe feefeffe feefeffe
3ffff510: feefeffe feefeffe feefeffe feefeffe
3ffff520: feefeffe feefeffe feefeffe feefeffe
3ffff530: feefeffe feefeffe feefeffe feefeffe
3ffff540: feefeffe feefeffe feefeffe feefeffe
3ffff550: feefeffe feefeffe feefeffe feefeffe
3ffff560: feefeffe feefeffe feefeffe feefeffe
3ffff570: feefeffe feefeffe feefeffe feefeffe
3ffff580: feefeffe feefeffe feefeffe feefeffe
3ffff590: feefeffe feefeffe feefeffe feefeffe
3ffff5a0: feefeffe feefeffe feefeffe feefeffe
3ffff5b0: feefeffe feefeffe feefeffe feefeffe
3ffff5c0: feefeffe feefeffe feefeffe feefeffe
3ffff5d0: feefeffe feefeffe feefeffe feefeffe
3ffff5e0: feefeffe feefeffe feefeffe feefeffe
3ffff5f0: feefeffe feefeffe feefeffe feefeffe
3ffff600: feefeffe feefeffe feefeffe feefeffe
3ffff610: feefeffe feefeffe feefeffe feefeffe
3ffff620: feefeffe feefeffe feefeffe feefeffe
3ffff630: feefeffe feefeffe feefeffe feefeffe
3ffff640: feefeffe feefeffe feefeffe feefeffe
3ffff650: feefeffe feefeffe feefeffe feefeffe
3ffff660: feefeffe feefeffe feefeffe feefeffe
3ffff670: feefeffe feefeffe feefeffe feefeffe
3ffff680: feefeffe feefeffe feefeffe feefeffe
3ffff690: feefeffe feefeffe feefeffe feefeffe
3ffff6a0: feefeffe feefeffe feefeffe feefeffe
3ffff6b0: feefeffe feefeffe feefeffe feefeffe
3ffff6c0: feefeffe feefeffe feefeffe feefeffe
3ffff6d0: feefeffe feefeffe feefeffe feefeffe
3ffff6e0: feefeffe feefeffe feefeffe feefeffe
3ffff6f0: feefeffe feefeffe feefeffe feefeffe
3ffff700: feefeffe feefeffe feefeffe feefeffe
3ffff710: feefeffe feefeffe feefeffe feefeffe
3ffff720: feefeffe feefeffe feefeffe feefeffe
3ffff730: feefeffe feefeffe feefeffe feefeffe
3ffff740: feefeffe feefeffe feefeffe feefeffe
3ffff750: feefeffe feefeffe feefeffe feefeffe
3ffff760: feefeffe feefeffe feefeffe feefeffe
3ffff770: feefeffe feefeffe feefeffe feefeffe
3ffff780: feefeffe feefeffe feefeffe feefeffe
3ffff790: feefeffe feefeffe feefeffe feefeffe
3ffff7a0: feefeffe feefeffe feefeffe feefeffe
3ffff7b0: feefeffe feefeffe feefeffe feefeffe
3ffff7c0: feefeffe feefeffe feefeffe feefeffe
3ffff7d0: feefeffe feefeffe feefeffe feefeffe
3ffff7e0: feefeffe feefeffe feefeffe feefeffe
3ffff7f0: feefeffe feefeffe feefeffe feefeffe
3ffff800: feefeffe feefeffe feefeffe feefeffe
3ffff810: feefeffe feefeffe feefeffe feefeffe
3ffff820: feefeffe feefeffe feefeffe feefeffe
3ffff830: feefeffe feefeffe feefeffe feefeffe
3ffff840: feefeffe feefeffe feefeffe feefeffe
3ffff850: feefeffe feefeffe feefeffe feefeffe
3ffff860: 40103269 00040000 7fffffff 00000000
3ffff870: 00000022 40103266 00040000 40100f22
3ffff880: 3ffedcb8 40102192 3fff091c feefeffe
3ffff890: 00000001 40103523 00002000 00000022
3ffff8a0: 3fffc200 40106c88 00000020 40106cd0
3ffff8b0: 3ffff8c0 feefeffe 3fffc230 4000050c
3ffff8c0: 4000bd9c 00000030 00000013 ffffffff
3ffff8d0: 40000fb0 0000023a 00000501 3fffc200
3ffff8e0: 0000073b ffffffff 00000020 00000022
3ffff8f0: 3fffc200 40106c88 00000020 40106cd0
3ffff900: 00000004 3ffff9e0 3fffc230 4000050c
3ffff910: 4000bd9c 00000030 00000013 ffffffff
3ffff920: 40000fb0 0000023a 00000501 3fffc200
3ffff930: 0000073b ffffffff 00000020 00000000
3ffff940: 0000ffff 00042035 00002035 00000000
3ffff950: 00000100 3fff0c9c 0023fc00 00000030
3ffff960: 3fff0c9c 00000200 00002035 00000022
3ffff970: 3fffc200 40106c88 00000020 40106cd0
3ffff980: 00000100 3ffff9e0 3fffc230 4000050c
3ffff990: 40103ea2 00000030 0000001f fffffffe
3ffff9a0: 00000004 00000002 00000000 00000004
3ffff9b0: 00000001 3fff1e18 00000008 00000002
3ffff9c0: 0001008c 0000ffe8 00030000 3ffedcb8
3ffff9d0: 3ffedc40 00000002 00000107 00000030
3ffff9e0: 00000100 00000000 40105798 00000100
3ffff9f0: 00000000 00000000 0000001f 000000f6
3ffffa00: 0000005c 00000000 4010426a 000000f6
3ffffa10: 0000005c 00000000 4010426a 000000f9
3ffffa20: 0000005c 00000001 4010426a 3ffedcb8
3ffffa30: 3ffedc40 00000000 4010426a 000000f6
3ffffa40: 0000005c 00000001 4010426a 3ffedcb8
3ffffa50: 3ffedc40 3ffedcb8 3ffedcb8 3ffedcb8
3ffffa60: 3ffe9af5 4010431f 3ffed580 00000022
3ffffa70: 40103e6f 3ffedcb8 00000020 40106cd0
3ffffa80: 3ffe9af5 401036fa 3ffedcb8 4000050c
3ffffa90: 40100d97 00000030 00000000 ffffffff
3ffffaa0: 40103d79 3ffedcb8 3ffed210 00000022
3ffffab0: 3fffc200 40106c88 00000020 40106cd0
3ffffac0: 3fffc200 40106c88 3fffc230 4000050c
3ffffad0: 40237d97 00000030 00000000 ffffffff
3ffffae0: 402342c7 00000000 0000003c 00000000
3ffffaf0: 00000000 3ffedd90 007fffff bfc57176
3ffffb00: 3ffed980 00ffffff 00000098 00000000
3ffffb10: ffffffff 00000000 3ffe9c41 00000030
3ffffb20: 40226834 00000030 00000000 ffffffff
3ffffb30: 40226831 3fff19d8 00000001 40000000
3ffffb40: 00000000 bfffffff 00080240 c00a4004
3ffffb50: 3ffec990 000a4000 ff000fff 3ffee728
3ffffb60: 3ffefebc 00000001 3fff19d8 00000030
3ffffb70: 3fffc200 40106c88 3fffc230 4000050c
3ffffb80: 4021dcb8 00000030 00000008 ffffffff
3ffffb90: 4021dcb8 00000023 3fffdcc0 4021a918
3ffffba0: 3fff2056 0000004d 0000009e 00000003
3ffffbb0: 00000001 fffffffd 402342d3 00000001
3ffffbc0: ffffffff 00000000 3ffe9c41 00000022
3ffffbd0: 3fffc200 40106c88 00000020 40106cd0
3ffffbe0: 4023442e 3ffed1e8 3fffc230 4000050c
3ffffbf0: 4022ca94 00000030 00000008 00000022
3ffffc00: 3fffc200 40106c88 00000020 40106cd0
3ffffc10: 3fffc200 40106c88 3fffc230 4000050c
3ffffc20: 40102d03 00000030 00000019 fffffffe
3ffffc30: 3ffed508 00000023 3ffed508 3ffed530
3ffffc40: 3ffed150 ffff4f4a 3ffed150 0000012b
3ffffc50: 3ffedfb0 00000006 00000000 00000022
3ffffc60: 3fffc200 40106c88 00000020 40106cd0
3ffffc70: 3fffc200 40106c88 3fffc230 4000050c
3ffffc80: 00000000 00000000 0000001f 40104bfd
3ffffc90: 4000050c 00000023 00000001 00000022
3ffffca0: 3fffc200 40106c88 00000020 40106cd0
3ffffcb0: 40106cd0 3ff00004 3fffc230 4000050c
3ffffcc0: 40102cd8 00000030 00000019 00000022
3ffffcd0: 3fffc200 40106c88 00000020 40106cd0
3ffffce0: 3ffed150 ffff4ef5 3fffc230 4000050c
3ffffcf0: 40101dad 00000030 00000019 fffffffe
3ffffd00: 00000005 00000000 00000020 40100f22
3ffffd10: 3ffe9af5 4010431f 3ffed558 00000050
3ffffd20: 40101c3d 3ffed558 00000016 fffffc00
3ffffd30: 0000000f c50a1492 3ffedfb0 40101e0e
3ffffd40: 3ffea388 00000000 00000000 60000768
3ffffd50: 0000000f c50a1492 4010224e 00000100
3ffffd60: 7fffffff 3ffea388 3ffea388 00000001
3ffffd70: 00000001 00000080 00000020 40100f22
3ffffd80: 00000005 c50a1492 00000000 00000022
3ffffd90: 3fffc200 40106c88 00000020 40106cd0
3ffffda0: 3fffc200 40106c88 3fffc230 4000050c
3ffffdb0: 40202129 00000030 0000001d ffffffff
3ffffdc0: 40202533 00000000 00000031 007f8000
3ffffdd0: 0000007e 6000001c ff000000 3a511300
3ffffde0: 000000cc 3fff2820 00000000 3fffff1f
3ffffdf0: 00000002 3fffff20 00000000 00000022
3ffffe00: 3fffc200 40106c88 00000020 40106cd0
3ffffe10: 3fffc200 40106c88 3fffc230 4000050c
3ffffe20: 40202129 00000030 0000001d ffffffff
3ffffe30: 40202533 00000000 0000000a 007f8000
3ffffe40: 0000007e 6000001c ff000000 00000a0d
3ffffe50: 000000cc 3fff2820 00000000 3ffe8b4d
3ffffe60: 00000002 3ffe8b4e 00000000 00000030
3ffffe70: ffffffa5 3fffdad0 3ffef788 00000030
3ffffe80: 0000004a 3fff2820 00000000 3fff2822
3ffffe90: 0000000f 3fff2823 00000000 00000030
3ffffea0: 000000cc 3fff2820 00000000 3ffef6c8
3ffffeb0: 3ffef62c 3fffdad0 3ffef788 3ffef6c8
3ffffec0: 00000039 0000000a 3ffef6c8 40210ac0
3ffffed0: 00000010 00000010 00000000 40210da5
3ffffee0: 3fffff1e 40100734 40212598 00000000
3ffffef0: 00000000 00000000 3fffff1d 40211041
3fffff00: 00000010 3fffff90 3fffff90 402118f3
3fffff10: 3fffff60 0000000f 3fffff90 3139193f
3fffff20: 3a511300 3ffef788 3fffff90 3ffef788
3fffff30: 3fffdad0 00000003 3ffef6c8 40210ac0
3fffff40: 40236319 3ffef6c8 3ffef62c 40210da5
3fffff50: 3ffe8b4c ffffffa5 3ffef6c8 40211094
3fffff60: 0000000a 00000000 3ffef6c8 40210f58
3fffff70: 3fffdad0 3ffef62c 3ffef6c8 402110d8
3fffff80: 40213f68 3ffef62c 3ffef6c8 4020850c
3fffff90: 00000000 00000000 00000000 40208491
3fffffa0: 00000000 00000000 00000001 4021254d
<<<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
Without ESPException decoder output is this dump useless. Only you on your machine can decode this dump.
One more hint - try older version of the ESPEXception decoder because of this https://github.com/me-no-dev/EspExceptionDecoder/issues/36 ...
I gave that a quick try and get no output from the decoder. Will try reinstall it and may drop back to an earlier version of the Arduino IDE just in case the decoder issue is in there.
MAIN_page has size of about 27KB, and you are handling it with:
void handleRoot() {
String s = MAIN_page; //Read HTML contents
server.send(200, "text/html", s); //Send web page
}
That means that the flash string is being loaded into a String object, which requires a chunk of contiguous mem to hold it. The ESP has about 49KB of heap available with an empty sketch, which leaves 22KB for global objects, plus their inited state, plus your globals, plus the webserver state during request handling. Your sketch uses (some) sequences of String concats, which causes mem fragmentation. I'd think that, if your sketch does find a single block of free mem to hold the 27KB, it's a really close call. I'd run this with OOM debug enabled.
But that's not what caught my eye. You are trying to serve 27KB of static data as a contiguous string. Under extreme bad Wifi signal connection or intermittent connection, transmission slows down to a crawl. What did you think would happen? My suggestion: move that huge string to a file, and serve it as a stream, which is meant to be served in pieces. Your idea of limiting connections to signal qualities that don't suck is also good. The SDK now allows to filter SSIDs by RSSI value, so in theory you could just set a low threshold, and you wouldn't even see the SSID while scanning. However, that functionality is not yet exposed in our core, so you'd have to tweak the WiFi code to make use of it. A PR would be welcome!
On a personal note, I really don't understand why so many users think it's a good idea to embed huge html/js/css strings in their sketch, and handle them as strings. My experience shows that it's much better to have the html/css/js in files served from SPIFFS, and have the dynamic data served with e.g.: tiny jsons or whatever.
Besides the above, which strictly speaking are user errors, as @Pablo2048 said, the requirement here is for a MCVE sketch, where the M means Minimal, and this is far from that, so closing for now. If you can trim your sketch down to something manageable, please update your post and I'll reopen, or you can just open a new issue, fill in the required info, and link to this one.
Thank you @devyte I will move the javascript and html in to a file. I was wondering if the SDK had a filter option for low RSSI,
I ran the unit last night with the WiFi Repeater set up in the workshop giving the unit an average of -49 and the unit is still running with no WDT resets.
Once I get this all tweaked up I may see about moving it all to a D1 with an external antenna connection although the housing I designed and built has the NodeMCU installed as high as possible i'm sure a little bit more gain would not hurt. The great thing is this unit is also heading to a low noise environment.
I will also take your advice and move everything over to SPIFFS I did that on my IOT Air Compressor and that thing has never had any issues and has been running for a good 9 or so months 24/7.
Thank you also to @Pablo2048 :)
Basic Infos
Platform
Settings in IDE
Problem Description
I have been chasing some random WDT issues for about a week and it appears that the problem is caused when you have a really low WiFi signal or an unstable connection. My one was running at levels in the -83 down to -91 at times, I was not expecting it to even work that low but to my surprise what seems to happen is the WDT triggers a reboot.
I was receiving both of these at various times. The only error i seem to be getting is
ets Jan 8 2013,rst cause:4, boot mode:(1,7) wdt reset
ets Jan 8 2013,rst cause:4, boot mode:(1,6) wdt reset
I did have a few stack dumps however I was not able to get them converted using the exception decider for some reason and since moving the Nodemcu I don't seem to have received any more.
Initial thought were it may have been caused by power issues, I have installed a 3.3v supply with a 1000uf cap and know the supply will quite happily deliver up to about 2A so that should be more than enough. In addition the control systems for the Fan etc have been optically isolated just to be sure that there were no feedback issues.
The code for this project is quite sizable and has bits all over the place at the moment as it is a work in progress so please keep that in mind. :)
C Sketch
Debug Messages