Phoniebox - OLED (Reset)

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    ich bin Neuling – sowohl in der Materie, als auch im Forum – habe aber hier viel gelesen und gesehen, wie toll die gegenseitige Unterstützung in diesem Forum hier ist! Daher versuch ich`s mal:

    Ich bin gerade dabei, eine Phoniebox (nach Anleitung von Splitti) zu basteln und erhoffe mir Unterstützung zu einem für mich unlösbaren Problem. Mir ist bewusst, dass das Projekt aufgrund der fehlenden Spotify-Unterstützung für viele nicht mehr relevant ist, aber für meine Tochter erschien mir das Projekt dennoch passender als die wirklich beeindruckende mupibox.

    Aber zu meiner Frage:

    Problembeschreibung

    Ich habe versucht ein OLED-Display in die Phoniebox zu integrieren und habe mich für ein 2.42 Zoll-Display entschieden, dass bei mir noch rumgelegen ist. Das Display habe ich auf I2C umgelötet und beim ersten ansteuern hat es auch funktioniert. Nach dem ersten Reboot hat es das aber nicht mehr (Ausgabe entweder Artefakte oder gar nichts).

    Erklärungsversuch

    Nach meinem (rudimentären) Verständnis liegt das Problem darin begraben, dass das Display einen hardwareseitigen Reset kurz vor dem erstmaligen Initialisieren des Displays braucht. Diese Funktion sollte der "Reset-Pin" erledigen. Ich glaube, dass der PIN einmal kurz kein Strom bzw. „LOW“ und dann dauerhaft Strom (3,3V oder „HIGH“) braucht und das dann das Display seinen Dienst verrichten sollte. Diese Theorie habe ich durch einen sehr kruden Versuch getestet: Wenn ich den Reset-Pin auf dem Display während des Boot-Vorganges kurz an GND und ihn dann an 3,3V hänge, funktioniert das Display einwandfrei bis zum nächsten reboot.

    Lösungsgedanke

    Meine Lösungsidee würde daher wie folgt aussehen: Den Reset-Pin an der noch freien GPIOs klemmen (bspw. GPIO 25, da ich die LED-Ansteuerung nicht nutze und alle LEDs immer "an" habe) und softwareseitig einen Befehl implementieren, der irgendwie so heißen könnte:


    GPIO-output (25, 0) => Sleep (0,1) => GPIO-output (25, 1)

    Mein Problem ist, dass ich viel zu wenig Ahnung von der Software-Architektur und auch vom Programmieren habe (bin Sozialpädagoge), als dass ich diesen Lösungsgedanken umsetzen könnte. Konkret weis ich einfach nicht, was ich wie und wo reinschreiben muss und wollte euch daher um Hilfe bitten.


    Wenn Ihr sagt, dass ich mit meinem Ansatz voll auf dem Holzweg bin oder das alles nicht so einfach umzusetzen ist, ist auch das für mich eine große Hilfe. Dann kaufe ich nämlich einfach das OLED-Display, dass auch Splitti empfiehlt und mache damit weiter – ich würde es aber gern zuerst hier versuchen ?

    Beste Grüße und schonmal vielen Dank

    Maerchenonkel

  • Hallo zusammen,

    sieht so aus, als hätte ich selber eine Lösung für das Problem gefunden - die ich aber aufgrund der vielen Aufrufe meine Anfrage gerne mit euch teile:

    Als Erstes ist mir aufgefallen, dass es anscheinend genau anders rum ist: Das Display braucht erst HIGH und dann LOW. Den RES des Displays habe ich daher mit dem GPIO 25 verbunden (Nutze die Ansteuerung der LEDs nicht). Ich habe dann der config.txt folgende Zeilen hinzugefügt:

    gpio=25=op,dh

    boot_delay=1

    gpio=25=pd

    Die Zeilen habe ich vor der Initialisierung des Displays eingefügt und aktuell funktioniert das Display wunderbar - auch nach einigen Reboots und Shutdowns. Ob die Lösung einigermaßen elegant ist, kann ich nicht abschätzen, aber es klappt ;)

    Als nächstes würde ich versuchen, die Verzögerung im Boot-Ablauf möglich zu verkürzen - mal sehen, welchen Grenzwert das Display hat. Das werde ich aber erst am Wochenende schaffen. Wenn Interesse daran besteht, melde ich mich gerne mit dem Ergebnis.

    Beste Grüße

    Maerchenonkel

Jetzt mitmachen!

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