OTA: No response from device

Hi all,

I've been trying to use OTA on several ESP32 projects. The code has always compiled and installed correctly and the devices are visible in the Port tab of the Tools menu tab, however when I try to upload an update, it fails to connect to the device, giving the following message:

Sending invitation to 192.168.2.4
08:47:02 [ERROR]: No response from device
08:47:02 [ERROR]: No response from device

Does anyone know what is happening, and how to resolve it?

Thanks
Brian

reset it after Serial upload. then try OTA upload

If by reset, you mean power down the ESP32 and power it up again, then I've done that with all the devices, but with no success.

show the sketch you use to test it

Stock standard code from OTA Examples. I wondered if my AP is not allowing the traffic, but thought that anything within the AP network 192.168.x.x would be passed through

#include <WiFi.h>
#include <ESPmDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
//#include "credentials.h"

// Change to your WiFi credentials
const char* ssid = ".....";
const char* password = "......";

#define LEDpin 2

void setup(){
// Setup needed for OTA
Serial.begin(9600);
Serial.println("\nBooting...");
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_Basic_OTA");
// 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);
});
ArduinoOTA.onEnd( { Serial.println("\nEnd"); });
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
});
ArduinoOTA.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());

// My setup onwards
pinMode(LEDpin, OUTPUT);
}

void loop() {
ArduinoOTA.handle();
yield();
// Your programme loop from here
digitalWrite(LEDpin, HIGH); // turn the LED on (HIGH is the voltage level)
delay(100); // wait for a second
digitalWrite(LEDpin, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
// End of your programme loop

}

I was able to solve this error "No response from Device " during upload of basic OTA sketch.

You need to disable Firewall or open specific port on host.

Instead of Arduino IDE use the command line espota.py with host port number which is opened in Firewall.

If you are using Mcafee , you can open the port from Firewall settings->ports and system services->add

I have added port 40000 on host and it works great. You always uncheck it to disable the port and upload of sketch via OTA will stop.

Atanu@DESKTOP-5QG388E MINGW64 ~/OneDrive/Documents/ArduinoData/packages/esp32/hardware/esp32/1.0.4/tools
$ python espota.py -r -i 192.168.1.6 -f alexa_example.ino.esp32.bin -d -t 1000 -r -I 192.168.1.7 -P 40000 -p 3232
22:09:27 [DEBUG]: Options: {'timeout': 1000, 'esp_ip': '192.168.1.6', 'host_port': 40000, 'image': 'alexa_example.ino.esp32.bin', 'host_ip': '192.168.1.7', 'auth': '', 'esp_port': 3232, 'spiffs': False, 'debug': True, 'progress': True}
22:09:27 [INFO]: Starting on 192.168.1.7:40000
22:09:27 [INFO]: Upload size: 943296
Sending invitation to 192.168.1.6
22:09:27 [INFO]: Waiting for device...
Uploading: [============================================================] 100% Done...

22:10:01 [INFO]: Waiting for result...
22:10:02 [INFO]: Result: OK
22:10:02 [INFO]: Success

3 Likes