← All projects in the gallery

Coolant Gauge

by jonathan harrocks

A coolant temperature gauge for a 240 x 240 round panel, fed from the diagnostic socket. The ESP32 has the CAN controller built in, so the only extra part is a transceiver. The needle is a picture that a Scale turns about a pivot inside it, under a hub cap that is a second picture and does not turn - it is lit from one side, and a highlight that went round with the needle would give it away. The cold and hot ends are sections of the scale, so the red line is a setting: move it and the ticks and numbers under it change colour with it. It reads PID 05, which every car with OBD-II over CAN reports. The device shows each value with its code, and takes signals of your own - another PID, or bytes of a frame the bus carries - for anything else the car has. With no car attached it says NO ECU and the needle rests at cold.

About this design

Coolant Gauge is an LVGL interface for the ESP32-S3 + GC9A01 1.28" round (GC9A01 / GC9A01A 240 x 240, CST816S touch), with 1 screen and 6 widgets, made for Arduino (C++) on LVGL 9.

Screens

  • Coolant

Hardware and build

Board
ESP32-S3 + GC9A01 1.28" round
MCU
ESP32-S3
Display
GC9A01 / GC9A01A
Resolution
240 x 240
Touch
CST816S
Graphics library
GFX Library for Arduino
LVGL
v9
Exports to
Arduino (C++)
Peripherals
CAN bus / OBD-II (car diagnostics)
Libraries
lvgl, GFX Library for Arduino, TWAI driver (bundled with the core)

Notes from the author

Engine temperature on a round panel, read from the car over CAN: a real needle on a real scale.

Using it

Open a copy in the designer and it is yours to edit: restyle the screens, move it to another board, and export the Arduino (C++) project. Designing is free, and a copy needs no account. Open the designer.

Every pin of the ESP32-S3 + GC9A01 1.28" round, and the preset this design starts from: ESP32-S3 + GC9A01 1.28" round pinout and LVGL designer.

More designs for the ESP32-S3 + GC9A01 1.28" round