Embedded Networking Articles for Microcontrollers
Practical guides to building embedded web servers, device dashboards, REST APIs, WebSocket communication, MQTT connectivity, and OTA firmware updates with Mongoose Library. Examples cover STM32, ESP32, NXP and RP2350 microcontrollers, including bare-metal implementations and projects using Zephyr, FreeRTOS or embedded Linux.
Embedded Web Servers
- Embedded Web Server: A Comprehensive Guide for Modern Connected Devices: This article explains how embedded web servers enable browser-based device dashboards, configuration interfaces, and firmware updates on microcontrollers such as STM32, ESP32, and embedded Linux systems.
- Building Embedded Web Device Dashboards: Overview of embedded dashboard implementation approaches, including REST API, CGI, and browser-based device interfaces.
- Web File Manager on STM32, ESP32 and Embedded Linux: A cross-platform browser-based file manager example with upload, download, and file deletion support.
- Writable File System on Nucleo-H563ZI internal flash: A step-by-step guide to implementing a file system on STM32 internal flash using LittleFS and Mongoose, with standard file I/O such as fopen(), fread() and fwrite().
Device Management
- OTA and remote control on NXP FRDM-RW612: Push firmware over the air and call your own C functions on the device through a REST API, using Mongoose and mDash. Same steps work on STM32, ESP32 and RP2350.
- STM32 device management: secure OTA, remote control and health monitor: Device management for STM32 Nucleo-H723ZG with Mongoose and mDash: firmware OTA with ECDSA signature check, remote control over JSON-RPC, and crash backtraces from the health monitor.
Dashboards and WebSocket
- ESP32 Device Dashboard: A Step-by-Step Guide for Developers: Step-by-step ESP32 dashboard implementation with state display, LED control, settings, and firmware update flow.
- How to Build an STM32 Web Dashboard: A practical STM32 dashboard tutorial with device status, controls, configuration, and firmware update workflow.
- STM32 WebSocket Guide: Build a real-time STM32 dashboard using WebSocket communication for responsive browser updates.
- 25000 WebSocket messages per second on STM32 Nucleo-H723ZG: How fast can a bare-metal STM32H723 stream WebSocket messages over Ethernet?
- Web Dashboard on Zephyr RTOS: A Zephyr-focused guide to implementing an embedded web dashboard in an RTOS-based device.
OTA Firmware Updates
- STM32 OTA Firmware Update: In-depth STM32 OTA firmware update guide with implementation details and security implications.
- RP2350 OTA Firmware Update: RP2350-focused OTA firmware update guide with implementation guidance and integration details.
- NXP RW612 OTA Firmware Update: OTA firmware update guide for the NXP RW612 platform with practical implementation details.
Ethernet, MQTT and TCP/IP
- STM32 Ethernet Explained: A broad overview of STM32 Ethernet hardware and software integration.
- Limiting TCP/IP RAM Usage on STM32: Strategies for constraining networking RAM usage with a preallocated memory pool.
- STM32 Ethernet and Caches: Practical and theoretical guidance on using STM32 Ethernet together with data caches.
- MQTT on a Microcontroller: MQTT protocol overview, trade-offs, security implications, and practical implementation on microcontrollers.
- How to connect STM32 to Azure IoT Hub: Connect an STM32 Nucleo-H723ZG to Azure IoT Hub over MQTT with mutual TLS, then send cloud-to-device messages and call direct methods.
- How to connect STM32 to EMQX: Connect an STM32 Nucleo-H723ZG to an EMQX Cloud MQTT broker over TLS, with username/password authentication and per-device topic authorization.
- How to connect STM32 to AWS IoT Core: Connect an STM32 Nucleo-H723ZG to AWS IoT Core over MQTT with mutual TLS and an EC device certificate. Bare metal, no lwIP, no mbedTLS.
- lwIP vs Mongoose - TCP/IP Stack Integration Benchmark: Comparison of lwIP and Mongoose TCP/IP stacks: initial integration steps, RAM and flash footprint, ease of tuning and integration.
- STM32 TCP/IP footprint: flash and RAM, with and without TLS: Measured on a bare-metal Nucleo-H723ZG: Mongoose TCP/IP stack takes about 36 KB flash and 10 KB RAM, 1.6 KB per connection. With TLS: 82 KB flash, 14 KB per connection.