[GH-ISSUE #1374] Hard crash when using setCustomHeadElement #1177

Closed
opened 2026-02-28 01:28:52 +03:00 by kerem · 1 comment
Owner

Originally created by @monodop on GitHub (Mar 22, 2022).
Original GitHub issue: https://github.com/tzapu/WiFiManager/issues/1374

Basic Infos

Hardware

WiFimanager Branch/Release: 2.0.9-beta

Esp8266/Esp32: ESP8266

Hardware: ESP-12F

Core Version: ?

Description

I'm trying to use setCustomHeadElement on my project, but this causes a hard crash on my device (see below). If I remove that line from my code, everything works again. It's also pretty confusing because sometimes it crashes after I've entered the credentials (like in the error below), but other times it just crashes immediately when I try to connect to the network. Perhaps my HTML_HEADER is too big?

Edit: Reducing the size of HTML_HEADER does not appear to make a difference.

Settings in IDE

Module: NodeMCU 1.0 (ESP-12E Module)

Additional libraries: hd44780@1.3.2 AccelStepper@1.61.0

Sketch

#include <ESP8266WiFi.h>
#include <WiFiManager.h>

static const char HTML_HEADER[] PROGMEM = R"EOF(
<style>
h1 {
  background: url(data:image/png;base64,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)
    no-repeat
    left center;
  background-size: cover;
  color: #ffffff00 !important;
  width: 250px;
  height: 34px;
}
</style>
)EOF";
WiFiManager wifiManager;
bool apMode = false;

void setup() {
  Serial.begin(115200);
  Serial.println("");

  byte mac[6];
  WiFi.macAddress(mac);
  char hostname[19];
  sprintf(hostname, "MyHostNameX-%02X%02X%02X", mac[3], mac[4], mac[5]);
  WiFi.hostname(hostname);
  wifiManager.setHostname(hostname);

  // https://github.com/tzapu/WiFiManager/blob/master/WiFiManager.h
  wifiManager.setConfigPortalTimeout(180);
  wifiManager.setDebugOutput(true);
  wifiManager.setCustomHeadElement(HTML_HEADER);
  wifiManager.setTitle("MyTest Title");
  wifiManager.setDarkMode(true);
  wifiManager.setConfigPortalBlocking(false);
  std::vector<const char*> menu = {"wifi", "restart", "info", "exit"};
  wifiManager.setMenu(menu);
  
  bool res = wifiManager.autoConnect("testssid", "99999999");
  if (res) {
    // ... logic if credentials are stored and connection succeeded
  }
  else {
    Serial.println("Ap mode enabled.");
    apMode = true;
  }
}

void loop() {
  if (apMode) {
    wifiManager.process();
    if (WiFi.status() == WL_CONNECTED) {   // <-- this is the line pointed to in the stack trace
      Serial.println("Connected to network. rebooting..");
      ESP.restart();
    } 
    return;
  }
  // .. logic if connected to network
}

Debug Messages

