Tried to get this ESP32 S2 mini board (https://www.amazon.com/HiLetgo-ESP32-S2FN4R2-ESP32-S2-Type-C-Connect/dp/B0B291LZ99/ref=sr_1_1?crid=3IAI3UKFWCQD1&keywords=hiletgo+mini+s2&qid=1678128998&sprefix=%2Caps%2C447&sr=8-1) running and cannot get the WiFi to connect.
Is the board fully supported in the Arduino IDE? I see conflicting information across the web. I'm using Arduino IDE 2.03/2.04.
Code is a simple test case with typical connect sequence I've used in dozens of projects. WiFi.status() returns a 6 (disconnect) sometimes moves to 1 (no_ssid_avail), never connects. It lists local networks with WiFi.SSID() so it can see the wifi. Tried different board types, nothing works so far. Using same credentials as working projects on other devices. (Tried Deneyap Mini v2, ESP32S2 Dev Module, LOLIN S2 Mini, ESP32S2 Native USB as board types).
Since I was using an ESP32 feather board before this, should I worry about library conflicts?
Mrburnette:
I did not intend to imply it is an Arduino board, I was asking about the development environment, that as you point out, generally supports these boards and allows you to program them.
The ESpressif ESP32 forum has a few notes that imply the Arduino environment did not fully support the ESP32s2 but the info is a couple years old. A lot of info on that forum is for use in the Espressif environment. For a variety of reasons I’d prefer not jump to that environment which is why I was asking about the Arduino IDE. If the answer is that is the only way to get these boards to work, so be it, but I’d like an explicit statement.
The Random Nerd Tutorials is where much of my work is derived from.
I did not originally include the code because it was boringly standard. But here it is.
/*ESP32s2*/
#include <WiFi.h>
IPAddress Server_ip(192, 168, 1, 201); // IP address of this box
IPAddress gateway(192, 168, 1, 254); // gateway of your network
IPAddress subnet(255, 255, 255, 0); // subnet mask of your network
IPAddress dns(192, 168, 1, 254); //dns address needed to help get to internet
const char* ssid = "your network";
const char* password = "your password";
void setup() {
// set the speed for the serial monitor:
Serial.begin(9600);
delay(1000);
Serial.println("Your Arduino is awake ...");
//slow down the program, wait for some input so you know things are basically working
String ReceivedInput;
ReceivedInput = WaitForInput("Please enter your first name.");
Serial.print("Your first name is: ");
Serial.println(ReceivedInput);
Serial.print("Scan start ... ");
//scan for networks
int n = WiFi.scanNetworks();
Serial.print(n);
Serial.println(" network(s) found");
for (int i = 0; i < n; i++) {
Serial.print(WiFi.SSID(i));
Serial.print("\n");
}
//do some set up
WiFi.config(Server_ip, dns, gateway, subnet); // forces to use the fixed IP
// WiFi.mode(WIFI_AP);
WiFi.mode(WIFI_STA);
//connect to Wifi
WiFi.begin(ssid, password);
//WiFi.softAP(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(WiFi.status());
//Serial.print(".");
delay(1000);
}
Serial.print("Connecting to: ");
Serial.print(ssid);
Serial.print("\n");
Serial.print("This device IP address: ");
Serial.println(WiFi.localIP());
Serial.println("Your Arduino is done now and will start the loop, forever doing nothing ...");
}
void loop() {
// leave empty for now
}
String WaitForInput(String Question) {
Serial.println(Question);
while (!Serial.available()) {
// wait for input
}
return Serial.readStringUntil(10);
}
I have a few in the parts bin; have not used in any recent projects. The core page on GitHub suggest the core essentially works, "connecting" is a very basic function. Fully compatible? One would have to ask the core authors.
I did do a search on the Espressif ESP32 Arduino forum: