OBD II dashboard for classic ESP32 and Bluetooth Classic SPP ELM327

PlatformIO: open firmware/ in PlatformIO IDE.
Edit elmAddress and elmPin in firmware/src/main.cpp before compiling.
Select one environment: cyd, tdisplay, m5basic, m5stickcplus2.
Build: pio run -e cyd
Upload: pio run -e cyd -t upload
Monitor: pio device monitor -b 115200

Arduino IDE: open OBD_Dashboard/OBD_Dashboard.ino.
Use Arduino-ESP32 2.0.17 and ELMDuino 3.4.1.
CYD/T-Display: use TFT_eSPI 2.5.43 and the exact display User_Setup.
CYD: witnessmenow ESP32-Cheap-Yellow-Display User_Setup for 2432S028R.
Original T-Display: Setup25_TTGO_T_Display.h.
M5: add #define DISPLAY_M5 1 as the first line of the .ino;
install M5Unified 0.2.7 and M5GFX 0.2.32.
Use a Huge APP partition for this USB-programmed example.

scanner/scanner.ino is a separate Bluetooth Classic discovery sketch.
It can locate the adapter MAC before flashing the dashboard sketch.
Do not keep a phone connected to the adapter during dashboard use.

The four display profiles and the discovery sketch were compiled.
No physical board, ELM327 or vehicle testing was performed.
ESP32-S3/C3/S2 and BLE-only adapters are incompatible with this project.
The example reads RPM, speed and coolant temperature. It does not clear DTCs.
Power the display via regulated USB 5V, never directly from vehicle 12V.
