Illustration comparing Arduino OTA and Web OTA firmware update methods on the EQSP32 industrial ESP32-based micro-PLC IIoT controller. The image shows a laptop with Arduino IDE labeled “Arduino OTA” on the left and a web browser update window labeled “Web OTA” on the right, under the title “Over-the-Air Updates.”

Industrial ESP32 PLC Over-the-Air Updates (OTA): How to Wirelessly Update EQSP32 Firmware

The EQSP32 micro‑PLC gives you two built‑in ways to update firmware without a USB cable: the Arduino OTA and a production‑ready Web Interface Maintenance Panel running on port 8000.

Whether you’re in the development phase using Arduino OTA or deploying production firmware updates through the browser-based Web Interface Panel, both methods work seamlessly over Wi-Fi or Ethernet. OTA tasks run alongside your application without requiring extra code, and the device becomes available for secure field upgrades as soon as it connects to the local network.

In this article, you’ll learn:

  • When to use Arduino OTA vs the Web Maintenance Panel OTA
  • How to use the Arduino OTA update
  • How to reach the maintenance UI and update the EQSP32 with a new production firmware

Choosing quickly

  • Use Arduino OTA when you’re developing, iterating, and have the source code and Arduino IDE and connection with USB-C cable is not possible or not convenient.
  • Use Web Maintenance Panel OTA when you’re shipping, servicing, or updating installed units with a compiled binary.

Both methods are protected by the same OTA password (default admin), which you change or remove via the EQConnect mobile app. OTA runs over either Wi‑Fi or Ethernet and coexists with your application without extra sketch code.

Learn how to use Arduino OTA on EQSP32.

Learn how to use the EQSP32 Web Interface Maintenance Panel for OTA.

Before you begin …

Before getting started with experimenting with OTA updates on EQSP32, ensure you’re up to date with the latest API improvements and have completed the necessary setup steps. Reviewing the official documentation will help avoid common pitfalls and ensure a smooth update process.

Recommended Documentation

Before performing OTA updates on your EQSP32 industrial ESP32 micro-PLC, make sure the following requirements are met:

Hardware and Power

  • Ensure the EQSP32 is powered with a stable 12-24 V DC supply.
  • Keep a USB cable available for the initial firmware upload and debugging.

Network and Provisioning

  • Connect the EQSP32 via Wi-Fi or Ethernet.
  • Use the EQConnect mobile app to configure the EQSP32 device:
    • Setup Wi-Fi SSID and password.
    • Select static IP/DHCP for Wi-Fi and Ethernet connectivity (default is DHCP).
    • Set the timezone (required for NTP sync and Web UI time display).
    • Configure the OTA password (default is admin, which can be changed or removed).

Arduino IDE Build Settings

  • Board: ESP32-S3
  • Core version: ESP32 v2 (v3 is not supported)
  • Flash size: 8 MB
  • Partition scheme: 8M with SPIFFS

Library Version Requirement

  • OTA functionality (Arduino OTA and Web Maintenance Panel OTA) is available starting from EQSP32 library v1.0.0.
  • Always use the latest release from GitHub: EQSP32 Releases

OTA Password

  • The default OTA password is admin.
  • The same password applies to both Arduino OTA and the Web Maintenance Panel OTA.
  • Use EQConnect to change or remove the password for production deployments.

Arduino OTA — Source Code-Based Updates for Development

What Arduino OTA is and how it works on EQSP32

Arduino OTA (Over-the-Air) is a method that lets you upload new firmware to an ESP32 device — the heart of the EQSP32 micro-PLC — over the local network, directly from the Arduino IDE. This eliminates the need for a USB connection and is widely used in the Arduino and ESP32 ecosystem for development and testing, especially when physical access to the hardware is not convenient or not possible.

On the EQSP32, Arduino OTA is fully built into the library. As soon as the device is online, it automatically registers itself as a network upload target in the Arduino IDE. You compile your project as usual and simply select the device from the network ports list to flash it wirelessly. No OTA-specific code needs to be added to your sketch — the EQSP32 runtime manages the OTA task seamlessly in the background.

Process diagram illustrating Arduino OTA flow for EQSP32: source code built in Arduino IDE by a developer, uploaded wirelessly over the network via Arduino OTA, and applied as a firmware update to the EQSP32 micro-PLC.
Workflow for Arduino OTA updates on EQSP32 during development.

Why and when to use Arduino OTA

This method is best suited for development and testing environments, especially in cases where the controller is installed in a closed panel or remote test bench and physical USB access is inconvenient.

How to use Arduino OTA on EQSP32

  • You compile the firmware from source code in Arduino IDE.
  • Instead of selecting a COM/USB port, you choose the EQSP32 device in the network ports list.
  • Arduino IDE compiles and uploads the firmware to the device using OTA over the local network.