21:12:39.715 -> *wm:[1] AutoConnect 
21:12:39.715 -> *wm:[1] No Credentials are Saved, skipping connect 
21:12:39.715 -> *wm:[2] Starting Config Portal 
21:12:39.715 -> *wm:[2] AccessPoint set password is VALID 
21:12:39.715 -> *wm:[2] Disabling STA 
21:12:39.715 -> *wm:[2] Enabling AP 
21:12:39.715 -> *wm:[1] StartAP with SSID:  testssid
21:12:41.828 -> *wm:[1] AP IP address: 192.168.4.1
21:12:41.828 -> *wm:[1] Starting Web Portal 
21:12:41.828 -> *wm:[2] HTTP server started 
21:12:41.828 -> *wm:[2] Config Portal Running, non blocking/processing 
21:12:41.828 -> *wm:[2] Portal Timeout In 180 seconds
21:12:41.828 -> Ap mode enabled.
21:13:09.363 -> *wm:[2] Portal Timeout In 150 seconds
21:13:39.341 -> *wm:[2] Portal Timeout In 120 seconds
21:14:08.431 -> *wm:[2] <- Request redirected to captive portal 
21:14:09.362 -> *wm:[2] Portal Timeout In 90 seconds
21:14:09.689 -> *wm:[2] <- HTTP Root 
21:14:09.689 -> 
21:14:09.689 -> --------------- CUT HERE FOR EXCEPTION DECODER ---------------
21:14:09.735 -> 
21:14:09.735 -> Exception (3):
21:14:09.735 -> epc1=0x4000bf64 epc2=0x00000000 epc3=0x40225e69 excvaddr=0x4026e375 depc=0x00000000
21:14:09.735 -> 
21:14:09.735 -> >>>stack>>>
21:14:09.735 -> 
21:14:09.735 -> ctx: cont
21:14:09.735 -> sp: 3ffffc40 end: 3fffffc0 offset: 0190
21:14:09.735 -> 3ffffdd0:  3fff577c 00000ca1 00000000 3fff06fc  
21:14:09.735 -> 3ffffde0:  4026e375 0000000c 3ffffe30 3fff06fc  
21:14:09.735 -> 3ffffdf0:  00000000 3ffefc80 3ffffe6c 4020ce83  
21:14:09.735 -> 3ffffe00:  00000000 3fff2e44 3ffffe30 4021a674  
21:14:09.735 -> 3ffffe10:  3ffffe30 3ffefdc8 3ffefc80 4021a69d  
21:14:09.735 -> 3ffffe20:  3fffdad0 3ffefdc8 3ffefc80 4021396e  
21:14:09.735 -> 3ffffe30:  3fff5194 000c000f 80000000 40211cf8  
21:14:09.735 -> 3ffffe40:  00000000 69746365 00000000 4bc6a7f0  
21:14:09.735 -> 3ffffe50:  00000000 a3039695 00000000 00000000  
21:14:09.781 -> 3ffffe60:  3fff3c84 3fff3f18 00000000 3fff577c  
21:14:09.781 -> 3ffffe70:  0ca10caf 80000000 01980f4e 3fff06fc  
21:14:09.781 -> 3ffffe80:  3fffdad0 00000001 3fff3d54 402204a8  
21:14:09.781 -> 3ffffe90:  00000001 00000000 00000000 401000e9  
21:14:09.781 -> 3ffffea0:  00000000 00000000 00000000 4020f249  
21:14:09.781 -> 3ffffeb0:  00000000 3fff3c84 3fff3c3c 4021244c  
21:14:09.781 -> 3ffffec0:  00000000 00000000 00000000 69746365  
21:14:09.781 -> 3ffffed0:  00000000 3fffdad0 40100735 00000000  
21:14:09.781 -> 3ffffee0:  000160ed 00000000 00000000 00000001  
21:14:09.781 -> 3ffffef0:  00000000 00000000 3fff3c3c 3fff06fc  
21:14:09.828 -> 3fffff00:  3fffdad0 3fff3c60 3fff3c3c 4021456a  
21:14:09.828 -> 3fffff10:  40221208 00000000 00001388 4021525b  
21:14:09.828 -> 3fffff20:  00000000 00000000 3fff51ac 00000000  
21:14:09.828 -> 3fffff30:  3fffdad0 3ffefd80 3ffefc80 402147a8  
21:14:09.828 -> 3fffff40:  3ffefd80 00000001 3ffefc80 4020eb6b  
21:14:09.828 -> 3fffff50:  00000000 00000000 4bc6a7f0 00000000  
21:14:09.828 -> 3fffff60:  007a1200 b307f944 40100735 00000000  
21:14:09.828 -> 3fffff70:  000160ec 3fff3394 3fff33a4 3fff06fc  
21:14:09.828 -> 3fffff80:  3fffdad0 3ffefd80 3ffefc80 4021493f  
21:14:09.828 -> 3fffff90:  3fffdad0 00000000 3fff06e8 40207fbe  
21:14:09.828 -> 3fffffa0:  3fffdad0 00000000 3fff06e8 4021b7dc  
21:14:09.876 -> 3fffffb0:  feefeffe feefeffe 3ffe8670 401012d1  
21:14:09.876 -> <<<stack<<<
21:14:09.876 -> 
21:14:09.876 -> --------------- CUT HERE FOR EXCEPTION DECODER ---------------
21:14:09.876 -> 
21:14:09.876 ->  ets Jan  8 2013,rst cause:2, boot mode:(3,6)
21:14:09.876 -> 
21:14:09.876 -> load 0x4010f000, len 3460, room 16 
21:14:09.876 -> tail 4
21:14:09.876 -> chksum 0xcc
21:14:09.876 -> load 0x3fff20b8, len 40, room 4 
21:14:09.876 -> tail 4
21:14:09.876 -> chksum 0xc9
21:14:09.876 -> csum 0xc9
21:14:09.876 -> v00083b00
21:14:09.876 -> ~ld
21:14:10.107 -> 
Exception 3: LoadStoreError: Processor internal physical address or data error during load or store
PC: 0x4000bf64
EXCVADDR: 0x4026e375

