original python implementation https://github.com/esp8266/Arduino/blob/master/tools/espota.py espota.py re-written in c# This will work with the ArduinoOTA https://github.com/esp8266/Arduino/tree/master/libraries/ArduinoOTA works with both esp32 and esp8266 you may need to increase the timeout value on the controller side if your update fails half way.