ESP32/Arduino stops calling loop() but no WDT timeout
Posted: Sun Jun 16, 2024 4:22 pm
Hi,
I've been developing with the ESP8266 and ESP32 for years and never ran into this issue until now. I have an ESP32-WROVER-E with 16MB of flash and 8MB (4MB useable) of SPI PSRAM. Development is with vscode+PlatformIO.
This system boots and gets into a good idle state with ArduinoCore calling loop() regularly. When I send my system an MQTT command, it starts processing it and gets most of the way to completion (over 1200 - 1500 mS) when Arduino stops calling loop() and the system hangs. No WDT fires and it will sit there forever until I reset it.
Before I offer all of the gory details of what I'm doing, I want to ask if there are ways to enable the Arduino core to use the serial port to help me debug? I have already added the call to SeDebugOutput(true) after Serial.begin() and I don't see any output before or after the hang. I have debug builds enabled in platformio.ini. I have an ESP32 debugger somewhere but I've never used it and I'd like to pursue any easy-to-implement debug options before I climb the JTAG debugger learning curve.
Again, at this point I'm just looking for information on how to observe what ArduinoCore is doing between calls to my loop().
I've been developing with the ESP8266 and ESP32 for years and never ran into this issue until now. I have an ESP32-WROVER-E with 16MB of flash and 8MB (4MB useable) of SPI PSRAM. Development is with vscode+PlatformIO.
This system boots and gets into a good idle state with ArduinoCore calling loop() regularly. When I send my system an MQTT command, it starts processing it and gets most of the way to completion (over 1200 - 1500 mS) when Arduino stops calling loop() and the system hangs. No WDT fires and it will sit there forever until I reset it.
Before I offer all of the gory details of what I'm doing, I want to ask if there are ways to enable the Arduino core to use the serial port to help me debug? I have already added the call to SeDebugOutput(true) after Serial.begin() and I don't see any output before or after the hang. I have debug builds enabled in platformio.ini. I have an ESP32 debugger somewhere but I've never used it and I'd like to pursue any easy-to-implement debug options before I climb the JTAG debugger learning curve.
Again, at this point I'm just looking for information on how to observe what ArduinoCore is doing between calls to my loop().