Hallo,
in Absprache mit @fabian habe ich mich mal dem Thema eines (trans-) reflexiven Displays zugewendet – also ein Display, welches etwa Sonnenlicht nutzt und somit auch bei hoher Umgebungshelligkeit abgelesen werden kann.
@fabian hatte schon ein Display beim Hersteller JHDLCM herausgesucht, nämlich das JHD12864-G156BTW (Foto auch unten).
Dieses wird über über 4-Wire-SPI angesteuert, was eine kleine Änderung der OBS-Hauptplatine notwendig machen würde.
Ich habe noch das JHD12864-G98BTW herausgesucht, vom gleichen Hersteller, aber mit Ansteuerung über I2C, so wie das bisher beim OBS verwendete SSD1306-Display.
Wie das bisher verwendete Display haben beide eine Auflösung von 128x64 Pixel. Beide Displays sind transreflexiv, i.d.R. also allein durch die Umgebungshelligkeit ablesbar, haben aber zusätzlich auch noch eine Hintergrundbeleuchtung, die man etwa bei Dunkelheit aktivieren könnte.
Ich habe von beiden Displays drei Stück bestellt und sie zum Laufen gebracht. Die OBS-Firmware musste dafür natürlich etwas angepasst werden, insbesondere habe ich die bisher für das Display verwendete Bibliothek durch die U8g2-Bibliothek ersetzt.
Das habe ich auf Github gestellt und auch schon einen Pull-Request erstellt. (Edit: leider ist der PR aus mir unbekannten Gründen nicht abrufbar, daher zusätzlich hier auf Codeberg) Ganz fertig ist es aber noch nicht, da die U8g2-Bibliothek ein anderes Format für die Schriften erfordert – ich habe daher erstmal von U8g2 mitgelieferte Schriften genommen, die von der Größe noch nicht ganz passen.
Hier ein Eindruck, wie die beiden Displays aussehen; die als Größenreferenz darüber liegende Knopfzelle hat etwa die Größe einer 2-Euro-Münze.
Links das JHD12864-G156BTW-Display (SPI) rechts das JHD12864-G98BTW-Display (I2C):
Wie zu sehen ist, ist das JHD12864-G98BTW-Display (I2C) etwas größer; aus meiner Sicht sind aber beide von der Größe her gut passend.
Zu tun ist nun noch die Anpassung der Schriften, denn wie auch auf den Bildern zu sehen ist, passt diese gerade noch nicht ganz. Hierfür würde mich von den für die Firmware „zuständigen“ interessieren, ob ihr eher bei der bisherigen OpenSans-Schrift bleiben möchtet, oder auf eine bei U8g2 mitgelieferte Schrift wechseln möchtet. Vielleicht tauschen wir uns dafür aber besser in einem separaten Thread oder auf Github aus.
Da beide Displays von JHDLCM ohne Platine kommen, und ich vermute, dass es die auch nicht nicht Platine gibt, stünde wohl des weiteren an, eine Platine für die Displayeinheit zu entwerfen. Das könnte ich auch machen, vorher warte ich aber auf euer Feedback, welches Display ihr vorziehen würdet.
Für das JHD12864-G156BTW-Display (SPI) spricht, dass die Ansteuerung über SPI i.d.R. robuster ist. Dagegen spricht, dass mehr Adern zur Displayeinheit benötigt werden (6 + 1 statt wie bisher 4 + 1 (Display + Button)).
Für das JHD12864-G98BTW-Display (I2C) spricht, dass es ohne Änderung der OBS-Hauptplatine einsatzfähig wäre und somit auch bei bestehenden OBS nachgerüstet werden könnte. Gegen dieses Display spricht, dass man mir bei JHDLCM mitgeteilt hat, dass sie es möglicherweise nicht mehr lang produzieren.
Ich persönlich würde die Entscheidung davon abhängig machen, wie viel Nachfrage bzgl. Nachrüstung es gibt – wenn das für ~100 OBS infrage käme, könnte man ja erstmal auf das JHD12864-G98BTW-Display (I2C) setzen, und parallel eine OBS-Variante mit dem JHD12864-G156BTW-Display (SPI) für die Zukunft entwickeln.