Skip to content

nonsenseMB/DemoDisplay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EvoDisplay

Demo-Projekt für das Waveshare ESP32-S3-Touch-LCD-2.8C - ein rundes 480x480 RGB-Touchscreen-Display. Das Projekt zeigt ein animiertes A-Säulen/Instrumenten-Display im Automotive-Stil mit wechselnden Messwert-Anzeigen.

Features

  • 7 verschiedene Gauge-Typen mit smooth Animationen:

    • BOOST - Ladedruck (bar)
    • OIL TEMP - Öltemperatur (°C)
    • OIL PRESS - Öldruck (bar)
    • EGT - Abgastemperatur (°C)
    • AFR - Luft-Kraftstoff-Verhältnis (Lambda)
    • WATER - Wassertemperatur (°C)
    • VOLTAGE - Bordspannung (V)
  • Kreisförmige Arc-Gauges mit 270° Anzeigebereich

  • Automatischer Gauge-Wechsel alle ~4.5 Sekunden

  • Smooth Value-Animationen mit Easing

  • Farbcodierung pro Gauge-Typ (Cyan, Grün, Orange)

Hardware

Komponente Spezifikation
Display Waveshare ESP32-S3-Touch-LCD-2.8C
Auflösung 480x480 Pixel (rund)
Controller ST7701S (RGB + SPI Init)
Touch GT911 Capacitive
MCU ESP32-S3
Flash 16MB
Interface RGB Parallel (16-bit)

Projektstruktur

EvoDisplay/
├── platformio.ini          # Build-Konfiguration
├── src/
│   ├── main.cpp            # Hauptanwendung, UI & Animation
│   ├── display_config.h    # Hardware-Init (LCD, Touch, IO)
│   └── lv_conf.h           # LVGL-Konfiguration
├── include/
├── lib/
└── test/

Abhängigkeiten

  • PlatformIO (Build-System)
  • Arduino Framework für ESP32
  • LVGL 9.2.2 (wird automatisch geladen)

Installation & Build

1. PlatformIO installieren

# Via pip
pip install platformio

# Oder als VS Code Extension
# -> "PlatformIO IDE" im Extension Marketplace installieren

2. Projekt klonen/öffnen

cd /path/to/EvoDisplay

3. Build

# Kompilieren
pio run

# Oder mit Environment-Angabe
pio run -e esp32-s3-devkitc-1

Display flashen

1. USB-Verbindung herstellen

Das Display per USB-C anschließen. Es sollte als serielles Gerät erkannt werden:

  • macOS: /dev/cu.usbmodem*
  • Linux: /dev/ttyACM* oder /dev/ttyUSB*
  • Windows: COM*

2. Upload

# Firmware flashen
pio run -t upload

# Mit explizitem Port (falls nötig)
pio run -t upload --upload-port /dev/cu.usbmodem1101

3. Serial Monitor (optional)

# Ausgabe überwachen
pio device monitor -b 115200

Troubleshooting beim Flashen

Falls der Upload nicht startet:

  1. Boot-Modus aktivieren: BOOT-Taste gedrückt halten, dann RESET drücken
  2. USB-Kabel prüfen: Datenkabel verwenden (nicht nur Ladekabel)
  3. Port prüfen: ls /dev/cu.* (macOS) oder ls /dev/tty* (Linux)

Das Kabel muss auf dem USB Port stecken und nicht im UART.

Technische Details

Display-Initialisierung

  1. I2C für TCA9554 IO-Expander initialisieren
  2. LCD Reset über IO-Expander
  3. ST7701S über SPI initialisieren (50+ Register)
  4. RGB Panel mit 14MHz Pixel-Clock starten
  5. Backlight PWM aktivieren (~70% Helligkeit)
  6. LVGL mit Double-Buffering initialisieren

Memory-Konfiguration

  • PSRAM: Aktiviert für Display-Buffer
  • Display Buffer: 480x60x2 Pixel (Double-Buffering)
  • LVGL Memory: 64KB
  • Render Mode: Partial (zeilenweise)

Timing

Parameter Wert
Loop-Interval 30ms
LVGL Tick 2ms
Value Update ~450ms
Gauge Switch ~4.5s
RGB Clock 14MHz

Anpassungen

Gauge-Werte ändern

In src/main.cpp die gauges[] Array-Definition anpassen:

Gauge gauges[] = {
    {"BOOST", "bar", -1.0, 2.5, 0x00FFFF},
    {"OIL TEMP", "C", 60, 150, 0x00FF00},
    // ... weitere Gauges
};

Helligkeit ändern

In src/display_config.h:

ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0, 716); // 0-1023

Wechsel-Geschwindigkeit

In src/main.cpp:

if (loopCounter >= 150) { // Gauge-Wechsel alle X Loops

Lizenz

Dieses Projekt basiert auf dem Waveshare ESP-IDF Demo und verwendet die LVGL-Bibliothek.

Links

About

Demo-Projekt für das **Waveshare ESP32-S3-Touch-LCD-2.8C**

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors