Neue Firmware für den TTGO T-Display (Version 1.18)

Hier werden einzelne Projekte mit MicroPython vorgestellt
Antworten
Heinrichs
Beiträge: 151
Registriert: Do 21. Okt 2010, 18:31

Neue Firmware für den TTGO T-Display (Version 1.18)

Beitrag von Heinrichs » Mo 21. Feb 2022, 15:00

Im März 2021 hatte ich bereits in meinem Beitrag Neue Firmware für den TTGO erwähnt, dass bei den neueren Versionen der Firmware Probleme mit dem Display aufgetaucht waren. Das Erscheinen der neuen Version 1.18 (v1.18-128-g2ea21abae-dirty on 2022-02-12) war für mich Anlass, diesem Problem auf den Grund zu gehen, bietet diese neue Version doch eine Reihe von Verbesserungen an (s. u.).

Startet man ein einfaches Testprogramm, etwa

Code: Alles auswählen

# Display-Test: 

from machine import Pin, SPI
import st7789
  
spi = SPI(2, baudrate=20000000, polarity=1, sck=Pin(18), mosi=Pin(19))
display = st7789.ST7789(spi, 135, 240,  reset=Pin(23, Pin.OUT), cs=Pin(5, Pin.OUT), dc=Pin(16, Pin.OUT), backlight=Pin(4, Pin.OUT), rotation=3)

display.init()
display.fill(st7789.WHITE) # Bildschirm weiß

so bleibt das Display leider dunkel.

Da es keine Fehlermeldung gab, vermutete ich, dass es vielleicht an der Konfiguration liegen könnte. Weil die Anschlüsse für sck und mosi durch die Hardware des TTGO-Moduls festgelegt sind, kümmerte ich mich um die anderen Parameter. U. A. veränderte ich auch den ersten Parameter des SPI-Konstruktors: Mit diesem Wert wird festgelegt, welches der vier SPI-Interfaces des ESP32 eingesetzt werden soll. Von diesen Interfaces SPI0 bis SPI3 stehen dem Anwender nur die letzten beiden zur Verfügung; diese werden häufig als HSPI und VSPI (mit den Identifiern 1 bzw. 2) bezeichnet. Die Anschlüsse dieser Interfaces sind standardmäßig:

Code: Alles auswählen

              | HSPI (id = 1) | VSPI (id = 2)
--------------+--------------------------------
sck           | 14            | 18
mosi          | 13            | 23
miso          | 12            | 19                 
Da auch schon bei VSPI nicht die Standardanschlüsse benutzt worden waren, wagte ich es: Ich meldete das Display einmal versuchsweise an das HSPI an! Und schon funktionierte das Display mit der Firmware-Version 1.18!

Wer jetzt die Version 1.18 von Russ Hughes benutzen möchte, braucht bei der Initialisierung des Displays den Identifier 2 lediglich durch 1 ersetzen!!!. Die Firmware ist unter https://github.com/russhughes/st7789_mpy erhältlich; ich habe sie aber auch im Anhang zum Download bereit gestellt.


Sollten Sie (wie ich) auf Ihren TTGOs verschiedene Firmware-Versionen, z. B. 1.12, 1.14 und 1.18 haben, dann können Sie mit Hilfe der folgenden Programmzeilen automatisch den richtigen Identifier benutzen:

Code: Alles auswählen

import os
release = os.uname().release[0:4]
# print(release)
id = 2 # z. B. für V 1.12 und V 1.14
if release == '1.18':
    id = 1    
spi = SPI(id, baudrate=20000000, polarity=1, sck=Pin(18), mosi=Pin(19))

Welche Neuerungen bringt nun die Version 1.18 gegenüber der Version?

An dieser Stelle möchte ich nur zwei davon angeben:
  • Gegenüber der Version 1.14 sind die Zeichensätze mit den Sonderzeichen wieder in die Firmware integriert. Bei dem Programm zu Abb. 1 musste deswegen nur noch der griechische Zeichensatz in den Flash-Speicher geladen werden.
Zeichensaetze.jpg
Abb. 1
Zeichensaetze.jpg (48.29 KiB) 498 mal betrachtet

  • Es gibt weitere Grafik-Methoden, z. B. eine Methode zum Darstellen von Polygonen (vgl. Abb. 2). Das zugehörige Programm findet man in der Anlage.
Polygone.jpg
Abb. 2
Polygone.jpg (47.95 KiB) 497 mal betrachtet

Detaillierte Hinweise findet man wieder unter https://github.com/russhughes/st7789_mpy. Da diese Website einem ständigem Wandel unterliegt, habe ich sie in der Anlage als pdf-Datei Doku_zu_V_1_18.pdf hinterlegt.

.
Dateianhänge
Materialien_V1_18.zip
Materialien: Firmware, Doku, Python-Datei zu Polygonen
(3.56 MiB) 109-mal heruntergeladen

Antworten