Xedge32 ESP32 IoT Platform for Professionals and Makers

Install a complete browser-based Lua development environment on an ESP32 and start building secure IoT applications, device dashboards, and hardware experiments.

Xedge32 brings the Xedge runtime to ESP32 hardware. Professional developers can use it to evaluate Xedge and the Barracuda App Server on a real microcontroller, while DIY developers and non-professionals can use it as an approachable way to build connected ESP32 projects without first becoming embedded C experts.

Xedge32 ESP32 IoT development platform

Two Ways to Use Xedge32

  • Professional evaluation
    Use an ESP32 board to evaluate Xedge/BAS, Lua-to-C integration, secure web APIs, MQTT, Modbus, OPC UA, and OEM customization paths.
  • DIY and learning projects
    Install from the browser, open the built-in web IDE, write Lua, and control ESP32 GPIOs, sensors, and network services from one self-contained environment.
  • Fast path from prototype to product
    Start with stock firmware, then move to source builds when you need custom C modules, embedded applications, or product-specific APIs.

Secure Embedded Development Without the Usual Friction

Xedge32 makes embedded web and IoT development accessible, but it is not just a toy environment. It combines browser-based development, Lua scripting, ESP32 hardware access, secure web services, and production-oriented source code for teams that need a practical path from experiment to product.

Xedge32 expands microcontroller-based IoT programming to a wider audience. The simplicity of Lua makes getting started easy, while professional OEM developers can inspect the source code, customize the firmware, and integrate Xedge32 concepts into commercial products.

Xedge32 browser-based Lua IDE on ESP32

Xedge32 is a self-contained ESP32 development environment that lets you code directly from a browser.


Install Xedge32 Now Using Your Browser:


PC connected to ESP32 with USB cable

To install Xedge32 on your ESP32-S3 or ESP32-WROVER, first connect the ESP32's USB cable to your computer. Then, simply click the 'Install Xedge32' button below:

Ah snap, your browser doesn't work!
Use Google Chrome or Microsoft Edge.
Ah snap, you are not allowed to use this on HTTP!

Upon clicking the above button, a list of devices will appear. Select the device that includes 'serial' in its name. Proceed with the installation wizard. Once installation is complete, reboot the ESP32 by unplugging and then replugging the USB cable. Your ESP32 will now be in access point mode. For guidance on configuring and using Xedge32 in this mode, refer to the ESP32 Access Point Mode documentation. Note: Certain ESP32 models require entering boot mode (Firmware Installation Mode) for proper firmware installation operation. This can be achieved by pressing and holding the boot button while connecting the USB cable. The initial 40 seconds of this video show the exact process for entering boot mode.

Advanced users can install Xedge32 directly via the command line or compile the Xedge32 source code for a customized build. While Xedge32 is designed for professional use and seamless OEM integration, it is equally suitable for hobbyists and developers who want to leverage its powerful features right out of the box without requiring OEM customization.

What is Xedge32?

Xedge32 is a development platform for the ESP32 microcontroller built upon Xedge, which constitutes 90% of Xedge32's functionality and offers a wide range of IT and OT protocols - referred to as the north bridge. Xedge32 extends the Xedge's Lua APIs and provides a comprehensive interface to the ESP32's GPIOs, referred to as the south bridge.

With Xedge32, you can develop a full-fledged solution without diving into C programming. Device-specific code can be written in the user-friendly Lua language, significantly reducing development time. However, OEM integrators can easily extend its functionality, allowing them to add additional features and tailor the solution to their specific needs.

Xedge32 goes beyond simple GPIO sampling by fully integrating with ESP32's interrupts, leading to powerful implications for various applications:

  • High-Speed Data Sampling: Sample ADC data (such as speech) at high speeds and stream it directly to a browser, where it can be played back as sound.
  • Image Capturing with ESP32 Cam Board: With an ESP32 cam board, Xedge32 allows for high-rate image sampling. The images can then be rapidly published to an MQTT broker or streamed directly to a browser via WebSockets, turning the received image stream into video-like playback.
  • Industrial Integration: Seamlessly connect traditional Operational Technology (OT) protocols like Modbus and OPC UA to modern IoT protocols such as MQTT, serving as an intelligent bridge in industries where such integration is essential.
  • Telemetry and Remote Control: The ESP32 excels at sampling telemetry data, and Xedge32's suite of IoT protocols simplifies sending this data to cloud services. Furthermore, Xedge32 facilitates the design of remote-controlled device management applications.

Need Ethernet?

Augmenting the ESP32 with Ethernet capabilities is seamless with the W5500 chip, a simple, compact, and low-power Ethernet module. The amalgamation of these components creates a dynamic, networked communication platform that enhances ESP32 beyond its standard Wi-Fi capabilities. But the highlight is that Ethernet capabilities can be effortlessly enabled using the Lua language using the stock firmware.

IoT, Industrial Protocols, and Security