Screenshot of Arduino IDE Tools > Port menu with EQSP32 IIoT PLC available as a network port at IP address 192.168.1.86, ready for Over-the-Air firmware upload without USB connection.
Arduino IDE showing EQSP32 listed as a network upload target for OTA.

Behind the scenes

  • The Arduino OTA task runs in the background, alongside your application.
  • It does not interfere with your logic — your code continues running normally until a new firmware is uploaded.
  • Once a new firmware is uploaded and verified, your EQSP32 will automatically restart and boot using the new firmware.
  • The EQSP32 becomes available for updates as soon as it connects to your local network (Wi-Fi or Ethernet).

Authorized access

  • Arduino OTA is password-protected.
  • By default, the password is admin.
  • You can change or remove the password using the EQConnect mobile app.
  • The same password is also used by the Web Interface Maintenance Panel.

Web Interface Maintenance Panel OTA Updates

What Web Maintenance Panel is on EQSP32 micro-PLC and how to perform Web OTA

The EQSP32 includes a built-in Web Maintenance Panel hosted on port 8000. You can access this panel from any browser on the same local network as the EQSP32. From the Web Panel you can upload a compiled firmware binary (.bin) to update the device without needing the Arduino IDE or the project’s source code. In addition, the panel provides system information and basic maintenance controls, such as restarting the device or enabling Bluetooth advertising.

Browser screenshot with address bar showing MyEQSP32.home:8000 opened, displaying EQSP32 micro-PLC Maintenance Panel with a toggle for dark mode, confirming web interface access over the local network.
Accessing the EQSP32 Web Maintenance Panel via hostname on port 8000.

Unlike Arduino OTA, which requires source code and the Arduino IDE, the Web Maintenance Panel OTA uploads a pre-compiled, production-ready binary firmware file. This makes EQSP32-based systems field-upgradable and is the ideal method for deployed solutions, where technicians only need to upload the signed-off firmware rather than rebuild from source.

Process diagram showing EQSP32 industrial controller Web OTA flow: source code compiled in Arduino IDE or VSCode, exported as production firmware binary (.bin), then uploaded via Web OTA by a technician, maintainer, or field operator to the EQSP32.
Workflow for updating EQSP32 using Web OTA with production firmware binaries.

Web Interface Maintenance Panel overview

When you access the EQSP32 Maintenance Panel on port 8000, the interface is divided into clear sections. Each card provides different information or functionality — from monitoring device status, checking system information, to uploading new firmware. The following paragraphs walk through each part of the panel and explain what you can do there.

Device Information

This section provides a quick status overview of the EQSP32 device. You can check the current EQSP32 API firmware version & revision and developer’s system revision, see the configured hostname, and review the connection type (Ethernet or Wi-Fi).
The uptime counter shows how long the device has been continuously running, which is useful for diagnosing unexpected resets or confirming stability in production environments.

Screenshot of EQSP32 IIoT PLC Maintenance Panel Device Information section showing device name, firmware version, firmware revision, hostname, Ethernet connection status, uptime counter, and green Connected status indicator.
Device Information card displaying EQSP32 connection and uptime.

Advanced Information

This section gives you detailed technical data about the device:

  • Host Address: The panel can be reached via hostname (<device-name>.home:8000) or direct IP address.
  • IP / MAC Addresses: Useful for network diagnostics and identifying the unit on the LAN.
  • Device Unique ID: A unique identifier in the format EQSP32_XXXXXXXX, derived from the chip’s MAC address.
  • MQTT Topic Structure: Shows how topics are automatically generated for the device.
    • Command topics (cmd/...) are used to send commands to the device.
    • Monitoriing topics (state/...) reflect the device’s state back to the MQTT broker.

This section is especially helpful when integrating the EQSP32 into larger IIoT deployments or connecting multiple devices to a custom MQTT broker.

Screenshot of EQSP32 PLC Maintenance Panel showing Advanced Information section, including host address, IP address, Wi-Fi and Ethernet MAC addresses, unique device ID, and automatically generated MQTT topic structures for monitoring and commands.
Advanced Information card of the EQSP32 Maintenance Panel with network and MQTT details.

Control Panel & Firmware Update

The Control Panel includes basic maintenance actions:

  • Restart Device: Safely reboots the controller.
  • Start Bluetooth: Re-enables Bluetooth advertising, useful for re-pairing or configuration.

Below it, the Firmware Update card provides the interface for OTA updates via a precompiled .bin file. Here you can:

  • Select the firmware file from your computer.
  • Enter the OTA password (default: admin, configurable via EQConnect).
  • Press Upload Firmware to send the update.
