Mongoose Wizard builds professional embedded device dashboards for microcontrollers like ESP32, STM32, NXP, RPi and others (Sponsored)

Cesanta Software introduced Mongoose Wizard – a no-code visual tool that enables embedded developers to effortlessly build a professionally looking device dashboard (WebUI) and REST API without writing any frontend code, transforming the microcontroller (MCU) board into a browser-accessible web dashboard for control, monitoring, and updates. Whether for prototyping or building production devices, integrating a web dashboard into firmware gives end users intuitive and powerful control.

Designed for use in Industrial, Automotive, Smart home, or any Internet of Things product (machinery, devices, appliances, etc.) that benefits from a browser-based interface.

Mongoose Wizard utilises the Mongoose Library, an open source network library for C/C++. Mongoose Library provides event-driven non-blocking APIs for TCP, UDP, HTTP, WebSocket, MQTT, and other protocols. It is designed for connecting devices and bringing them online. On the market since 2004, used by a vast number of open-source and commercial products – it even runs on the International Space Station.

Mongoose library is cross-platform and works on Linux/UNIX, MacOS, Windows, Android, STM, NXP, ESP32, Nordic, TI, Microchip, Infineon, Renesas, and other microcontrollers. It has a tiny static and run-time footprint, and its source code is both ISO C and ISO C++ compliant. Mongoose can run on top of an existing TCP/IP stack with BSD API, e.g. lwIP, Zephyr, Azure, etc., but also has a built-in TCP/IP stack with drivers for bare metal or RTOS systems. It has a built-in TLS 1.3 ECC stack, but also can use external TLS libraries – mbedTLS, OpenSSL, or others.

Mongoose Wizard is a powerful solution that enables embedded developers to quickly build Web UIs, REST APIs, OTA updates, and more – all without writing a single line of frontend code.

Mongoose Wizard package includes:

  • Professional look and feel – With Mongoose Wizard, developers can create a professional-looking interface without any design or frontend skills.
  • User login support – User authentication with multiple access levels is enabled with a single checkbox.
  • UI auto-refresh – Always ensure that the developer’s dashboard is up-to-date with the device connection indicator on the toolbar.
  • Easy to attach UI controls to the device hardware – Panels with dropdowns, toggles, and inputs can be mapped to C structures. All developers need to do is adjust the getter and setter C functions.
  • Conditional display – Use conditional display to show device data that exceeds thresholds with an alternative style.
  • Built-in OTA firmware updates – For many microcontrollers, such as STM32, ESP32, MIMXRT, and others, Mongoose provides built-in over-the-air firmware update support. Developers don’t need to do anything – it just works.
  • Cross-platform code – The generated networking code is truly cross-platform. Whether developers choose GCC + make, CubeIDE, Zephyr, Linux, macOS, MCUXpresso, or Windows, the choice is yours.
  • TLS 1.3 built-in, enabled by default – Typically TLS is a burden, but not with Mongoose. Developers can enjoy fast handshakes (<1s) and minimal RAM usage (few Kb per connection).
  • Tiny flash and RAM footprint – Default dashboard UI takes about 55k of flash, Mongoose code (with TLS) takes less than 80k of flash, and each connection uses few Kb of RAM.

With Mongoose Wizard, developers can create a professional-looking interface without any design or frontend skills. The generated networking code is truly cross-platform: GCC + make, Zephyr, Linux, macOS, or Windows. User authentication with multiple access levels is enabled with a single checkbox. TLS 1.3 is built-in, enabled by default, and allows fast handshakes (<1s) and minimal RAM usage (few kilobytes per connection).

ESP32 Device Dashboard: A Step-by-Step Guide for Developers

Now, let’s deep dive into the ESP32 tutorial as an example, but the same way it can be applied to any other supported microcontrollers, like STM32, NXP, Renesas, Infineon, TI, Microchip, RPi, and others.

We will show you how to build a complete ESP32 device dashboard using the Mongoose Library, transforming your ESP32-C6 board into a browser-accessible web dashboard for control, monitoring, and updates.

We will guide you step-by-step through creating a functional web dashboard with system stats, LED control, device settings, and firmware updates. The web dashboard you’ll build will run directly on the ESP32, accessible from any browser on the same network.

Step 1: Set Up Your Development Environment

Before building your ESP32 device dashboard, prepare your development environment:

  • Hardware: ESP32-C6 development board
  • Toolchain: ESP-IDF
  • Web Server: Mongoose Library
  • Visual Web UI builder: Mongoose Wizard

