Projekt Gameboy Nano Teil 1

Vor einer Woche habe ich auf Thingiverse das folgende Projekt entdeckt:
https://www.thingiverse.com/thing:1334253
Natürlich musste ich unbedingt sowas machen. Ich liebe Nintendo-Zeug, kenne mich etwas mit Raspberry Pi aus, habe ein 3D Drucker. Die Sterne schienen günstig, und so machte ich mich auf ans Werk.

Erster Schritt: Vorlage drucken. Vorlage gedruckt, hat top funktioniert. So sieht das aus:

Im Anschluss habe ich ein Display bestellt. Ich wollte es mir nicht zu einfach machen und bin bei der Hardware einen eigenen Weg gegangen. Ich habe ein günstigeres OLED Modul aus Amazon bestellt. Es handelt sich um das folgende: https://www.amazon.de/Waveshare-Interface-Raspberry-Examples-Provided/dp/B079KRC9X3
Und hier ist die Dokumentation: https://www.waveshare.com/wiki/1.5inch_OLED_Module

Das Nutzen dieses Displays sollte ein Weg für mich sein, wieder einmal ein wenig was mit Hardwareentwicklung zu machen und dabei vielleicht was zu lernen. Ich wollte kein Fertigcode nutzen und einfach was deployen. Kurzum, aus meiner Komfortzone zu entfliehen. Ich konnte, abgesehen von anfänglicher Inkompetenz meinerseits, die Demos auf dem Display darstellen. Nun lag die Hürde darin, das was der Benutzer sieht, auf dem kleinen Bildschirm darzustellen und das ganze Dabei gut runterzuskalieren. Ich habe nämlich heraus gefunden, dass der Gameboy Nano Entwickler das am Ende genau so umgesetzt hat. Es gibt dafür bereits ein Projekt für bestimmte Raspberry Pi Displays, das Referenzprojekt findet sich hier:
https://github.com/adafruit/Adafruit_Userspace_PiTFT (siehe Nanoscreen)

Es klingt dumm, aber eine Woche lang habe ich daran gearbeitet, genau das umzusetzen für mein Waveshare-Grayscale-OLED-Modul. Und am Ende war das Ergebnis nicht einmal befriedigend. Hier ist das Ergebnis:

Man sieht die Pokemon Titelanzeige. Im Hintegrund großes Kabelchaos und der Raspberry Pi. Außer „Pokemon“ kann man leider nichts lesen.

Ein paar Lehren, die ich aus dem Ganzen mitbekommen habe:
– Entwicklung in C ist anstrengender als man denkt. Wie kann man überhaupt richtig debuggen??? Es ist lange her seit ich C an der Uni hatte. Es wird vielleicht bald mal wieder Zeit ein Kurs zu belegen.
– Es macht unglaublich Spaß sowas zu entwickeln, der Mehrwert ist aber nicht vorhanden. Wenns mir nicht um die Herausforderung ginge, hätte ich direkt das teurere Modul genommen.

Es gibt natürlich auch noch offene Fragen. Ich frage mich, ob ich mit noch mehr Aufwand die Darstellung noch besser hinbekommen würde. Die Demos sahen so viel besser aus, als das, was ich da gebastelt habe. Es ist sicherlich möglich, das besser hin zu bekommen. Aber das vielleicht ein andernmal 😀