Hello everyone,
I have been working on a web-based HMI editor for ESP32 LCDs and would like feedback from people who already use LVGL on ESP32 displays.
Try it here:
The project is still under construction. I am looking for testers who can try it on real hardware, report what breaks, and suggest what would make it useful next to LVGL / SquareLine-style workflows.
What is ESP-HMI Editor?
The idea is a Nextion-style visual HMI environment, but the UI runs on an ESP32 + LCD instead of a separate Nextion controller.
The editor currently provides:
Visual page designer
Nextion-style widgets and attributes
Multiple pages
Buttons, text, numbers, gauges and other UI elements
GPIO / sensor binding
Arduino setup() / loop() integration
Arduino sketch export
Font generator from TTF/OTF
Image resizing tools
GMOV / animation generator
LCD simulator / instruction terminal
ESP32 device configuration
Custom LCD resolution and driver configuration
Touch configuration
Host MCU UART support
ESP32-CAM snapshot support
GitHub project storage
Example of the generated Arduino API:
hmiSetInt(“nTemp.val”, temperature);
hmiSetInt(“vaRun.val”, 1);
hmiSetInt(“tmPoll.en”, 1);
Goal: Design → Configure → Compile → Export → Upload without writing every screen by hand.
This is not an LVGL editor yet. Many of you already use LVGL + SquareLine / EEZ Studio on the same ESP32 panels. I am posting here because you have the hardware I cannot buy myself, and because I want honest input on whether an LVGL export / LVGL widget mapping would be worth adding.
Hardware tested so far
I do not own every ESP32 LCD / HMI board.
So far I have mainly tested:
SPI-based LCDs
Elecrow CrowPanel 7-inch
The editor has options for different resolutions, LCD drivers, touch drivers and GPIOs, but I cannot guarantee every combination works.
Please try it if you have:
ILI9341 / ILI9488 / ST7789 / ST7796 / GC9A01 / other SPI TFTs
RGB / 8080 / MIPI ESP32-S3 panels
Different touch controllers (XPT2046, GT911, FT5x06, CST816, etc.)
Elecrow CrowPanel variants
Waveshare / Guition / Sunton / Makerfabs / M5Stack displays
Custom ESP32 + LCD boards you already run LVGL on
A simple test is enough:
Create a page
Add a few widgets
Export the Arduino project
Upload to the ESP32
Test LCD + touch
Report what works and what does not
What I need from testers
Please post:
ESP32 board:
Example: ESP32-S3-N16R8
LCD:
Example: 3.5" ILI9488 SPI / CrowPanel 7"
Resolution:
Example: 480 × 320
Touch controller:
Example: XPT2046 / GT911
LVGL version / driver you normally use (optional):
Example: LVGL 8.3 + TFT_eSPI, or LVGL 9 + esp_lcd
Problem:
What happened.
Error / serial output:
If available.
Screenshots or photos are welcome.
Known status
This is not finished.
Expect bugs: unsupported drivers, wrong pins, bad rotation, touch inversion, RAM issues on ESP32 without PSRAM, incomplete widgets, simulator vs hardware differences.
A useful report looks like:
ILI9488 + ESP32-S3 works, but touch coordinates are rotated
ST7789: generated sketch uploads, screen stays black
CrowPanel 7" works in simulator, upload fails
Failed tests are as useful as successful ones.
Feedback I want from the LVGL community
Is a Nextion-style editor useful if you already use LVGL?
Would LVGL C export (v8 and/or v9) be valuable?
Widget mapping: which Nextion-style objects should map to which lv_* widgets?
Preferred output: raw LVGL C, SquareLine-compatible project, or ESP-IDF component?
Display drivers you need first
Touch calibration / rotation issues on your boards
Font / image pipeline that would match how you already work with LVGL
Anything that would make this a complement to LVGL instead of a competing workflow
Feature ideas I am already collecting: new widgets, more LCD/touch drivers, more ESP32 boards, animation, HMI scripting, sensor bindings, better Arduino/ESP-IDF integration.
Current goal
Make ESP32 HMI work feel closer to a dedicated editor:
Design → Configure → Compile → Export → Upload
It is still early. I would rather test with many LVGL users’ panels now than wait until I own every board.
Editor: ESP-HMI Editor
Please reply with:
What LCD / ESP32 combination you tested
Whether it worked
What broke
Whether LVGL export is something you would actually use
Bug reports and criticism are welcome.
Thanks.