

Ständig die Systemparameter im Auge zu haben, ist manchmal recht praktisch. Es existieren zahlreiche Helferlein, beispielsweise für die Menüleiste. Außerdem gibt es ,besonders im PC-Markt, viele kleine, externe Displays, welche zahlreiche Informationen wie CPU-Last oder Speicherverbrauch anzeigen. Hat man jedoch etwas Spaß am Basteln und zumindest moderate handwerkliche und technische Fähigkeiten, kann man sich auch für überschaubare Kosten ein derartiges Display selbst bauen – und zwar ganz nach den eigenen Vorstellungen.
VoraussetzungenDie benötigten Teile für ein derartiges Projekt sind sehr übersichtlich:
- LilyGo T-Display der ersten Generation. Entweder direkt beim Hersteller zu bekommen (rd. 8 Dollar + Versand), bei Amazon (rd. 19 Euro) oder bei AliExpress (um 10 Euro + Versand + EU-Einfursteuer)
- M2-Schraube und M2-Mutter, zu erstehen in jedem Baumarkt oder bei Amazon als Set (rd. 11 Euro).
- Doppelseitiges Klebeband zur Befestigung, welches sich wieder ablösen lässt
- 3D-Drucker für das Gehäuse und am besten PLA- oder PETG-Filament. In diesem Projekt verwenden wir einen Elegoo Centauri Carbon (je nach Variante zwischen 300 und 450 Euro), jedoch dürfte jeder halbwegs moderne 3D-Drucker ohne Schwierigkeiten funktionieren. Im Beispiel nutzen wir mattes, schwarzes PLA-Filament von Elegoo (um 15 Euro).
- USB-C-Kabel mit Daten-Leitungen und Winkel
KonzeptIrgendwie muss das kleine Display an die entsprechenden Daten des Macs kommen – und dies lässt sich am einfachsten über ein kleines Python-Script realisieren, welches mit "psutils" die Informationen aus dem System sammelt. Die Daten werden als JSON verpackt – und per serieller Schnittstelle über USB an das T-Display geschickt.
Auf dem T-Display läuft ein kleines, mittels Arduino geschriebenes Programm, welches auf serielle Daten über USB-C wartet. Sind Daten vorhanden, interpretiert der auf dem T-Display verbaute ESP32 das empfangene JSON und zeichnet per einfachen Grafikbefehlen die Werte samt Balken auf den Bildschirm.
Download der benötigten DateienHier könnt Sie alle für das Projekt benötigten Dateien
herunterladen – inklusive der Original-Dateien aus Autodesk Fusion wie auch vorgefertigte STL-Dateien für den 3D-Druck und des Programm-Codes. Bitte beachten Sie jedoch die Anmerkungen am Ende dieses Artikels.
GehäuseDas Gehäuse des Displays erstellte ich in Autodesk Fusion, welches für den Privatgebrauch kostenlos verwendet werden kann. Es besteht aus zwei Teilen: die Front und einer kleinen Klappe für die Rückseite, welche durch eine M2-Schraube und Mutter befestigt ist.
Für den Druck empfiehlt sich eine Layer-Höhe von 0,12mm oder geringer, sodass Layer-Linien bei den Schrägen weniger ins Auge fallen. Als Slicer kam Orca-Slicer zum Einsatz – doch auch andere Slicer wie PrusaSlicer sollten ohne Probleme funktionieren.
Der Druck des Gehäuses nahm etwa 25 Minuten auf dem Centauri Carbon in Anspruch. Um ein gutes Ergebnis zu erzielen, empfiehlt es sich, die Druckgeschwindigkeit der Außenwände zu reduzieren.
ZusammenbauDas T-Display setzt man zuerst in die Vorderseite des Gehäuses ein, sodass dies bündig in das innere Fach passt. Danach fügt man die Mutter in das dafür vorgesehene Fach "unter" dem Schraubenloch ein. Die Rückseite muss unter die Laschen in der Nähe des USB-Anschlusses geschoben und anschließend mit der M2-Schraube fixiert werden. Den USB-C-Winkel wie auch das Kabel verbindet man anschließend mit seinem mit dem Board und dem Mac oder einem USB-Hub.
Software auf dem T-DisplayEs gibt viele Möglichkeiten, Software für ESP32-Microcontroller, wie er sich auf dem T-Display befindet, zu entwickeln. Eine sehr einfache Option ist Arduino, welches zum
kostenfreien Download bereitsteht. Grob erklärt erstellt Arduino aus C-Code eine Binärdatei, welche dann über eine serielle Schnittstelle via USB in den internen Flash-Speicher des ESP32 geschrieben wird.
Um ESP32-Binärdateien mit Arduino zu erstellen, muss man zuerst der Programmierumgebung diese Boards kenntlich machen. In den Einstellungen fügt man folgende URL unter "Zusätzliche Bordverwalter-URLs" ein:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Danach gilt es, die Unterstützung für ESP32-Boards zu installieren. Im Board-Manager steht direkt der Download zur Verfügung:
Ferner werden noch zwei Arduino-Programmierbibliotheken benötigt, welche man über den Library Manager installieren kann – nämlich "TFT_eSPI" (Grafik) und "Arduino_JSON" (JSON dekodieren):
Nun wählt man in Arduino das Board über das Popup am oberen Rand des Fensters aus. Das Board ist durch eine serielle Schnittstelle wie "cu.usbserial" gekennzeichnet:
Im darauffolgenden Dialog sucht man nach "t-display", wählt dieses aus der Liste aus und auf der rechten Seite, wenn notwendig noch einmal den entsprechenden Anschluss:
Nun sollte bezüglich des Boards alles fertig sein – und mittels des Pfeil-Knopfes auf der linken oberen Seite des Fensters startet man das Kompilieren und Hochladen auf das T-Display.
Auf dem MacUm Daten an das T-Display zu senden, sind drei Schritte auf dem Mac notwendig. Zuerst muss man Python installieren – und dies ist entweder über einen Paket-Manager wie
Homebrew möglich oder direkt von der
Python-Seite. Nach Python ist noch die Installation von zwei Python-Bibliotheken notwendig, welche man aus dem Terminal mit…
pip3 install pyserial psutil
…bewerkstelligt.
Danach muss man die Datei "sendstats.py" an einen Ort im lokalen Dateisystem kopieren und sich den kompletten Pfad merken. Danach öffnet man die Datei in beispielsweise TextEdit und passt recht weit oben in der Datei den "ESP-Port" mit der Zeichenfolge an, welche in den vorherigen Schritten zur Auswahl des Boards in Arduino ersichtlich war – denn so kann das lokale Python-Skript mit dem Board reden.
Nun gilt es, das Python-Skript beim Start des Macs auszuführen – und hier bieten sich die Launch-Agents aus macOS an. Hierzu öffnen Sie die Datei "com.mendel.ttgomacmonitor.plist" und passen hier die Pfade entsprechend an – zum Beispiel den Pfad zu dem "sendstats.py"-Skript wie auch die zu schreibenden Log-Dateien am unteren Ende der Datei. Auch den Pfad zur Python-Installation muss man hier korrekt angeben. Diesen kann man über das Terminal durch die Eingabe von "which python" herausfinden.
Ist dies erledigt, kopieren Sie die Datei im eigenen Home-Verzeichnis in den folgenden Pfad:
Nun öffnet Sie das Terminal und startet den LaunchAgent mit:
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.mendel.ttgomacmonitor.plist
Beenden kann man den LaunchAgent mit:
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.mendel.ttgomacmonitor.plist
Fertig!Sind alle Pfade und der USB-Serial-Port korrekt, sollten nun Daten auf dem T-Display erscheinen. Erscheint nichts, empfiehlt es sich, zuerst die Ausgabe des Start-Kommandos zu untersuchen, ob hier ein Hinweis zu finden ist. Klappte das Starten, sollten Sie die Kennung des USB-Serial-Anschlusses noch einmal überprüfen.
ErweiterungDer Programmiercode ist recht trivial – und selbst Anfänger sollten diesen verstehen. Daher ist es recht einfach möglich, diesen um eigene Werte zu ergänzen. Ist man beispielsweise an Temperaturen oder dem Akku-Ladezustand interessiert, lässt sich das Projekt einfach ergänzen. Gefällt der Look nicht, lassen sich die verwendeten Zeichen-Befehle einfach alterieren.
HaftungsausschlussEs handelt sich hier um ein privates Bastelprojekt – und ich bin kein Ingenieur. Bitte verwenden Sie das Projekt daher mit Vorsicht – und auf eigene Verantwortung. Mit den angebotenen Dateien und 3D-Modellen können Sie machen, was immer Sie wollen (modifizieren, erneut zum Download bereitstellen usw). Wenn Sie nicht genau wissen, was Sie tun – holen Sie sich Rat eines Experten, bevor Sie fortfahren. Ich bzw. meine Firma sind nicht verantwortlich für Schäden jeder Art, welche durch das Projekt oder diese Anleitung entstehen.