ESP-HMI Editor – A Nextion-style HMI Editor for ESP32 LCDs | Looking for Testers & Feedback

Hello everyone,

I have been working on a web-based HMI editor for ESP32, and I would like to share it with the Arduino community and get some real-world feedback.

:backhand_index_pointing_right: ESP-HMI Editor:

The project is currently under construction, so I am looking for people who are willing to try it, find problems, and suggest improvements.

What is ESP-HMI Editor?

The idea is to create a Nextion-style visual HMI development environment, but instead of requiring a separate HMI controller, the UI can run directly on an ESP32 connected to an LCD.

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() and loop() integration
  • Arduino sketch export
  • Font generator from TTF/OTF fonts
  • 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

For example, the generated Arduino sketch can be used with commands such as:

hmiSetInt("nTemp.val", temperature);
hmiSetInt("vaRun.val", 1);
hmiSetInt("tmPoll.en", 1);

The goal is to make ESP32-based HMI development easier without having to manually build every screen and widget in code.

Hardware Tested So Far

This is where I need the community's help.

I do not own every type of ESP32 LCD/HMI available, so I cannot test the editor on all hardware myself.

So far I have mainly tested it with:

  • SPI-based LCDs
  • Elecrow CrowPanel 7-inch

The editor has support/configuration options for different resolutions, LCD drivers, touch drivers and GPIO configurations, but I cannot guarantee that every combination works yet.

I would really like people to test it with other displays

If you have an ESP32 LCD/HMI such as:

  • ILI9341
  • ILI9488
  • ST7789
  • ST7796
  • Other SPI TFT displays
  • Different touch controllers
  • Elecrow CrowPanel variants
  • Other ESP32 HMI boards
  • Custom ESP32 + LCD combinations

please give it a try.

You don't need to make a complicated project. Even a simple test such as:

  1. Create a page
  2. Add some widgets
  3. Export the Arduino project
  4. Upload it to your ESP32
  5. Test the LCD/touch
  6. Report what works and what doesn't

would be extremely useful.

What I Need From Testers

If you find a problem, please post:

ESP32 board:
Example: ESP32-S3

LCD:
Example: 3.5" ILI9488 SPI

Resolution:
Example: 480 × 320

Touch controller:
Example: XPT2046

Problem:
Describe what happened.

Error message / serial output:
Please include it if available.

Photos or screenshots are also very welcome.

Known Status

This project is not finished yet.

There may be bugs, unsupported LCD drivers, incorrect pin configurations, rendering problems, touch-coordinate issues, memory problems, or other issues that I haven't encountered yet.

That's actually one of the reasons I am posting it here.

I would like to develop it together with people who use different ESP32 displays and discover problems that I cannot reproduce on my own hardware.

Why I Am Sharing It Now

I could wait until everything is finished, but that would mean testing only the hardware I personally have.

Instead, I would prefer to get the project into the hands of other ESP32/LCD users while it is still being developed.

If you have a different display sitting on your desk, please try it.

Even if it doesn't work, that is useful information for me.

A report such as:

"ILI9488 + ESP32-S3 works, but touch coordinates are rotated"

or

"ST7789 does not display anything after uploading the generated sketch"

is much more useful than simply saying that it works.

Feedback and Feature Requests

I am also interested in suggestions for:

  • New widgets
  • LCD drivers
  • Touch controllers
  • ESP32 boards
  • Animation features
  • Better Arduino integration
  • HMI scripting
  • Sensor support
  • UI improvements
  • Bug fixes
  • Other features you would like to see

If you use the editor and have an idea that would make it more useful, please post it here.

Current Goal

My long-term goal is to make ESP32 HMI development feel more like using a dedicated HMI editor:

Design → Configure → Compile → Export → Upload

without having to manually write the complete display code.

But it is still a work in progress, and I would really appreciate help from the community to make it compatible with more hardware.

Try it here

:backhand_index_pointing_right: ESP-HMI Editor:

Please let me know:

What LCD/ESP32 combination did you test?
Did it work?
What problems did you find?

All feedback, including bug reports and criticism, is welcome.

Thanks!

:speech_balloon: ESP-HMI Editor Discord Community

I've created a Discord community for ESP-HMI Editor where we can discuss development, report bugs, test different ESP32 displays, request features, and share projects.

:backhand_index_pointing_right: Join the ESP-HMI Editor community: esp-hmi-editor

If you have an ESP32 display that I haven't tested yet, please join and help us test it! :desktop_computer::test_tube:

Automatic detection or validation of common configuration mistakes can be a useful feature. For example, incorrect SPI pins, incompatible display drivers, insufficient PSRAM, or unsupported touch-controller combinations could generate clear warnings before exporting the sketch.

1 Like

@loveforcircuits thanks — that was a good suggestion, and it is in the editor now.

ESP-HMI Editor 2.01 checks the device configuration before you export a sketch, so common mistakes show up in the editor instead of as a black screen or dead touch after upload.

It looks for things like:

• incorrect SPI / RGB pins (missing MOSI/SCLK, CS sharing DC, GPIOs that do not exist, flash/PSRAM pins, classic ESP32 input-only 34–39 used as outputs)
• incompatible display drivers (SPI controller on an RGB bus, RGB driver on SPI, QSPI AMOLED which this firmware does not generate)
• insufficient PSRAM (RGB panels need ESP32-S3 and Arduino IDE Tools → PSRAM = OPI PSRAM)
• unsupported touch combinations (XPT2046 without TOUCH_CS, capacitive chips without TOUCH_SDA/TOUCH_SCL, a touch driver that does not match the board preset)

Where you will see it:

• Device → Edit — live status under the GPIO map
• Compile — errors / warnings in Output
• Export — a configuration checklist first. Errors block the ZIP; warnings can still Export anyway if you know the wiring is correct

Release notes: Help → Changelog.

Updated editor (please hard-refresh or Ctrl+F5 so you get 2.01):

If you try it, please still post board + LCD + resolution + touch, and whether the new warnings matched a real problem. That is the most useful feedback.

Здравствуйте! Использую ESP-HMI Editor 2.16 для ESP32-S3 (CrowPanel Basic 7.0"). Дисплей работает как UART-терминал в паре с внешним MCU, по логике Nextion.

Штатный пакет 0x65 page id state уходит всегда — в handleTouch() он зашит безусловно. Свои команды из события выполняются, но до него, не вместо. В итоге при касании уходит два пакета.

В Nextion Editor есть галочка Send Component ID: снял — штатный пакет не уходит, можно отправить только свою команду. В ESP-HMI такого нет. Или я не нашёл?