WiFiManager: crash when trying to connect to MQTT server

Getting a crash on a wemos d1 mini (and also on the Feather Huzzah ESP8266 ) after a few minutes of the device trying to reconnect to the wifi router. The router’s running openwrt and is about 8 feet away, so I doubt it’s a problem with OTA connectivity.

I’m trying to make a room sensor with a collection of sensors (temp, humidity, pir, light level) and associated libraries - WifiManager (“version”: “1.0.0” - from library.json), MQTT (pupsub), DHT22 (temp/humidity), TSL2561 (lux), and a PIR sensor.

Below is the list of libraries I use to accomplish this. I’m trying to understand any interaction between these libs. I’ve read that the FS library needs to always be first one defined. Are there any others that need to be sequenced in the order?

The code compiles fine and doesn’t seem to be related to a memory problem:

Sketch uses 383968 bytes (36%) of program storage space. Maximum is 1044464 bytes.
Global variables use 33948 bytes (41%) of dynamic memory, leaving 47972 bytes for local variables. Maximum is 81920 bytes.

Thanks for any tips,

Chris.

#include <FS.h> //this needs to be first, or it all crashes and burns...

#include <Wire.h>
#include <Adafruit_Sensor.h>  // Adafruit Unified Sensor Driver - https://github.com/adafruit/Adafruit_Sensor

#include <DNSServer.h>  
#include <ESP8266WiFi.h>      // https://github.com/esp8266/Arduino
#include <WiFiManager.h>      // https://github.com/tzapu/WiFiManager
#include <ESP8266WebServer.h> //Local WebServer used to serve the configuration portal
#include <ArduinoJson.h>      //https://github.com/bblanchon/ArduinoJson

#include <PubSubClient.h>
#ifdef ESP32
#include <SPIFFS.h>
#endif

#include <Adafruit_TSL2561_U.h>
#include <DHT.h>

The error stack… in case it’s meaningful to anyone. First some normal output, then a few dozen attempts to reconnect then - boom.

Attempting connection to MQTT server: 192.168.1.138...  Not connected.

=========================================================

mqtt pub - PIR state:	0
mqtt pub - RSSI level: -50
mqtt pub - temperature:	73.94 *F
mqtt pub - rel humidity:	60.20 %
mqtt pub - lux value:		0
mqtt pub - lux broaband:	24
mqtt pub - lux infrared:	5
mqttClient not connected...

Soft WDT reset

>>>stack>>>

