- include/theme.h: replace M5Stack-based RGB565 constants with LVGL
lv_color_hex helpers; same dark-mode palette + tile accent colors,
portrait SCREEN_W=320 / SCREEN_H=480
- src/display/display_setup.{h,cpp}: custom LGfx device class with
Panel_ST7796 + Bus_Parallel8 (esp32s3) + Light_PWM + Touch_FT5x06
(FT6336U is FT5x06 family), setRotation(1) for portrait 320x480
- LVGL display driver with two PSRAM partial draw buffers (320x80)
- LVGL pointer indev wired to LovyanGFX touch readback
- display_loop() drives lv_tick_inc + lv_timer_handler
M5Stack Core Dashboard
Wetter-, Kalender- und MVG-Abfahrten-Dashboard für den M5Stack Core (ESP32), gesteuert über die 3 eingebauten Buttons (A, B, C).
Details zu Funktionsumfang, API-Formaten und Design-Entscheidungen stehen in
SPEC-final.md im Space. Umsetzungsschritte stehen in PLAN.md und TODO.md.
Setup
-
PlatformIO CLI installieren:
pip install -U platformio -
WLAN-Zugangsdaten eintragen:
cp include/secrets.h.example include/secrets.hDann in
include/secrets.hWIFI_SSIDundWIFI_PASSWORDanpassen. Die drei API-URLs sind bereits vorbefüllt. -
Gerät per USB anschließen.
Build & Flash
./scripts/deploy.sh
Falls mehrere serielle Geräte angeschlossen sind und die automatische Port-Erkennung fehlschlägt, kann der Port explizit übergeben werden:
./scripts/deploy.sh /dev/ttyUSB0
Das Skript baut nur und flasht, es öffnet keinen seriellen Monitor.
Falls du den Monitor separat sehen willst:
pio device monitor
Bedienung
| Button | Funktion |
|---|---|
| A | Wechselt zwischen Wetter-Detail und Kalender-Detail |
| B | Zurück zur Hauptseite |
| C | MVG-Abfahrtsseite |
Nach 5 Minuten ohne Tastendruck springt das Gerät automatisch zurück zur Hauptseite. Die Hauptseite aktualisiert sich alle 10 Minuten, die MVG-Seite jede Minute.
Icons
Die Icons (Sonne, Wolke, Regen, U-/S-Bahn-Badges, Kalender, Fehler-Symbol)
werden aktuell prozedural mit M5Stack-Grafikprimitiven gezeichnet
(src/icons/icons.h), um den Flash-Speicher zu schonen. Für echte
Pixel-Art-Bitmaps können die Funktionskörper später durch
M5.Lcd.drawBitmap(...)-Aufrufe mit RGB565-Arrays ersetzt werden.
Git
Dieses Projekt ist bewusst noch nicht als Git-Repository initialisiert. Sobald gewünscht:
git init
git add .
git commit -m "Initial M5Stack dashboard"
include/secrets.h ist bereits in .gitignore ausgeschlossen.