This PlatformIO-built C++/Arduino ESP32 program controls a retro-style LED-matrix display, presenting various values received from an MQTT server. The primary focus is on showcasing Speeduino ECU parameters, GPS data, lap times, etc. The display is managed using the Parola library. Created as a personal project to drive an ESP32-based system in the glovebox of my project car (Golf mk2, hence the name). Currently, only 2-core ESP32 is supported, as FreeRTOS task switching is used for display/MQTT control.
Note: For GPS data, it is currently tested to work in pair with gps-to-mqtt project. Note: For Speeduino ECU data, it is currently tested to work in pair with speeduino-to-mqtt project.
Important: This is a work in progress, made and tested only specifically for implementation in my car project. If required, modify as needed for any implementation.
- Parola Library: Utilizes the Parola library (GitHub Link) for effective control of the LED-matrix display.
- Settings Menu: Implements a settings menu, allowing users to configure ECU data, brightness, and alignment interactively.
- WiFi Connectivity: Connects to WiFi using the WiFiManager library (GitHub Link) for hassle-free web-based configuration.
- MQTT Integration: Utilizes MQTT library (GitHub Link) for collecting data from an MQTT server. Note: MQTT is currently supported without a password.
- OTA Updates: Includes Over-The-Air (OTA) update functionality for easy firmware updates.
- User Interface: Menu controls are managed through a rotary encoder and an external switch.
- Racing Timers: Has two racing timers on secondary display - with control scheme for pause, reset, and independent functionality in the background using FreeRTOS tasks.
|-- googletest @ 1.12.1 |-- MQTT @ 2.5.1 |-- Preferences @ 2.0.0 |-- SPI @ 2.0.0 |-- WiFi @ 2.0.0 |-- WiFiManager @ 2.0.16-rc.2 |-- MD_MAX72XX @ 3.5.1 |-- MD_Menu @ 2.1.3 |-- MD_Parola @ 3.7.1 |-- MD_REncoder @ 1.0.2 |-- MD_UISwitch @ 2.2.2 |-- LedController @ 2.0.2
- Menu Timeout: 3000 milliseconds
- MQTT Server Default: localhost
- MQTT Port Default: 1883
- LED Matrix Configuration:
- Hardware Type: MD_MAX72XX::FC16_HW
- Max Devices: 4
- CS Pin: 21
- Rotary Switch and Button:
- Rotary A Pin: 25
- Rotary B Pin: 26
- Control (CTL) Pin: 27
- Install PlatformIO IDE (if not already installed).
- Open the project in PlatformIO IDE.
- Configure the target board and other build settings in the
platformio.ini
file. - Build the project by clicking on the "Build" button in PlatformIO IDE.
- Setup hardware connections to defined pins.
- Configure WiFi using the WiFiManager library for web-based configuration. AP default password: golf1986.
- Save MQTT configuration parameters and establish a connection to the MQTT server.
Note: Ensure that the required libraries are installed using PlatformIO Library Manager.
Feel free to customize the program to suit your specific requirements and hardware setup.