My ESP32 S3 (Zero) won't connect to wifi

I just purchased a new ESP32 S3 Zero board. Using the Arduino IDE I tried to run a script, which I had previously run on another exact same board but my new ESP would not connect to the internet. I tried connecting to a hotspot but no results. I have to other ESP’s exact same boards and both connect perfectly. I tried scanning and it detects the network but when I try to join it doesn’t work.


const char* ssid     =  "VX220-0175";
const char* password =  "------------";

void printStatus(int status) {
  switch (status) {
    case WL_NO_SHIELD: Serial.println("\tNo Shield"); break;
    case WL_IDLE_STATUS: Serial.println("\tIdle"); break;
    case WL_NO_SSID_AVAIL: Serial.println("\tNo SSID"); break;
    case WL_SCAN_COMPLETED: Serial.println("\tScan Complete"); break;
    case WL_CONNECTED: Serial.println("\tConnected"); break;
    case WL_CONNECT_FAILED: Serial.println("\tFail"); break;
    case WL_CONNECTION_LOST: Serial.println("\tList"); break;
    case WL_DISCONNECTED: Serial.println("\tDisconnected"); break;
  }
}

void connectToWiFi(){
  int status = WL_IDLE_STATUS;

  // Connect to wifi
  Serial.println("connecting to wifi");

  while (status != WL_CONNECTED) {
    Serial.printf("Attempting to connect to SSID: %s\n", ssid);
    status = WiFi.begin(ssid, password);

    // Wait for 10 seconds or until the wifi status is set to connected
    for (int i = 0; i < 10; i++) {
      delay(1000);
      status = WiFi.status();
      printStatus(status);

      if (status == WL_CONNECTED) {
        break;
      } 
    }
  }
  Serial.println("connected");

}

void setup() {
  Serial.begin(115200);
  connectToWiFi();
}
void loop() {
  // put your main code here, to run repeatedly:
  Serial.println("hello world");
  delay(1000);

}

Output

connecting to wifi
Attempting to connect to SSID: VX220-0175
	Disconnected
	Disconnected
	Disconnected
	Disconnected
	Disconnected
	Disconnected
	Disconnected
	Disconnected
 	Disconnected
	Disconnected
Attempting to connect to SSID: VX220-0175
	Fail
	Fail
	Fail
	Fail
	Fail
	Fail
	Fail
	Fail
	Fail
	Fail
Attempting to connect to SSID: VX220-0175
	Fail
	Fail
	...

Output on another ESP32 S3 Zero board.

connecting to wifi
Attempting to connect to SSID: VX220-0175
	Idle
	Connected
connected
hello world

Hi @Gabriel90505

Welcome to the forum!

Sorry to hear that you’re having issues with that ESP, I would say that if the code works with other ESPs that are the same model and the only change in the setup is the module there’s a good chance that the module is faulty.

Might be worth checking the solder joints. I believe on those the wifi antenna is the Red (C3) ceramic antenna

I had a look at the ceramic antenna and its solder joints. Both the ones that connect and the one that doesn’t seem to have fairly similar soldering. There doesn’t seem to be a dry joint and the solder is wicking up the antennas pins. Further more when I run a wifi scan (as per the WiFi library example) I get the following output:

Setup done
Scan start
Scan done
16 networks found
Nr | SSID                             | RSSI | CH | Encryption
 1 | VX220-0175                       |  -44 | 11 | WPA2
 2 | dlink-49AE                       |  -58 | 12 | WPA+WPA2
 3 | NetComm 2844                     |  -68 |  9 | WPA2
 4 | dlink-49AE_2GEXT                 |  -70 | 12 | WPA2
 5 | WiFi-5514                        |  -73 |  5 | WPA2
 6 | Rinat                            |  -75 |  2 | WPA2
 7 | Rinat                            |  -79 |  2 | WPA+WPA2
 8 | uwu                              |  -82 |  8 | WPA2
 9 | dymiddle2                        |  -85 |  7 | WPA2
10 | BlackVue770X-EABCC3              |  -89 |  6 | WPA2
11 | PS004788                         |  -90 |  1 | WPA2
12 | PS004788_L                       |  -91 |  1 | WPA2
13 | VX220-BDDA                       |  -91 |  8 | WPA2
14 | ChilliSauce1_EXT                 |  -93 |  1 | WPA+WPA2
15 | TelstraF9EB66                    |  -93 |  7 | WPA2+WPA3
16 | BelongC8CB1A                     |  -94 | 11 | WPA2

As you can see my network is listed at the top. To me this suggests the antennae is functioning as it should.

Yeah, I agree,

So if it can hear networks but not connect, then either the transmit is no working or something is up with the connection procedure.

Can you set it up as and AP and connect it it ?

I ran the “WiFiAccessPoint.ino” from the WiFi Library with the setup


#include <WiFi.h>
#include <WiFiClient.h>
#include <WiFiAP.h>

#define LED_BUILTIN 2   // Set the GPIO pin where you connected your test LED or comment this line out if your dev board has a built-in LED

// Set these to your desired credentials.
const char *ssid = "HotStuff";
// const char *password = "vindalo";

WiFiServer server(80);


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

  // You can remove the password parameter if you want the AP to be open.
  // a valid password must have more than 7 characters
  if (!WiFi.softAP(ssid)) {
    log_e("Soft AP creation failed.");
    while(1);
  }

  IPAddress myIP = WiFi.softAPIP();
  Serial.print("AP IP address: ");
  Serial.println(myIP);
  server.begin();

  Serial.println("Server started");
}

The ESP’s that connected to the wifi had no problem, but the ESP that wouldn’t connect did wasn’t able to broadcast its AP even though it said the server had started.

That seems to indicate that it can receive OK but not transmit. Since its the same code as on the other boards, we should be able to rule out code/settings issues.
So to me this comes down two one of the following.

  1. Power issues: TX will use more power then RX, so maybe something on the supply to the chip is failing; e.g. the 3.3V regulator, It could be hard to catch, but you could try checking the 3.3V as its trying to connect to/tx its SSID.

  2. General Hardware fault

  3. For some reason, the chip is not exactly the same as the others and needs something different. As i don’t use Arduino, I can only comment on the base IDF, which checks my chip before programming it, so i clearly know if the chip is different.

Thanks Micheal,
Well it seems either way Core has sent me a faulty chip so I will have to ask for a replacement.