Best way or library to make a nice GUI

I would like to make a project that that has a 5-7 inch screen for displaying parameters from my car. Something like the image below. What is the best way to make a GUI for something like this. I will probably use a micro controller like the Teensy or an ESP32 to get the data from the car. Do people normally control the GUI from the micro controller?

Using something like a raspberry pi would probably make the GUI side much easier but I think a raspberry pi is overkill for such a project.

What is your level of programming experience?

I'd say I am a strong programmer. I lead a team of software engineers writing C++ as a job. With an ESP32 I currently get RPM from my track car and show it on a configurable row of neopixals like race cars have. I have also designed and built a robot dog. Wanted to take the RPM neopixals project further with this and add GPS lap timing too.

My downfall is more the electronics side. I have a basic to moderate understanding of the electronics. But for screens I have no idea. I don't know if the screen is drawn by the micro controller, or if the screen should have its own controller and the micro controller communicates with that over I2C for example. Or if this is totally the wrong approach and I should use other hardware all together

Thanks

Screens always have their own controller. But your question was about the GUI. However, now knowing that you are a programmer, I'm confused. What doubts do you harbour about writing it?

Have you looked around at the available screens? Usually, you would find one that has an Arduino library written for it. That will give you the framework to develop a GUI with.

1 Like

Yes. It takes a lot of drudge programming work to produce a slick display like that.

I don't know if the screen is drawn by the micro controller, or if the screen should have its own controller

Depends on the screen. Pay attention to whether a display buffer is kept in the microcontroller or screen memory.

1 Like

Ahh this answers a lot for me, it was more the hardware and what is best to use for fast updating and provides libraries etc for slick GUI's. My experience with GUI's is limited. I have worked on an embedded device that provides an ADK that uses a HTML style GUI.

I had a quick look, tbh wasn't really sure what I was looking at and what was better than something else etc

I suggest use
Adafruit_GFX.h. Works very well for me and i mamaged to make a GSM cellphone using graphics from there.

1 Like

Take a look at Nextion displays and their GUI software.

1 Like

Adafruit_GFX.h also allows you to use more RAM, features, and control brightness(for mine.)

I'm sorry; I once led a team of Java programmers with midrange systems as the target platform. As an EE, my training was in Fortran. I learned C before OOP which was a blessing in disguise.

But, the point I wish to make is to be very cautious with your C++ knowledge: programming a microcontroller is very different than programming a minicomputer with C++... emphasis on "very". Even on larger microcontrollers, SRAM memory can quickly become a constrained resource. A good (short read):
Memory Architectures | Memories of an Arduino | Adafruit Learning System

Best of luck.

Ray

1 Like

Ahh for sure yea, I work in embedded. My current project (not this one) is using a digispark which is very constrained

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.