[GH-ISSUE #1479] Loading example OnDemand.ino does not result in a portal when credentials are not already saved #1261

Closed
opened 2026-02-28 01:29:17 +03:00 by kerem · 23 comments
Owner

Originally created by @letis009 on GitHub (Aug 22, 2022).
Original GitHub issue: https://github.com/tzapu/WiFiManager/issues/1479

Basic Infos

Hardware

WiFimanager Branch/Release: Master

Esp32: ESP32-C3

Hardware: ESP32-C3-Wroom-02

Core Version: ESP32 Arduino 2.0.4 based on ESP-IDF 4.4.2

Description

Config Portal is not visible on any device, only after flashing example sketch with correct SSID and password does the OnDemand button work to enable Portal

after credentials saved the portal is accessible via button press

tried to reduce tx power, set hostname, country, channel and removed password on the autoconnect AP but no difference on any of these changes

Settings in IDE

Module: ESP32 C3 Devkit

Additional libraries: WifiManager.h version 2.0.12 beta

Sketch with no AP

/**
 * This is a kind of unit test for DEV for now
 * It contains many of the public methods
 * 
 */
#include <WiFiManager.h> // https://github.com/tzapu/WiFiManager
#include <time.h>
#include <stdio.h>

#define USEOTA
// enable OTA
#ifdef USEOTA
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
#endif

const char* modes[] = { "NULL", "STA", "AP", "STA+AP" };

unsigned long mtime = 0;

WiFiManager wm;


// TEST OPTION FLAGS
bool TEST_CP         = false; // always start the configportal, even if ap found
int  TESP_CP_TIMEOUT = 90; // test cp timeout

bool TEST_NET        = true; // do a network test after connect, (gets ntp time)
bool ALLOWONDEMAND   = true; // enable on demand
int  ONDDEMANDPIN    = 0; // gpio for button
bool WMISBLOCKING    = true; // use blocking or non blocking mode, non global params wont work in non blocking

char ssid[] = "";  //  your network SSID (name)
char pass[] =   // your network password


//callbacks
  // called after AP mode and config portal has started
  //  setAPCallback( std::function<void(WiFiManager*)> func );
  // called after webserver has started
  //  setWebServerCallback( std::function<void()> func );
  // called when settings reset have been triggered
  //  setConfigResetCallback( std::function<void()> func );
  // called when wifi settings have been changed and connection was successful ( or setBreakAfterConfig(true) )
  //  setSaveConfigCallback( std::function<void()> func );
  // called when saving either params-in-wifi or params page
  //  setSaveParamsCallback( std::function<void()> func );
  // called when saving params-in-wifi or params before anything else happens (eg wifi)
  //  setPreSaveConfigCallback( std::function<void()> func );
  // called just before doing OTA update
  //  setPreOtaUpdateCallback( std::function<void()> func );

void saveWifiCallback(){
  Serial.println("[CALLBACK] saveCallback fired");
}

//gets called when WiFiManager enters configuration mode
void configModeCallback (WiFiManager *myWiFiManager) {
  Serial.println("[CALLBACK] configModeCallback fired");
 myWiFiManager->setAPStaticIPConfig(IPAddress(10,0,1,1), IPAddress(10,0,1,1), IPAddress(255,255,255,0)); 
  Serial.println(WiFi.softAPIP());
  //if you used auto generated SSID, print it
   Serial.println(myWiFiManager->getConfigPortalSSID());
  // 
  esp_wifi_set_bandwidth(WIFI_IF_AP, WIFI_BW_HT20);
}

void saveParamCallback(){
  Serial.println("[CALLBACK] saveParamCallback fired");
  // wm.stopConfigPortal();
}

void bindServerCallback(){
  wm.server->on("/custom",handleRoute); // this is now crashing esp32 for some reason
  // wm.server->on("/info",handleRoute); // you can override wm!
}

void handleRoute(){
  Serial.println("[HTTP] handle route");
  wm.server->send(200, "text/plain", "hello from user code");
}

void handlePreOtaUpdateCallback(){
  Update.onProgress([](unsigned int progress, unsigned int total) {
        Serial.printf("CUSTOM Progress: %u%%\r", (progress / (total / 100)));
  });
}

void setup() {
  WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP
  WiFi.setTxPower(WIFI_POWER_8_5dBm);
  // put your setup code here, to run once:
  Serial.begin(115200);
  // Serial1.begin(115200);

  Serial.setDebugOutput(true);  

  Serial.println("\n Starting");
  // WiFi.setSleepMode(WIFI_NONE_SLEEP); // disable sleep, can improve ap stability

  Serial.println("Error - TEST");
  Serial.println("Information- - TEST");

  Serial.println("[ERROR]  TEST");
  Serial.println("[INFORMATION] TEST");  


  wm.setDebugOutput(true);
  wm.debugPlatformInfo();

  //reset settings - for testing
  // wm.resetSettings();
  // wm.erase();  

  // setup some parameters
    
  WiFiManagerParameter custom_html("<p style=\"color:pink;font-weight:Bold;\">This Is Custom HTML</p>"); // only custom html
  WiFiManagerParameter custom_mqtt_server("server", "mqtt server", "", 40);
  WiFiManagerParameter custom_mqtt_port("port", "mqtt port", "", 6);
  WiFiManagerParameter custom_token("api_token", "api token", "", 16);
  WiFiManagerParameter custom_tokenb("invalid token", "invalid token", "", 0); // id is invalid, cannot contain spaces
  WiFiManagerParameter custom_ipaddress("input_ip", "input IP", "", 15,"pattern='\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}'"); // custom input attrs (ip mask)
  WiFiManagerParameter custom_input_type("input_pwd", "input pass", "", 15,"type='password'"); // custom input attrs (ip mask)

  const char _customHtml_checkbox[] = "type=\"checkbox\""; 
  WiFiManagerParameter custom_checkbox("my_checkbox", "My Checkbox", "T", 2, _customHtml_checkbox,WFM_LABEL_AFTER);

  const char *bufferStr = R"(
  <!-- INPUT CHOICE -->
  <br/>
  <p>Select Choice</p>
  <input style='display: inline-block;' type='radio' id='choice1' name='program_selection' value='1'>
  <label for='choice1'>Choice1</label><br/>
  <input style='display: inline-block;' type='radio' id='choice2' name='program_selection' value='2'>
  <label for='choice2'>Choice2</label><br/>

  <!-- INPUT SELECT -->
  <br/>
  <label for='input_select'>Label for Input Select</label>
  <select name="input_select" id="input_select" class="button">
  <option value="0">Option 1</option>
  <option value="1" selected>Option 2</option>
  <option value="2">Option 3</option>
  <option value="3">Option 4</option>
  </select>
  )";

  WiFiManagerParameter custom_html_inputs(bufferStr);

  // callbacks
  wm.setAPCallback(configModeCallback);
  wm.setWebServerCallback(bindServerCallback);
  wm.setSaveConfigCallback(saveWifiCallback);
  wm.setSaveParamsCallback(saveParamCallback);
  wm.setPreOtaUpdateCallback(handlePreOtaUpdateCallback);

  // add all your parameters here
  wm.addParameter(&custom_html);
  wm.addParameter(&custom_mqtt_server);
  wm.addParameter(&custom_mqtt_port);
  wm.addParameter(&custom_token);
  wm.addParameter(&custom_tokenb);
  wm.addParameter(&custom_ipaddress);
  wm.addParameter(&custom_checkbox);
  wm.addParameter(&custom_input_type);

  wm.addParameter(&custom_html_inputs);

  // set values later if you want
  custom_html.setValue("test",4);
  custom_token.setValue("test",4);

  // const char* icon = "
  // <link rel='icon' type='image/png' sizes='16x16' href='data:image/png;base64,
  // iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAMFBMVEU0OkArMjhobHEoPUPFEBIu
  // O0L+AAC2FBZ2JyuNICOfGx7xAwTjCAlCNTvVDA1aLzQ3COjMAAAAVUlEQVQI12NgwAaCDSA0888G
  // CItjn0szWGBJTVoGSCjWs8TleQCQYV95evdxkFT8Kpe0PLDi5WfKd4LUsN5zS1sKFolt8bwAZrCa
  // GqNYJAgFDEpQAAAzmxafI4vZWwAAAABJRU5ErkJggg==' />";


  // set custom html head content , inside <head>
  // examples of favicon, or meta tags etc
  // const char* headhtml = "<link rel='icon' type='image/png' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAADQElEQVRoQ+2YjW0VQQyE7Q6gAkgFkAogFUAqgFQAVACpAKiAUAFQAaECQgWECggVGH1PPrRvn3dv9/YkFOksoUhhfzwz9ngvKrc89JbnLxuA/63gpsCmwCADWwkNEji8fVNgotDM7osI/x777x5l9F6JyB8R4eeVql4P0y8yNsjM7KGIPBORp558T04A+CwiH1UVUItiUQmZ2XMReSEiAFgjAPBeVS96D+sCYGaUx4cFbLfmhSpnqnrZuqEJgJnd8cQplVLciAgX//Cf0ToIeOB9wpmloLQAwpnVmAXgdf6pwjpJIz+XNoeZQQZlODV9vhc1Tuf6owrAk/8qIhFbJH7eI3eEzsvydQEICqBEkZwiALfF70HyHPpqScPV5HFjeFu476SkRA0AzOfy4hYwstj2ZkDgaphE7m6XqnoS7Q0BOPs/sw0kDROzjdXcCMFCNwzIy0EcRcOvBACfh4k0wgOmBX4xjfmk4DKTS31hgNWIKBCI8gdzogTgjYjQWFMw+o9LzJoZ63GUmjWm2wGDc7EvDDOj/1IVMIyD9SUAL0WEhpriRlXv5je5S+U1i2N88zdPuoVkeB+ls4SyxCoP3kVm9jsjpEsBLoOBNC5U9SwpGdakFkviuFP1keblATkTENTYcxkzgxTKOI3jyDxqLkQT87pMA++H3XvJBYtsNbBN6vuXq5S737WqHkW1VgMQNXJ0RshMqbbT33sJ5kpHWymzcJjNTeJIymJZtSQd9NHQHS1vodoFoTMkfbJzpRnLzB2vi6BZAJxWaCr+62BC+jzAxVJb3dmmiLzLwZhZNPE5e880Suo2AZgB8e8idxherqUPnT3brBDTlPxO3Z66rVwIwySXugdNd+5ejhqp/+NmgIwGX3Py3QBmlEi54KlwmjkOytQ+iJrLJj23S4GkOeecg8G091no737qvRRdzE+HLALQoMTBbJgBsCj5RSWUlUVJiZ4SOljb05eLFWgoJ5oY6yTyJp62D39jDANoKKcSocPJD5dQYzlFAFZJflUArgTPZKZwLXAnHmerfJquUkKZEgyzqOb5TuDt1P3nwxobqwPocZA11m4A1mBx5IxNgRH21ti7KbAGiyNn3HoF/gJ0w05A8xclpwAAAABJRU5ErkJggg==' />";
  // const char* headhtml = "<meta name='color-scheme' content='dark light'><style></style><script></script>";
  // wm.setCustomHeadElement(headhtml);

  // set custom html menu content , inside menu item "custom", see setMenu()
  const char* menuhtml = "<form action='/custom' method='get'><button>Custom</button></form><br/>\n";
  wm.setCustomMenuHTML(menuhtml);

  // invert theme, dark
  wm.setDarkMode(true);

  // show scan RSSI as percentage, instead of signal stength graphic
  // wm.setScanDispPerc(true);

/*
  Set cutom menu via menu[] or vector
  const char* menu[] = {"wifi","wifinoscan","info","param","close","sep","erase","restart","exit"};
  wm.setMenu(menu,9); // custom menu array must provide length
*/

  std::vector<const char *> menu = {"wifi","wifinoscan","info","param","custom","close","sep","erase","update","restart","exit"};
  wm.setMenu(menu); // custom menu, pass vector
  
  // wm.setParamsPage(true); // move params to seperate page, not wifi, do not combine with setmenu!

  // set STA static ip
  // wm.setSTAStaticIPConfig(IPAddress(10,0,1,99), IPAddress(10,0,1,1), IPAddress(255,255,255,0));
  // wm.setShowStaticFields(false);
  // wm.setShowDnsFields(false);

  // set AP static ip
  // wm.setAPStaticIPConfig(IPAddress(10,0,1,1), IPAddress(10,0,1,1), IPAddress(255,255,255,0));
  // wm.setAPStaticIPConfig(IPAddress(10,0,1,99), IPAddress(10,0,1,1), IPAddress(255,255,255,0)); 

  // set country
  // setting wifi country seems to improve OSX soft ap connectivity, 
  // may help others as well, default is CN which has different channels

  wm.setCountry("US"); // crashing on esp32 2.0

    
    // set the country code for wifi settings, CN
    wm.setCountry("US");

    // wm.setHostname(("WM_"+wm.getDefaultAPName()).c_str());
    wm.setHostname("WM_RANDO_1234");

    // set custom channel
    wm.setWiFiAPChannel(1);
    
    // set AP hidden
    wm.setWiFiAPHidden(false);

    // show password publicly in form
    wm.setShowPassword(true);

    // sets wether wm configportal is a blocking loop(legacy) or not, use wm.process() in loop if false
    wm.setConfigPortalBlocking(true);

    wm.debugSoftAPConfig();
  
  if(!WMISBLOCKING){
    wm.setConfigPortalBlocking(false);
  }

  //sets timeout until configuration portal gets turned off
  //useful to make it all retry or go to sleep in seconds
  wm.setConfigPortalTimeout(120);
  
  // set min quality to show in web list, default 8%
  // wm.setMinimumSignalQuality(50);

  // set connection timeout
  // wm.setConnectTimeout(20);

  // set wifi connect retries
  // wm.setConnectRetries(2);

  // connect after portal save toggle
  // wm.setSaveConnect(false); // do not connect, only save

  // show static ip fields
  // wm.setShowStaticFields(true);
  
  // wm.startConfigPortal("AutoConnectAP", "password");
  
  // This is sometimes necessary, it is still unknown when and why this is needed but it may solve some race condition or bug in esp SDK/lib
  // wm.setCleanConnect(true); // disconnect before connect, clean connect
  
  wm.setBreakAfterConfig(true); // needed to use saveWifiCallback

  // set custom webserver port, automatic captive portal does not work with custom ports!
  // wm.setHttpPort(8080);

  //fetches ssid and pass and tries to connect
  //if it does not connect it starts an access point with the specified name
  //here  "AutoConnectAP"
  //and goes into a blocking loop awaiting configuration

  // use autoconnect, but prevent configportal from auto starting
  // wm.setEnableConfigPortal(false);

  wifiInfo();

  // to preload autoconnect with credentials
  // wm.preloadWiFi("ssid","password");

  if(!wm.autoConnect("WM_AutoConnectAP","12345678")) {
    Serial.println("failed to connect and hit timeout");
  }
  else if(TEST_CP) {
    // start configportal always
    delay(1000);
    Serial.println("TEST_CP ENABLED");
    wm.setConfigPortalTimeout(TESP_CP_TIMEOUT);
    wm.startConfigPortal("WM_ConnectAP","12345678");
  }
  else {
    //if you get here you have connected to the WiFi
     Serial.println("connected...yeey :)");
  }
  
  wifiInfo();
  pinMode(ONDDEMANDPIN, INPUT_PULLUP);

  #ifdef USEOTA
    ArduinoOTA.begin();
  #endif

}

