Issue with wifi on Xiao ESP32S3

Try this code if you have expansion board with SD installed

#include "FS.h"
#include "SD.h"
#include "SPI.h"
#include <time.h> 
#include <WiFi.h>

//#define SD_chipSelect D2 //XIAO 
#define SD_chipSelect 21 //XIAO ESP32S3 Cam Board

const char* ssid     = "your-ssid";
const char* password = "your-password";

long timezone = -5; 
byte daysavetime = 0;

void listDir(fs::FS &fs, const char * dirname, uint8_t levels)
{//Begin
  Serial.printf("Listing directory: %s\n", dirname);

  File root = fs.open(dirname);
  if(!root)
  {//Begin
    Serial.println("Failed to open directory");
    return;
  }//  End
  if(!root.isDirectory())
  {//Begin
    Serial.println("Not a directory");
    return;
  }//  End
  File file = root.openNextFile();
  while(file)
  {//Begin
    if(file.isDirectory())
    {//Begin
      Serial.print("  DIR : ");
      Serial.print (file.name());
      time_t t= file.getLastWrite();
      struct tm * tmstruct = localtime(&t);
      Serial.printf("  LAST WRITE: %d-%02d-%02d %02d:%02d:%02d\n",(tmstruct->tm_year)+1900,( tmstruct->tm_mon)+1, tmstruct->tm_mday,tmstruct->tm_hour , tmstruct->tm_min, tmstruct->tm_sec);
      if(levels)
      {listDir(fs, file.path(), levels -1);}
    }//  End 
    else 
    {//Begin
      Serial.print("  FILE: ");
      Serial.print(file.name());
      Serial.print("  SIZE: ");
      Serial.print(file.size());
      time_t t= file.getLastWrite();
      struct tm * tmstruct = localtime(&t);
      Serial.printf("  LAST WRITE: %d-%02d-%02d %02d:%02d:%02d\n",(tmstruct->tm_year)+1900,( tmstruct->tm_mon)+1, tmstruct->tm_mday,tmstruct->tm_hour , tmstruct->tm_min, tmstruct->tm_sec);
    }//  End
  file = root.openNextFile();
  }//  End
}//  End

void createDir(fs::FS &fs, const char * path)
{//Begin
  Serial.printf("Creating Dir: %s\n", path);
  if(fs.mkdir(path))
    {Serial.println("Dir created");} 
  else 
    {Serial.println("mkdir failed");}
}//  End

void removeDir(fs::FS &fs, const char * path)
{//Begin
  Serial.printf("Removing Dir: %s\n", path);
  if(fs.rmdir(path))
    {Serial.println("Dir removed");} 
  else 
    {Serial.println("rmdir failed");}
}//  End

void readFile(fs::FS &fs, const char * path)
{//Begin
  Serial.printf("Reading file: %s\n", path);
  File file = fs.open(path);
  if(!file)
  {//Begin
    Serial.println("Failed to open file for reading");
    return;
  }//  End
  Serial.print("Read from file: ");
  while(file.available())
  {Serial.write(file.read());}
  file.close();
}//  End

void writeFile(fs::FS &fs, const char * path, const char * message)
{//Begin
  Serial.printf("Writing file: %s\n", path);
  File file = fs.open(path, FILE_WRITE);
  if(!file)
  {//Begin
    Serial.println("Failed to open file for writing");
    return;
  }//  End
  if(file.print(message))
    {Serial.println("File written");}
  else 
    {Serial.println("Write failed");}
  file.close();
}//  End

void appendFile(fs::FS &fs, const char * path, const char * message)
{//Begin
  Serial.printf("Appending to file: %s\n", path);
  File file = fs.open(path, FILE_APPEND);
  if(!file)
  {//Begin
    Serial.println("Failed to open file for appending");
    return;
  }//  End
    if(file.print(message))
    {Serial.println("Message appended");}
  else 
    {Serial.println("Append failed");}
  file.close();
}//  End

void renameFile(fs::FS &fs, const char * path1, const char * path2)
{//Begin
  Serial.printf("Renaming file %s to %s\n", path1, path2);
  if (fs.rename(path1, path2)) 
    {Serial.println("File renamed");}
  else 
    {Serial.println("Rename failed");}
}//  End

void deleteFile(fs::FS &fs, const char * path)
{//Begin
  Serial.printf("Deleting file: %s\n", path);
  if(fs.remove(path))
    {Serial.println("File deleted");} 
  else 
    {Serial.println("Delete failed");}
}//  End

void setup()
{//Begin
  Serial.begin(19200);
  // We start by connecting to a WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) 
  {//Begin
    delay(500);
    Serial.print(".");
  }//  End
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  Serial.println("Contacting Time Server");
	configTime(3600*timezone, daysavetime*3600, "time.nist.gov", "0.pool.ntp.org", "1.pool.ntp.org");
	struct tm tmstruct ;
  delay(2000);
  tmstruct.tm_year = 0;
  getLocalTime(&tmstruct, 5000);
	Serial.printf("\nNow is : %d-%02d-%02d %02d:%02d:%02d\n",(tmstruct.tm_year)+1900,( tmstruct.tm_mon)+1, tmstruct.tm_mday,tmstruct.tm_hour , tmstruct.tm_min, tmstruct.tm_sec);
  Serial.println(""); 
  if(!SD.begin(SD_chipSelect))
  {//Begin
    Serial.println("Card Mount Failed");
    return;
  }//  End
  uint8_t cardType = SD.cardType();
  if(cardType == CARD_NONE)
  {//Begin
    Serial.println("No SD card attached");
    return;
  }//  End
  Serial.print("SD Card Type: ");
  if(cardType == CARD_MMC)
    {Serial.println("MMC");}
  else if(cardType == CARD_SD)
    {Serial.println("SDSC");} 
  else if(cardType == CARD_SDHC)
    {Serial.println("SDHC");} 
  else 
    {Serial.println("UNKNOWN");}
  uint64_t cardSize = SD.cardSize() / (1024 * 1024);
  Serial.printf("SD Card Size: %lluMB\n", cardSize);
  listDir(SD, "/", 0);
  removeDir(SD, "/mydir");
  createDir(SD, "/mydir");
  deleteFile(SD, "/hello.txt");
  writeFile(SD, "/hello.txt", "Hello ");
  appendFile(SD, "/hello.txt", "World!\n");
	listDir(SD, "/", 0);
  Serial.printf("All Done!....");
}//  End

void loop()
{}