Xedge32 includes a broad set of IoT and industrial capabilities for ESP32 applications, including MQTT, OPC UA, Modbus, HTTP, REST, WebSockets, and embedded web server based device management. See the IoT Toolkit Reference Manual for details.

Why Use Xedge32?

  • Secure by design
    Build ESP32 IoT applications with TLS, secure web APIs, signed and encrypted applications, protected credentials, OTA firmware update support, and certificate-management options for intranet deployments.
  • Professional path to production
    Use stock firmware for fast evaluation, then move to source builds when you need embedded applications, custom C modules, OEM APIs, or product-specific firmware.
  • Low-code hardware control
    Connect Lua to ESP32 GPIOs, interrupts, peripherals, and network services so device-specific behavior can be developed faster than with traditional embedded C alone.
  • IoT and industrial protocol hub
    Use MQTT, OPC UA, Modbus, HTTP, REST, WebSockets, and browser-based device management on a small, inexpensive microcontroller platform.
  • Approachable for makers, useful for professionals
    DIY users get an easy browser-based development environment; professional teams get a reference design for Xedge, BAS, Lua-to-C integration, and secure ESP32 product development.

Xedge32 is a practical bridge between experimentation and product engineering. It gives beginners a friendly way to build ESP32 IoT projects while giving professional developers a realistic environment for evaluating Xedge, BAS, Lua, C integration, and secure microcontroller-based IoT design.

NodeMCU vs. Xedge32

While NodeMCU has been a go-to option for hobbyists diving into embedded systems using Lua, Xedge32 takes it a step further by catering to both professionals and hobbyists alike. Xedge32 is specifically designed for the ESP32 and offers a robust set of features and protocols, making it suitable for both simple and complex enterprise-level projects.

Arduino vs. Xedge32

Arduino has long been the go-to platform for hobbyists due to its simplicity and vast community support. Xedge32, on the other hand, builds on the ESP32's capabilities with a Lua-based, non-blocking framework suited for both hobby and professional-grade applications, offering greater flexibility for complex, connected projects. See Arduino vs. Xedge32 for details.

MicroPython vs. Xedge32

While MicroPython is popular among hobbyists due to its Python-like syntax and straightforward development flow, it wasn't designed for professional embedded use. Xedge32, built on Lua and explicitly tailored for embedded use, goes much further and simplifies professional OEM integration. If you're comparing MicroPython and Xedge32 for serious embedded work, read the full breakdown here: MicroPython vs Xedge32: The Engineer's Guide.

Node-RED vs. Xedge32

Node-RED is designed for OT/IT/edge gateway environments, where it orchestrates data flows and integrations on Linux-based systems, whereas Xedge32 targets similar environments but runs directly on microcontrollers, providing deterministic control, secure device-level logic, and direct hardware access in resource-constrained industrial systems. See Node-RED vs. Xedge32 for details.

Using ESP32 and Xedge32 as a Co-Processor

The original ESP8266 was designed as a Wi-Fi co-processor. Today, with the ESP32 and Xedge32, that concept has evolved into a modern solution that lets hardware engineers quickly Internet-enable legacy devices with minimal effort.


Getting Started

The following video shows how easy it is to install Xedge32 and how to configure the WiFi settings.

  1. Purchase an ESP32-S3 development board, such as this one; make sure to select N16R8. When purchasing an ESP32s3, the model should be 'N8R8' or 'N16R8', which specifies the flash and RAM size in megabytes. You may also consider getting a breadboard-friendly ESP32s3, such as the XIAO ESP32S3, which you can purchase for $5 at Mouser. You can also use the original ESP32 as long as it includes 4MB PSRAM; however, note that OTA firmware updates are not supported for ESP32.
  2. Flash the firmware using the easy to use web installer or follow the advanced firmware installation instructions.
  3. Start your development journey by following the tutorial Your First Xedge32 Project.

Documentation:

Tutorials:

License Options:

Xedge32 is constructed utilizing components from the Barracuda App Server. See the Barracuda App Server's GitHub Repo for license details.

Xedge32 Product Use Case:

Green IoT Solution.

Why use an Xedge32-powered ESP32?

In today's landscape, misconceptions, rigid ideas, and biases often cloud our understanding. The article Low-Code and Easy IoT Embedded Systems Programming offers a fresh perspective for those navigating the complexities of MCU-based IoT solutions. By exploring the capabilities of an Xedge32-powered ESP32, you will gain insights that could lead to more efficient and cost-effective solutions for your organization.

Is Lua Capable of Real-Time Performance?

Lua is the fastest non-JIT scripting language, with Lua code being compiled into bytecode and executed on the Lua virtual machine.

The above video showcases our MQTT 5 stack, entirely implemented in Lua, demonstrating the speed and efficiency of Lua programming. Alongside, it features the Lua LED strip test program, a part of the Xedge32 documentation. Combining an MQTT test program with the LED strip test program highlights Lua's powerful capabilities in real-time processing on a microcontroller.