Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.
I've used the ESP8266 for a couple of years now but find that they are very unreliable. I use a 4M board and set aside 2M for spiffs. Serve files from Spiffs via HTTP and it works fine for a while and then starts giving errors. Whatever I
I'm using an ESP32 for Dutch bucket irrigation. Get daily reports on pump running times from Spiffs. My ESP also fails more often than not. If the Wi-Fi just hints on having some hick-up, the ESP32 hangs up. All the re-connect code in the world does not make it re-connect
What I have noticed is a persistent stream of serial data from previous software compiles. If it weren't bad enough the serial data comes in at different baud rates. No matter what I have tried I can't get it quiet. Consequently it causes a lot of trash data on the serial line.
Now I understand that there will be some things with this module that may be persistent such as WiFi radio settings etc. but c'mon when I load a program that doesn't have any serial communication at all (<-as a sanity check) then I would expect the serial line to be quiet.
I have been programming PIC's in assembly language for nearly 30 years so this isn't a new dog and pony show.... Arduino however IS
"new to me" so maybe I'm driving a new truck to the dog and pony show but that's all .... programming is programming when you get down to it really.
...Anyway, that may or may not shed some light on your ESP8266 issues
The biggest problem with the ESP8266 is that it is a single core device so running code that is too ""intense" does not give the module time to check wifi tasks. If the wifi tasks timeout, the WDT restarts the chip (with a numeric value to explain why it restarted - reported out via serial connection (whether or not you started serial communication). Also, some modules will report out the "garbage" at an odd baud rate of 74880 so the Serial Monitor (Arduino IDE) will only see garbage unless the right baud rate is selected.
There is a command "feedWDT()" to let it check wifi - yield() and delay() reportedly allow the same functionality in Arduino IDE.
I'm still working the bugs (features?) out of the ESP32 but it seems easier to use than ESP8266 - until its not. Getting the ultra-low power Deep-sleep() to work is a challenge because there is so much garbage and current-draining circuitry on the DevBoards that the deepSleep is useless. I have three more different versions on order and ready to play over Christmas. The ESP12F is a great board (based on ESP8266EX chip) with minimal overhead. You can pull the Tin can off and substitute an ultra-low power memory chip for battery driven devices (or simply latch the enable pin with an I/O pin then set the IO pin Low to get to single-digit microAmps in shutdown mode).
Also, I'm not sure the Arduino IDE has been reviewed sufficiently snd debugged to insure all of the ESP IDE commands are accessible and implemented properly. Also, the board libraries above 3.5 keep failing to allow Flashing code so I've settled on the quirks of v3.5 for the "generic 8266 board" option.