void setupOTA(){ ArduinoOTA.onStart([]() { Serial.println("Start"); digitalWrite(Red_Led, HIGH); digitalWrite(Blue_Led, LOW); delay(1000); digitalWrite(Blue_Led, HIGH); delay(500); }); ArduinoOTA.onEnd([]() { Serial.println("End"); digitalWrite(Blue_Led, HIGH); delay(1000); ledBlink(Blue_Led, 3, 100); }); ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) { Serial.printf("Progress: %u%%\n", (progress / (total / 100))); digitalWrite(Blue_Led, Blue_Led_State); Blue_Led_State = !Blue_Led_State; }); 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"); digitalWrite(Blue_Led, HIGH); }); ArduinoOTA.begin(); Serial.println("OTA started"); } void loopOTA(){ if (loop_counter == 5) { ArduinoOTA.handle(); delay(10); } if (Refresh) { Refresh = false; ///Serial.println("Refreshing..."); //Serial.printf("FreeMem:%d %d:%d:%d %d.%d.%d \n",ESP.getFreeHeap() , DateTime.hour,DateTime.minute, DateTime.second, DateTime.year, DateTime.month, DateTime.day); } }