Since day 1, I get many questions about the stability of the ESP8266 and why do users get a WDT regularly.
The answer lies in 2 different areas.
Stable, high current power supply or LDO voltage regulator
If your power supply or LDO can not deliver 300mA of current at 3.3V, when the ESP8266 sends out data over the air the IC will brownout and hence reset. A good regulator and a nice large 100uF capacitor on the 3.3V inputs will put an end to that issue quickley. So do not blame the IC blame the supply!
In the land of writing good Arduino code for the ESP8266 you must not “block” operations in the background that are trying to keep the WIFI running in realtime. These operations basically run at the end of each of your loop()’s. So if you do things like a for loop that executes over a long period of time, the part will cause a watch dog timeout and reset. So if you find yourself not allowing the main loop() to regularly roll over, then this can happen. Add yield() to your code or do a delay(0) which is 100% the same thing as a yield()
Anyone has similar issues or stories with regards to this to share?