void wifiInfo(){
  // can contain gargbage on esp32 if wifi is not ready yet
  Serial.println("[WIFI] WIFI INFO DEBUG");
  // WiFi.printDiag(Serial);
  Serial.println("[WIFI] SAVED: " + (String)(wm.getWiFiIsSaved() ? "YES" : "NO"));
  Serial.println("[WIFI] SSID: " + (String)wm.getWiFiSSID());
  Serial.println("[WIFI] PASS: " + (String)wm.getWiFiPass());
  Serial.println("[WIFI] HOSTNAME: " + (String)WiFi.getHostname());
}

void loop() {

  if(!WMISBLOCKING){
    wm.process();
  }

  #ifdef USEOTA
  ArduinoOTA.handle();
  #endif
  // is configuration portal requested?
  if (ALLOWONDEMAND && digitalRead(ONDDEMANDPIN) == LOW ) {
    delay(100);
    if ( digitalRead(ONDDEMANDPIN) == LOW ){
      Serial.println("BUTTON PRESSED");

      // button reset/reboot
      // wm.resetSettings();
      // wm.reboot();
      // delay(200);
      // return;
      
      wm.setConfigPortalTimeout(140);
      wm.setParamsPage(false); // move params to seperate page, not wifi, do not combine with setmenu!

      // disable captive portal redirection
      // wm.setCaptivePortalEnable(false);
      
      if (!wm.startConfigPortal("OnDemandAP","12345678")) {
        Serial.println("failed to connect and hit timeout");
        delay(3000);
      }
    }
    else {
      //if you get here you have connected to the WiFi
      Serial.println("connected...yeey :)");
      getTime();
    }
  }

  // every 10 seconds
  if(millis()-mtime > 10000 ){
    if(WiFi.status() == WL_CONNECTED){
      getTime();
    }
    else Serial.println("No Wifi");  
    mtime = millis();
  }
  // put your main code here, to run repeatedly:
  delay(100);
}

void getTime() {
  int tz           = -5;
  int dst          = 0;
  time_t now       = time(nullptr);
  unsigned timeout = 5000; // try for timeout
  unsigned start   = millis();
  configTime(tz * 3600, dst * 3600, "pool.ntp.org", "time.nist.gov");
  Serial.print("Waiting for NTP time sync: ");
  while (now < 8 * 3600 * 2 ) { // what is this ?
    delay(100);
    Serial.print(".");
    now = time(nullptr);
    if((millis() - start) > timeout){
      Serial.println("\n[ERROR] Failed to get NTP time.");
      return;
    }
  }
  Serial.println("");
  struct tm timeinfo;
  gmtime_r(&now, &timeinfo); // @NOTE doesnt work in esp2.3.0
  Serial.print("Current time: ");
  Serial.print(asctime(&timeinfo));
}

void debugchipid(){
  // WiFi.mode(WIFI_STA);
  // WiFi.printDiag(Serial);
  // Serial.println(modes[WiFi.getMode()]);
  
  // ESP.eraseConfig();
  // wm.resetSettings();
  // wm.erase(true);
  WiFi.mode(WIFI_AP);
  // WiFi.softAP();
  WiFi.enableAP(true);
  delay(500);
  // esp_wifi_start();
  delay(1000);
  WiFi.printDiag(Serial);
  delay(60000);
  ESP.restart();

  // AP esp_267751
  // 507726A4AE30
  // ESP32 Chip ID = 507726A4AE30
}

Debug Messages