Screenshot of the EQSP32 IIoT PLC Web Interface Maintenance Panel on port 8000, displaying the Control Panel with Restart and Bluetooth buttons, and the Firmware Update section with file selector, OTA password field, and Upload Firmware button.
EQSP32 Web Maintenance Panel – Control Panel and Firmware Update section.

Why and when to use the Web Interface OTA Panel

This method is best suited for deployed and production systems, particularly in cases where:

  • Only a signed-off binary firmware file needs to be distributed.
  • Field technicians or operators perform updates without access to source code.
  • Updates must be applied through a browser, without requiring the Arduino IDE, toolchain or physical access.
  • A consistent and controlled update process is required for production units.

How to use the Web Interface Maintenance Panel to perform OTA updates

Production firmware (binary file) generation and distribution

  • In Arduino IDE, go to Sketch → Export Compiled Binary.
Screenshot of Arduino IDE Sketch menu highlighting the “Export Compiled Binary” option, used to generate a production-ready .bin firmware file for EQSP32 micro-PLC Web OTA updates.
Arduino IDE menu option to export a compiled firmware binary for EQSP32.
  • The IDE creates a .bin file in your project’s sketch folder. Easily locate it by pressing Sketch → Show Sketch Folder.
Screenshot of a Windows build folder containing the exported EQSP32 firmware binary file (.ino.bin), along with bootloader, ELF, and partition files, ready for use in Web OTA updates.
Exported EQSP32 production firmware binary file in project build folder.
  • This file represents the production firmware to be uploaded. Rename it to reflect appropriate version update for convenience.
  • Distribute it to maintainer for system firmware update.

Access the Web Maintenance Panel

  • Ensure your EQSP32 is online (via Wi-Fi or Ethernet).
  • Open a browser and enter either:
    • http://<device-ip>:8000
    • http://<device-name>.home:8000
Browser screenshot with address bar showing MyEQSP32.home:8000 opened, displaying EQSP32 micro-PLC Maintenance Panel with a toggle for dark mode, confirming web interface access over the local network.
Accessing the EQSP32 Web Maintenance Panel via hostname on port 8000.
  • Device name sanitization:
    • Spaces are replaced with dashes “-“
    • Special characters are removed
    • Example: a device named “My EQSP32 Test#1” becomes accessible at:
      http://My-EQSP32-Test1.home:8000

Troubleshooting tip: if the http://<device-name>.home:8000 address does not resolve, you may fall back to the direct IP address (http://<device-ip>:8000).

Upload the firmware

  • In the Firmware Update section, you can select a .bin firmware file using the file selector.
Screenshot of the EQSP32 IIoT PLC Web Interface Maintenance Panel on port 8000, displaying the Control Panel with Restart and Bluetooth buttons, and the Firmware Update section with file selector, OTA password field, and Upload Firmware button.
EQSP32 Web Maintenance Panel – Control Panel and Firmware Update section.
  • Use the panel’s upload form to select and send the .bin file.
  • The EQSP32 verifies the upload, applies the update, and then automatically restarts into the new firmware.
Screenshot of EQSP32 IoT logic controller Web Maintenance Panel showing Firmware Update section with selected .bin file, OTA password entered, and log output confirming firmware update started, upload finished successfully, and device rebooting.
Firmware update successfully uploaded and applied via EQSP32 Web OTA.

Authorized OTA updates

  • Before the update can proceed, the panel requires a valid OTA password. If the password is incorrect, the firmware upload will be rejected.
  • By default, the OTA password is admin. You can change or remove it at any time using the EQConnect mobile app.
  • The same password is used by both Arduino OTA and the Web Maintenance Panel OTA. Any change made in EQConnect applies to both methods.
  • Once the correct password is provided, clicking Upload Firmware sends the binary to the device.

Behind the scenes

  • The Web Maintenance Panel runs on port 8000 independently from any user-defined web server you may run on port 80.
  • OTA runs in the background alongside your application, so the device remains responsive during normal operation until the reboot stage.

Security

  • Protected by the shared OTA password (default admin).
  • Password changes or removals in EQConnect apply to both Web OTA and Arduino OTA.
  • Recommended: always set a strong, unique password in deployed (active) systems.

Related products

EQSP32CE – Industrial IoT ESP32 PLC With Ethernet

EQSP32C – Industrial IoT ESP32 PLC

EQSP32C-X – Industrial IoT ESP32 PLC With External Antenna

Take a look at our product catalog of EQSP32 controller versions and our range of expansion modules — we’re always happy to assist you with your selection and integration process.

Have questions? Feel free to reach out to us at info@erqos.com.

Add a Comment

Your email address will not be published. Required fields are marked *