ctx: sys
sp: 3fffed40 end: 3fffffb0 offset: 01b0
3fffeef0:  00000000 127f2f22 3ffed770 40222016  
3fffef00:  00000000 3ffee088 00000000 00000000  
3fffef10:  40240ac4 3ffee088 3ffef040 40201ce8  
3fffef20:  4024353d 3ffee088 3ffef040 3b3138ed  
3fffef30:  40243582 3fffdab0 00000000 3fffdcb0  
3fffef40:  3ffef050 3fffdad0 3ffefd84 40216ec7  
3fffef50:  40000f49 40000f49 3fffdab0 40000f49  
3fffef60:  40000e19 40001878 00000002 00000000  
3fffef70:  3fffff10 aa55aa55 000000f2 4010542c  
3fffef80:  40105432 00000002 00000000 e82bcda6  
3fffef90:  4010000d a3ca2c98 dda558a1 83153daf  
3fffefa0:  401015fc 3fffef3c 401015a9 3fffff58  
3fffefb0:  3fffffc0 00000000 00000000 feefeffe  
3fffefc0:  feefeffe feefeffe feefeffe 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:  00000002 4000444e feefeffe feefeffe  
3ffff870:  00000000 4000422e 60000200 3ffff8f4  
3ffff880:  00000100 40004aa0 000000fc 00101b04  
3ffff890:  00000100 3ffff8f0 3fffc718 00101b04  
3ffff8a0:  00000004 0168a101 40106888 00000004  
3ffff8b0:  3ffff8f0 00101b05 00000000 00101b05  
3ffff8c0:  3fffc718 3ffff8f0 000000fc 00101d04  
3ffff8d0:  00101b04 4021565d 00000001 00101b04  
3ffff8e0:  00000004 0168a101 00000001 40217dc4  
3ffff8f0:  ffffff7e 00101d05 00000000 00101d05  
3ffff900:  3fffc718 3ffff930 feefeffe feefeffe  
3ffff910:  00101d04 4021565d 00000001 00101d04  
3ffff920:  00000002 4000444e 00000001 40217dc4  
3ffff930:  00000000 4000422e 60000200 3ffff9b4  
3ffff940:  00000100 40004aa0 000000b8 00101e48  
3ffff950:  00000100 3ffff9b0 3fffc718 00101e48  
3ffff960:  00000004 0168a101 40106888 00000004  
3ffff970:  00000000 4000444e 00000000 00101e4a  
3ffff980:  00000000 400041bc 60000200 3fff14d4  
3ffff990:  00000100 40004b14 00000100 00101d00  
3ffff9a0:  00000100 3fff13d4 3fffc718 00101e00  
3ffff9b0:  00000100 00000000 40106888 00000100  
3ffff9c0:  3fff13d4 00101e00 00101d00 00101e00  
3ffff9d0:  3fffc718 3fff13d4 6b616d22 682f7265  
3ffff9e0:  00101d00 4021565d 00000100 00101e00  
3ffff9f0:  00000006 00000000 00000100 40217d49  
3ffffa00:  0000000a 40255410 00000001 3ffffb20  
3ffffa10:  00000002 00000000 0000000a 00000000  
3ffffa20:  00000002 00000000 0000000a 00000000  
3ffffa30:  00000002 00000000 0000000a 00000000  
3ffffa40:  00000000 a0000000 00000000 0000001c  
3ffffa50:  00002000 a0000000 00002000 00000000  
3ffffa60:  00000003 00000000 0000000a 00000000  
3ffffa70:  00000003 00000000 0000000a 00000000  
3ffffa80:  00000002 00000000 0000000a 00000000  
3ffffa90:  00000001 00000000 0000000a 00000000  
3ffffaa0:  00000000 00000000 0000001f 40105c05  
3ffffab0:  4000050c 40105308 3fff0edc 00000000  
3ffffac0:  00000000 00000000 00000020 40101f22  
3ffffad0:  00000000 00000000 00000020 40101f22  
3ffffae0:  00000000 00000000 00000020 40101f22  
3ffffaf0:  3ffe9d30 40105308 3fff0edc 40105c05  
3ffffb00:  00000001 4010452b 3ffedeb0 00000030  
3ffffb10:  4010498e 00000030 00000000 ffffffff  
3ffffb20:  40104472 0000007f 7fffffff 00000000  
3ffffb30:  40104472 0000007f 7fffffff 00000000  
3ffffb40:  0000007f 00080000 ff000fff 3ffee958  
3ffffb50:  401032e7 00080000 00000000 4000050c  
3ffffb60:  00000000 40102fe4 00000000 4000050c  
3ffffb70:  3fffc278 40102fe4 3fffc200 00000022  
3ffffb80:  00000000 00000000 0000001f 40105c05  
3ffffb90:  4000050c 00000030 00000000 ffffffff  
3ffffba0:  4022f515 00000030 4023d20b 00000001  
3ffffbb0:  ffffffff 00000000 3ffe9e81 00000008  
3ffffbc0:  00000000 00000000 0000001f 40105c05  
3ffffbd0:  4000050c 3ffed4c8 3fff05dc 3ffed4c8  
3ffffbe0:  4021b3fc 4022f403 3ffee958 3fff05dc  
3ffffbf0:  3fff2ce8 3fff2ce8 4023d20b 00000001  
3ffffc00:  00000000 00000002 00000000 00000008  
3ffffc10:  3fff3362 401059ab 3fff2ce8 3fff0d6c  
3ffffc20:  3fff332c 3ffed428 3fff05dc 3ffed428  
3ffffc30:  00000002 402218e9 3ffeff88 3fff0d6c  
3ffffc40:  3fff3362 00000036 3ffee958 3fff05dc  
3ffffc50:  00000005 00000000 0000000a 00000000  
3ffffc60:  00000005 00000000 0000000a 00000000  
3ffffc70:  3fff3362 3fff0394 3fff332c 40221f5c  
3ffffc80:  00000000 a0000000 00000000 0000001c  
3ffffc90:  00005000 402218e9 00005000 00000000  
3ffffca0:  3ffffe00 00000000 3ffffe00 4021fcc6  
3ffffcb0:  0000a000 3ffffda3 3fff21b0 00000000  
3ffffcc0:  00000002 3fff332c 4021b7c0 00000001  
3ffffcd0:  3ffffe00 00000001 3ffffe00 4021fcc6  
3ffffce0:  3ffffd60 3ffffda2 3ffffd10 00000000  
3ffffcf0:  00000005 00000000 0000000a 4021fc00  
3ffffd00:  3ffffe00 3ffffda2 3ffffd60 4021b8c0  
3ffffd10:  00000001 a0000000 00000000 0000001c  
3ffffd20:  3ffe8300 00000000 0000000a 40255410  
3ffffd30:  3ffffda3 00000005 00000000 4021fcc6  
3ffffd40:  0000a000 3ffffe33 0000006c 3ffe9a97  
3ffffd50:  00000000 3ffe9a96 3ffffe00 402200d7  
3ffffd60:  00000080 ffffffff ffffffff 00000000  
3ffffd70:  00000001 00000001 3f302064 00000000  
3ffffd80:  3fff0394 00000000 00000000 4021fc00  
3ffffd90:  00000000 4bc6a7f0 000f25db 3ffef938  
3ffffda0:  00353200 00000000 4bc6a7f0 3ffefb33  
3ffffdb0:  3ffefb35 00000000 00000000 40201871  
3ffffdc0:  3ffffe90 3ffffe80 00000010 3ffe8300  
3ffffdd0:  00000001 00000009 00000001 40201871  
3ffffde0:  3ffefb35 00000001 3ffefb35 3ffefa98  
3ffffdf0:  42100000 3ffe8300 0000004b 4021c045  
3ffffe00:  3ffffeb1 00000001 00000049 ffff0208  
3ffffe10:  3ffffeb0 0000004a 3ffefb31 4020a4b8  
3ffffe20:  3ffef900 000000ae 3ffef94c 4020a4e0  
3ffffe30:  3ffef9ae 00000000 3ffef94c 4020a6ec  
3ffffe40:  3ffef96a 3ffef968 3ffef724 4021920c  
3ffffe50:  42100000 00000001 3ffef724 4021500c  
3ffffe60:  00000000 4bc6a7f0 000f2739 3ffefd84  
3ffffe70:  00000000 00000000 4bc6a7f0 00000000  
3ffffe80:  42100000 3ffef724 40100a9e ba1cac08  
3ffffe90:  00000000 3ffffeb0 3ffefc74 40215bfc  
3ffffea0:  3fffdad0 3ffef720 00000001 40208213  
3ffffeb0:  00000035 00000028 3ffffedd 3ffef724  
3ffffec0:  00000010 3fffff60 3fffff60 402162cf  
3ffffed0:  3fffff20 00000005 3fffff60 4021631b  
3ffffee0:  34320002 00000000 3fffff60 40216364  
3ffffef0:  00000000 4bc6a7f0 000f2739 3ffefd84  
3fffff00:  00000000 00000000 4bc6a7f0 00000000  
3fffff10:  00000000 4bc6a7f0 000f2739 3ffefd84  
3fffff20:  00000000 00000000 4bc6a7f0 00000000  
3fffff30:  3fffdad0 3ffef720 40100a9e b8d4fdf3  
3fffff40:  40105d48 127fbd7f 3ffefe5c 00000000  
3fffff50:  3ffef040 3ffefe5c 3ffe87fc 3ffefe5c  
3fffff60:  3fffdad0 3ffefd84 40216f0c 3fffefa0  
3fffff70:  3ffefe5c 3fffdad0 00000064 40201d6f  
3fffff80:  3fffdad0 3ffef720 00000001 4020a1b6  
3fffff90:  00000000 00000000 00000001 40216f2d  
3fffffa0:  3fffdad0 00000000 3ffefd54 40216fb8  
<<<stack<<<

