Issue with wifi on Xiao ESP32S3

Dear PJ,


Thank you for your response.

Both DCHP (home & work) are working fine. For WPS, I will try when back home (it’s 5:30 pm around here). Obviously I don’t have access to a WPS button at work.

For the IP, when I reboot the Xiao through the physical button, it get one from the Acess Point. But as I never connect otherwise, I don’t get an IP.

Since my last edit, I finally understood how to activate verbose logs. Here are the last version of my wifi code and the logs associated:

Type any key to continue: 
Initializing WiFi...
Putting module in STA mode ([  6210][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 0 - WIFI_READY
1)
Disconnecting from previous AP ([  6245][V][WiFiGeneric.cpp:340] _arduino_event_cb(): STA Started
[  6246][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 2 - STA_START
[  6267][V][WiFiGeneric.cpp:343] _arduino_event_cb(): STA Stopped
[  6268][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 3 - STA_STOP
1)
Connecting to WiFi... 
Putting module in STA mode ([  7280][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 0 - WIFI_READY
1)
Begining connection ([  7282][V][WiFiGeneric.cpp:340] _arduino_event_cb(): STA Started
[  7284][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 2 - STA_START
[  7344][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
6)
Initial status: WL_DISCONNECTED
Waiting for connection: [  9153][V][WiFiGeneric.cpp:362] _arduino_event_cb(): STA Disconnected: SSID: SFR-5690, BSSID: 24:7f:20:9e:56:96, Reason: 2
[  9154][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 5 - STA_DISCONNECTED
[  9155][W][WiFiGeneric.cpp:1061] _eventCallback(): Reason: 2 - AUTH_EXPIRE
[  9155][D][WiFiGeneric.cpp:1081] _eventCallback(): WiFi Reconnect Running
[  9166][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
[ 10263][V][WiFiGeneric.cpp:362] _arduino_event_cb(): STA Disconnected: SSID: SFR-5690, BSSID: 24:7f:20:9e:56:96, Reason: 2
[ 10264][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 5 - STA_DISCONNECTED
[ 10264][W][WiFiGeneric.cpp:1061] _eventCallback(): Reason: 2 - AUTH_EXPIRE
[ 10265][D][WiFiGeneric.cpp:1085] _eventCallback(): WiFi AutoReconnect Running
[ 10267][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
[ 11287][V][WiFiGeneric.cpp:362] _arduino_event_cb(): STA Disconnected: SSID: SFR-5690, BSSID: 24:7f:20:9e:56:96, Reason: 2
[ 11288][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 5 - STA_DISCONNECTED
[ 11288][W][WiFiGeneric.cpp:1061] _eventCallback(): Reason: 2 - AUTH_EXPIRE
[ 11289][D][WiFiGeneric.cpp:1085] _eventCallback(): WiFi AutoReconnect Running
void init_wifi() {
  // Set WiFi to STA mode and disconnect from an AP if it was previously connected
  Serial.println("Initializing WiFi...");

  Serial.print("Putting module in STA mode (");
  Serial.print(WiFi.mode(WIFI_STA));
  Serial.println(")");

  Serial.print("Disconnecting from previous AP (");
  Serial.print(WiFi.disconnect(true, true));
  Serial.println(")");

  delay(1000);

  // Set WiFi to STA mode and connect to AP
  Serial.println("Connecting to WiFi... ");

  Serial.print("Putting module in STA mode (");
  Serial.print(WiFi.mode(WIFI_STA));
  Serial.println(")");

  Serial.print("Begining connection (");
  Serial.print(WiFi.begin(ssid, password));
  Serial.println(")");

  Serial.print("Initial status: ");
  print_wifi_status_label();
  Serial.println();

  delay(1000);

  Serial.print("Waiting for connection: ");
  WiFi.waitForConnectResult(WIFI_CONNECTION_TIMEOUT);
  print_wifi_status_label();
  Serial.println();
  
  // Retries if necessary
  while (WiFi.status() != WL_CONNECTED) {
    Serial.println("Retrying... ");

    Serial.print("Calling reconnect (");
    Serial.print(WiFi.reconnect());
    Serial.println(")");

    Serial.print("Waiting for connection: ");
    WiFi.waitForConnectResult(WIFI_CONNECTION_TIMEOUT);
    print_wifi_status_label();
    Serial.println();

    if (WiFi.status() == WL_CONNECT_FAILED) {
      delay(WIFI_CONNECTION_TIMEOUT);
    }
  }

  // Print IP address
  Serial.print("Obtained IP address: ");
  Serial.println(WiFi.localIP());
  Serial.println();
}

I seems to want to register an empty static IP. Next debug step on my side: try to force a static ip outside the DHCP range to see if it corrects the issue.