A fast, touchscreen-friendly ESP32 dashboard for Speeduino-style data, built on LVGL + TFT_eSPI for a 480×320 3.5" display.
Includes RPM meter + tiles, SD CSV logging, a WiFi AP configuration portal, warning alarms, and a shift-light overlay.
-
Two dashboard layouts
-
SD logging (CSV)
- One-press REC start/stop
- Auto-increment log index (
/log_00001.csv, etc.) - Download logs via the WiFi portal (including “latest log” shortcut)
-
WiFi configuration portal (AP mode)
-
Warnings + shift light
- Per-sensor min/max thresholds with enable toggles
- Full-screen flashing shift overlay at configurable RPM
Check the files section for demo videos and actual screenshots
-web portal is a bit flakey and requires more development
###HARDWARE
Freenove FNK103, ESP32 CYD 3.5 Inch Touch Display WiFi BT Dual-core 32-bit 240 MHz Microcontroller
Arduino IDE 2.3.7
files from from GitHub
- esp_dash_v1.ino
- lv_conf.h
- esp_dash_v1.cpp
- TFT_eSPI_Setups
- User_Setup.h
- User_Setup_Select.h
install the following Libraries
-
TFT_eSPI by Bodmer v2.5.43
-
copy User_Setup.h and User_Setup_Select.h into the TFT_eSPI library folder overwriting the existing
-
copy TFT_eSPI_Setups folder into the Arduino Libraries space
-
-
lvgl by Kisvegabor v8.4.0
install the following board type
- esp32 by Espressif Systems v3.3.5
- set board to ESP32 Dev Module
- PSRAM = Enabled
- Partition Scheme = Huge APP (3MB No OTA/1MB SPIFFS)
run esp_dash_v1.ino and allow it to create a folder then move lv_conf.h and esp_dash_v1.cpp into the same folder.
you should now be able to flash your display
I have only tested this with the Freenove FNK103 and a Speeduino 4.3
- I couldnt get this to work with a logic level shifter or using a divider, so went direct and it seems to work reliably so far.
- My board was damaged and 1 of the resistor was missing on the serial line just behind the port. i ended up removing both and bridging them
FNK103
Serial Port_____________Speeduino
5v---------------------------------5v
Gnd--------------------------------Gnd
Tx---------------------------------Pin 15 RX (Arduino Mega 2560)
RX---------------------------------Pin 14 TX (Arduino Mega 2560)