About this issue

  • Original URL
  • State: open
  • Created 5 years ago
  • Comments: 19 (1 by maintainers)

Most upvoted comments

Don’t know if you fixed this, but I just had the same issue.

In these lines:

WiFiClient myWifiClient;
PubSubClient mqttClient(myWifiClient);

myWifiClient must be unique within your LAN. If you have another device connecting to PubSubClient, it’s client name has to also be unique.

@TinajaLabs a use MQTT with WiFiManager without problems. It can be a bug in char arrays operations… This is a code in my project: https://github.com/dontsovcmc/waterius/blob/master/ESP8266/src/sender_mqtt.h

I don’t use SPIFFS, maybe some heap problems…
I also had a bugs with arrays and dangerous functions that don’t check null terminators. And my favourite bug is unsigned/signed arithmetic… Every operations with millis() should be unsigned…

Refactor idea: You needn’t call setTopicsDevices You can build topic realtime.

int32_t rssiValue = WiFi.RSSI();
  char rssiMsg[50];
  // snprintf(rssiMsg, 75, "%ld", WiFi.RSSI());
  snprintf(rssiMsg, 75, "%ld", rssiValue);

  Serial.print("TL: mqtt pub - RSSI level: \t");
  Serial.println(rssiValue);
  mqttClient.publish(rssi_topic, rssiMsg);

Example:
String topic = topic_loc + topic_device + chipID + "/device/" + rssi_base;
String msg = String((uint16_t)WiFi.RSSI());
mqttClient.publish(topic, msg);

Example 2:
String root = topic_loc + topic_device + chipID;

bool mqtt_publish(const String &section, const String &title, const String &msg)  {
   LOG_DEBUG() << section << title << ": " << msg;
   mqttClient.publish(root + section + title, msg);
}

mqtt_publish("/device", "/rssi/state/room", String((uint16_t)WiFi.RSSI());

Things I’ve done to try and fix the problem…

Aligned the variables associated with the payload value when publishing to MQTT. Changed code like this:

char luxMsg[50];
    snprintf(luxMsg, 75, "%ld", lux);

to this:

char luxMsg[50];
    snprintf(luxMsg, 50, "%ld", lux);

Changed timer variables that change within the loop from long to unsigned long.

unsigned long now = millis();
unsigned long pubLastPir = 0;