Decoding stack results
0x4020ce83: WiFiManager::getHTTPHead(String) at D:\Harrison\Documents\Arduino\libraries\WiFiManager\WiFiManager.cpp line 1203
0x4021a674: String::operator=(String const&) at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h line 277
0x4021a69d: String::String(String const&) at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\WString.cpp line 46
0x4021396e: WiFiManager::handleRoot() at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h line 79
0x40211cf8: esp8266webserver::ESP8266WebServerTemplate ::_parseRequest(WiFiClient&) at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h line 79
0x402204a8: std::_Function_handler   >::_M_invoke(std::_Any_data const&) at c:\users\harrison\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\10.3.0/functional line 497
0x401000e9: std::function ::operator()() const at c:\users\harrison\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\10.3.0\bits/std_function.h line 617
0x4020f249: esp8266webserver::FunctionRequestHandler ::handle(esp8266webserver::ESP8266WebServerTemplate &, HTTPMethod, String const&) at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h line 42
0x4021244c: esp8266webserver::ESP8266WebServerTemplate ::_handleRequest() at c:\users\harrison\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\10.3.0\bits/std_function.h line 498
0x40100735: millis() at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_wiring.cpp line 193
0x4021456a: esp8266webserver::ESP8266WebServerTemplate ::handleClient() at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h line 274
0x4021525b: DNSServer::processNextRequest() at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\DNSServer\src\DNSServer.cpp line 166
0x402147a8: WiFiManager::processConfigPortal() at D:\Harrison\Documents\Arduino\libraries\WiFiManager\WiFiManager.cpp line 800
0x4020eb6b: WiFiManager::configPortalHasTimeout() at D:\Harrison\Documents\Arduino\libraries\WiFiManager\WiFiManager.cpp line 566
0x40100735: millis() at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_wiring.cpp line 193
0x4021493f: WiFiManager::process() at D:\Harrison\Documents\Arduino\libraries\WiFiManager\WiFiManager.cpp line 784
0x40207fbe: loop() at D:\Harrison\Documents\git\gme-stock-ticker\gme_stock_ticker/gme_stock_ticker.ino line 216
0x4021b7dc: loop_wrapper() at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_main.cpp line 201

