ESP32-S3 OTA Not Working - No response from device

Hi all,

I have an issue where OTA isn't working on my ESP32-S3. It is detectable on the Arduino IDE as a network port, but when I try to program using OTA, it times out and give out the error "No response from the ESP". There was a point where it was working flawlessly before, and it just abruptly stopped. I wasn't sure if it was something I changed, but I could not figure it out. I haven't messed with trying to fix this for the last few months, but now I wanted to revisit this issue, so I can get this solved and move on to fixing another issue, which may or may not be related to this one.

The other issue is ArduinoJson not communicating with my MQTT broker on Home Assistant, if anyone is curious. I'm not sure if the two issues are related, but right now my focus is working on fixing the OTA.

Arduino IDE: V1.8.19
Microcontroller: ESP32-S3
ESP32 Core Version: 2.0.10 from Espressif Systems

what kind partition scheme are you using is it space allocated for OTA. What code are you using for OTA

I'm using the default 4MB partition. I've been doing my testing on the default OTA sketch as a test. I've confirmed my ESP32 is connected to WiFi, as I'm getting an IP Address readout.

Can you share the code and output shown in the serial monitor

#include <WiFi.h>
#include <ESPmDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

const char* ssid = "Kame House - 2.4GHz";
const char* password = "WeGott@P0wer!";

void setup() {
  Serial.begin(115200);
  Serial.println("Booting");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("Connection Failed! Rebooting...");
    delay(5000);
    ESP.restart();
  }

  // Port defaults to 3232
  // ArduinoOTA.setPort(3232);

  // Hostname defaults to esp3232-[MAC]
  // ArduinoOTA.setHostname("myesp32");

  // No authentication by default
  // ArduinoOTA.setPassword("admin");

  // Password can be set with it's md5 value as well
  // MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
  // ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");

  ArduinoOTA
    .onStart([]() {
      String type;
      if (ArduinoOTA.getCommand() == U_FLASH)
        type = "sketch";
      else // U_SPIFFS
        type = "filesystem";

      // NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
      Serial.println("Start updating " + type);
    })
    .onEnd([]() {
      Serial.println("\nEnd");
    })
    .onProgress([](unsigned int progress, unsigned int total) {
      Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
    })
    .onError([](ota_error_t error) {
      Serial.printf("Error[%u]: ", error);
      if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
      else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
      else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
      else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
      else if (error == OTA_END_ERROR) Serial.println("End Failed");
    });

  ArduinoOTA.begin();

  Serial.println("Ready");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  ArduinoOTA.handle();
  Serial.println(WiFi.localIP());
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.