OLED Display ssd1306: Anzeige verschwindet sofort wieder

  • Guten Tag!

    Das genannte Display hat schon mal gut funktioniert. Nun verschwindet der angezeigte Text sofort wieder. In weniger als 1 Sekunde.

    Der RPi hat ein upgrade von heute (Buster) und läuft headless. Ich habe die Bibliotheken von Adafruit und von luma.core ausprobiert - kein Unterschied im Verhalten.

    Ich habe ein zweites Display ausprobiert - kein Unterschied.

    Dis Displays werden von i2cdetect korrekt erkannt (klar, sonst würden sie ja gar nix anzeigen können). Den aufs Wesentliche reduzierten Python-code habe ich eingefügt; hoffentlich klappt das. Danke für jede Idee!

    oledlibtest.py

  • OLED Display ssd1306: Anzeige verschwindet sofort wieder? Schau mal ob du hier fündig wirst!

  • Hallo kolras, willkommen im Forum!

    verstehe ich das Richtig: Du siehst Text1 für eine Sekunde, danach 4 Sekunden nix. Danach 2.Test2 für eine Sekunden, 4 Sekunden nix. Danach Text3 für eine Sekunde, 4 Sekunden nix... ?

    Hast Du das Programm, das Du gepostet hast auch probiert? (solltest Du immer machen!)

    Was mir bei Deinem Programm sehr eigenartig scheint: Ich sehe keine Auflösung des Displays. Woher weiß das Programm welche Pixel es ansteuern kann, wenn ihm "keiner" sagt, wie viele Pixel in X und in Y Richtung sind?

    Vielleicht nimmt das Programm was an, schreibt aber letztendlich zu viel und überschreibt Dir dabei den Bildschirm?

    Den Code kannst Du hier ganz einfach in eine "Box" geben - drücke einfach das </> Icon und kopiere da Deinen Code hinein. Dann braucht keiner irgendwelche Dateien herunterladen (das macht keiner gerne)

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Danke VeryPrivate!

    Der Code ist ein Auszug zum Testen. Er tut genau das, was du beschreibst. (Nächstes Mal wird er korrekt gepostet!)

    Und vielen Dank für den Hinweis auf width und height.

    Ich werde die Parameter heut abend mal verwenden. Möglicherweise sind sie jetzt verpflichtend.

    Ich hatte allerdings zwei andere Projekte mit einem identischen Bildschirmchen laufen.Beide ohne die Ausdehnungsparameter. Das eine läuft noch - da bestimme ich die Anzeigedauer im code selbst. Das andere lief über ein Jahr und wurde höchstens einmal im Monat neu gestartet - der OLED tat seinen Dienst dauerhaft. Dann kam ich auf Verbesserungsideen - und nun kann ich die Anzeige nicht lesen; da bin ich nicht schnell genug für ;)

    Unwichtig und ot: Es geht mal wieder um eine Musicbox. Ein RPiZ mit HifiBerryMiniAmp macht die Music. Und da ich darauf nicht löten kann (wg. Feinmotorik im 8. Lebensjahrzehnt) macht ein zweiter RPiZüber WLAN die Steuerung. Er hängt u.a. an einem Telefon aus den 1930er Jahren. Ich kann damit 10 Web-Radiosender wählen und playlists aus meiner Musiksammlung. Das funzt schon. Weckzeiteingabe programmiere ich grad. Nur die Sch... Anzeige will nicht!

  • Ich benutze die SPI Variante dieser OLEDs, und da hält der den letzten gesendeten Frame, bis man ihm den Strom wegnimmt. Insofern würde ich das beobachtete Verhalten auch eher in der Software verorten. Kannst du ausschließen, das du zb ein weiteres Skript im Hintergrund laufen hast?

  • Interessant, wenn ich bei mir den ESP in Deepsleep schicke, zeigt das Display auch nicht s mehr an, weswegen ich mittlerweile unterscheide ob ein Display angeschlossen ist (-> Delay()) oder nicht (-> Deepsleep())

    EDIT:

    Bei mir jedoch als Verbindungsart I2C

  • Deep sleep ist Ggf nochmal was anderes. Da fällt dann die reset Leitung ab zb. Ich habe da immer volle power drauf, nur treibe ich den nicht.

  • Weil es gerade zufällig passiert ist: Programm ist abgeschmiert weil der Font nicht gefunden wurde. Und das Display bleibt so.

  • Danke für eure Anmerkungen.

    Height und width haben keine Änderung gebracht.

    Im Hintergrund läuft nichts anderes.

    Und ich lasse den ssd1306 nicht einschlafen. Er soll wach bleiben!

    Ich habe grad (einschließlich der Vekabelung!) alles nochmal geprüft. Und weitere Optionen aus der luma.core (in den globalen Konstanten den persist-Modus explizit gesetzt u.a) und aus der Adafruit-Bibliothek ausprobiert. Erkenntnisse: a) das Testprogramm ist nicht zu einer längeren Anzeige zu bewegen; b) mein Hauptprogramm zeigt das, was es soll, und solange wie es soll genau einmal nach dem Hochfahren. Es war mir gar nicht aufgefallen, dass es einmal klappt. Schon die zweite Anzeige ist für weniger (!) als eine Sekunde sichtbar. Wenn ich das Programm beende und neu starte - klappt es nicht mal einmal.

    Mysteriös - aber ich glaube nicht an Mysterien. Ich stelle das Thema zurück, mache mit Wichtigem weiter. Am Ende gibt es entweder eine logische Erklärung oder einen workaround.

  • <Sorry, blöde Frage:> wie beende ich ein Thema? Habe ich auf die Schnelle nicht gefunden.</Sorry, blöde Frage:>


    Wer suchet ...

    Einmal editiert, zuletzt von hyle (21. Oktober 2020 um 19:08) aus folgendem Grund: Ein Beitrag von kolras mit diesem Beitrag zusammengefügt.

  • Hallo Hyle,

    eigentlich sollten wir uns jetzt wohl in die Plauderecke verkrümeln. Daher ganz kurz: wer seinen Raspi unterversorgt, sollte ich nicht wundern. Meine Hochachtung gilt u.a. den Hirnforschern, die in den letzten Jahrzehnten so mysteriöse Dinge wie z.B. das deja-vue Mysterium enträtseln konnten. Derzeit nicht enträtselte Mysterien sollten sich warm anziehen - sie kommen auch noch dran.

    Tschüss

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!