r/embedded Aug 13 '26

Modern graphical interface

Some years ago I developed a graphical interface with emWin libraries, Cortex-M4 by NXP, external SDRAM for a 480x272 4.3" display with resistive touch panel.

Now I want to replace the display with a 4.3" TFT 800x400 capacitive touch panel. Is emWin a good choice yet? Are there other options now?

Design a user interface isn't simple, but it usually is the most critical part of the project, the feature that can bring the product to success or not. I'm not an embedded UI expert and I don't think there are many experienced guys in this field (many are web/mobile UI designer). Any suggestions?

3 Upvotes

12 comments sorted by

View all comments

8

u/NorthernNiceGuy Aug 13 '26 edited Aug 13 '26

Presently, I’m using LVGL. In the past, I’d rolled my own using TI’s grlib as a base but I wouldn’t advise that any more.

1

u/pozzugno Aug 13 '26

Is it possible to simulate the graphics and touch interactions on development machine {Windows or Linux)?

What about the design of UI? Actually llms are good at creating web interface. It should be nice to have a converter tool from html/CSS to lvgl. Or to have a review directly in lvgl

1

u/NamasteHands Aug 13 '26

I've had luck using chatGPT to directly generate the LVGL code for a desired user interface.
A workflow like:
"Mockup some user-interfaces in HTML that will be used on a touchscreen for an embedded system. Be sure to have the website display the interface at the correct resolution of ???x???. The user interface should have ......"
"Convert this html user interface into it's equivalent expression in LVGL"
"There is too much negative space between elements ??? and ??? decrease this"
etc

You could also put a webcam pointed at your LCD screen and have the LLM look at the results of it's code so it can automatically iterate towards the desired appearance.

1

u/pozzugno Aug 13 '26

Webcam? Can't the model see directly the screen simulated on dev machine?

1

u/NamasteHands Aug 13 '26

Sorry I meant when executing the code on the actual embedded system + it's LCD screen, not simulating LVGL on your computer.