Automotive gauge using LVGL
This project involved creating an automotive gauge using an STM32 microcontroller and the LVGL graphics library. The gauge displays critical engine parameters such as oil temperature, oil pressure and exhaust gas temperature.
Graphics are provided by the LVGL library.
Originally using a 240x320 rectangular TFT display, I've later decided to change to a round 240x240 display which is easier to install into the dashboard either in a 52mm pod enclosure or embedded into the dash.
This project let me learn about SPI and I2C communication protocols as well as library implemantation and the quirks of setting up an environment on the STM microcontroller platform.
In the future I intend to create a custom PCB and a pod enclosure for the project. Fusion 360 and KiCad are the tools of choice.
The project is open-source and can be found here.
The PCB has been "redesigned" to fit a smaller radius, 23mm instead of the previous 25.5ish radius in order to fit the casing better
Some THT radial caps were changed to ceramic SMD caps because the regulator used explicitly asks for them :D This ended up saving a lot of space as well which is nice.
I ended up getting rid of the USB port and going for a JST-PH connector instead for power, this allows more flexibility with mounting and I didn't see a good way of implementing the USB port.
Today I finished designing the PCB for the most part. It utilizes the same STM32F407VET6 microprocessor that I have on my development board since it's relatively cheap and my code has been generated for that platform. If nothing else, it won't run out of power.
Not much to say about other design choices. It's a 4-layer PCB with signal + ground plane on top and bottom layers and a power and a ground plane on the inner layers. Sensors will be connected using JST-PH connectors due to their small size, price and availability. There's a USB Micro-B connector for power and a TS1117BCW 3.3v reg to bring it down for the microprocessor
Next step is to test the product in the real life with the sensors connected to a car before I order a bunch of PCBs and it turns out there's a critical issue with the design.
If you have any questions about this project or would like to collaborate, feel free to reach out: