Skip to content

About

Boat navigation screens for ESP32-S3-Touch-LCD-4 with SignalK.

Topics

Resources

Stars

9 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

NavDisplay

Bootsanzeige für Waveshare ESP32-S3-Touch-LCD-4, gespeist aus einem SignalK-Server. Zeigt Tiefe, Geschwindigkeit, Wind und Autopilot auf mehreren Screens, die per Wischgeste gewechselt werden.

Das Gerät im gedruckten Gehäuse

Kein zugelassenes Navigationsgerät. Dies ist ein privates Bastelprojekt ohne Zulassung, Prüfung oder Zertifizierung. Es ersetzt weder Lot noch Kartenplotter und darf nicht als alleinige Grundlage für Entscheidungen an Bord dienen. Der Tiefenalarm ist eine Bequemlichkeit, kein Sicherheitssystem — sie können ausfallen, ohne dass es auffällt. Benutzung auf eigene Gefahr.

Einrichten

Beim ersten Start ohne gespeicherte Konfiguration erscheinen die Einstellungen von selbst. Nötig sind WLAN-Zugangsdaten sowie Adresse und Port des SignalK-Servers; SPEICHERN schreibt ins NVS und startet neu.

Später sind die Einstellungen über das Kontextmenü erreichbar — Doppeltipp auf den Bildschirm.

Zum Lesen genügt ein offener SignalK-Server. Wer den Autopiloten bedienen oder den Nachtmodus an andere Geräte melden will, braucht Schreibrechte: im Reiter Allg auf ZUGRIFF ANFORDERN tippen und die Anfrage in der Weboberfläche des Servers unter Security → Access Requests bestätigen. Das Gerät behält seine Kennung über Neuflashen hinweg, die Freigabe gilt also dauerhaft.

Bauen

Erfordert VS Code mit der PlatformIO-Erweiterung. Alle Abhängigkeiten und Board-Einstellungen stehen in platformio.ini; ein frischer Klon baut ohne weitere Vorbereitung.

pio run                 # bauen
pio run -t upload       # flashen
pio device monitor      # serielle Ausgabe

Screens

Screen Inhalt
Navigation Tiefe, SOG, STW, Wassertemperatur, Tiefenalarm
Wind scheinbarer Windwinkel und -geschwindigkeit, wahrer Wind
Autopilot Kompassrose, Kurs, Steuerbefehle an SignalK
Tiefenverlauf Grundprofil der letzten 15 Minuten
Info Firmware, Speicher, Renderzeit, Verbindungsstatus

Reihenfolge und Sichtbarkeit sind über den Einstellungs-Screen konfigurierbar (Doppeltipp oben rechts). Position 0 schaltet einen Screen ab.

Navigation Wind Autopilot

Gehäuse

Zwei verschiedene Gehäuse jeweils zweiteilig aus dem 3D-Drucker.

Die beiden gedruckten Gehäuseteile

Die Quellmodelle, STL- und 3MF-Dateien liegen unter enclosures/, dazu Massblätter und Ansichten.

Fallstricke, die Zeit gekostet haben

Der Touch muss NACH dem Display initialisiert werden. Steht init_gt911() vor gfx->begin(), flackert das Bild dauerhaft: Der kapazitive Controller vermisst beim Initialisieren seine Grundlinie, und bei stillstehendem Panel passt diese Messung nicht zum späteren Betrieb. Die Reihenfolge in setup() bitte nicht „aufräumen".

Der Menüpunkt „QIO 80MHz" bedeutet flash_mode=dio und boot=qio. In PlatformIO entspricht das board_build.arduino.memory_type = qio_opi.

Arduino-Core 3.x ist Voraussetzung. Die offizielle PlatformIO-Plattform espressif32 liefert Core 2.0.x mit ESP-IDF 4.4, unter dem sich der RGB-Panel-Unterbau anders verhält. Daher pioarduino 55.03.311, das exakt dem zuvor verwendeten Core 3.3.11 entspricht.

Langsame Zeichenvorgänge blockieren den Touch. lv_timer_handler() führt LVGL-Timer nacheinander aus; während eines langen Neuzeichnens wird der Touch überhaupt nicht abgetastet. Instrumente daher als vorgerendertes Canvas im PSRAM halten und nur die bewegten Teile aktualisieren. Die Info-Seite zeigt die Renderzeit als Frühwarnung.

Lizenz

PolyForm Noncommercial License 1.0.0 — private, schulische und gemeinnützige Nutzung ist erlaubt, gewerbliche nicht. Volltext in LICENSE.md.

Das ist bewusst keine Open-Source-Lizenz im Sinne der OSI: Die Einschränkung auf nichtkommerzielle Nutzung schliesst das aus. GitHub wird deshalb keine Lizenz in der Seitenleiste anzeigen.

Für Schriften und die Board-Anbindung gelten eigene Bedingungen, ebenso für alle Bibliotheken — siehe THIRD-PARTY.md. Besonders zu beachten: Die WebSocket-Bibliothek steht unter der LGPL. Wer fertige Firmware-Dateien weitergibt statt Quelltext, hat dadurch zusätzliche Pflichten.

Vorgeschichte

Entstanden als Sketch examples/arduino/09_LVGL_Widgets in einem Klon des Waveshare-Beispielrepositories. Dort liegt die Entwicklungshistorie bis einschliesslich v0.3.28, inklusive des Testsketches 90_FlickerTest, der die Reihenfolge-Abhängigkeit von Touch und Display per Schalter reproduzierbar macht.

About

Boat navigation screens for ESP32-S3-Touch-LCD-4 with SignalK.

Topics

Resources

Stars

9 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages