https://github.com/amrikarisma/mazduino-display-speeduino
This project creates a digital dashboard display for Speeduino ECU using ESP32-C3 microcontroller and a 3.5 inch TFT LCD display with ILI9488 driver. The display shows real-time engine data from the Speeduino ECU including RPM, AFR, TPS, advance timing, MAP, and other sensor readings.
https://github.com/amrikarisma/mazduino-display-speeduino
esp32 esp32-c3-super-mini esp32c3 esp32c3-super-mini mazduino speeduino speeduino-firmware
Last synced: about 1 month ago
JSON representation
This project creates a digital dashboard display for Speeduino ECU using ESP32-C3 microcontroller and a 3.5 inch TFT LCD display with ILI9488 driver. The display shows real-time engine data from the Speeduino ECU including RPM, AFR, TPS, advance timing, MAP, and other sensor readings.
- Host: GitHub
- URL: https://github.com/amrikarisma/mazduino-display-speeduino
- Owner: amrikarisma
- Created: 2025-08-04T19:20:56.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-08-04T19:29:15.000Z (11 months ago)
- Last Synced: 2025-08-04T22:15:31.109Z (11 months ago)
- Topics: esp32, esp32-c3-super-mini, esp32c3, esp32c3-super-mini, mazduino, speeduino, speeduino-firmware
- Language: C
- Homepage: https://www.mazduino.com
- Size: 61.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Speeduino ECU Display using ESP32-C3 and ILI9488 3.5" TFT
## Summary
This project creates a digital dashboard display for Speeduino ECU using ESP32-C3 microcontroller and a 3.5 inch TFT LCD display with ILI9488 driver. The display shows real-time engine data from the Speeduino ECU including RPM, AFR, TPS, advance timing, MAP, and other sensor readings. The configuration has been optimized for ESP32-C3 pin mapping with reliable serial communication to the ECU.
## Build Status: ✅ SUCCESS
Project has been successfully compiled with the latest pin configuration.
## Pin Configuration
### TFT Display Pin Mapping
Pin mapping used for ILI9488 TFT display:
```
TFT_MISO = 5 // SPI MISO
TFT_MOSI = 6 // SPI MOSI
TFT_SCLK = 4 // SPI Clock
TFT_CS = 7 // Chip Select
TFT_DC = 8 // Data/Command
TFT_RST = 10 // Reset
```
### Serial Communication to Speeduino ECU
Pin mapping used for UART communication to Speeduino ECU:
```
RX_PIN = 20 // Serial RX (connect to Speeduino TX)
TX_PIN = 21 // Serial TX (connect to Speeduino RX)
BAUD_RATE = 115200 // Communication speed
```
**Note:** Uses Serial1 (hardware UART) for reliable communication with Speeduino ECU.
## What Has Been Configured
1. **TFT_eSPI Library v2.5.43** - Added to dependencies in `platformio.ini`
2. **ILI9488 Driver** - Configured for 3.5 inch display with 320x480 resolution
3. **Pin Configuration** - Pin mapping optimized for ESP32-C3
4. **Build Flags** - All required definitions added to `platformio.ini`:
- `ILI9488_DRIVER=1`
- Pin definitions (MISO=5, MOSI=6, SCLK=4, CS=7, DC=8, RST=10)
- Font loading configurations
- SPI frequency settings (20MHz for stable operation)
5. **Font System** - Changed from custom fonts to built-in TFT_eSPI fonts:
- Font 2 (16px height) for small text
- Font 4 (26px height) for large text
6. **Function Declarations** - Added required function declarations
## Modified Files
1. **`platformio.ini`** - Added dependencies and build flags
2. **`src/main.cpp`** - Fixed font loading and function declarations
## Wiring Connections
### ILI9488 Display to ESP32-C3
Connect the ILI9488 display to ESP32-C3 according to the pin mapping above:
```
ILI9488 Display ESP32-C3
--------------- --------
VCC 3.3V
GND GND
CS GPIO 7
RESET/RST GPIO 10
DC/RS GPIO 8
SDI/MOSI GPIO 6
SCK/CLK GPIO 4
LED/BL 3.3V (direct connection without control)
SDO/MISO GPIO 5
```
### Speeduino ECU to ESP32-C3
Connect the Speeduino ECU serial pins to ESP32-C3:
```
Speeduino ECU ESP32-C3
------------- --------
TX (Serial Out) GPIO 20 (RX)
RX (Serial In) GPIO 21 (TX)
GND GND
```
**Note:**
- Backlight (LED/BL) is connected directly to 3.3V to simplify wiring and ensure the display is always on. No backlight control pin is used in this implementation.
- Serial communication uses 115200 baud rate, 8 data bits, no parity, 1 stop bit (8N1)
- Make sure to connect GND between all devices for proper communication
## Build Steps
1. Install dependencies:
```bash
python3 -m platformio lib install
```
2. Build project:
```bash
python3 -m platformio run
```
3. Upload to ESP32-C3:
```bash
python3 -m platformio run --target upload
```
## Important Notes
1. **DMA Warning** - ESP32-C3 does not yet support DMA for TFT_eSPI, but the library works without DMA.
2. **Touch Screen** - If the display has touch screen capability, uncomment the `TOUCH_CS` pin in configuration.
3. **SPI Frequency** - Configured at 20MHz for optimal performance with ILI9488 and ESP32-C3 stability.
4. **Backlight Connection** - Display LED/BL is connected directly to 3.3V for simplified wiring. Display will always be on without dynamic brightness control.
5. **ESP32-C3 Stability** - Specific platform version (6.5.0) and build flags are used for stable operation on ESP32-C3.
## Testing
After uploading firmware, the display will show:
- Splash screen with firmware information
- Speedometer interface with various sensor data
- Status buttons and indicators
## References
This project uses and references the following resources:
- **[Speeduino ECU](https://speeduino.com/home/)** - Open source engine management system
- **[TFT_eSPI Library](https://github.com/Bodmer/TFT_eSPI)** - Arduino TFT graphics library for ESP32/ESP8266
- **[Image2CPP Tool](https://github.com/amrikarisma/image2cpp)** - Online tool for converting images to C/C++ arrays for embedded displays
The project is now ready to use with the ILI9488 3.5 inch display!
## Support & Documentation
### 🌐 **Official Website**
For complete documentation, tutorials, and support visit:
**[www.mazduino.com](https://www.mazduino.com)**
### 📚 **What You'll Find:**
- **Setup Guides** - Complete installation and configuration tutorials
- **Troubleshooting** - Common issues and solutions
- **Feature Documentation** - Detailed feature explanations
- **Community Forum** - Get help from other users
- **Contact Support** - Direct support channels
- **Latest Updates** - Firmware updates and new features
### 💬 **Need Help?**
- 🔧 **Technical Issues** - Visit our troubleshooting section
- 💡 **Feature Requests** - Submit ideas for new features
- 🐛 **Bug Reports** - Report issues for quick resolution
- 📖 **Documentation** - Access complete user guides
- 🤝 **Community** - Connect with other Mazduino users
### 📧 **Contact Information**
Visit [www.mazduino.com](https://www.mazduino.com) for:
- Direct contact forms
- Support ticket system
- Community forums
- Live chat support
- Email support
---
**© 2025 Mazduino Project | Visit [www.mazduino.com](https://www.mazduino.com) for support**