Originally created by @monodop on GitHub (Mar 22, 2022). Original GitHub issue: https://github.com/tzapu/WiFiManager/issues/1374 ### Basic Infos #### Hardware WiFimanager Branch/Release: 2.0.9-beta Esp8266/Esp32: ESP8266 Hardware: ESP-12F Core Version: ? ### Description I'm trying to use setCustomHeadElement on my project, but this causes a hard crash on my device (see below). If I remove that line from my code, everything works again. It's also pretty confusing because sometimes it crashes after I've entered the credentials (like in the error below), but other times it just crashes immediately when I try to connect to the network. Perhaps my `HTML_HEADER` is too big? Edit: Reducing the size of HTML_HEADER does not appear to make a difference. ### Settings in IDE Module: NodeMCU 1.0 (ESP-12E Module) Additional libraries: hd44780@1.3.2 AccelStepper@1.61.0 ### Sketch ```cpp #include <ESP8266WiFi.h> #include <WiFiManager.h> static const char HTML_HEADER[] PROGMEM = R"EOF( <style> h1 { background: url(data:image/png;base64,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) no-repeat left center; background-size: cover; color: #ffffff00 !important; width: 250px; height: 34px; } </style> )EOF"; WiFiManager wifiManager; bool apMode = false; void setup() { Serial.begin(115200); Serial.println(""); byte mac[6]; WiFi.macAddress(mac); char hostname[19]; sprintf(hostname, "MyHostNameX-%02X%02X%02X", mac[3], mac[4], mac[5]); WiFi.hostname(hostname); wifiManager.setHostname(hostname); // https://github.com/tzapu/WiFiManager/blob/master/WiFiManager.h wifiManager.setConfigPortalTimeout(180); wifiManager.setDebugOutput(true); wifiManager.setCustomHeadElement(HTML_HEADER); wifiManager.setTitle("MyTest Title"); wifiManager.setDarkMode(true); wifiManager.setConfigPortalBlocking(false); std::vector<const char*> menu = {"wifi", "restart", "info", "exit"}; wifiManager.setMenu(menu); bool res = wifiManager.autoConnect("testssid", "99999999"); if (res) { // ... logic if credentials are stored and connection succeeded } else { Serial.println("Ap mode enabled."); apMode = true; } } void loop() { if (apMode) { wifiManager.process(); if (WiFi.status() == WL_CONNECTED) { // <-- this is the line pointed to in the stack trace Serial.println("Connected to network. rebooting.."); ESP.restart(); } return; } // .. logic if connected to network } ``` ### Debug Messages ``` 21:12:39.715 -> *wm:[1] AutoConnect 21:12:39.715 -> *wm:[1] No Credentials are Saved, skipping connect 21:12:39.715 -> *wm:[2] Starting Config Portal 21:12:39.715 -> *wm:[2] AccessPoint set password is VALID 21:12:39.715 -> *wm:[2] Disabling STA 21:12:39.715 -> *wm:[2] Enabling AP 21:12:39.715 -> *wm:[1] StartAP with SSID: testssid 21:12:41.828 -> *wm:[1] AP IP address: 192.168.4.1 21:12:41.828 -> *wm:[1] Starting Web Portal 21:12:41.828 -> *wm:[2] HTTP server started 21:12:41.828 -> *wm:[2] Config Portal Running, non blocking/processing 21:12:41.828 -> *wm:[2] Portal Timeout In 180 seconds 21:12:41.828 -> Ap mode enabled. 21:13:09.363 -> *wm:[2] Portal Timeout In 150 seconds 21:13:39.341 -> *wm:[2] Portal Timeout In 120 seconds 21:14:08.431 -> *wm:[2] <- Request redirected to captive portal 21:14:09.362 -> *wm:[2] Portal Timeout In 90 seconds 21:14:09.689 -> *wm:[2] <- HTTP Root 21:14:09.689 -> 21:14:09.689 -> --------------- CUT HERE FOR EXCEPTION DECODER --------------- 21:14:09.735 -> 21:14:09.735 -> Exception (3): 21:14:09.735 -> epc1=0x4000bf64 epc2=0x00000000 epc3=0x40225e69 excvaddr=0x4026e375 depc=0x00000000 21:14:09.735 -> 21:14:09.735 -> >>>stack>>> 21:14:09.735 -> 21:14:09.735 -> ctx: cont 21:14:09.735 -> sp: 3ffffc40 end: 3fffffc0 offset: 0190 21:14:09.735 -> 3ffffdd0: 3fff577c 00000ca1 00000000 3fff06fc 21:14:09.735 -> 3ffffde0: 4026e375 0000000c 3ffffe30 3fff06fc 21:14:09.735 -> 3ffffdf0: 00000000 3ffefc80 3ffffe6c 4020ce83 21:14:09.735 -> 3ffffe00: 00000000 3fff2e44 3ffffe30 4021a674 21:14:09.735 -> 3ffffe10: 3ffffe30 3ffefdc8 3ffefc80 4021a69d 21:14:09.735 -> 3ffffe20: 3fffdad0 3ffefdc8 3ffefc80 4021396e 21:14:09.735 -> 3ffffe30: 3fff5194 000c000f 80000000 40211cf8 21:14:09.735 -> 3ffffe40: 00000000 69746365 00000000 4bc6a7f0 21:14:09.735 -> 3ffffe50: 00000000 a3039695 00000000 00000000 21:14:09.781 -> 3ffffe60: 3fff3c84 3fff3f18 00000000 3fff577c 21:14:09.781 -> 3ffffe70: 0ca10caf 80000000 01980f4e 3fff06fc 21:14:09.781 -> 3ffffe80: 3fffdad0 00000001 3fff3d54 402204a8 21:14:09.781 -> 3ffffe90: 00000001 00000000 00000000 401000e9 21:14:09.781 -> 3ffffea0: 00000000 00000000 00000000 4020f249 21:14:09.781 -> 3ffffeb0: 00000000 3fff3c84 3fff3c3c 4021244c 21:14:09.781 -> 3ffffec0: 00000000 00000000 00000000 69746365 21:14:09.781 -> 3ffffed0: 00000000 3fffdad0 40100735 00000000 21:14:09.781 -> 3ffffee0: 000160ed 00000000 00000000 00000001 21:14:09.781 -> 3ffffef0: 00000000 00000000 3fff3c3c 3fff06fc 21:14:09.828 -> 3fffff00: 3fffdad0 3fff3c60 3fff3c3c 4021456a 21:14:09.828 -> 3fffff10: 40221208 00000000 00001388 4021525b 21:14:09.828 -> 3fffff20: 00000000 00000000 3fff51ac 00000000 21:14:09.828 -> 3fffff30: 3fffdad0 3ffefd80 3ffefc80 402147a8 21:14:09.828 -> 3fffff40: 3ffefd80 00000001 3ffefc80 4020eb6b 21:14:09.828 -> 3fffff50: 00000000 00000000 4bc6a7f0 00000000 21:14:09.828 -> 3fffff60: 007a1200 b307f944 40100735 00000000 21:14:09.828 -> 3fffff70: 000160ec 3fff3394 3fff33a4 3fff06fc 21:14:09.828 -> 3fffff80: 3fffdad0 3ffefd80 3ffefc80 4021493f 21:14:09.828 -> 3fffff90: 3fffdad0 00000000 3fff06e8 40207fbe 21:14:09.828 -> 3fffffa0: 3fffdad0 00000000 3fff06e8 4021b7dc 21:14:09.876 -> 3fffffb0: feefeffe feefeffe 3ffe8670 401012d1 21:14:09.876 -> <<<stack<<< 21:14:09.876 -> 21:14:09.876 -> --------------- CUT HERE FOR EXCEPTION DECODER --------------- 21:14:09.876 -> 21:14:09.876 -> ets Jan 8 2013,rst cause:2, boot mode:(3,6) 21:14:09.876 -> 21:14:09.876 -> load 0x4010f000, len 3460, room 16 21:14:09.876 -> tail 4 21:14:09.876 -> chksum 0xcc 21:14:09.876 -> load 0x3fff20b8, len 40, room 4 21:14:09.876 -> tail 4 21:14:09.876 -> chksum 0xc9 21:14:09.876 -> csum 0xc9 21:14:09.876 -> v00083b00 21:14:09.876 -> ~ld 21:14:10.107 -> ``` ``` Exception 3: LoadStoreError: Processor internal physical address or data error during load or store PC: 0x4000bf64 EXCVADDR: 0x4026e375 Decoding stack results 0x4020ce83: WiFiManager::getHTTPHead(String) at D:\Harrison\Documents\Arduino\libraries\WiFiManager\WiFiManager.cpp line 1203 0x4021a674: String::operator=(String const&) at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h line 277 0x4021a69d: String::String(String const&) at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\WString.cpp line 46 0x4021396e: WiFiManager::handleRoot() at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h line 79 0x40211cf8: esp8266webserver::ESP8266WebServerTemplate ::_parseRequest(WiFiClient&) at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h line 79 0x402204a8: std::_Function_handler >::_M_invoke(std::_Any_data const&) at c:\users\harrison\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\10.3.0/functional line 497 0x401000e9: std::function ::operator()() const at c:\users\harrison\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\10.3.0\bits/std_function.h line 617 0x4020f249: esp8266webserver::FunctionRequestHandler ::handle(esp8266webserver::ESP8266WebServerTemplate &, HTTPMethod, String const&) at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h line 42 0x4021244c: esp8266webserver::ESP8266WebServerTemplate ::_handleRequest() at c:\users\harrison\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\10.3.0\bits/std_function.h line 498 0x40100735: millis() at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_wiring.cpp line 193 0x4021456a: esp8266webserver::ESP8266WebServerTemplate ::handleClient() at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h line 274 0x4021525b: DNSServer::processNextRequest() at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\DNSServer\src\DNSServer.cpp line 166 0x402147a8: WiFiManager::processConfigPortal() at D:\Harrison\Documents\Arduino\libraries\WiFiManager\WiFiManager.cpp line 800 0x4020eb6b: WiFiManager::configPortalHasTimeout() at D:\Harrison\Documents\Arduino\libraries\WiFiManager\WiFiManager.cpp line 566 0x40100735: millis() at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_wiring.cpp line 193 0x4021493f: WiFiManager::process() at D:\Harrison\Documents\Arduino\libraries\WiFiManager\WiFiManager.cpp line 784 0x40207fbe: loop() at D:\Harrison\Documents\git\gme-stock-ticker\gme_stock_ticker/gme_stock_ticker.ino line 216 0x4021b7dc: loop_wrapper() at C:\Users\Harrison\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_main.cpp line 201 ```
kerem closed this issue 2026-02-28 01:28:52 +03:00
Author
Owner

@monodop commented on GitHub (Jun 28, 2022):

Update on this: it seems like the offending line is:

static const char HTML_HEADER[] PROGMEM = ...

I think I misunderstood how PROGMEM works

<!-- gh-comment-id:1168202202 --> @monodop commented on GitHub (Jun 28, 2022): Update on this: it seems like the offending line is: ```cpp static const char HTML_HEADER[] PROGMEM = ... ``` I think I misunderstood how PROGMEM works
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/WiFiManager#1177
No description provided.