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.