ich habe ein 2,13" E-Paper von Waveshare an einen Arduino Mega angeschlossen. Das Ganze funktioniert einigermaßen, d.h. die Arduino-IDE kann eine Beispieldatei von Waveshare übersetzen, auf den Mega hochladen und auf dem E-Paper erscheinen tatsächlich Bildchen und Texte, die ich auch editieren kann.
Das ist schon mal ein Anfang, da könnte man sich weiter vortasten. Allerdings wäre es hilfreich, wenn man eine genauere Übersicht hätte, wie die Sachen dargestellt werden. Z.B. funktioniert es nicht, wenn ich eingebe:
1
paint.DrawStringAt(30,30,wert,&Font12,COLORED);
um eine Variable (wert) auf das E-Paper zu bringen.
Manches kann man sich zwar aus den Beispielen zusammenreimen, aber nützlich wäre eine Übersicht von den gändigsten Befehlen. Hat vielleicht jemand einen Link zu so etwas?
Am einfachst geht es wenn du alles selber programmierst. :)
Die mitgelieferten Beispiele sind grottig, die daraus geklaute
Arduino.Sauce ist nicht besser.
Grund dafuer scheint mir zu sein das es mehrere unterschiedliche
ePapers gab die komplett andere Controller hatten, aber mit
aenlichen Befehlssatz. Natuerlich keineswegs komplett identisch.
Ich glaube Waveshare kauft ein was sie gerade bekommen und verhoekert
das dann weiter.
Aber alle hatten 2.13" Groesse. Da ist natuerlich eine Referenzierung
ueber die Groesse ein Schmerz im Arsch.
Das weiß ich jetzt noch nicht, im ersten Anlauf wahrscheinlich int oder float. Könnte man ja in Text umwandeln, aber ich dachte, daß es in der E-Paper-Programmierungs-Sprache so etwas auch vorgefertigt geben müßte.
Am einfachst geht es wenn du alles selber programmierst. :)
Ja, wäre mir auch am liebsten. Aber ich brauche erst mal einen Einstieg, da ich noch nie so eine Grafik programmiert habe. Ich weiß nicht, wie man dem Ding sagt, an welchem waagerechten und senkrechten Pixel begonnen werden soll, wie z.B. ein Textausgabezeile strukturiert werden sollte usw. usf.
Ein Rechteck oder einen Kreis könnte ich ja noch produzieren, aber dann heißt es bei dem einen "paint...", beim anderen "Display...".
Ich würde mich auf irgend eine verfügbare "Sprache" beschränken, die zu dem Controller paßt, der auf dem Waveshare 2,23" sw verbaut ist.
Das ist die Type, wo es bei mir am "...Display.." hapert (vgl. angehängte Fehlermeldung). Vielleicht müßte ich da irgendwas nachinstallieren?
Bei mir hört das Teil nicht auf "display", sondern auf "paint" von Waveshare. Hast Du auch so ein Waveshare-E-Paper oder ein anderes?
gibt es eine Möglichkeit, herauszufinden, welcher Controller in Waveshare 1.23inch-E-ink HAT 250x122 verbaut ist? Ich habe an Waveshare geschrieben, aber als Antwort nur wieder den Hinweis auf ihren Website bekommen, wo ich keinen Hinweis auf den Controller gefunden hatte.
Ich habe die Beispiele von U8g2 probiert; man muß eine passende Zeile wählen. Bei meinem E-Paper paßt:
wahrscheinlich deshalb, weil ich das Teil an einen Arduino Mega angeschlossen habe und die Verdrahtung lt. dieser Zeile zufällig mit der Verbindung zum Mega übereinstimmt. Und, weil dort SSD1327 angegeben ist, der vielleicht in meinem E-Paper verbaut ist?
Jedenfall sieht man auf dem Display etwas, aber nicht das, was im Programm steht, sondern etwas wie ein QR-Code. Man kann zwar keine richtige Darstellung erwarten, weil ja die Display-Charakteristika ganz andere sind, aber so daneben solle es doch nicht sein.
Ob es eine Möglickeit gibt, mein E-Paper doch noch gangbar zu machen? Bei U8g2 würde ich gern bleiben.
Moin, Von dem Ding gibt es V1 bis V3. Bilder von Vorder und Rueckseite. Und von dem Display bitte. Mein Gedankelesegeraet ist gerade defekt. Auf ausreichende flaechige Beleuchtung achten.
Anbei zwei Bilder von dem 1.23inch-E-ink HAT 250x122. Auf dem Teil steht Rev 2.1 und außerdem gibt es einen Aufkleber mit "V3".
Angeschlossen ist das Ding an einen Arduino Mega 2560 R3.
Hilft das denn weiter?
nachdem das Waveshare 2,13inch e-Paper 250x122 wohl nur seine eigene Beispieldateien von Waveshare verstehen kann, überlege ich, ob ich mir ein anderes, z.B. Lilygo TTGO T5 V2.0 4,7", beschaffen sollte.
Aber: unter den Beispieldateien von U8g2 finde ich z.B. bei HelloWorld (und bei den anderen ist es nicht besser) eine Liste von "Constructors", von den man eine auswählen muß. Ein passender Eintrag für das Lilygo-4,7"-Teil gibt es nicht. Wie also mit U8g2 umgehen, wenn schon die Beispielprogramme nicht für 4,7"-E-Paper geeignet sind?
In GxEPD2_display_selection_added.h findt man zwar etwas, das nach dem 4,7" E-Paper aussieht, aber explizit ist es nicht erwähnt, also unsicher.
nachdem das Waveshare 2,13inch e-Paper 250x122 wohl nur seine eigene
Beispieldateien von Waveshare verstehen kann
Und warum versuchst nicht Du, diese Beispieldateien zu verstehen? Die sind schließlich nicht dafür gedacht, das Display zu bespaßen, sondern Entwicklern als Grundlage für eigenes zu helfen.
Und da ist ganz klar zu sehen, was man machen muss, um Text auf dem Display auszugeben. Sogar mit einer wählbaren Schriftart.
Das passiert in der Funktion Setup() in Zeile 32 und 33.
Was bitte ist das Problem?
Jetzt sag' nicht, daß Dir eine Funktion zum Ausgeben eines numerischen Wertes fehlt. Das kann es ja wohl wirklich nicht sein; Du musst nur Deinen numerischen Wert in einen String umwandeln, was man z.B. mit sprintf() erledigen kann, und diesen String dann ausgeben.
Jetzt sag' nicht, daß Dir eine Funktion zum Ausgeben eines numerischen
Wertes fehlt. Das kann es ja wohl wirklich nicht sein; Du musst nur
Deinen numerischen Wert in einen String umwandeln, was man z.B. mit
sprintf() erledigen kann, und diesen String dann ausgeben.
Oder man bastelt sich eine, die das übernimmt...
Dann kann man sich eine für float und eine für (unsigend) integer bauen, die dann auch nicht so viel Speicher fressen wie sprintf.
die dann auch nicht so viel Speicher fressen wie sprintf.
Ja, das "speicherfressende" printf ist irgendwie nicht aus den Köpfen rauszubekommen. Daß wir mittlerweile meistens nicht mit mit µC hantieren, die gerade mal 2 kB Flash-ROM haben, und daß man für nicht genutztes Flash-ROM auch kein Geld vom Hersteller zurückbekommt, das wird ebenso gerne übersehen wie die Fehlerträchtigkeit selbstgestrickter Konvertierungsfunktionen (die übrigens auch Speicher brauchen), ganz zu schweigen von deren Einschränkungen, was Formatierungen angeht. Werte rechtsbündig ausgeben, mit oder ohne führende Nullen ...
Aber ja, printf ist ja so speicherfressend.
Daß vernünftige Compiler mit Libraries für unterschiedlich vollständige printf-Implmentierungen daherkommen (mit oder ohne Unterstützung für float, mit oder ohne Unterstützung variabler Feldbreiten (* im Formatstring), mit oder ohne 64-Bit-Unterstützung ...), und dadurch natürlich unterschiedlich viel Speicher benötigen, das wird auch gerne übersehen, denn printf ist ja /sooo/ speicherfressend.
Speicher braucht man für das EPD sowieso. Und die Daten sollen ja auch schnell irgendwo herkommen, http/MQTT per WLAN zB. Und Controller die das können juckt ein printf nicht. Da muss man nix optimieren.
die dann auch nicht so viel Speicher fressen wie sprintf.
Ja, das "speicherfressende" printf ist irgendwie nicht aus den Köpfen
rauszubekommen. Daß wir mittlerweile meistens nicht mit mit µC
hantieren, die gerade mal 2 kB Flash-ROM haben, und daß man für nicht
genutztes Flash-ROM auch kein Geld vom Hersteller zurückbekommt, das
wird ebenso gerne übersehen wie die Fehlerträchtigkeit selbstgestrickter
Konvertierungsfunktionen (die übrigens auch Speicher brauchen), ganz zu
schweigen von deren Einschränkungen, was Formatierungen angeht. Werte
rechtsbündig ausgeben, mit oder ohne führende Nullen ...
Aber ja, printf ist ja so speicherfressend.
Daß vernünftige Compiler mit Libraries für unterschiedlich vollständige
printf-Implmentierungen daherkommen (mit oder ohne Unterstützung für
float, mit oder ohne Unterstützung variabler Feldbreiten (* im
Formatstring), mit oder ohne 64-Bit-Unterstützung ...), und dadurch
natürlich unterschiedlich viel Speicher benötigen, das wird auch gerne
übersehen, denn printf ist ja sooo speicherfressend.
Da hat wohl jemand schlecht geschlafen.
Natürlich kann man (s)printf verwenden.
Konvertierungsfunktionen (die übrigens auch Speicher brauchen), ganz zu
schweigen von deren Einschränkungen, was Formatierungen angeht. Werte
rechtsbündig ausgeben, mit oder ohne führende Nullen ...
Aber man kann dann auch eigene Sachen einbauen. Ein Beispiel hab ich
ja schon genannt. Ein weiteres:
Mein eigenes Printf kann auch Integer als Festkomma ausgeben.
Ich kann programmintern immer mit dem 10x oder 100x Wert rechnen
und nur bei der Ausgabe fuege ich dann einen Punkt an der richtigen Stelle ein.
Und warum versuchst nicht Du, diese Beispieldateien zu verstehen? Die
sind schließlich nicht dafür gedacht, das Display zu bespaßen, sondern
Entwicklern als Grundlage für eigenes zu helfen.
Das versuche ich ja unentwegt.
Aber:
1.) die Beispieldatei von Waveshare, die auch Du mpfohlen hast, funktioniert. Sie läßt sich kompilieren und zeigt auch Bildchen und Texte auf dem Display. Man hat danach keinerlei Informationen über die Befehle, um es nach eigenen Bedürfnissen umzuwandeln.
2.) In den Beispielen von GxEPD2 sind zwar viele Befehle zu sehen, die man für Eigenbedarf abkupfern könnte, aber es läßt sich nicht kompilieren. Jedesmal kommt der Hinweis auf Display, was nicht definiert sei. Da fehlt irgendeine z.B. ... .h-Datei. Ich weiß nicht welche.
Bei U8g2 scheint es gut auszusehen, wahrscheinlich gibt es sogar eine Befehlsreferenz. Nützt aber auch nichts, weil es in der Konstrukturliste nicht mein Display mit 250 x 122 und 2,13" gibt.
Kennst Du vielleicht andere Beispieldateien, die man durchkauen und ausschlachten könnte?
Also wenn du die Bibliothek von Uwe verwendet, musst du auch seine Beispiele verwenden. Menue ganz links. Damit ist der Fall geloest. U8G2 ist gut. Wenn du HW- SPI verwendest und das an einen anderen MC anschliessen willst solltest du mal die SPI Doku (fuer Arduino) ueberfliegen. Zusammengefasst: Die beiden Anschluesse in der U8G2 Zeile kannst Du frei legen. Anschlussnummer entsprechen anpassen. Die die fehlen sind fest (daher der Name HW-SPI). Nach Pinout Bildchen des Zielboard anschliessen. Fettisch.
Also ist es /naheliegend/, sich mal die Deklaration der Klasse Paint anzusehen. Am Anfang habe ich auf ein paar #include-Anweisungen hingewiesen, der Name "epdpaint.h" klingt doch irgendwie verdächtig.
Das ist die Liste aller Memberfunktionen der Klasse Paint, die Du verwenden kannst. Die Namen sollten reichlich selbsterklärend sein, alles, was mit "Draw" anfängt, hat offenkundig irgendwas mit dem Zeichnen von Dingen zu tun.
Wofür wohl mag "DrawStringAt" stehen? Was könnten deren Parameter x und y bedeuten? Oder der Parameter "text"?
Das sind also "keinerlei Informationen".
Sorry, aber ich hab' das hier jetzt in vielleicht fünf Minuten für Dich 'rausgefunden, das ist echt keine Raketenwissenschaft.
Also wenn du die Bibliothek von Uwe verwendet, musst du auch seine
Beispiele verwenden.
Uwe? Ich finde bei Github OliKraus - ist das etwa etwas anderes?
Ich habe über Arduinos Library Manager U8g2 in Arduino installiert und benutze die Beispiele von dort. Ist das richtig?
Dann habe ich bei Github die riesige Konstruktorenliste durchgesehen. Etwas mit 250x122 finde ich partout nicht. Wenn es nötig ware, würde ich die SPI-Verdrahtung anpassen, aber wenn schon die 250x122 nicht gefunden werden?
Jedenfalls läßt sich das Beispiel nicht kompilieren, es bleibt immer an dem nur näherungsweise passenden Konstruktoreintrag hängen.
Menue ganz links. Damit ist der Fall geloest.
Meinst Du Menue ganz links in Arduino-IDE 2.0.x?
U8G2 ist gut.
Wenn nur wenigstens die Beispiele liefen, dann könnte ich mich durchhangeln. Vielleicht sollte ich über andere E-Papers (Lilygo?) nachdeken? Dann würde ich vorher nachsehen, ob sie in der Liste enthalten sind.
Das ist die Liste aller Memberfunktionen der Klasse Paint, die Du
verwenden kannst. Die Namen sollten reichlich selbsterklärend sein,
alles, was mit "Draw" anfängt, hat offenkundig irgendwas mit dem
Zeichnen von Dingen zu tun.
Ich versuche es mal, nachdem ich mit U8g2 derzeit nicht weiter komme.
Das Drehen des Bildschirms ist mir schon gelungen
Ich habe die Beispiele von U8g2 probiert; man muß eine passende Zeile
wählen. Bei meinem E-Paper paßt:U8G2_SSD1327_WS_128X128_F_4W_HW_SPI
u8g2(U8G2_R0, /* cs=/ 10, / dc=/ 9, / reset=*/ 8);
wahrscheinlich deshalb, weil ich das Teil an einen Arduino Mega
angeschlossen habe und die Verdrahtung lt. dieser Zeile zufällig mit der
Verbindung zum Mega übereinstimmt. Und, weil dort SSD1327 angegeben ist,
der vielleicht in meinem E-Paper verbaut ist?
Natuerlich Oli. Du hast doch gesagt es laeuft mit der Zeile. Oder doch nicht? Wenn der Controller stimmt und die Aufloesung (paar Pixel mehr sollte auch gehen), ist alles OK. Das mit dem SPI anschliessen, solltest du lernen. Welche Konfig Zeile verwendest du denn mit GxEPD2?
tuerlich Oli. Du hast doch gesagt es laeuft mit der Zeile. Oder doch
nicht? Wenn der Controller stimmt und die Aufloesung (paar Pixel mehr
sollte auch gehen), ist alles OK. Das mit dem SPI anschliessen, solltest
du lernen. Welche Konfig Zeile verwendest du denn mit GxEPD2
Also, bei GxEPD2_HelloWorld "läuft" es mit der Zeile
Allerdings bedeutet das hier nur, daß es kompilierbar ist. Auf dem EPD tut sich nichts. Ich habe nämlich nicht die Anschlüsse gem. obigen Schema geändert, sondern es zunächst so belassen wie es bei EPD2in13, der von Waveshare gelieferten Beispieldatei, funktioniert.
Im übrigen sind die GxEPD-Veruche sehr maliziös. Fast immer scheitert es daran, das das Fehlen von display bemängelt wird. Ich weiß leider nicht, was ich da noch includieren sollte.
Im übrigen sind die GxEPD-Veruche sehr maliziös. Fast immer scheitert es
daran, das das Fehlen von display bemängelt wird. Ich weiß leider nicht,
was ich da noch includieren sollte.
Du könntest die von Dir verwendete Programmiersprache erlernen. Oder damit aufhören, wild irgendwelchen irgendwo zusammengesuchten Code zu mischen.
Der Waveshare-Beispielcode funktioniert, wie Du selbst geschrieben hast.
Und der Waveshare-Beispielcode macht alles, was Du brauchst.
Es ist also völlig unnötig, irgendwelchen anderen Code, irgendwelche anderen Libraries zu verwurschteln.
Nein, es wird ein Blumenbildchen über den ganzen Schirm dargestellt (was ich aber dann abgestellt habe). Zum Schluß aber wird vieles abgeschnitten.
Ich habe den als Spielwiese benutzten Sketch angfügt und dann als Bild, was dargestellt wird.
1
// EPD2in13-230326-2
2
// von Waveshare
3
// kompilierbar und funktionsfähig
4
// auf Mega und Arduino 2.0.4 und auch 1.8.19
5
// wird als erste Basis für Weiterentwicklung benutzt
6
// Blumenbild ist abgeschafft, nervöses Blinken geblieben
7
// Ausrichtung fehlerhaft, Variable nicht dargestellt
8
9
#include<SPI.h>
10
#include"epd2in13_V3.h"
11
#include"epdpaint.h"
12
#include"imagedata.h"
13
14
#define COLORED 0
15
#define UNCOLORED 1
16
17
/**
18
* Due to RAM not enough in Arduino UNO, a frame buffer is not allowed.
19
* In this case, a smaller image buffer is allocated and you have to
20
* update a partial display several times.
21
* 1 byte = 8 pixels, therefore you have to set 8*N pixels at a time.
22
*/
23
unsignedcharimage[1050];
24
Paintpaint(image,0,0);
25
Epdepd;
26
27
voidsetup()
28
{
29
// put your setup code here, to run once:
30
Serial.begin(115200);
31
Serial.println("EPD2in13-230326-1 und epd FULL");
32
epd.Init(FULL);
33
// epd.Display(IMAGE_DATA); // Das Blumenbild wird angezeigt
34
intwert=20;
35
delay(1000);
36
paint.SetRotate(2);
37
38
Paintpaint(image,epd.bufwidth*8,epd.bufheight);//width should be the multiple of 8
paint.DrawCircle(25,25,20,COLORED);// an falscher Stelle
63
paint.DrawFilledCircle(75,25,20,COLORED);// an falscher Stelle u. abgeschnitten
64
epd.Display1(image);//3
65
66
paint.Clear(UNCOLORED);
67
epd.Display1(image);//4
68
69
delay(2000);
70
71
// Serial.println("epd PART");
72
// epd.DisplayPartBaseImage(IMAGE_DATA);
73
// char i = 0;
74
// for (i = 0; i < 10; i++) {
75
// Serial.println("e-Paper PART IMAGE_DATA");
76
// epd.Init(PART);
77
// epd.DisplayPart(IMAGE_DATA);
78
// Serial.println("e-Paper PART Clear");
79
// epd.Init(PART);
80
// epd.ClearPart();
81
// }
82
83
epd.Init(FULL);
84
Serial.println("e-Paper clear and sleep");
85
// epd.Clear();
86
epd.Sleep();
87
88
}
89
90
voidloop()
91
{
92
}
Wie man sieht, sind die Texte abgeschnitten, die diagonale Linie und das Rechteck auch. Dagengen sind die Kreise nicht da, wo sie hingehören, einer ist abgeschnitten.
Wenn man irgendwo epd.Display1(image); deaktiviert, wird gar nichts dargestellt.
wo sind die #include und warum zeigst du sie nicht?
Seit Tagen will man dir helfen aber es kommt nur mimimi geht nicht klappt nicht.
Nicht einmal zeigst du systematische Fehleranalyse oder bemühst dich um verständliche Kommunikation!
Sicher! sein das das SPI korrekt angeschlossen ist. Am besten mit einem anderen Geraet probieren das auch HW-SPI unterstuetzt, wenn du eines hast.
Wenn das dann stimmt u8g2 und GxEPD2 Konfigurationszeilen mit der gleichen oder wenig groesseren Aufloesung in HW-SPI Variante ausprobieren bis die jeweiligen Beispiele laufen.
Vorteil dieser beiden Libraries ist, das sie eine Vielzahl von Displays unterstuetzen und die Waveshare lt. deiner Aussage ohnehin Probleme hat.
Was deine Frage zum Lilygo 4.7 Kauf angeht: Achte drauf das Du mit Doppel-P bezahlen kannst, sonst bist du zur Abzocke freigegeben. Das Tracking heutzutage funktioniert nicht mehr wie vor zwei Jahren noch und ist eher fuer die Dachhasen.
Am besten suchst Du selbst mal. Guenstig waere z.B.
Wenn Du das Ding zu DEM Preis und den genannten Versandkosten auch bekommst, hast du ein Schnaeppchen gemacht. Am besten den Touchscreen gleich mitbestellen, damit kannst du dir Bedienelemente bauen die noch nicht mal der Kaept'n der Enterprise hatte.
Nimm einen ESP32 zum testen der Ansteuerung. Ist besser, weil mehr RAM. So kannst du frei waehlen zwischen allen Beispielen. Wenn eins laeuft, laufen alle.
Verwende die monochrom Version: https://github.com/olikraus/U8g2_Arduino oder probiere GxEPD2. Wie gesagt !!! Erst SPI richtig anschliessen !!! Wenn du dir nicht sicher bist lesen, fragen, gockeln, testen bis du dir sicher bist. Mit einem unproblematischem SPI geraet testen!
Nimm einen ESP32 zum testen der Ansteuerung. Ist besser, weil mehr RAM.
So kannst du frei waehlen zwischen allen Beispielen. Wenn eins laeuft,
laufen alle.
Ja, das habe ich auch vor bzw. schon begonnen. Das Problem ist, daß ich von meinen verschiedenen ESP32 einen heraussuchen und dabei die richtigen SPI-Anschlüsse heraufinden muß. Ist eine Fleißarbeit und ich komme z.Zt. nicht dazu, bin aber hoffnungsvoll.
Übrigens: ich habe bei Olikraus gelesen, daß die Arbeit an U8g2 nicht weitergeführt würde, weil es im Vergleich zu J.-M. Zingg nur Doppelarbeit bedeutete. Es wird der Übergang zu GxEPD (nicht GxEPD2) empfohlen. Ich habe lange versucht, diese Stelle wiederzufinden, ist mir leider nicht gelungen.
Jedenfalls habe ich bei J.-M. Zingg gelesen, daß nun zahlreiche E-Papers erfaßt würden; explizit wurden die Waveshare-Typen genannt! Ich habe einige Beispiele getestet und die ließen sich problemlos kompilieren. Nun muß ich, wenn ich dazukomme, nur noch eine passende SPI-Verbindung herausfinden.
Das ist nicht wirklich eine Fleissarbeit. Man muss es einmal verstanden haben. Das Problem ist bei der Namensgebung der Anschluesse, sowohl bei den Arduino Pins im allgemeinen, als auch bei den SPI Pins insbesondere. Orientiere dich an den Auswahlzeilen der Libraries, da stimmen sie immer und sind einheitlich benannt. Der Rest steht schon oben. Arbeite meine Tips durch und ueberlege warum ich das so vorgeschlagen habe. Ansonsten hast du recht, ein bischen Uebung schadet nicht. Hat mich uebrigens auch Nerven gekostet.Viel Erfolg dabei.
Das ist nicht wirklich eine Fleissarbeit. Man muss es einmal verstanden
haben. Das Problem ist bei der Namensgebung der Anschluesse, sowohl bei
den Arduino Pins im allgemeinen, als auch bei den SPI Pins insbesondere.
Orientiere dich an den Auswahlzeilen der Libraries, da stimmen sie immer
und sind einheitlich benannt. Der Rest steht schon oben. Arbeite meine
Tips durch und ueberlege warum ich das so vorgeschlagen habe. Ansonsten
hast du recht, ein bischen Uebung schadet nicht. Hat mich uebrigens auch
Nerven gekostet.Viel Erfolg dabei.
Hallo, es funktioniert!
als ich wieder etwas Zeit hatte und dazu kam, habe ich einen Sketch von J.M.Zingg gekürzt, auf meine Verhältnisse zugeschnitten und dahinein den Kram von DS18B20-Abfragen integriert.
Allerdings mußte ich für den DS18B20 die allerneueste Version von OneWire integrieren, damit es auf einem ESP32 läuft.
Bis auf ein restliches Sofwareproblem und dem noch fehlenden Gehäuse ist es nun einsatzbereit.
Vielen Dank für Eure freundliche Hilfe!!!
VG
knut735
PS Ich sollte noch erwähnen, daß ich auf ein Lilygo TTGO T5 umgestiegen bin. Im Gegensatz zu dem nackten Waveshare2.13 funktionierte es sofort und es ist kompakter und deshalb leichter unterzubringen.