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.
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
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.
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'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