ESP32 OTA, I'm confused

I feel like a moron because I just cant make sense of how to do something simple. which is to update the firmware OTA. I have an ESP32 Dev module, and I am using PlatforIO IDE.
I was reading about the PIO Remote here
But that told me nothing informative on what I need to do.
I then looked here for the Arduino OTA but that is for ESP8266, and shows using Arduino IDE to do it not PlatforIO IDE.

My ideal end goal would be to have the ESP32 connect to my network, and when I point my browser to its IP it serves up a web page that I can upload my firmware file, after receiving it, it preforms the update and reboots.

What am I missing in all of this other than a smarter brain ?

1 Like

Yes, thank you. I am aware of them. But again, I do not want to use Arduino, and the other is for the ESP8266 OTA. I have tired both and neither of which worked. Its starts the upload but then stops at different times and never finishes.

Yup, tried that too, it does not even compile.

I just tried this and it worked perfect with no trouble.

Hi Ivan, I tried the same way as @mikemoy and I want to update the firmware OTA w/o to be connected to the same AP.

Actually I want to prepare my systems to updated and monitored when I’m on business trips or in holiday.

What I see is an solution for make firmware updates via the same AP. Thats fine but whats about real remote?

Hello Mr. Ivan,

I watched the video about JFrog Bintray and tried to make it work here. Follow the steps that I did:

  1. Created an account on Bintray

  2. Created a repository called WStation

  3. Created a package called bintray-secure-ota

  4. Cloned your sample code

  5. Changed platformio.ini to:
    [bintray]
    user =
    repository = WStation
    package = bintray-secure-ota
    api_token =

    [wifi]
    ssid =
    password =

    release_version = 1

  6. When env_default (in platformio.ini) is set to release, it uploads the code to bintray. It is working. When I set the env_default to debug and uploaded the firmware to the ESP32, the terminal shows the following log:
    Device version: v.0
    Connecting to … connected!
    IP address: 192.168.100.126
    [E][ssl_client.cpp:33] handle_error(): X509 - Certificate verification failed, e.g. CRL, CA or signature check failed
    [E][ssl_client.cpp:35] handle_error(): MbedTLS message code: -9984
    [E][WiFiClientSecure.cpp:109] connect(): start_ssl_client: -9984
    GET request failed, error, connection refused
    Error: Could not parse JSON!
    Could not load info about the latest firmware, so nothing to update. Continue …

What did I miss?

Please file an issue here Issues · platformio/bintray-secure-ota · GitHub