We’ll use Docker to build ESP32 firmware, so there’s no need to install the ESP-IDF toolchain directly.​ The Mongoose Wizard creates a ready-to-go project for you, so all you need is Docker installed
– no additional setup on your workstation is required.

Step 2. Create the Dashboard Layout

Visit https://mongoose.ws/wizard/ and create a project with three web dashboard pages:

  • Dashboard Page
  • Device Settings Page
  • Firmware Update Page

This tool allows you to create your ESP32 device dashboard in a visual way. Click on the “New” button to start a new design. Select ESP32 as the target architecture, and choose an empty dashboard template.

An empty “dashboard” page is created automatically. Add two more pages: a device Settings page and a Firmware Update page.

Mongoose Wizard

Step 3. Dashboard Page

The Dashboard page shows:

  • Device name
  • Current temperature
  • RAM usage

We will create 3 cards for those. However, the information will be taken from different places. A device name would be settable by the user on the “Device Settings” page. Therefore, it will be
backed by the “settings” API endpoint.

Go to the API endpoint editor and create the settings endpoint, with a single string attribute device_name in it.

Moogoose REST API configuration

The current temperature and RAM usage are read-only metrics, so create a separate API endpoint for that, called state. Mark it read-only, and create three attributes in it: ram_free, ram_used, and temperature.

Mongoose Wizard REST API data fieldsAdd the leds endpoint with a single led1 boolean attribute.

Now we’re ready to add UI elements to the Dashboard page. Add “stats row” element, add cards to have 4 in total, and edit their titles and values that reference recently added API endpoints.

Add a panel for the LED toggle. Set the toggle button to “autosave”.

Mongoose LED Control

Step 4. Device Settings Page

Click on the device settings page, and add a panel there. Remove all unnecessary settings, leave only one with the text input. Label it “Device name”. Set API reference for the text input to settings.device_name.

Device Settings page

Step 5. Firmware Update Page

This page would enable OTA firmware updates using the web dashboard:

  • Handle file uploads using Mongoose
  • Store new firmware
  • Reboot after validation

First, add a new API endpoint. Name it “ota”, and choose the name “ota”. Then on the page, add a panel with the firmware update button.

Mongoose Wizard Firmware UpdateStep 6. Build and test the firmware

Now the Web dashboard is ready. Click on the Generate button. Wizard creates a new ESP32 project in the output directory. Edit the WiFi credentials in main/main.c, then build it and flash it.


Note that the target could be any other microcontroller from the ESP32 family, such as ESP32, ESP32S3, ESP32C3, and so on.

Attach a serial console, reboot the device. Get the device’s IP address from the serial logs. Open your browser, type the device’s IP address into the address bar. Now you should see the web dashboard served by the device.

Step 7. Attach UI controls to the hardware

Clicking on the LED toggle does not do anything because the led’s endpoint is not yet linked to the hardware. OTA updates work without any further efforts! The settings page gets saved only to RAM, and rebooting the device loses all changes. RAM and temperature stats show mock data instead of the real one.

Let’s link all these API endpoints – leds, settings, stats – to our ESP32 device. For that, we need to override the default API callback functions that are generated in mongoose/mongoose_glue.h with our own custom callbacks.

Here is the updated main/main.c:


Rebuild the firmware. Use the firmware update page, select the freshly built firmware.bin to update to the new firmware. Congratulations! Now our dashboard shows actual device values. LED control works, and the device settings page saves device data permanently on flash.

Conclusion

You’ve just built a full-featured ESP32 device dashboard on your ESP32-C6 using the Mongoose Embedded Web Server. Your web dashboard can now:

  • Toggle an LED
  • Display system stats
  • Let users update device settings
  • Support over-the-air firmware updates

This web dashboard architecture is ideal for smart devices, industrial sensors, or any IoT product that benefits from a browser-based interface.

The ESP32 device dashboard approach helps eliminate the need for separate mobile apps, making your solution more accessible and cross-platform. Whether you’re prototyping or building production devices, integrating a web dashboard into your firmware gives your users intuitive and powerful control. And of course, remember, the same approach of implementing a dashboard can be applied to any other supported microcontrollers, like STM32, NXP, Renesas, Infineon, TI, Microchip, Raspberry Pi, and others.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.

Radxa Orion O6 Armv9 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
2 Comments
oldest
newest
Boardcon MINI1126B-P AI vision system-on-module wit Rockchip RV1126B-P SoC