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
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.
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:
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.
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.
General Hardware fault
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.