ESP32-S3 not responding on Arduino Uno R4 WiFi

I have the Arduino Uno R4 wifi board, but it does not work with even a sketch as "Scan Network":

/*
  This example  prints the board's MAC address, and
  scans for available WiFi networks using the NINA module.
  Every ten seconds, it scans again. It doesn't actually
  connect to any network, so no encryption scheme is specified.

  Circuit:
   * Uno R4 WiFi

  created 13 July 2010
  by dlf (Metodo2 srl)
  modified 21 Junn 2012
  by Tom Igoe and Jaymes Dec

  Find the full UNO R4 WiFi Network documentation here:
  https://docs.arduino.cc/tutorials/uno-r4-wifi/wifi-examples#scan-networks
 */



#include <WiFiS3.h>

void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600);
 delay(2000);

  // check for the WiFi module:
  if (WiFi.status() == WL_NO_MODULE) {
    Serial.println("Communication with WiFi module failed!");
    // don't continue
    while (true);
  }

  String fv = WiFi.firmwareVersion();
  if (fv < WIFI_FIRMWARE_LATEST_VERSION) {
    Serial.println("Please upgrade the firmware");
  }
}

void loop() {
  byte mac[6];
  // scan for existing networks:
  Serial.println("Scanning available networks...");
  listNetworks();
  WiFi.macAddress(mac);
  Serial.println();
  Serial.print("Your MAC Address is: ");
  printMacAddress(mac);
  delay(10000);
}

void listNetworks() {
  // scan for nearby networks:
  Serial.println("** Scan Networks **");
  int numSsid = WiFi.scanNetworks();
  if (numSsid == -1) {
    Serial.println("Couldn't get a WiFi connection");
    while (true);
  }

  // print the list of networks seen:
  Serial.print("number of available networks:");
  Serial.println(numSsid);

  // print the network number and name for each network found:
  for (int thisNet = 0; thisNet < numSsid; thisNet++) {
    Serial.print(thisNet);
    Serial.print(") ");
    Serial.print(WiFi.SSID(thisNet));
    Serial.print(" Signal: ");
    Serial.print(WiFi.RSSI(thisNet));
    Serial.print(" dBm");
    Serial.print(" Encryption: ");
    printEncryptionType(WiFi.encryptionType(thisNet));
  }
}

void printEncryptionType(int thisType) {
  // read the encryption type and print out the name:
  switch (thisType) {
    case ENC_TYPE_WEP:
      Serial.println("WEP");
      break;
    case ENC_TYPE_WPA:
      Serial.println("WPA");
      break;
    case ENC_TYPE_WPA2:
      Serial.println("WPA2");
      break;
    case ENC_TYPE_WPA3:
      Serial.print("WPA3");
      break;   
    case ENC_TYPE_NONE:
      Serial.println("None");
      break;
    case ENC_TYPE_AUTO:
      Serial.println("Auto");
      break;
    case ENC_TYPE_UNKNOWN:
    default:
      Serial.println("Unknown");
      break;
  }
}


void printMacAddress(byte mac[]) {
  for (int i = 0; i < 6; i++) {
    if (i > 0) {
      Serial.print(":");
    }
    if (mac[i] < 16) {
      Serial.print("0");
    }
    Serial.print(mac[i], HEX);
  }
  Serial.println();
}

When I go into the serial monitor it is supposed to either display the networks nearby, Say "Please upgrade the firmware", or Say "Communication with WiFi module failed!". But, it does not say anything in serial monitor.
Any help will be appreciated, it has been doing this since i got it.

See if it helps you:

I've tried that but I don't have a MacOS, Windows, or linux. I only have a ChromeOS.

Hi @cool_cat3275. Your ChromeOS computer is actually running Linux. So if you are able to put the computer into "developer mode", you can then open a Linux shell command prompt:

https://www.chromium.org/chromium-os/developer-library/guides/device/developer-mode/#getting-to-a-command-prompt

I don't have access to a ChromeOS machine so I can't say for sure, but I think that once you do that you should be able to follow the instructions here to update the firmware:

https://support.arduino.cc/hc/en-us/articles/9670986058780-Update-the-connectivity-module-firmware-on-UNO-R4-WiFi#linux

That is true...
But it is a family computer on Google Family Link. Which disables developer commands.

I ended up buying a Chromebox so that I can be more effective in supporting ChromeOS users.

I did some experimentation in hopes I might be able to find some way to update the firmware on the UNO R4 WiFi board from a ChromeOS machine.

I found that you can run a Linux terminal on a ChromeOS machine even without having developer mode enabled. That gave me hope that it might be possible to run the update script from the terminal. Unfortunately this didn't work. The problem is that you need write permissions for the UNO R4 WiFi's USB device, and there is no way to get those permissions in the Linux virtual machine in which the terminal runs.

So it looks like it will not be possible for you to update the firmware using your ChromeOS computer. Do you have a friend or family member with a Linux, macOS, or Windows computer that might let you use it to update the firmware?

If not, you could check to see if there is something like a "Makerspace" in your area. You might be able to get access to the resources you need to update the firmware through such a place.

1 Like