OTA ESP32 GUI Makes Updates Simple

One of the disadvantages of having cheap WiFi-capable boards like those based on the ESP32 is that you have to update them. If you have even a few in every room of your house, it can be a pain to pull them out and connect them to a cable for programming. Over the air programming is a great answer, and [Kevin] shows how you can control the update via a simple GUI. You can see a video demonstration of how it works below.

[Kevin] uses a ready-made OTA library to do the work, but creates a GUI configuration and downloader tool. There is a manual step to force the board into the OTA mode, which might be a mild inconvenience, but it improves security since you need physical access to the device to do an update.

The GUI uses Processing’s Python mode and generates for Windows, Linux, or the Mac. Of course, you can do the same job with a command line interface, which might be more daunting for human operators but would be much easier to integrate with an automated system. For example, you might want to update as part of a Makefile.

You do need Java on the workstation to get everything working. We’ve seen ESP32 OTA done before. You can even pull the same stunt with an Arduino.

17 thoughts on “OTA ESP32 GUI Makes Updates Simple

  1. I can strongly recommend that you give a shot to Mongoose OS. https://mongoose-os.com/
    I am not affiliated with them in any way, but i am happy user (and sometimes opensource contributor).
    They provide just the right amount of OS to be useful, but not limiting on such small devices. It’s almost as good as bare metal, but solves lots of common issues (eg. reliable OTA updates). Some advanced features are available as binary blobs for very reasonable prices, but even the free opensource modules are extremely useful. Eg. you can push OTA to device for free, but if you want device to regulary check your cloud for updates, you have to pay. This makes it perfect match for both hobbyist and enterprise users.

    Also take a look at the modules they provide, very useful: https://github.com/mongoose-os-libs/
    You can even run legacy code from Arduino IDE…

      1. Going this way, why not NuttX? ThreadX/AzureRTOS? uC-OS? RTOSes and compilers are almost like a religion. It does make more sense to stick with a provider that has a whole cloud behind them (Amazon, Microsoft) to future-proof the product.

      2. Mongoose OS contains FreeRTOS as kernel. But provides lots of convenient libraries which can be loaded on top of it. FreeRTOS is very nice, but serves different purpose. it is low level… It does not have stuff like OTA, TLS or MQTT.

  2. Thats a lamo way to do it. No one wants to install more software on their PC. The way I did it was 2 ways. The first is it acts as an AP. You connect to it via any browser, and it serves up its own web page. From there you can just click the file you want and it downloads / flashes, and then reboots. The second way is that it connects to your AP and when you point your browser to its IP address it again serves up that same web page.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.