15:08:34.666 -> Build:Feb  7 2021
15:08:34.666 -> rst:0x1 (POWERON),boot:0xd (SPI_FAST_FLASH_BOOT)
15:08:34.666 -> SPIWP:0xee
15:08:34.666 -> mode:DIO, clock div:1
15:08:34.666 -> load:0x3fcd6100,len:0x438
15:08:34.666 -> load:0x403ce000,len:0x918
15:08:34.666 -> load:0x403d0000,len:0x24e4
15:08:34.666 -> SHA-256 comparison failed:
15:08:34.666 -> Calculated: 080c5cb68a075ced55f248b97bca965e3e5bd5da80a64e34e6a1638f89d6f64e
15:08:34.666 -> Expected: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
15:08:34.713 -> Attempting to boot anyway...
15:08:34.713 -> entry 0x403ce000
15:08:34.856 -> [   203][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 0 - WIFI_READY
15:08:34.904 -> [   234][V][WiFiGeneric.cpp:338] a
15:08:34.904 ->  Starting
15:08:34.904 -> Error - TEST
15:08:34.904 -> Information- - TEST
15:08:34.904 -> [ERROR]  TEST
15:08:34.904 -> [INFORMATION] TEST
15:08:34.904 -> *wm:[1] Free heap:        229436
15:08:34.904 -> *wm:[1] ESP SDK version:  v4.4.1-472-gc9140caf8c
15:08:34.904 -> *wm:[2] Added Parameter:
15:08:34.904 -> *wm:[2] Added Parameter: server
15:08:34.904 -> *wm:[2] Added Parameter: port
15:08:34.904 -> *wm:[2] Added Parameter: api_token
15:08:34.904 -> *wm:[0] [ERROR] parameter IDs can only contain alpha numeric chars 
15:08:34.904 -> *wm:[2] Added Parameter: input_ip
15:08:34.904 -> *wm:[2] Added Parameter: my_checkbox
15:08:34.904 -> *wm:[2] Added Parameter: input_pwd
15:08:34.904 -> *wm:[2] Added Parameter:
15:08:34.951 -> *wm:[1] SoftAP Configuration 
15:08:34.951 -> *wm:[1] -------------------- 
15:08:34.951 -> *wm:[1] ssid:             OnDemandAP
15:08:34.951 -> *wm:[1] password:         
15:08:34.951 -> *wm:[1] ssid_len:         10
15:08:34.951 -> *wm:[1] channel:          1
15:08:34.951 -> *wm:[1] authmode:        
15:08:34.951 -> *wm:[1] ssid_hidden:     
15:08:34.951 -> *wm:[1] max_connection:   4
15:08:34.951 -> *wm:[1] country:          US
15:08:34.951 -> *wm:[1] beacon_interval:  100(ms)
15:08:34.951 -> *wm:[1] -------------------- 
15:08:34.951 -> [WIFI] WIFI INFO DEBUG
15:08:34.951 -> [WIFI] SAVED: NO
15:08:34.951 -> [WIFI] SSID: 
15:08:34.951 -> [WIFI] PASS: 
15:08:34.951 -> [WIFI] HOSTNAME: esp32c3-B2B69C
15:08:34.951 -> *wm:[1] AutoConnect 
15:08:34.951 -> *wm:[1] No Credentials are Saved, skipping connect 
15:08:34.998 -> *wm:[2] Starting Config Portal 
15:08:34.998 -> *wm:[2] AccessPoint set password is VALID 
15:08:34.998 -> [   334][V][WiFiGeneric.cpp:341] _arduino_event_cb(): STA Stopped
15:08:34.998 -> [   334][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 3 - STA_STOP
15:08:34.998 -> *wm:[2] Disabling STA 
15:08:34.998 -> *wm:[2] Enabling AP 
15:08:34.998 -> *wm:[1] StartAP with SSID:  WM_AutoConnectAP
15:08:34.998 -> *wm:[2] Starting AP on channel: 1
15:08:34.998 -> [   355][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 0 - WIFI_READY
15:08:34.998 -> [   363][V][WiFiGeneric.cpp:390] _arduino_event_cb(): AP Started
15:08:34.998 -> [   363][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 10 - AP_START
15:08:35.612 -> [   971][V][WiFiGeneric.cpp:393] _arduino_event_cb(): AP Stopped
15:08:35.612 -> [   972][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 11 - AP_STOP
15:08:35.612 -> [   976][V][WiFiGeneric.cpp:390] _arduino_event_cb(): AP Started
15:08:35.659 -> [   979][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 10 - AP_START
15:08:36.134 -> *wm:[1] AP IP address: 192.168.4.1
15:08:36.134 -> *wm:[2] setting softAP Hostname: WM_RANDO_1234
15:08:36.134 -> *wm:[2] WiFiSetCountry to US
15:08:36.134 -> *wm:[2] [OK] esp_wifi_set_country:  US
15:08:36.134 -> *wm:[2] [CB] _apcallback calling 
15:08:36.134 -> [CALLBACK] configModeCallback fired
15:08:36.134 -> 192.168.4.1
15:08:36.134 -> WM_AutoConnectAP
15:08:36.134 -> *wm:[1] Starting Web Portal 
15:08:36.134 -> [  1509][V][WiFiServer.h:42] WiFiServer(): WiFiServer::WiFiServer(port=80, ...)
15:08:36.182 -> [  1509][V][WebServer.cpp:85] WebServer(): WebServer::Webserver(port=80)
15:08:36.182 -> *wm:[2] [CB] _webservercallback calling 
15:08:36.182 -> *wm:[2] HTTP server started 
15:08:36.182 -> *wm:[2] Config Portal Running, blocking, waiting for clients... 
15:08:36.182 -> *wm:[2] Portal Timeout In 120 seconds
15:09:04.641 -> *wm:[2] Portal Timeout In 90 seconds
15:09:34.647 -> *wm:[2] Portal Timeout In 60 seconds
15:10:04.632 -> *wm:[2] Portal Timeout In 30 seconds
15:10:34.645 -> *wm:[2] Portal Timeout In 0 seconds
15:10:34.976 -> *wm:[1] config portal has timed out 
15:10:34.976 -> *wm:[2] shutdownConfigPortal 
15:10:34.976 -> [120347][V][WiFiGeneric.cpp:393] _arduino_event_cb(): AP Stopped
15:10:35.024 -> [120347][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 11 - AP_STOP
15:10:35.024 -> [120349][V][WiFiGeneric.cpp:390] _arduino_event_cb(): AP Started
15:10:35.024 -> [120355][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 10 - AP_START
15:10:35.024 -> *wm:[2] restoring usermode STA
15:10:36.016 -> [121373][V][WiFiGeneric.cpp:393] _arduino_event_cb(): AP Stopped
15:10:36.016 -> [121373][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 11 - AP_STOP
15:10:36.016 -> [121375][V][WiFiGeneric.cpp:338] _arduino_event_cb(): STA Started
15:10:36.016 -> [121380][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 2 - STA_START
15:10:36.064 -> *wm:[2] wifi status: WL_DISCONNECTED
15:10:36.064 -> *wm:[2] wifi mode: STA
15:10:36.064 -> *wm:[2] configportal closed 
15:10:36.064 -> *wm:[1] config portal exiting 
15:10:36.064 -> failed to connect and hit timeout
15:10:36.064 -> [WIFI] WIFI INFO DEBUG
15:10:36.064 -> [WIFI] SAVED: NO
15:10:36.064 -> [WIFI] SSID: 
15:10:36.064 -> [WIFI] PASS: 
15:10:36.064 -> [WIFI] HOSTNAME: esp32c3-B2B69C
15:10:36.064 -> [121430][I][ArduinoOTA.cpp:141] begin(): OTA server at: esp32-7cdfa1b2b69c.local:3232
15:10:36.064 -> No Wifi
15:10:46.096 -> No Wifi
15:10:50.399 -> BUTTON PRESSED
15:10:50.399 -> *wm:[2] Starting Config Portal 
15:10:50.399 -> *wm:[2] AccessPoint set password is VALID 
15:10:50.445 -> [135771][V][WiFiGeneric.cpp:341] _arduino_event_cb(): STA Stopped
15:10:50.445 -> [135773][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 3 - STA_STOP
15:10:50.445 -> *wm:[2] Disabling STA 
15:10:50.445 -> *wm:[2] Enabling AP 
15:10:50.445 -> *wm:[1] StartAP with SSID:  OnDemandAP
15:10:50.445 -> *wm:[1] Custom AP IP/GW/Subnet: 
15:10:50.445 -> [135798][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 0 - WIFI_READY
15:10:50.445 -> [135805][V][WiFiGeneric.cpp:390] _arduino_event_cb(): AP Started
15:10:50.445 -> [135806][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 10 - AP_START
15:10:50.445 -> [135810][V][WiFiGeneric.cpp:97] set_esp_interface_ip(): Configuring SoftAP static IP: 10.0.1.1, MASK: 255.255.255.0, GW: 10.0.1.1
15:10:50.492 -> [135822][V][WiFiGeneric.cpp:143] set_esp_interface_ip(): SoftAP: 10.0.1.1 | Gateway: 10.0.1.1 | DHCP Start: 0.0.0.0 | Netmask: 255.255.255.0
15:10:50.492 -> [135834][V][WiFiGeneric.cpp:190] set_esp_interface_ip(): DHCP Server Range: 10.0.1.2 to 10.0.1.12
15:10:50.492 -> *wm:[2] Starting AP on channel: 1
15:10:51.094 -> [136456][V][WiFiGeneric.cpp:393] _arduino_event_cb(): AP Stopped
15:10:51.094 -> [136457][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 11 - AP_STOP
15:10:51.094 -> [136461][V][WiFiGeneric.cpp:390] _arduino_event_cb(): AP Started
15:10:51.142 -> [136464][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 10 - AP_START
15:10:51.604 -> *wm:[1] AP IP address: 10.0.1.1
15:10:51.604 -> *wm:[2] setting softAP Hostname: WM_RANDO_1234
15:10:51.604 -> *wm:[2] WiFiSetCountry to US
15:10:51.650 -> *wm:[2] [OK] esp_wifi_set_country:  US
15:10:51.650 -> *wm:[2] [CB] _apcallback calling 
15:10:51.650 -> [CALLBACK] configModeCallback fired
15:10:51.650 -> 10.0.1.1
15:10:51.650 -> OnDemandAP
15:10:51.650 -> *wm:[1] Starting Web Portal 
15:10:51.650 -> [136985][V][WiFiServer.h:42] WiFiServer(): WiFiServer::WiFiServer(port=80, ...)
15:10:51.650 -> [136992][V][WebServer.cpp:85] WebServer(): WebServer::Webserver(port=80)
15:10:51.650 -> *wm:[2] [CB] _webservercallback calling 
15:10:51.650 -> *wm:[2] HTTP server started 
15:10:51.650 -> *wm:[2] Config Portal Running, blocking, waiting for clients... 
15:10:51.650 -> *wm:[2] Portal Timeout In 140 seconds
15:11:04.651 -> *wm:[2] Portal Timeout In 125 seconds
15:11:34.672 -> *wm:[2] Portal Timeout In 95 seconds
15:12:04.658 -> *wm:[2] Portal Timeout In 65 seconds
15:12:34.669 -> *wm:[2] Portal Timeout In 35 seconds
15:13:04.662 -> *wm:[2] Portal Timeout In 5 seconds
15:13:10.438 -> *wm:[1] config portal has timed out 
15:13:10.438 -> *wm:[2] shutdownConfigPortal 
15:13:10.438 -> [275800][V][WiFiGeneric.cpp:393] _arduino_event_cb(): AP Stopped
15:13:10.438 -> [275800][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 11 - AP_STOP
15:13:10.438 -> [275802][V][WiFiGeneric.cpp:390] _arduino_event_cb(): AP Started
15:13:10.485 -> [275808][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 10 - AP_START
15:13:10.485 -> *wm:[2] restoring usermode STA
15:13:11.464 -> [276826][V][WiFiGeneric.cpp:393] _arduino_event_cb(): AP Stopped
15:13:11.464 -> [276826][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 11 - AP_STOP
15:13:11.464 -> [276828][V][WiFiGeneric.cpp:338] _arduino_event_cb(): STA Started
15:13:11.512 -> [276833][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 2 - STA_START
15:13:11.512 -> *wm:[2] wifi status: WL_DISCONNECTED
15:13:11.512 -> *wm:[2] wifi mode: STA
15:13:11.512 -> *wm:[2] configportal closed 
15:13:11.512 -> *wm:[1] config portal exiting 
15:13:11.512 -> failed to connect and hit timeout
15:13:14.500 -> No Wifi

DEBUG FROM SUCCESSFUL CONNECTION WITH WIFICLIENTEVENTS.ino EXAMPLE

15:16:05.229 -> Build:Feb  7 2021
15:16:05.229 -> rst:0x1 (POWERON),boot:0xd (SPI_FAST_FLASH_BOOT)
15:16:05.229 -> SPIWP:0xee
15:16:05.229 -> mode:DIO, clock div:1
15:16:05.229 -> load:0x3fcd6100,len:0x438
15:16:05.229 -> load:0x403ce000,len:0x918
15:16:05.655 -> SHA-256 comparison failed:
15:16:05.655 -> Calculated: 080c5cb68a075ced55f248b97bca965e3e5bd5da80a64e34e6a1638f89d6f64e
15:16:05.655 -> Expected: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
15:16:05.655 -> Attempting to boot anyway...
15:16:05.655 -> entry 0x403ce000
15:16:06.784 -> WiFi Event ID: 3
15:16:06.784 -> [  1170][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 0 - WIFI_READY
15:16:06.784 -> [WiFi-event] event: 0
15:16:06.784 -> WiFi interface ready
15:16:06.831 -> [  1199][V][WiFiGeneric.cpp:338] _arduino_event_cb(): STA Started
15:16:06.831 -> [  1199][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 2 - STA_START
15:16:06.831 -> [WiFi-event] event: 2
15:16:06.831 -> WiFi client started
15:16:06.831 -> [  1210][V][WiFiGeneric.cpp:97] set_esp_interface_ip(): Configuring Station static IP: 0.0.0.0, MASK: 0.0.0.0, GW: 0.0.0.0
15:16:06.831 -> 
15:16:06.831 -> 
15:16:06.831 -> Wait for WiFi... 
15:16:07.633 -> [  2003][V][WiFiGeneric.cpp:353] _arduino_event_cb(): STA Connected: SSID: *****, BSSID: e4:8d:8c:ec:3b:81, Channel: 1, Auth: WPA2_PSK
15:16:07.633 -> [  2004][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 4 - STA_CONNECTED
15:16:07.633 -> [WiFi-event] event: 4
15:16:07.633 -> Connected to access point
15:16:08.287 -> [  2669][V][WiFiGeneric.cpp:367] _arduino_event_cb(): STA Got New IP:192.168.88.253
15:16:08.287 -> [  2669][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 7 - STA_GOT_IP
15:16:08.287 -> [  2672][D][WiFiGeneric.cpp:991] _eventCallback(): STA IP: 192.168.88.253, MASK: 255.255.255.0, GW: 192.168.88.1
15:16:08.333 -> [WiFi-event] event: 7
15:16:08.333 -> Obtained IP address: 192.168.88.253
15:16:08.333 -> WiFi connected
15:16:08.333 -> IP address: 
15:16:08.333 -> 192.168.88.253

###DEBUG after reloading OnDemand.ino

15:20:13.996 -> Build:Feb  7 2021
15:20:13.996 -> rst:0x1 (POWERON),boot:0xd (SPI_FAST_FLASH_BOOT)
15:20:13.996 -> SPIWP:0xee
15:20:13.996 -> mode:DIO, clock div:1
15:20:13.996 -> load:0x3fcd6100,len:0x438
15:20:13.996 -> load:0x403ce000,len:0x918
15:20:13.996 -> load:0x403d0000,len:0x24e4
15:20:13.996 -> SHA-256 comparison failed:
15:20:13.996 -> Calculated: 080c5cb68a075ced55f248b97bca965e3e5bd5da80a64e34e6a1638f89d6f64e
15:20:14.043 -> Expected: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
15:20:14.043 -> Attempting to boot anyway...
15:20:14.043 -> entry 0x403ce000
15:20:14.185 -> [   203][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 0 - WIFI_READY
15:20:14.233 -> [   232][V][WiFiGeneric.cpp:338] _a
15:20:14.233 ->  Starting
15:20:14.233 -> Error - TEST
15:20:14.233 -> Information- - TEST
15:20:14.233 -> [ERROR]  TEST
15:20:14.233 -> [INFORMATION] TEST
15:20:14.233 -> *wm:[1] Free heap:        229436
15:20:14.233 -> *wm:[1] ESP SDK version:  v4.4.1-472-gc9140caf8c
15:20:14.233 -> *wm:[2] Added Parameter:
15:20:14.233 -> *wm:[2] Added Parameter: server
15:20:14.233 -> *wm:[2] Added Parameter: port
15:20:14.233 -> *wm:[2] Added Parameter: api_token
15:20:14.233 -> *wm:[0] [ERROR] parameter IDs can only contain alpha numeric chars 
15:20:14.233 -> *wm:[2] Added Parameter: input_ip
15:20:14.281 -> *wm:[2] Added Parameter: my_checkbox
15:20:14.281 -> *wm:[2] Added Parameter: input_pwd
15:20:14.281 -> *wm:[2] Added Parameter:
15:20:14.281 -> *wm:[1] SoftAP Configuration 
15:20:14.281 -> *wm:[1] -------------------- 
15:20:14.281 -> *wm:[1] ssid:             ESP_B2B69D
15:20:14.281 -> *wm:[1] password:         
15:20:14.281 -> *wm:[1] ssid_len:         10
15:20:14.281 -> *wm:[1] channel:          6
15:20:14.281 -> *wm:[1] authmode:        
15:20:14.281 -> *wm:[1] ssid_hidden:     
15:20:14.281 -> *wm:[1] max_connection:   4
15:20:14.281 -> *wm:[1] country:          US
15:20:14.281 -> *wm:[1] beacon_interval:  100(ms)
15:20:14.281 -> *wm:[1] -------------------- 
15:20:14.281 -> [WIFI] WIFI INFO DEBUG
15:20:14.281 -> [WIFI] SAVED: YES
15:20:14.281 -> [WIFI] SSID: **************
15:20:14.328 -> [WIFI] PASS: **************
15:20:14.328 -> [WIFI] HOSTNAME: esp32c3-B2B69C
15:20:14.328 -> *wm:[1] AutoConnect 
15:20:14.328 -> *wm:[2] Setting Hostnames:  WM_RANDO_1234
15:20:14.328 -> *wm:[2] Setting WiFi hostname 
15:20:14.328 -> *wm:[2] WiFiSetCountry to US
15:20:14.328 -> *wm:[2] [OK] esp_wifi_set_country:  US
15:20:14.328 -> *wm:[2] ESP32 event handler enabled 
15:20:14.328 -> *wm:[2] Connecting as wifi client... 
15:20:14.328 -> *wm:[2] setSTAConfig static ip not set, skipping 
15:20:14.328 -> *wm:[1] Connecting to SAVED AP: B26A24
15:20:14.845 -> [   842][V][WiFiGeneric.cpp:97] set_esp_interface_ip(): Configuring Station static IP: 0.0.0.0, MASK: 0.0.0.0, GW: 0.0.0.0
15:20:14.845 -> *wm:[1] connectTimeout not set, ESP waitForConnectResult... 
15:20:14.845 -> [   875][V][WiFiGeneric.cpp:353] _arduino_event_cb(): STA Connected: SSID: B26A24, BSSID: e4:8d:8c:ec:3b:81, Channel: 1, Auth: WPA2_PSK
15:20:14.891 -> [   876][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 4 - STA_CONNECTED
15:20:14.891 -> [   895][V][WiFiGeneric.cpp:367] _arduino_event_cb(): STA Got New IP:192.168.88.253
15:20:14.891 -> [   895][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 7 - STA_GOT_IP
15:20:14.891 -> [   898][D][WiFiGeneric.cpp:991] _eventCallback(): STA IP: 192.168.88.253, MASK: 255.255.255.0, GW: 192.168.88.1
15:20:14.939 -> *wm:[2] Connection result: WL_CONNECTED
15:20:14.939 -> *wm:[1] AutoConnect: SUCCESS 
15:20:14.939 -> *wm:[2] Connected in 637 ms
15:20:14.939 -> *wm:[1] STA IP Address: 192.168.88.253
15:20:14.939 -> connected...yeey :)
15:20:14.939 -> [WIFI] WIFI INFO DEBUG
15:20:14.939 -> [WIFI] SAVED: YES
15:20:14.985 -> [WIFI] SSID: ************
15:20:14.985 -> [WIFI] PASS: ***************
15:20:14.985 -> [WIFI] HOSTNAME: WM_RANDO_1234
15:20:14.985 -> [   990][I][ArduinoOTA.cpp:141] begin(): OTA server at: esp32-7cdfa1b2b69c.local:3232
15:20:24.023 -> Waiting for NTP time sync: ...................................................
15:20:29.084 -> [ERROR] Failed to get NTP time.
15:20:39.142 -> Waiting for NTP time sync: ...................................................
15:20:44.226 -> [ERROR] Failed to get NTP time.
15:20:50.929 -> BUTTON PRESSED
15:20:50.929 -> *wm:[2] Starting Config Portal 
15:20:50.929 -> *wm:[2] AccessPoint set password is VALID 
15:20:50.929 -> *wm:[2] Enabling AP 
15:20:50.975 -> *wm:[1] StartAP with SSID:  OnDemandAP
15:20:50.975 -> *wm:[2] Starting AP on channel: 1
15:20:50.975 -> [ 36967][V][WiFiGeneric.cpp:390] _arduino_event_cb(): AP Started
15:20:50.975 -> [ 36967][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 10 - AP_START
15:20:51.580 -> [ 37577][V][WiFiGeneric.cpp:393] _arduino_event_cb(): AP Stopped
15:20:51.580 -> [ 37577][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 11 - AP_STOP
15:20:51.580 -> [ 37579][V][WiFiGeneric.cpp:390] _arduino_event_cb(): AP Started
15:20:51.580 -> [ 37584][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 10 - AP_START
15:20:52.092 -> *wm:[1] AP IP address: 192.168.4.1
15:20:52.092 -> *wm:[2] setting softAP Hostname: WM_RANDO_1234
15:20:52.092 -> *wm:[2] WiFiSetCountry to US
15:20:52.092 -> *wm:[2] [OK] esp_wifi_set_country:  US
15:20:52.092 -> *wm:[2] [CB] _apcallback calling 
15:20:52.092 -> [CALLBACK] configModeCallback fired
15:20:52.092 -> 192.168.4.1
15:20:52.092 -> OnDemandAP
15:20:52.092 -> *wm:[1] Starting Web Portal 
15:20:52.092 -> [ 38115][V][WiFiServer.h:42] WiFiServer(): WiFiServer::WiFiServer(port=80, ...)
15:20:52.092 -> [ 38115][V][WebServer.cpp:85] WebServer(): WebServer::Webserver(port=80)
15:20:52.138 -> *wm:[2] [CB] _webservercallback calling 
15:20:52.138 -> *wm:[2] HTTP server started 
15:20:52.138 -> *wm:[2] Config Portal Running, blocking, waiting for clients... 
15:20:52.138 -> *wm:[2] Portal Timeout In 140 seconds
15:20:52.138 -> *wm:[2] Portal Timeout In 138 seconds
15:21:13.285 -> [ 59281][V][WiFiGeneric.cpp:405] _arduino_event_cb(): AP Station Connected: MAC: 98:2c:bc:0d:dc:2f, AID: 1
15:21:13.285 -> [ 59281][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 12 - AP_STACONNECTED
15:21:13.665 -> [ 59677][V][WiFiGeneric.cpp:419] _arduino_event_cb(): AP Station IP Assigned:192.168.4.2
15:21:13.665 -> [ 59677][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
15:21:14.650 -> [ 60665][V][WebServer.cpp:294] handleClient(): New client: client.localIP()=192.168.4.1
15:21:14.650 -> [ 60666][V][Parsing.cpp:121] _parseRequest(): method: GET url: /connecttest.txt search: 
15:21:14.650 -> [ 60670][V][Parsing.cpp:227] _parseRequest(): headerName: Connection
15:21:14.696 -> [ 60676][V][Parsing.cpp:228] _parseRequest(): headerValue: Close
15:21:14.696 -> [ 60682][V][Parsing.cpp:227] _parseRequest(): headerName: User-Agent
15:21:14.696 -> [ 60688][V][Parsing.cpp:228] _parseRequest(): headerValue: Microsoft NCSI
15:21:14.696 -> [ 60695][V][Parsing.cpp:227] _parseRequest(): headerName: Host
15:21:14.696 -> [ 60700][V][Parsing.cpp:228] _parseRequest(): headerValue: www.msftconnecttest.com
15:21:14.696 -> [ 60707][V][Parsing.cpp:255] _parseArguments(): args: 
15:21:14.696 -> [ 60712][V][Parsing.cpp:238] _parseRequest(): Request: /connecttest.txt
15:21:14.696 -> [ 60719][V][Parsing.cpp:239] _parseRequest():  Arguments: 
15:21:14.742 -> [ 60724][E][WebServer.cpp:647] _handleRequest(): request handler not found
15:21:14.742 -> *wm:[2] <- Request redirected to captive portal 
15:21:14.742 -> [ 60741][W][WebServer.cpp:434] send(): content length is zero
15:21:15.019 -> [ 61052][V][WebServer.cpp:294] handleClient(): New client: client.localIP()=192.168.4.1
15:21:15.067 -> [ 61053][V][Parsing.cpp:121] _parseRequest(): method: GET url: /connecttest.txt search: 
15:21:15.067 -> [ 61057][V][Parsing.cpp:227] _parseRequest(): headerName: Connection
15:21:15.067 -> [ 61062][V][Parsing.cpp:228] _parseRequest(): headerValue: Close
15:21:15.067 -> [ 61068][V][Parsing.cpp:227] _parseRequest(): headerName: User-Agent
15:21:15.067 -> [ 61074][V][Parsing.cpp:228] _parseRequest(): headerValue: Microsoft NCSI
15:21:15.067 -> [ 61081][V][Parsing.cpp:227] _parseRequest(): headerName: Host
15:21:15.067 -> [ 61086][V][Parsing.cpp:228] _parseRequest(): headerValue: www.msftconnecttest.com
15:21:15.114 -> [ 61094][V][Parsing.cpp:255] _parseArguments(): args: 
15:21:15.114 -> [ 61098][V][Parsing.cpp:238] _parseRequest(): Request: /connecttest.txt
15:21:15.114 -> [ 61105][V][Parsing.cpp:239] _parseRequest():  Arguments: 
15:21:15.114 -> [ 61110][E][WebServer.cpp:647] _handleRequest(): request handler not found
15:21:15.114 -> *wm:[2] <- Request redirected to captive portal 
15:21:15.114 -> [ 61127][W][WebServer.cpp:434] send(): content length is zero
15:21:22.127 -> *wm:[2] Portal Timeout In 108 seconds
15:21:26.384 -> [ 72381][D][WiFiClient.cpp:545] connected(): Disconnected: RES: 0, ERR: 128
15:21:28.444 -> [ 74437][V][WebServer.cpp:294] handleClient(): New client: client.localIP()=192.168.4.1
15:21:28.444 -> [ 74437][V][Parsing.cpp:121] _parseRequest(): method: GET url: / search: 
15:21:28.444 -> [ 74440][V][Parsing.cpp:227] _parseRequest(): headerName: Host
15:21:28.444 -> [ 74445][V][Parsing.cpp:228] _parseRequest(): headerValue: 192.168.4.1
15:21:28.444 -> [ 74452][V][Parsing.cpp:227] _parseRequest(): headerName: Connection
15:21:28.444 -> [ 74458][V][Parsing.cpp:228] _parseRequest(): headerValue: keep-alive
15:21:28.444 -> [ 74464][V][Parsing.cpp:227] _parseRequest(): headerName: Upgrade-Insecure-Requests
15:21:28.490 -> [ 74471][V][Parsing.cpp:228] _parseRequest(): headerValue: 1
15:21:28.490 -> [ 74477][V][Parsing.cpp:227] _parseRequest(): headerName: User-Agent
15:21:28.490 -> [ 74483][V][Parsing.cpp:228] _parseRequest(): headerValue: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.63
15:21:28.490 -> [ 74500][V][Parsing.cpp:227] _parseRequest(): headerName: Accept
15:21:28.490 -> [ 74505][V][Parsing.cpp:228] _parseRequest(): headerValue: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
15:21:28.536 -> [ 74522][V][Parsing.cpp:227] _parseRequest(): headerName: Purpose
15:21:28.536 -> [ 74527][V][Parsing.cpp:228] _parseRequest(): headerValue: prefetch
15:21:28.536 -> [ 74533][V][Parsing.cpp:227] _parseRequest(): headerName: Accept-Encoding
15:21:28.536 -> [ 74540][V][Parsing.cpp:228] _parseRequest(): headerValue: gzip, deflate
15:21:28.536 -> [ 74546][V][Parsing.cpp:227] _parseRequest(): headerName: Accept-Language
15:21:28.536 -> [ 74553][V][Parsing.cpp:228] _parseRequest(): headerValue: en-GB,en;q=0.9,en-US;q=0.8
15:21:28.536 -> [ 74560][V][Parsing.cpp:255] _parseArguments(): args: 
15:21:28.583 -> [ 74565][V][Parsing.cpp:238] _parseRequest(): Request: /
15:21:28.583 -> [ 74570][V][Parsing.cpp:239] _parseRequest():  Arguments: 
15:21:28.583 -> *wm:[2] <- HTTP Root 
15:21:28.815 -> [ 74840][V][WebServer.cpp:294] handleClient(): New client: client.localIP()=192.168.4.1
15:21:29.004 -> [ 74995][V][Parsing.cpp:121] _parseRequest(): method: GET url: /favicon.ico search: 
15:21:29.004 -> [ 74995][V][Parsing.cpp:227] _parseRequest(): headerName: Host
15:21:29.004 -> [ 74997][V][Parsing.cpp:228] _parseRequest(): headerValue: 192.168.4.1
15:21:29.004 -> [ 75003][V][Parsing.cpp:227] _parseRequest(): headerName: Connection
15:21:29.004 -> [ 75009][V][Parsing.cpp:228] _parseRequest(): headerValue: keep-alive
15:21:29.004 -> [ 75016][V][Parsing.cpp:227] _parseRequest(): headerName: User-Agent
15:21:29.004 -> [ 75022][V][Parsing.cpp:228] _parseRequest(): headerValue: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.63
15:21:29.049 -> [ 75039][V][Parsing.cpp:227] _parseRequest(): headerName: Accept
15:21:29.049 -> [ 75044][V][Parsing.cpp:228] _parseRequest(): headerValue: image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8
15:21:29.049 -> [ 75054][V][Parsing.cpp:227] _parseRequest(): headerName: Referer
15:21:29.049 -> [ 75060][V][Parsing.cpp:228] _parseRequest(): headerValue: http://192.168.4.1/
15:21:29.049 -> [ 75067][V][Parsing.cpp:227] _parseRequest(): headerName: Accept-Encoding
15:21:29.094 -> [ 75073][V][Parsing.cpp:228] _parseRequest(): headerValue: gzip, deflate
15:21:29.094 -> [ 75080][V][Parsing.cpp:227] _parseRequest(): headerName: Accept-Language
15:21:29.094 -> [ 75086][V][Parsing.cpp:228] _parseRequest(): headerValue: en-GB,en;q=0.9,en-US;q=0.8
15:21:29.094 -> [ 75094][V][Parsing.cpp:255] _parseArguments(): args: 
15:21:29.094 -> [ 75099][V][Parsing.cpp:238] _parseRequest(): Request: /favicon.ico
15:21:29.094 -> [ 75105][V][Parsing.cpp:239] _parseRequest():  Arguments: 
15:21:29.094 -> [ 75110][E][WebServer.cpp:647] _handleRequest(): request handler not found
15:21:29.094 -> [ 75121][V][WebServer.cpp:294] handleClient(): New client: client.localIP()=192.168.4.1
15:21:40.142 -> [ 86172][V][WebServer.cpp:294] handleClient(): New client: client.localIP()=192.168.4.1
15:21:40.188 -> [ 86173][V][Parsing.cpp:121] _parseRequest(): method: GET url: /connecttest.txt search: 
15:21:40.188 -> [ 86177][V][Parsing.cpp:227] _parseRequest(): headerName: Connection
15:21:40.188 -> [ 86183][V][Parsing.cpp:228] _parseRequest(): headerValue: Close
15:21:40.188 -> [ 86189][V][Parsing.cpp:227] _parseRequest(): headerName: User-Agent
15:21:40.188 -> [ 86195][V][Parsing.cpp:228] _parseRequest(): headerValue: Microsoft NCSI
15:21:40.188 -> [ 86201][V][Parsing.cpp:227] _parseRequest(): headerName: Host
15:21:40.188 -> [ 86207][V][Parsing.cpp:228] _parseRequest(): headerValue: www.msftconnecttest.com
15:21:40.234 -> [ 86214][V][Parsing.cpp:255] _parseArguments(): args: 
15:21:40.234 -> [ 86219][V][Parsing.cpp:238] _parseRequest(): Request: /connecttest.txt
15:21:40.234 -> [ 86225][V][Parsing.cpp:239] _parseRequest():  Arguments: 
15:21:40.234 -> [ 86231][E][WebServer.cpp:647] _handleRequest(): request handler not found
15:21:40.234 -> *wm:[2] <- Request redirected to captive portal 
15:21:40.234 -> [ 86248][W][WebServer.cpp:434] send(): content length is zero
15:21:40.513 -> [ 86513][V][WebServer.cpp:294] handleClient(): New client: client.localIP()=192.168.4.1
15:21:40.513 -> [ 86513][V][Parsing.cpp:121] _parseRequest(): method: GET url: /connecttest.txt search: 
15:21:40.513 -> [ 86517][V][Parsing.cpp:227] _parseRequest(): headerName: Connection
15:21:40.513 -> [ 86523][V][Parsing.cpp:228] _parseRequest(): headerValue: Close
15:21:40.513 -> [ 86529][V][Parsing.cpp:227] _parseRequest(): headerName: User-Agent
15:21:40.513 -> [ 86535][V][Parsing.cpp:228] _parseRequest(): headerValue: Microsoft NCSI
15:21:40.558 -> [ 86542][V][Parsing.cpp:227] _parseRequest(): headerName: Host
15:21:40.558 -> [ 86547][V][Parsing.cpp:228] _parseRequest(): headerValue: www.msftconnecttest.com
15:21:40.558 -> [ 86554][V][Parsing.cpp:255] _parseArguments(): args: 
15:21:40.558 -> [ 86559][V][Parsing.cpp:238] _parseRequest(): Request: /connecttest.txt
15:21:40.558 -> [ 86566][V][Parsing.cpp:239] _parseRequest():  Arguments: 
15:21:40.558 -> [ 86571][E][WebServer.cpp:647] _handleRequest(): request handler not found
15:21:40.558 -> *wm:[2] <- Request redirected to captive portal 
15:21:40.558 -> [ 86588][W][WebServer.cpp:434] send(): content length is zero

Originally created by @letis009 on GitHub (Aug 22, 2022). Original GitHub issue: https://github.com/tzapu/WiFiManager/issues/1479 ### Basic Infos #### Hardware WiFimanager Branch/Release: Master Esp32: ESP32-C3 Hardware: ESP32-C3-Wroom-02 Core Version: ESP32 Arduino 2.0.4 based on ESP-IDF 4.4.2 ### Description Config Portal is not visible on any device, only after flashing example sketch with correct SSID and password does the OnDemand button work to enable Portal after credentials saved the portal is accessible via button press tried to reduce tx power, set hostname, country, channel and removed password on the autoconnect AP but no difference on any of these changes ### Settings in IDE Module: ESP32 C3 Devkit Additional libraries: WifiManager.h version 2.0.12 beta ### Sketch with no AP ```C++ /** * This is a kind of unit test for DEV for now * It contains many of the public methods * */ #include <WiFiManager.h> // https://github.com/tzapu/WiFiManager #include <time.h> #include <stdio.h> #define USEOTA // enable OTA #ifdef USEOTA #include <WiFiUdp.h> #include <ArduinoOTA.h> #endif const char* modes[] = { "NULL", "STA", "AP", "STA+AP" }; unsigned long mtime = 0; WiFiManager wm; // TEST OPTION FLAGS bool TEST_CP = false; // always start the configportal, even if ap found int TESP_CP_TIMEOUT = 90; // test cp timeout bool TEST_NET = true; // do a network test after connect, (gets ntp time) bool ALLOWONDEMAND = true; // enable on demand int ONDDEMANDPIN = 0; // gpio for button bool WMISBLOCKING = true; // use blocking or non blocking mode, non global params wont work in non blocking char ssid[] = ""; // your network SSID (name) char pass[] = // your network password //callbacks // called after AP mode and config portal has started // setAPCallback( std::function<void(WiFiManager*)> func ); // called after webserver has started // setWebServerCallback( std::function<void()> func ); // called when settings reset have been triggered // setConfigResetCallback( std::function<void()> func ); // called when wifi settings have been changed and connection was successful ( or setBreakAfterConfig(true) ) // setSaveConfigCallback( std::function<void()> func ); // called when saving either params-in-wifi or params page // setSaveParamsCallback( std::function<void()> func ); // called when saving params-in-wifi or params before anything else happens (eg wifi) // setPreSaveConfigCallback( std::function<void()> func ); // called just before doing OTA update // setPreOtaUpdateCallback( std::function<void()> func ); void saveWifiCallback(){ Serial.println("[CALLBACK] saveCallback fired"); } //gets called when WiFiManager enters configuration mode void configModeCallback (WiFiManager *myWiFiManager) { Serial.println("[CALLBACK] configModeCallback fired"); myWiFiManager->setAPStaticIPConfig(IPAddress(10,0,1,1), IPAddress(10,0,1,1), IPAddress(255,255,255,0)); Serial.println(WiFi.softAPIP()); //if you used auto generated SSID, print it Serial.println(myWiFiManager->getConfigPortalSSID()); // esp_wifi_set_bandwidth(WIFI_IF_AP, WIFI_BW_HT20); } void saveParamCallback(){ Serial.println("[CALLBACK] saveParamCallback fired"); // wm.stopConfigPortal(); } void bindServerCallback(){ wm.server->on("/custom",handleRoute); // this is now crashing esp32 for some reason // wm.server->on("/info",handleRoute); // you can override wm! } void handleRoute(){ Serial.println("[HTTP] handle route"); wm.server->send(200, "text/plain", "hello from user code"); } void handlePreOtaUpdateCallback(){ Update.onProgress([](unsigned int progress, unsigned int total) { Serial.printf("CUSTOM Progress: %u%%\r", (progress / (total / 100))); }); } void setup() { WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP WiFi.setTxPower(WIFI_POWER_8_5dBm); // put your setup code here, to run once: Serial.begin(115200); // Serial1.begin(115200); Serial.setDebugOutput(true); Serial.println("\n Starting"); // WiFi.setSleepMode(WIFI_NONE_SLEEP); // disable sleep, can improve ap stability Serial.println("Error - TEST"); Serial.println("Information- - TEST"); Serial.println("[ERROR] TEST"); Serial.println("[INFORMATION] TEST"); wm.setDebugOutput(true); wm.debugPlatformInfo(); //reset settings - for testing // wm.resetSettings(); // wm.erase(); // setup some parameters WiFiManagerParameter custom_html("<p style=\"color:pink;font-weight:Bold;\">This Is Custom HTML</p>"); // only custom html WiFiManagerParameter custom_mqtt_server("server", "mqtt server", "", 40); WiFiManagerParameter custom_mqtt_port("port", "mqtt port", "", 6); WiFiManagerParameter custom_token("api_token", "api token", "", 16); WiFiManagerParameter custom_tokenb("invalid token", "invalid token", "", 0); // id is invalid, cannot contain spaces WiFiManagerParameter custom_ipaddress("input_ip", "input IP", "", 15,"pattern='\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}'"); // custom input attrs (ip mask) WiFiManagerParameter custom_input_type("input_pwd", "input pass", "", 15,"type='password'"); // custom input attrs (ip mask) const char _customHtml_checkbox[] = "type=\"checkbox\""; WiFiManagerParameter custom_checkbox("my_checkbox", "My Checkbox", "T", 2, _customHtml_checkbox,WFM_LABEL_AFTER); const char *bufferStr = R"( <!-- INPUT CHOICE --> <br/> <p>Select Choice</p> <input style='display: inline-block;' type='radio' id='choice1' name='program_selection' value='1'> <label for='choice1'>Choice1</label><br/> <input style='display: inline-block;' type='radio' id='choice2' name='program_selection' value='2'> <label for='choice2'>Choice2</label><br/> <!-- INPUT SELECT --> <br/> <label for='input_select'>Label for Input Select</label> <select name="input_select" id="input_select" class="button"> <option value="0">Option 1</option> <option value="1" selected>Option 2</option> <option value="2">Option 3</option> <option value="3">Option 4</option> </select> )"; WiFiManagerParameter custom_html_inputs(bufferStr); // callbacks wm.setAPCallback(configModeCallback); wm.setWebServerCallback(bindServerCallback); wm.setSaveConfigCallback(saveWifiCallback); wm.setSaveParamsCallback(saveParamCallback); wm.setPreOtaUpdateCallback(handlePreOtaUpdateCallback); // add all your parameters here wm.addParameter(&custom_html); wm.addParameter(&custom_mqtt_server); wm.addParameter(&custom_mqtt_port); wm.addParameter(&custom_token); wm.addParameter(&custom_tokenb); wm.addParameter(&custom_ipaddress); wm.addParameter(&custom_checkbox); wm.addParameter(&custom_input_type); wm.addParameter(&custom_html_inputs); // set values later if you want custom_html.setValue("test",4); custom_token.setValue("test",4); // const char* icon = " // <link rel='icon' type='image/png' sizes='16x16' href='data:image/png;base64, // iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAMFBMVEU0OkArMjhobHEoPUPFEBIu // O0L+AAC2FBZ2JyuNICOfGx7xAwTjCAlCNTvVDA1aLzQ3COjMAAAAVUlEQVQI12NgwAaCDSA0888G // CItjn0szWGBJTVoGSCjWs8TleQCQYV95evdxkFT8Kpe0PLDi5WfKd4LUsN5zS1sKFolt8bwAZrCa // GqNYJAgFDEpQAAAzmxafI4vZWwAAAABJRU5ErkJggg==' />"; // set custom html head content , inside <head> // examples of favicon, or meta tags etc // const char* headhtml = "<link rel='icon' type='image/png' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAADQElEQVRoQ+2YjW0VQQyE7Q6gAkgFkAogFUAqgFQAVACpAKiAUAFQAaECQgWECggVGH1PPrRvn3dv9/YkFOksoUhhfzwz9ngvKrc89JbnLxuA/63gpsCmwCADWwkNEji8fVNgotDM7osI/x777x5l9F6JyB8R4eeVql4P0y8yNsjM7KGIPBORp558T04A+CwiH1UVUItiUQmZ2XMReSEiAFgjAPBeVS96D+sCYGaUx4cFbLfmhSpnqnrZuqEJgJnd8cQplVLciAgX//Cf0ToIeOB9wpmloLQAwpnVmAXgdf6pwjpJIz+XNoeZQQZlODV9vhc1Tuf6owrAk/8qIhFbJH7eI3eEzsvydQEICqBEkZwiALfF70HyHPpqScPV5HFjeFu476SkRA0AzOfy4hYwstj2ZkDgaphE7m6XqnoS7Q0BOPs/sw0kDROzjdXcCMFCNwzIy0EcRcOvBACfh4k0wgOmBX4xjfmk4DKTS31hgNWIKBCI8gdzogTgjYjQWFMw+o9LzJoZ63GUmjWm2wGDc7EvDDOj/1IVMIyD9SUAL0WEhpriRlXv5je5S+U1i2N88zdPuoVkeB+ls4SyxCoP3kVm9jsjpEsBLoOBNC5U9SwpGdakFkviuFP1keblATkTENTYcxkzgxTKOI3jyDxqLkQT87pMA++H3XvJBYtsNbBN6vuXq5S737WqHkW1VgMQNXJ0RshMqbbT33sJ5kpHWymzcJjNTeJIymJZtSQd9NHQHS1vodoFoTMkfbJzpRnLzB2vi6BZAJxWaCr+62BC+jzAxVJb3dmmiLzLwZhZNPE5e880Suo2AZgB8e8idxherqUPnT3brBDTlPxO3Z66rVwIwySXugdNd+5ejhqp/+NmgIwGX3Py3QBmlEi54KlwmjkOytQ+iJrLJj23S4GkOeecg8G091no737qvRRdzE+HLALQoMTBbJgBsCj5RSWUlUVJiZ4SOljb05eLFWgoJ5oY6yTyJp62D39jDANoKKcSocPJD5dQYzlFAFZJflUArgTPZKZwLXAnHmerfJquUkKZEgyzqOb5TuDt1P3nwxobqwPocZA11m4A1mBx5IxNgRH21ti7KbAGiyNn3HoF/gJ0w05A8xclpwAAAABJRU5ErkJggg==' />"; // const char* headhtml = "<meta name='color-scheme' content='dark light'><style></style><script></script>"; // wm.setCustomHeadElement(headhtml); // set custom html menu content , inside menu item "custom", see setMenu() const char* menuhtml = "<form action='/custom' method='get'><button>Custom</button></form><br/>\n"; wm.setCustomMenuHTML(menuhtml); // invert theme, dark wm.setDarkMode(true); // show scan RSSI as percentage, instead of signal stength graphic // wm.setScanDispPerc(true); /* Set cutom menu via menu[] or vector const char* menu[] = {"wifi","wifinoscan","info","param","close","sep","erase","restart","exit"}; wm.setMenu(menu,9); // custom menu array must provide length */ std::vector<const char *> menu = {"wifi","wifinoscan","info","param","custom","close","sep","erase","update","restart","exit"}; wm.setMenu(menu); // custom menu, pass vector // wm.setParamsPage(true); // move params to seperate page, not wifi, do not combine with setmenu! // set STA static ip // wm.setSTAStaticIPConfig(IPAddress(10,0,1,99), IPAddress(10,0,1,1), IPAddress(255,255,255,0)); // wm.setShowStaticFields(false); // wm.setShowDnsFields(false); // set AP static ip // wm.setAPStaticIPConfig(IPAddress(10,0,1,1), IPAddress(10,0,1,1), IPAddress(255,255,255,0)); // wm.setAPStaticIPConfig(IPAddress(10,0,1,99), IPAddress(10,0,1,1), IPAddress(255,255,255,0)); // set country // setting wifi country seems to improve OSX soft ap connectivity, // may help others as well, default is CN which has different channels wm.setCountry("US"); // crashing on esp32 2.0 // set the country code for wifi settings, CN wm.setCountry("US"); // wm.setHostname(("WM_"+wm.getDefaultAPName()).c_str()); wm.setHostname("WM_RANDO_1234"); // set custom channel wm.setWiFiAPChannel(1); // set AP hidden wm.setWiFiAPHidden(false); // show password publicly in form wm.setShowPassword(true); // sets wether wm configportal is a blocking loop(legacy) or not, use wm.process() in loop if false wm.setConfigPortalBlocking(true); wm.debugSoftAPConfig(); if(!WMISBLOCKING){ wm.setConfigPortalBlocking(false); } //sets timeout until configuration portal gets turned off //useful to make it all retry or go to sleep in seconds wm.setConfigPortalTimeout(120); // set min quality to show in web list, default 8% // wm.setMinimumSignalQuality(50); // set connection timeout // wm.setConnectTimeout(20); // set wifi connect retries // wm.setConnectRetries(2); // connect after portal save toggle // wm.setSaveConnect(false); // do not connect, only save // show static ip fields // wm.setShowStaticFields(true); // wm.startConfigPortal("AutoConnectAP", "password"); // This is sometimes necessary, it is still unknown when and why this is needed but it may solve some race condition or bug in esp SDK/lib // wm.setCleanConnect(true); // disconnect before connect, clean connect wm.setBreakAfterConfig(true); // needed to use saveWifiCallback // set custom webserver port, automatic captive portal does not work with custom ports! // wm.setHttpPort(8080); //fetches ssid and pass and tries to connect //if it does not connect it starts an access point with the specified name //here "AutoConnectAP" //and goes into a blocking loop awaiting configuration // use autoconnect, but prevent configportal from auto starting // wm.setEnableConfigPortal(false); wifiInfo(); // to preload autoconnect with credentials // wm.preloadWiFi("ssid","password"); if(!wm.autoConnect("WM_AutoConnectAP","12345678")) { Serial.println("failed to connect and hit timeout"); } else if(TEST_CP) { // start configportal always delay(1000); Serial.println("TEST_CP ENABLED"); wm.setConfigPortalTimeout(TESP_CP_TIMEOUT); wm.startConfigPortal("WM_ConnectAP","12345678"); } else { //if you get here you have connected to the WiFi Serial.println("connected...yeey :)"); } wifiInfo(); pinMode(ONDDEMANDPIN, INPUT_PULLUP); #ifdef USEOTA ArduinoOTA.begin(); #endif } void wifiInfo(){ // can contain gargbage on esp32 if wifi is not ready yet Serial.println("[WIFI] WIFI INFO DEBUG"); // WiFi.printDiag(Serial); Serial.println("[WIFI] SAVED: " + (String)(wm.getWiFiIsSaved() ? "YES" : "NO")); Serial.println("[WIFI] SSID: " + (String)wm.getWiFiSSID()); Serial.println("[WIFI] PASS: " + (String)wm.getWiFiPass()); Serial.println("[WIFI] HOSTNAME: " + (String)WiFi.getHostname()); } void loop() { if(!WMISBLOCKING){ wm.process(); } #ifdef USEOTA ArduinoOTA.handle(); #endif // is configuration portal requested? if (ALLOWONDEMAND && digitalRead(ONDDEMANDPIN) == LOW ) { delay(100); if ( digitalRead(ONDDEMANDPIN) == LOW ){ Serial.println("BUTTON PRESSED"); // button reset/reboot // wm.resetSettings(); // wm.reboot(); // delay(200); // return; wm.setConfigPortalTimeout(140); wm.setParamsPage(false); // move params to seperate page, not wifi, do not combine with setmenu! // disable captive portal redirection // wm.setCaptivePortalEnable(false); if (!wm.startConfigPortal("OnDemandAP","12345678")) { Serial.println("failed to connect and hit timeout"); delay(3000); } } else { //if you get here you have connected to the WiFi Serial.println("connected...yeey :)"); getTime(); } } // every 10 seconds if(millis()-mtime > 10000 ){ if(WiFi.status() == WL_CONNECTED){ getTime(); } else Serial.println("No Wifi"); mtime = millis(); } // put your main code here, to run repeatedly: delay(100); } void getTime() { int tz = -5; int dst = 0; time_t now = time(nullptr); unsigned timeout = 5000; // try for timeout unsigned start = millis(); configTime(tz * 3600, dst * 3600, "pool.ntp.org", "time.nist.gov"); Serial.print("Waiting for NTP time sync: "); while (now < 8 * 3600 * 2 ) { // what is this ? delay(100); Serial.print("."); now = time(nullptr); if((millis() - start) > timeout){ Serial.println("\n[ERROR] Failed to get NTP time."); return; } } Serial.println(""); struct tm timeinfo; gmtime_r(&now, &timeinfo); // @NOTE doesnt work in esp2.3.0 Serial.print("Current time: "); Serial.print(asctime(&timeinfo)); } void debugchipid(){ // WiFi.mode(WIFI_STA); // WiFi.printDiag(Serial); // Serial.println(modes[WiFi.getMode()]); // ESP.eraseConfig(); // wm.resetSettings(); // wm.erase(true); WiFi.mode(WIFI_AP); // WiFi.softAP(); WiFi.enableAP(true); delay(500); // esp_wifi_start(); delay(1000); WiFi.printDiag(Serial); delay(60000); ESP.restart(); // AP esp_267751 // 507726A4AE30 // ESP32 Chip ID = 507726A4AE30 } ``` ### Debug Messages ```php 15:08:34.666 -> Build:Feb 7 2021 15:08:34.666 -> rst:0x1 (POWERON),boot:0xd (SPI_FAST_FLASH_BOOT) 15:08:34.666 -> SPIWP:0xee 15:08:34.666 -> mode:DIO, clock div:1 15:08:34.666 -> load:0x3fcd6100,len:0x438 15:08:34.666 -> load:0x403ce000,len:0x918 15:08:34.666 -> load:0x403d0000,len:0x24e4 15:08:34.666 -> SHA-256 comparison failed: 15:08:34.666 -> Calculated: 080c5cb68a075ced55f248b97bca965e3e5bd5da80a64e34e6a1638f89d6f64e 15:08:34.666 -> Expected: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 15:08:34.713 -> Attempting to boot anyway... 15:08:34.713 -> entry 0x403ce000 15:08:34.856 -> [ 203][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 0 - WIFI_READY 15:08:34.904 -> [ 234][V][WiFiGeneric.cpp:338] a 15:08:34.904 -> Starting 15:08:34.904 -> Error - TEST 15:08:34.904 -> Information- - TEST 15:08:34.904 -> [ERROR] TEST 15:08:34.904 -> [INFORMATION] TEST 15:08:34.904 -> *wm:[1] Free heap: 229436 15:08:34.904 -> *wm:[1] ESP SDK version: v4.4.1-472-gc9140caf8c 15:08:34.904 -> *wm:[2] Added Parameter: 15:08:34.904 -> *wm:[2] Added Parameter: server 15:08:34.904 -> *wm:[2] Added Parameter: port 15:08:34.904 -> *wm:[2] Added Parameter: api_token 15:08:34.904 -> *wm:[0] [ERROR] parameter IDs can only contain alpha numeric chars 15:08:34.904 -> *wm:[2] Added Parameter: input_ip 15:08:34.904 -> *wm:[2] Added Parameter: my_checkbox 15:08:34.904 -> *wm:[2] Added Parameter: input_pwd 15:08:34.904 -> *wm:[2] Added Parameter: 15:08:34.951 -> *wm:[1] SoftAP Configuration 15:08:34.951 -> *wm:[1] -------------------- 15:08:34.951 -> *wm:[1] ssid: OnDemandAP 15:08:34.951 -> *wm:[1] password: 15:08:34.951 -> *wm:[1] ssid_len: 10 15:08:34.951 -> *wm:[1] channel: 1 15:08:34.951 -> *wm:[1] authmode: 15:08:34.951 -> *wm:[1] ssid_hidden: 15:08:34.951 -> *wm:[1] max_connection: 4 15:08:34.951 -> *wm:[1] country: US 15:08:34.951 -> *wm:[1] beacon_interval: 100(ms) 15:08:34.951 -> *wm:[1] -------------------- 15:08:34.951 -> [WIFI] WIFI INFO DEBUG 15:08:34.951 -> [WIFI] SAVED: NO 15:08:34.951 -> [WIFI] SSID: 15:08:34.951 -> [WIFI] PASS: 15:08:34.951 -> [WIFI] HOSTNAME: esp32c3-B2B69C 15:08:34.951 -> *wm:[1] AutoConnect 15:08:34.951 -> *wm:[1] No Credentials are Saved, skipping connect 15:08:34.998 -> *wm:[2] Starting Config Portal 15:08:34.998 -> *wm:[2] AccessPoint set password is VALID 15:08:34.998 -> [ 334][V][WiFiGeneric.cpp:341] _arduino_event_cb(): STA Stopped 15:08:34.998 -> [ 334][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 3 - STA_STOP 15:08:34.998 -> *wm:[2] Disabling STA 15:08:34.998 -> *wm:[2] Enabling AP 15:08:34.998 -> *wm:[1] StartAP with SSID: WM_AutoConnectAP 15:08:34.998 -> *wm:[2] Starting AP on channel: 1 15:08:34.998 -> [ 355][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 0 - WIFI_READY 15:08:34.998 -> [ 363][V][WiFiGeneric.cpp:390] _arduino_event_cb(): AP Started 15:08:34.998 -> [ 363][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 10 - AP_START 15:08:35.612 -> [ 971][V][WiFiGeneric.cpp:393] _arduino_event_cb(): AP Stopped 15:08:35.612 -> [ 972][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 11 - AP_STOP 15:08:35.612 -> [ 976][V][WiFiGeneric.cpp:390] _arduino_event_cb(): AP Started 15:08:35.659 -> [ 979][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 10 - AP_START 15:08:36.134 -> *wm:[1] AP IP address: 192.168.4.1 15:08:36.134 -> *wm:[2] setting softAP Hostname: WM_RANDO_1234 15:08:36.134 -> *wm:[2] WiFiSetCountry to US 15:08:36.134 -> *wm:[2] [OK] esp_wifi_set_country: US 15:08:36.134 -> *wm:[2] [CB] _apcallback calling 15:08:36.134 -> [CALLBACK] configModeCallback fired 15:08:36.134 -> 192.168.4.1 15:08:36.134 -> WM_AutoConnectAP 15:08:36.134 -> *wm:[1] Starting Web Portal 15:08:36.134 -> [ 1509][V][WiFiServer.h:42] WiFiServer(): WiFiServer::WiFiServer(port=80, ...) 15:08:36.182 -> [ 1509][V][WebServer.cpp:85] WebServer(): WebServer::Webserver(port=80) 15:08:36.182 -> *wm:[2] [CB] _webservercallback calling 15:08:36.182 -> *wm:[2] HTTP server started 15:08:36.182 -> *wm:[2] Config Portal Running, blocking, waiting for clients... 15:08:36.182 -> *wm:[2] Portal Timeout In 120 seconds 15:09:04.641 -> *wm:[2] Portal Timeout In 90 seconds 15:09:34.647 -> *wm:[2] Portal Timeout In 60 seconds 15:10:04.632 -> *wm:[2] Portal Timeout In 30 seconds 15:10:34.645 -> *wm:[2] Portal Timeout In 0 seconds 15:10:34.976 -> *wm:[1] config portal has timed out 15:10:34.976 -> *wm:[2] shutdownConfigPortal 15:10:34.976 -> [120347][V][WiFiGeneric.cpp:393] _arduino_event_cb(): AP Stopped 15:10:35.024 -> [120347][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 11 - AP_STOP 15:10:35.024 -> [120349][V][WiFiGeneric.cpp:390] _arduino_event_cb(): AP Started 15:10:35.024 -> [120355][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 10 - AP_START 15:10:35.024 -> *wm:[2] restoring usermode STA 15:10:36.016 -> [121373][V][WiFiGeneric.cpp:393] _arduino_event_cb(): AP Stopped 15:10:36.016 -> [121373][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 11 - AP_STOP 15:10:36.016 -> [121375][V][WiFiGeneric.cpp:338] _arduino_event_cb(): STA Started 15:10:36.016 -> [121380][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 2 - STA_START 15:10:36.064 -> *wm:[2] wifi status: WL_DISCONNECTED 15:10:36.064 -> *wm:[2] wifi mode: STA 15:10:36.064 -> *wm:[2] configportal closed 15:10:36.064 -> *wm:[1] config portal exiting 15:10:36.064 -> failed to connect and hit timeout 15:10:36.064 -> [WIFI] WIFI INFO DEBUG 15:10:36.064 -> [WIFI] SAVED: NO 15:10:36.064 -> [WIFI] SSID: 15:10:36.064 -> [WIFI] PASS: 15:10:36.064 -> [WIFI] HOSTNAME: esp32c3-B2B69C 15:10:36.064 -> [121430][I][ArduinoOTA.cpp:141] begin(): OTA server at: esp32-7cdfa1b2b69c.local:3232 15:10:36.064 -> No Wifi 15:10:46.096 -> No Wifi 15:10:50.399 -> BUTTON PRESSED 15:10:50.399 -> *wm:[2] Starting Config Portal 15:10:50.399 -> *wm:[2] AccessPoint set password is VALID 15:10:50.445 -> [135771][V][WiFiGeneric.cpp:341] _arduino_event_cb(): STA Stopped 15:10:50.445 -> [135773][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 3 - STA_STOP 15:10:50.445 -> *wm:[2] Disabling STA 15:10:50.445 -> *wm:[2] Enabling AP 15:10:50.445 -> *wm:[1] StartAP with SSID: OnDemandAP 15:10:50.445 -> *wm:[1] Custom AP IP/GW/Subnet: 15:10:50.445 -> [135798][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 0 - WIFI_READY 15:10:50.445 -> [135805][V][WiFiGeneric.cpp:390] _arduino_event_cb(): AP Started 15:10:50.445 -> [135806][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 10 - AP_START 15:10:50.445 -> [135810][V][WiFiGeneric.cpp:97] set_esp_interface_ip(): Configuring SoftAP static IP: 10.0.1.1, MASK: 255.255.255.0, GW: 10.0.1.1 15:10:50.492 -> [135822][V][WiFiGeneric.cpp:143] set_esp_interface_ip(): SoftAP: 10.0.1.1 | Gateway: 10.0.1.1 | DHCP Start: 0.0.0.0 | Netmask: 255.255.255.0 15:10:50.492 -> [135834][V][WiFiGeneric.cpp:190] set_esp_interface_ip(): DHCP Server Range: 10.0.1.2 to 10.0.1.12 15:10:50.492 -> *wm:[2] Starting AP on channel: 1 15:10:51.094 -> [136456][V][WiFiGeneric.cpp:393] _arduino_event_cb(): AP Stopped 15:10:51.094 -> [136457][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 11 - AP_STOP 15:10:51.094 -> [136461][V][WiFiGeneric.cpp:390] _arduino_event_cb(): AP Started 15:10:51.142 -> [136464][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 10 - AP_START 15:10:51.604 -> *wm:[1] AP IP address: 10.0.1.1 15:10:51.604 -> *wm:[2] setting softAP Hostname: WM_RANDO_1234 15:10:51.604 -> *wm:[2] WiFiSetCountry to US 15:10:51.650 -> *wm:[2] [OK] esp_wifi_set_country: US 15:10:51.650 -> *wm:[2] [CB] _apcallback calling 15:10:51.650 -> [CALLBACK] configModeCallback fired 15:10:51.650 -> 10.0.1.1 15:10:51.650 -> OnDemandAP 15:10:51.650 -> *wm:[1] Starting Web Portal 15:10:51.650 -> [136985][V][WiFiServer.h:42] WiFiServer(): WiFiServer::WiFiServer(port=80, ...) 15:10:51.650 -> [136992][V][WebServer.cpp:85] WebServer(): WebServer::Webserver(port=80) 15:10:51.650 -> *wm:[2] [CB] _webservercallback calling 15:10:51.650 -> *wm:[2] HTTP server started 15:10:51.650 -> *wm:[2] Config Portal Running, blocking, waiting for clients... 15:10:51.650 -> *wm:[2] Portal Timeout In 140 seconds 15:11:04.651 -> *wm:[2] Portal Timeout In 125 seconds 15:11:34.672 -> *wm:[2] Portal Timeout In 95 seconds 15:12:04.658 -> *wm:[2] Portal Timeout In 65 seconds 15:12:34.669 -> *wm:[2] Portal Timeout In 35 seconds 15:13:04.662 -> *wm:[2] Portal Timeout In 5 seconds 15:13:10.438 -> *wm:[1] config portal has timed out 15:13:10.438 -> *wm:[2] shutdownConfigPortal 15:13:10.438 -> [275800][V][WiFiGeneric.cpp:393] _arduino_event_cb(): AP Stopped 15:13:10.438 -> [275800][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 11 - AP_STOP 15:13:10.438 -> [275802][V][WiFiGeneric.cpp:390] _arduino_event_cb(): AP Started 15:13:10.485 -> [275808][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 10 - AP_START 15:13:10.485 -> *wm:[2] restoring usermode STA 15:13:11.464 -> [276826][V][WiFiGeneric.cpp:393] _arduino_event_cb(): AP Stopped 15:13:11.464 -> [276826][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 11 - AP_STOP 15:13:11.464 -> [276828][V][WiFiGeneric.cpp:338] _arduino_event_cb(): STA Started 15:13:11.512 -> [276833][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 2 - STA_START 15:13:11.512 -> *wm:[2] wifi status: WL_DISCONNECTED 15:13:11.512 -> *wm:[2] wifi mode: STA 15:13:11.512 -> *wm:[2] configportal closed 15:13:11.512 -> *wm:[1] config portal exiting 15:13:11.512 -> failed to connect and hit timeout 15:13:14.500 -> No Wifi ``` ### DEBUG FROM SUCCESSFUL CONNECTION WITH WIFICLIENTEVENTS.ino EXAMPLE ```php 15:16:05.229 -> Build:Feb 7 2021 15:16:05.229 -> rst:0x1 (POWERON),boot:0xd (SPI_FAST_FLASH_BOOT) 15:16:05.229 -> SPIWP:0xee 15:16:05.229 -> mode:DIO, clock div:1 15:16:05.229 -> load:0x3fcd6100,len:0x438 15:16:05.229 -> load:0x403ce000,len:0x918 15:16:05.655 -> SHA-256 comparison failed: 15:16:05.655 -> Calculated: 080c5cb68a075ced55f248b97bca965e3e5bd5da80a64e34e6a1638f89d6f64e 15:16:05.655 -> Expected: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 15:16:05.655 -> Attempting to boot anyway... 15:16:05.655 -> entry 0x403ce000 15:16:06.784 -> WiFi Event ID: 3 15:16:06.784 -> [ 1170][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 0 - WIFI_READY 15:16:06.784 -> [WiFi-event] event: 0 15:16:06.784 -> WiFi interface ready 15:16:06.831 -> [ 1199][V][WiFiGeneric.cpp:338] _arduino_event_cb(): STA Started 15:16:06.831 -> [ 1199][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 2 - STA_START 15:16:06.831 -> [WiFi-event] event: 2 15:16:06.831 -> WiFi client started 15:16:06.831 -> [ 1210][V][WiFiGeneric.cpp:97] set_esp_interface_ip(): Configuring Station static IP: 0.0.0.0, MASK: 0.0.0.0, GW: 0.0.0.0 15:16:06.831 -> 15:16:06.831 -> 15:16:06.831 -> Wait for WiFi... 15:16:07.633 -> [ 2003][V][WiFiGeneric.cpp:353] _arduino_event_cb(): STA Connected: SSID: *****, BSSID: e4:8d:8c:ec:3b:81, Channel: 1, Auth: WPA2_PSK 15:16:07.633 -> [ 2004][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 4 - STA_CONNECTED 15:16:07.633 -> [WiFi-event] event: 4 15:16:07.633 -> Connected to access point 15:16:08.287 -> [ 2669][V][WiFiGeneric.cpp:367] _arduino_event_cb(): STA Got New IP:192.168.88.253 15:16:08.287 -> [ 2669][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 7 - STA_GOT_IP 15:16:08.287 -> [ 2672][D][WiFiGeneric.cpp:991] _eventCallback(): STA IP: 192.168.88.253, MASK: 255.255.255.0, GW: 192.168.88.1 15:16:08.333 -> [WiFi-event] event: 7 15:16:08.333 -> Obtained IP address: 192.168.88.253 15:16:08.333 -> WiFi connected 15:16:08.333 -> IP address: 15:16:08.333 -> 192.168.88.253 ``` ###DEBUG after reloading OnDemand.ino ```php 15:20:13.996 -> Build:Feb 7 2021 15:20:13.996 -> rst:0x1 (POWERON),boot:0xd (SPI_FAST_FLASH_BOOT) 15:20:13.996 -> SPIWP:0xee 15:20:13.996 -> mode:DIO, clock div:1 15:20:13.996 -> load:0x3fcd6100,len:0x438 15:20:13.996 -> load:0x403ce000,len:0x918 15:20:13.996 -> load:0x403d0000,len:0x24e4 15:20:13.996 -> SHA-256 comparison failed: 15:20:13.996 -> Calculated: 080c5cb68a075ced55f248b97bca965e3e5bd5da80a64e34e6a1638f89d6f64e 15:20:14.043 -> Expected: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 15:20:14.043 -> Attempting to boot anyway... 15:20:14.043 -> entry 0x403ce000 15:20:14.185 -> [ 203][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 0 - WIFI_READY 15:20:14.233 -> [ 232][V][WiFiGeneric.cpp:338] _a 15:20:14.233 -> Starting 15:20:14.233 -> Error - TEST 15:20:14.233 -> Information- - TEST 15:20:14.233 -> [ERROR] TEST 15:20:14.233 -> [INFORMATION] TEST 15:20:14.233 -> *wm:[1] Free heap: 229436 15:20:14.233 -> *wm:[1] ESP SDK version: v4.4.1-472-gc9140caf8c 15:20:14.233 -> *wm:[2] Added Parameter: 15:20:14.233 -> *wm:[2] Added Parameter: server 15:20:14.233 -> *wm:[2] Added Parameter: port 15:20:14.233 -> *wm:[2] Added Parameter: api_token 15:20:14.233 -> *wm:[0] [ERROR] parameter IDs can only contain alpha numeric chars 15:20:14.233 -> *wm:[2] Added Parameter: input_ip 15:20:14.281 -> *wm:[2] Added Parameter: my_checkbox 15:20:14.281 -> *wm:[2] Added Parameter: input_pwd 15:20:14.281 -> *wm:[2] Added Parameter: 15:20:14.281 -> *wm:[1] SoftAP Configuration 15:20:14.281 -> *wm:[1] -------------------- 15:20:14.281 -> *wm:[1] ssid: ESP_B2B69D 15:20:14.281 -> *wm:[1] password: 15:20:14.281 -> *wm:[1] ssid_len: 10 15:20:14.281 -> *wm:[1] channel: 6 15:20:14.281 -> *wm:[1] authmode: 15:20:14.281 -> *wm:[1] ssid_hidden: 15:20:14.281 -> *wm:[1] max_connection: 4 15:20:14.281 -> *wm:[1] country: US 15:20:14.281 -> *wm:[1] beacon_interval: 100(ms) 15:20:14.281 -> *wm:[1] -------------------- 15:20:14.281 -> [WIFI] WIFI INFO DEBUG 15:20:14.281 -> [WIFI] SAVED: YES 15:20:14.281 -> [WIFI] SSID: ************** 15:20:14.328 -> [WIFI] PASS: ************** 15:20:14.328 -> [WIFI] HOSTNAME: esp32c3-B2B69C 15:20:14.328 -> *wm:[1] AutoConnect 15:20:14.328 -> *wm:[2] Setting Hostnames: WM_RANDO_1234 15:20:14.328 -> *wm:[2] Setting WiFi hostname 15:20:14.328 -> *wm:[2] WiFiSetCountry to US 15:20:14.328 -> *wm:[2] [OK] esp_wifi_set_country: US 15:20:14.328 -> *wm:[2] ESP32 event handler enabled 15:20:14.328 -> *wm:[2] Connecting as wifi client... 15:20:14.328 -> *wm:[2] setSTAConfig static ip not set, skipping 15:20:14.328 -> *wm:[1] Connecting to SAVED AP: B26A24 15:20:14.845 -> [ 842][V][WiFiGeneric.cpp:97] set_esp_interface_ip(): Configuring Station static IP: 0.0.0.0, MASK: 0.0.0.0, GW: 0.0.0.0 15:20:14.845 -> *wm:[1] connectTimeout not set, ESP waitForConnectResult... 15:20:14.845 -> [ 875][V][WiFiGeneric.cpp:353] _arduino_event_cb(): STA Connected: SSID: B26A24, BSSID: e4:8d:8c:ec:3b:81, Channel: 1, Auth: WPA2_PSK 15:20:14.891 -> [ 876][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 4 - STA_CONNECTED 15:20:14.891 -> [ 895][V][WiFiGeneric.cpp:367] _arduino_event_cb(): STA Got New IP:192.168.88.253 15:20:14.891 -> [ 895][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 7 - STA_GOT_IP 15:20:14.891 -> [ 898][D][WiFiGeneric.cpp:991] _eventCallback(): STA IP: 192.168.88.253, MASK: 255.255.255.0, GW: 192.168.88.1 15:20:14.939 -> *wm:[2] Connection result: WL_CONNECTED 15:20:14.939 -> *wm:[1] AutoConnect: SUCCESS 15:20:14.939 -> *wm:[2] Connected in 637 ms 15:20:14.939 -> *wm:[1] STA IP Address: 192.168.88.253 15:20:14.939 -> connected...yeey :) 15:20:14.939 -> [WIFI] WIFI INFO DEBUG 15:20:14.939 -> [WIFI] SAVED: YES 15:20:14.985 -> [WIFI] SSID: ************ 15:20:14.985 -> [WIFI] PASS: *************** 15:20:14.985 -> [WIFI] HOSTNAME: WM_RANDO_1234 15:20:14.985 -> [ 990][I][ArduinoOTA.cpp:141] begin(): OTA server at: esp32-7cdfa1b2b69c.local:3232 15:20:24.023 -> Waiting for NTP time sync: ................................................... 15:20:29.084 -> [ERROR] Failed to get NTP time. 15:20:39.142 -> Waiting for NTP time sync: ................................................... 15:20:44.226 -> [ERROR] Failed to get NTP time. 15:20:50.929 -> BUTTON PRESSED 15:20:50.929 -> *wm:[2] Starting Config Portal 15:20:50.929 -> *wm:[2] AccessPoint set password is VALID 15:20:50.929 -> *wm:[2] Enabling AP 15:20:50.975 -> *wm:[1] StartAP with SSID: OnDemandAP 15:20:50.975 -> *wm:[2] Starting AP on channel: 1 15:20:50.975 -> [ 36967][V][WiFiGeneric.cpp:390] _arduino_event_cb(): AP Started 15:20:50.975 -> [ 36967][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 10 - AP_START 15:20:51.580 -> [ 37577][V][WiFiGeneric.cpp:393] _arduino_event_cb(): AP Stopped 15:20:51.580 -> [ 37577][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 11 - AP_STOP 15:20:51.580 -> [ 37579][V][WiFiGeneric.cpp:390] _arduino_event_cb(): AP Started 15:20:51.580 -> [ 37584][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 10 - AP_START 15:20:52.092 -> *wm:[1] AP IP address: 192.168.4.1 15:20:52.092 -> *wm:[2] setting softAP Hostname: WM_RANDO_1234 15:20:52.092 -> *wm:[2] WiFiSetCountry to US 15:20:52.092 -> *wm:[2] [OK] esp_wifi_set_country: US 15:20:52.092 -> *wm:[2] [CB] _apcallback calling 15:20:52.092 -> [CALLBACK] configModeCallback fired 15:20:52.092 -> 192.168.4.1 15:20:52.092 -> OnDemandAP 15:20:52.092 -> *wm:[1] Starting Web Portal 15:20:52.092 -> [ 38115][V][WiFiServer.h:42] WiFiServer(): WiFiServer::WiFiServer(port=80, ...) 15:20:52.092 -> [ 38115][V][WebServer.cpp:85] WebServer(): WebServer::Webserver(port=80) 15:20:52.138 -> *wm:[2] [CB] _webservercallback calling 15:20:52.138 -> *wm:[2] HTTP server started 15:20:52.138 -> *wm:[2] Config Portal Running, blocking, waiting for clients... 15:20:52.138 -> *wm:[2] Portal Timeout In 140 seconds 15:20:52.138 -> *wm:[2] Portal Timeout In 138 seconds 15:21:13.285 -> [ 59281][V][WiFiGeneric.cpp:405] _arduino_event_cb(): AP Station Connected: MAC: 98:2c:bc:0d:dc:2f, AID: 1 15:21:13.285 -> [ 59281][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 12 - AP_STACONNECTED 15:21:13.665 -> [ 59677][V][WiFiGeneric.cpp:419] _arduino_event_cb(): AP Station IP Assigned:192.168.4.2 15:21:13.665 -> [ 59677][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED 15:21:14.650 -> [ 60665][V][WebServer.cpp:294] handleClient(): New client: client.localIP()=192.168.4.1 15:21:14.650 -> [ 60666][V][Parsing.cpp:121] _parseRequest(): method: GET url: /connecttest.txt search: 15:21:14.650 -> [ 60670][V][Parsing.cpp:227] _parseRequest(): headerName: Connection 15:21:14.696 -> [ 60676][V][Parsing.cpp:228] _parseRequest(): headerValue: Close 15:21:14.696 -> [ 60682][V][Parsing.cpp:227] _parseRequest(): headerName: User-Agent 15:21:14.696 -> [ 60688][V][Parsing.cpp:228] _parseRequest(): headerValue: Microsoft NCSI 15:21:14.696 -> [ 60695][V][Parsing.cpp:227] _parseRequest(): headerName: Host 15:21:14.696 -> [ 60700][V][Parsing.cpp:228] _parseRequest(): headerValue: www.msftconnecttest.com 15:21:14.696 -> [ 60707][V][Parsing.cpp:255] _parseArguments(): args: 15:21:14.696 -> [ 60712][V][Parsing.cpp:238] _parseRequest(): Request: /connecttest.txt 15:21:14.696 -> [ 60719][V][Parsing.cpp:239] _parseRequest(): Arguments: 15:21:14.742 -> [ 60724][E][WebServer.cpp:647] _handleRequest(): request handler not found 15:21:14.742 -> *wm:[2] <- Request redirected to captive portal 15:21:14.742 -> [ 60741][W][WebServer.cpp:434] send(): content length is zero 15:21:15.019 -> [ 61052][V][WebServer.cpp:294] handleClient(): New client: client.localIP()=192.168.4.1 15:21:15.067 -> [ 61053][V][Parsing.cpp:121] _parseRequest(): method: GET url: /connecttest.txt search: 15:21:15.067 -> [ 61057][V][Parsing.cpp:227] _parseRequest(): headerName: Connection 15:21:15.067 -> [ 61062][V][Parsing.cpp:228] _parseRequest(): headerValue: Close 15:21:15.067 -> [ 61068][V][Parsing.cpp:227] _parseRequest(): headerName: User-Agent 15:21:15.067 -> [ 61074][V][Parsing.cpp:228] _parseRequest(): headerValue: Microsoft NCSI 15:21:15.067 -> [ 61081][V][Parsing.cpp:227] _parseRequest(): headerName: Host 15:21:15.067 -> [ 61086][V][Parsing.cpp:228] _parseRequest(): headerValue: www.msftconnecttest.com 15:21:15.114 -> [ 61094][V][Parsing.cpp:255] _parseArguments(): args: 15:21:15.114 -> [ 61098][V][Parsing.cpp:238] _parseRequest(): Request: /connecttest.txt 15:21:15.114 -> [ 61105][V][Parsing.cpp:239] _parseRequest(): Arguments: 15:21:15.114 -> [ 61110][E][WebServer.cpp:647] _handleRequest(): request handler not found 15:21:15.114 -> *wm:[2] <- Request redirected to captive portal 15:21:15.114 -> [ 61127][W][WebServer.cpp:434] send(): content length is zero 15:21:22.127 -> *wm:[2] Portal Timeout In 108 seconds 15:21:26.384 -> [ 72381][D][WiFiClient.cpp:545] connected(): Disconnected: RES: 0, ERR: 128 15:21:28.444 -> [ 74437][V][WebServer.cpp:294] handleClient(): New client: client.localIP()=192.168.4.1 15:21:28.444 -> [ 74437][V][Parsing.cpp:121] _parseRequest(): method: GET url: / search: 15:21:28.444 -> [ 74440][V][Parsing.cpp:227] _parseRequest(): headerName: Host 15:21:28.444 -> [ 74445][V][Parsing.cpp:228] _parseRequest(): headerValue: 192.168.4.1 15:21:28.444 -> [ 74452][V][Parsing.cpp:227] _parseRequest(): headerName: Connection 15:21:28.444 -> [ 74458][V][Parsing.cpp:228] _parseRequest(): headerValue: keep-alive 15:21:28.444 -> [ 74464][V][Parsing.cpp:227] _parseRequest(): headerName: Upgrade-Insecure-Requests 15:21:28.490 -> [ 74471][V][Parsing.cpp:228] _parseRequest(): headerValue: 1 15:21:28.490 -> [ 74477][V][Parsing.cpp:227] _parseRequest(): headerName: User-Agent 15:21:28.490 -> [ 74483][V][Parsing.cpp:228] _parseRequest(): headerValue: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.63 15:21:28.490 -> [ 74500][V][Parsing.cpp:227] _parseRequest(): headerName: Accept 15:21:28.490 -> [ 74505][V][Parsing.cpp:228] _parseRequest(): headerValue: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 15:21:28.536 -> [ 74522][V][Parsing.cpp:227] _parseRequest(): headerName: Purpose 15:21:28.536 -> [ 74527][V][Parsing.cpp:228] _parseRequest(): headerValue: prefetch 15:21:28.536 -> [ 74533][V][Parsing.cpp:227] _parseRequest(): headerName: Accept-Encoding 15:21:28.536 -> [ 74540][V][Parsing.cpp:228] _parseRequest(): headerValue: gzip, deflate 15:21:28.536 -> [ 74546][V][Parsing.cpp:227] _parseRequest(): headerName: Accept-Language 15:21:28.536 -> [ 74553][V][Parsing.cpp:228] _parseRequest(): headerValue: en-GB,en;q=0.9,en-US;q=0.8 15:21:28.536 -> [ 74560][V][Parsing.cpp:255] _parseArguments(): args: 15:21:28.583 -> [ 74565][V][Parsing.cpp:238] _parseRequest(): Request: / 15:21:28.583 -> [ 74570][V][Parsing.cpp:239] _parseRequest(): Arguments: 15:21:28.583 -> *wm:[2] <- HTTP Root 15:21:28.815 -> [ 74840][V][WebServer.cpp:294] handleClient(): New client: client.localIP()=192.168.4.1 15:21:29.004 -> [ 74995][V][Parsing.cpp:121] _parseRequest(): method: GET url: /favicon.ico search: 15:21:29.004 -> [ 74995][V][Parsing.cpp:227] _parseRequest(): headerName: Host 15:21:29.004 -> [ 74997][V][Parsing.cpp:228] _parseRequest(): headerValue: 192.168.4.1 15:21:29.004 -> [ 75003][V][Parsing.cpp:227] _parseRequest(): headerName: Connection 15:21:29.004 -> [ 75009][V][Parsing.cpp:228] _parseRequest(): headerValue: keep-alive 15:21:29.004 -> [ 75016][V][Parsing.cpp:227] _parseRequest(): headerName: User-Agent 15:21:29.004 -> [ 75022][V][Parsing.cpp:228] _parseRequest(): headerValue: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.63 15:21:29.049 -> [ 75039][V][Parsing.cpp:227] _parseRequest(): headerName: Accept 15:21:29.049 -> [ 75044][V][Parsing.cpp:228] _parseRequest(): headerValue: image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8 15:21:29.049 -> [ 75054][V][Parsing.cpp:227] _parseRequest(): headerName: Referer 15:21:29.049 -> [ 75060][V][Parsing.cpp:228] _parseRequest(): headerValue: http://192.168.4.1/ 15:21:29.049 -> [ 75067][V][Parsing.cpp:227] _parseRequest(): headerName: Accept-Encoding 15:21:29.094 -> [ 75073][V][Parsing.cpp:228] _parseRequest(): headerValue: gzip, deflate 15:21:29.094 -> [ 75080][V][Parsing.cpp:227] _parseRequest(): headerName: Accept-Language 15:21:29.094 -> [ 75086][V][Parsing.cpp:228] _parseRequest(): headerValue: en-GB,en;q=0.9,en-US;q=0.8 15:21:29.094 -> [ 75094][V][Parsing.cpp:255] _parseArguments(): args: 15:21:29.094 -> [ 75099][V][Parsing.cpp:238] _parseRequest(): Request: /favicon.ico 15:21:29.094 -> [ 75105][V][Parsing.cpp:239] _parseRequest(): Arguments: 15:21:29.094 -> [ 75110][E][WebServer.cpp:647] _handleRequest(): request handler not found 15:21:29.094 -> [ 75121][V][WebServer.cpp:294] handleClient(): New client: client.localIP()=192.168.4.1 15:21:40.142 -> [ 86172][V][WebServer.cpp:294] handleClient(): New client: client.localIP()=192.168.4.1 15:21:40.188 -> [ 86173][V][Parsing.cpp:121] _parseRequest(): method: GET url: /connecttest.txt search: 15:21:40.188 -> [ 86177][V][Parsing.cpp:227] _parseRequest(): headerName: Connection 15:21:40.188 -> [ 86183][V][Parsing.cpp:228] _parseRequest(): headerValue: Close 15:21:40.188 -> [ 86189][V][Parsing.cpp:227] _parseRequest(): headerName: User-Agent 15:21:40.188 -> [ 86195][V][Parsing.cpp:228] _parseRequest(): headerValue: Microsoft NCSI 15:21:40.188 -> [ 86201][V][Parsing.cpp:227] _parseRequest(): headerName: Host 15:21:40.188 -> [ 86207][V][Parsing.cpp:228] _parseRequest(): headerValue: www.msftconnecttest.com 15:21:40.234 -> [ 86214][V][Parsing.cpp:255] _parseArguments(): args: 15:21:40.234 -> [ 86219][V][Parsing.cpp:238] _parseRequest(): Request: /connecttest.txt 15:21:40.234 -> [ 86225][V][Parsing.cpp:239] _parseRequest(): Arguments: 15:21:40.234 -> [ 86231][E][WebServer.cpp:647] _handleRequest(): request handler not found 15:21:40.234 -> *wm:[2] <- Request redirected to captive portal 15:21:40.234 -> [ 86248][W][WebServer.cpp:434] send(): content length is zero 15:21:40.513 -> [ 86513][V][WebServer.cpp:294] handleClient(): New client: client.localIP()=192.168.4.1 15:21:40.513 -> [ 86513][V][Parsing.cpp:121] _parseRequest(): method: GET url: /connecttest.txt search: 15:21:40.513 -> [ 86517][V][Parsing.cpp:227] _parseRequest(): headerName: Connection 15:21:40.513 -> [ 86523][V][Parsing.cpp:228] _parseRequest(): headerValue: Close 15:21:40.513 -> [ 86529][V][Parsing.cpp:227] _parseRequest(): headerName: User-Agent 15:21:40.513 -> [ 86535][V][Parsing.cpp:228] _parseRequest(): headerValue: Microsoft NCSI 15:21:40.558 -> [ 86542][V][Parsing.cpp:227] _parseRequest(): headerName: Host 15:21:40.558 -> [ 86547][V][Parsing.cpp:228] _parseRequest(): headerValue: www.msftconnecttest.com 15:21:40.558 -> [ 86554][V][Parsing.cpp:255] _parseArguments(): args: 15:21:40.558 -> [ 86559][V][Parsing.cpp:238] _parseRequest(): Request: /connecttest.txt 15:21:40.558 -> [ 86566][V][Parsing.cpp:239] _parseRequest(): Arguments: 15:21:40.558 -> [ 86571][E][WebServer.cpp:647] _handleRequest(): request handler not found 15:21:40.558 -> *wm:[2] <- Request redirected to captive portal 15:21:40.558 -> [ 86588][W][WebServer.cpp:434] send(): content length is zero ```
kerem closed this issue 2026-02-28 01:29:18 +03:00
Author
Owner

@tablatronix commented on GitHub (Aug 22, 2022):

This example seems old, are you sure you are using the latest git or beta and master branch?

<!-- gh-comment-id:1222759375 --> @tablatronix commented on GitHub (Aug 22, 2022): This example seems old, are you sure you are using the latest git or beta and master branch?
Author
Owner

@letis009 commented on GitHub (Aug 22, 2022):

sorry for the delay . tested again
I downloaded the
https://github.com/tzapu/WiFiManager.git
version now and retested
if I do wm.resetSettings(); & wm.erase(); then after reboot i can not see the AP even those Debug clearly states it is running
I also tried not calling wifi.mode(STA); to see if maybe it would make a difference but only flashing a sketch with SSID and password set then flashing OnDemandConfigPortal.ino from /examples/super/ do I see a AP after pressing button

<!-- gh-comment-id:1222916711 --> @letis009 commented on GitHub (Aug 22, 2022): sorry for the delay . tested again I downloaded the https://github.com/tzapu/WiFiManager.git version now and retested if I do wm.resetSettings(); & wm.erase(); then after reboot i can not see the AP even those Debug clearly states it is running I also tried not calling wifi.mode(STA); to see if maybe it would make a difference but only flashing a sketch with SSID and password set then flashing OnDemandConfigPortal.ino from /examples/super/ do I see a AP after pressing button
Author
Owner

@tablatronix commented on GitHub (Aug 22, 2022):

Maybe make sure the ap is not timing out, sometimes It takes me over 2 minutes to see an ap, just to be sure you are running it for longer that 120s etc.

What board do you have? I think I have a c3 mini dev board, ill test it

<!-- gh-comment-id:1223104000 --> @tablatronix commented on GitHub (Aug 22, 2022): Maybe make sure the ap is not timing out, sometimes It takes me over 2 minutes to see an ap, just to be sure you are running it for longer that 120s etc. What board do you have? I think I have a c3 mini dev board, ill test it
Author
Owner

@letis009 commented on GitHub (Aug 23, 2022):

I am using the custom board with bare module. power and uart broken out
2.5a 5v usb power
3.3v ldo reg with in and output filter caps
Enable timing circuit
All as per Espressif hardware design specs
Max3232 ltt -> rs232 level converter

Same exact build works 100% on ESP32-wrover-ie but i can only Assume the c3 is risc-v and the wrover is freertos could be a route issue or something in the timing from flash arrangement differences

Instruction sets a bit out of my pay grade ATM 🤣

Tested time outs on 300s (5min)
The ap shows up almost immediately if ssid:password present before hand
It seems if the first attempt to connect to existing ap is successful then the ondemand works fine

<!-- gh-comment-id:1223346629 --> @letis009 commented on GitHub (Aug 23, 2022): I am using the custom board with bare module. power and uart broken out 2.5a 5v usb power 3.3v ldo reg with in and output filter caps Enable timing circuit All as per Espressif hardware design specs Max3232 ltt -> rs232 level converter Same exact build works 100% on ESP32-wrover-ie but i can only Assume the c3 is risc-v and the wrover is freertos could be a route issue or something in the timing from flash arrangement differences Instruction sets a bit out of my pay grade ATM 🤣 Tested time outs on 300s (5min) The ap shows up almost immediately if ssid:password present before hand It seems if the first attempt to connect to existing ap is successful then the ondemand works fine
Author
Owner

@letis009 commented on GitHub (Aug 23, 2022):

I ran some more tests and set the portal timeout to 3000s (50 minutes) and same MO really
no visible AP

if wm.autoConnect fails for what ever reason the portal will not be visible

<!-- gh-comment-id:1223689842 --> @letis009 commented on GitHub (Aug 23, 2022): I ran some more tests and set the portal timeout to 3000s (50 minutes) and same MO really no visible AP if wm.autoConnect fails for what ever reason the portal will not be visible
Author
Owner

@tablatronix commented on GitHub (Aug 23, 2022):

hmm I cannot get my C3 to boot, stuck in loop. Tried all kinds of pio ini options

<!-- gh-comment-id:1224329931 --> @tablatronix commented on GitHub (Aug 23, 2022): hmm I cannot get my C3 to boot, stuck in loop. Tried all kinds of pio ini options
Author
Owner

@letis009 commented on GitHub (Aug 23, 2022):

the primary use case I was testing was to use the config portal onDemand
I have bodged a stable work around but it isnt as designed

will flash the c3 with sketch containing credentials then flash the actual sketch
this seems to work fine for now

I will try get my hands on an S3 or similar to test

<!-- gh-comment-id:1224365826 --> @letis009 commented on GitHub (Aug 23, 2022): the primary use case I was testing was to use the config portal onDemand I have bodged a stable work around but it isnt as designed will flash the c3 with sketch containing credentials then flash the actual sketch this seems to work fine for now I will try get my hands on an S3 or similar to test
Author
Owner

@tablatronix commented on GitHub (Aug 23, 2022):

ok i have the bootloader bug fixed, ill test now, I swear such a waste of time, every-time I try to build esp there's some new bs.

<!-- gh-comment-id:1224372293 --> @tablatronix commented on GitHub (Aug 23, 2022): ok i have the bootloader bug fixed, ill test now, I swear such a waste of time, every-time I try to build esp there's some new bs.
Author
Owner

@tablatronix commented on GitHub (Aug 23, 2022):

[WIFI] HOSTNAME: esp32c3-3FFA6C
*wm:[1] AutoConnect 
[   255][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 0 - WIFI_READY
Guru Meditation Error: Core  0 panic'ed (Illegal instruction). Exception was unhandled.

oh well i give up for now

<!-- gh-comment-id:1224494240 --> @tablatronix commented on GitHub (Aug 23, 2022): ``` [WIFI] HOSTNAME: esp32c3-3FFA6C *wm:[1] AutoConnect [ 255][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 0 - WIFI_READY Guru Meditation Error: Core 0 panic'ed (Illegal instruction). Exception was unhandled. ``` oh well i give up for now
Author
Owner

@letis009 commented on GitHub (Aug 23, 2022):

where ... how does wifimanager store the credentials
where would be a good place to get this type of info

<!-- gh-comment-id:1224645783 --> @letis009 commented on GitHub (Aug 23, 2022): where ... how does wifimanager store the credentials where would be a good place to get this type of info
Author
Owner

@tablatronix commented on GitHub (Aug 23, 2022):

It uses the esp begin() native flash config

<!-- gh-comment-id:1224818115 --> @tablatronix commented on GitHub (Aug 23, 2022): It uses the esp begin() native flash config
Author
Owner

@tablatronix commented on GitHub (Aug 23, 2022):

Ok i have a working setup, but I am having some other strange issue. No ap because my code just stops executing?

[  3122][D][WiFiGeneric.cpp:966] _eventCallback(): WiFi Reconnect Running
[  3130][V][WiFiGeneric.cpp:97] set_esp_interface_ip(): Configuring Station static IP: 0.0.0.0, MASK: 0.0.0.0, GW: 0.0.0.0
*wm:[2] [EVENT] WIFI_REASON:  201
*wm:[2] [EVENT] WIFI_REASON: NO_AP_FOUND 
*wm:[2] Connection result: WL_NO_SSID_AVAIL
*wm:[1] AutoConnect: FAILED 
*wm:[2] Starting Config Portal 
*wm:[2] AccessPoint set password is VALID 
[  3162][V][WiFiGeneric.cpp:341] _arduino_event_cb(): STA Stopped
[  3165][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 3 - STA_STOP
...??????
<!-- gh-comment-id:1224819624 --> @tablatronix commented on GitHub (Aug 23, 2022): Ok i have a working setup, but I am having some other strange issue. No ap because my code just stops executing? ```php [ 3122][D][WiFiGeneric.cpp:966] _eventCallback(): WiFi Reconnect Running [ 3130][V][WiFiGeneric.cpp:97] set_esp_interface_ip(): Configuring Station static IP: 0.0.0.0, MASK: 0.0.0.0, GW: 0.0.0.0 *wm:[2] [EVENT] WIFI_REASON: 201 *wm:[2] [EVENT] WIFI_REASON: NO_AP_FOUND *wm:[2] Connection result: WL_NO_SSID_AVAIL *wm:[1] AutoConnect: FAILED *wm:[2] Starting Config Portal *wm:[2] AccessPoint set password is VALID [ 3162][V][WiFiGeneric.cpp:341] _arduino_event_cb(): STA Stopped [ 3165][D][WiFiGeneric.cpp:929] _eventCallback(): Arduino Event: 3 - STA_STOP ...?????? ```
Author
Owner

@tablatronix commented on GitHub (Aug 23, 2022):

Ok I bypassed some stuff and now it starts the AP but I see no AP!!!!!

So yeah this is buggered

<!-- gh-comment-id:1224874105 --> @tablatronix commented on GitHub (Aug 23, 2022): Ok I bypassed some stuff and now it starts the AP but I see no AP!!!!! So yeah this is buggered
Author
Owner

@letis009 commented on GitHub (Aug 23, 2022):

It is weird . Thank you for looking into the issue

<!-- gh-comment-id:1224877073 --> @letis009 commented on GitHub (Aug 23, 2022): It is weird . Thank you for looking into the issue
Author
Owner

@tablatronix commented on GitHub (Aug 23, 2022):

Can you try this change?

bool _disableSTA = true; // disable sta when starting ap, always

<!-- gh-comment-id:1224895514 --> @tablatronix commented on GitHub (Aug 23, 2022): Can you try this change? ` bool _disableSTA = true; // disable sta when starting ap, always`
Author
Owner

@tablatronix commented on GitHub (Aug 23, 2022):

well nm, i just removed all my testing and it still works.. I wonder if it is flash corruption..

I did some resetsettings AND wm.erase();, not sure if that fixed it , but I cannot make it fail

<!-- gh-comment-id:1224908036 --> @tablatronix commented on GitHub (Aug 23, 2022): well nm, i just removed all my testing and it still works.. I wonder if it is flash corruption.. I did some resetsettings AND wm.erase();, not sure if that fixed it , but I cannot make it fail
Author
Owner

@letis009 commented on GitHub (Aug 23, 2022):

Will test and let you know results

<!-- gh-comment-id:1224915824 --> @letis009 commented on GitHub (Aug 23, 2022): Will test and let you know results
Author
Owner

@tablatronix commented on GitHub (Aug 24, 2022):

I had to use Jasons fork, I cannot get platform IO to work on 3.0.2 without crashing or idf 4.4.1-beta

[env:esp32-c3-devkitm-1_WORKING]
platform  = https://github.com/Jason2866/platform-espressif32.git
board_build.partitions = minimal.csv
board_build.flash_mode = qio
board = esp32-c3-devkitm-1
framework = arduino

What version esp framework are you using and if pio, whats your ini?

<!-- gh-comment-id:1225159299 --> @tablatronix commented on GitHub (Aug 24, 2022): I had to use Jasons fork, I cannot get platform IO to work on 3.0.2 without crashing or idf 4.4.1-beta ``` [env:esp32-c3-devkitm-1_WORKING] platform = https://github.com/Jason2866/platform-espressif32.git board_build.partitions = minimal.csv board_build.flash_mode = qio board = esp32-c3-devkitm-1 framework = arduino ``` What version esp framework are you using and if pio, whats your ini?
Author
Owner

@letis009 commented on GitHub (Aug 24, 2022):

spinning up a vm with clean vsc and pio
will come back shortly with test results

<!-- gh-comment-id:1225298643 --> @letis009 commented on GitHub (Aug 24, 2022): spinning up a vm with clean vsc and pio will come back shortly with test results
Author
Owner

@letis009 commented on GitHub (Aug 24, 2022):

Awesome . success
All tests are good on Jasons fork with your pio above

for testing purposes on the master where should i call
bool _disableSTA = true; // disable sta when starting ap, always

I want to use AsyncDelay for other feature and it is giving me issues with older version i think

<!-- gh-comment-id:1225699773 --> @letis009 commented on GitHub (Aug 24, 2022): Awesome . success All tests are good on Jasons fork with your pio above for testing purposes on the master where should i call bool _disableSTA = true; // disable sta when starting ap, always I want to use AsyncDelay for other feature and it is giving me issues with older version i think
Author
Owner

@tablatronix commented on GitHub (Aug 24, 2022):

Its hardcoded in the .h file

<!-- gh-comment-id:1225717916 --> @tablatronix commented on GitHub (Aug 24, 2022): Its hardcoded in the .h file
Author
Owner

@letis009 commented on GitHub (Aug 24, 2022):

got you , Updating to espressif framework v5 and will test further

<!-- gh-comment-id:1225723011 --> @letis009 commented on GitHub (Aug 24, 2022): got you , Updating to espressif framework v5 and will test further
Author
Owner

@letis009 commented on GitHub (Aug 24, 2022):

Oops , clicked the wrong comment

VScode with pio and esp-idf on version 5 seems to work 100%
what ever the issue is seems resolved

can close issue
thanks for assistance

<!-- gh-comment-id:1225852699 --> @letis009 commented on GitHub (Aug 24, 2022): Oops , clicked the wrong comment VScode with pio and esp-idf on version 5 seems to work 100% what ever the issue is seems resolved can close issue thanks for assistance
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#1261
No description provided.