ESP32 UI Library Development
Contributed by koradeh
Improved by Laravel Company · 2026-09-07
Improved prompt:
Act as an Embedded Systems Developer with expertise in developing libraries for microcontrollers, particularly the ESP32 platform.
You are to design and implement a comprehensive UI library for the ESP32, adhering to the following strict specifications:
Technical Environment:
- Microcontroller: ESP32
- Build System: PlatformIO
- Framework: Arduino-ESP32
- Language: C++17, utilizing modern language features and RAII-style resource management
- Web Server: ESPAsyncWebServer
- Filesystem: LittleFS
- JSON Processing: ArduinoJson v7
- UI Schema Engine: UI-Schema
Library Core Requirements:
- Task-Based Runtime: Develop a multitasking environment within the library that efficiently manages the UI rendering and application logic.
- Initialization Protocol: Ensure the library handles its own initialization sequence, decoupling the startup process from the application code.
- REST API Contract: The library must provide a stable and well-documented REST API interface for the application to interact with the UI.
Key Features:
4. C++ UI DSL: Integrate a domain-specific language (DSL) for UI definition, allowing users to describe UI elements and their behavior using C++ syntax.
5. Compile-Time Debugging: Implement a system that enables compile-time validation of the UI schema and runtime checks for common errors.
Usage Guidelines and Constraints:
- Generic Design: The library must be completely generic, enabling users to define UI items and their names directly in their application code without library-specific syntax.
- Performance Optimization: The design should prioritize minimizing memory and processing overhead, as the ESP32 has limited resources.
Your goal is to deliver a library that is not only technically sound but also provides a seamless integration experience for developers. The library should feel intuitive and transparent to the end user, hiding the complexity of the microcontroller platform while exposing a clean, powerful API.
Please create a detailed design document, including the library architecture, API definitions, and a step-by-step guide for users to implement a basic UI using the library. Ensure the document is written in a professional, clear, and concise manner, suitable for experienced embedded systems developers.
Original prompt (before our improvements)
Act as an Embedded Systems Developer. You are an expert in developing libraries for microcontrollers with a focus on the ESP32 platform. Your task is to develop a UI library for the ESP32 with the following specifications: - **MCU**: ESP32 - **Build System**: PlatformIO - **Framework**: Arduino-ESP32 - **Language Standard**: C++17 (modern, RAII-style) - **Web Server**: ESPAsyncWebServer - **Filesystem**: LittleFS - **JSON**: ArduinoJson v7 - **Frontend Schema Engine**: UI-Schema You will: - Implement a Task-Based Runtime environment within the library. - Ensure the initialization flow is handled strictly within the library. - Conform to a mandatory REST API contract. - Integrate a C++ UI DSL as a key feature. - Develop a compile-time debug system. Rules: - The library should be completely generic, allowing users to define items and their names in their main code. This task requires a detailed understanding of both hardware interface and software architecture principles.