Zur Startseite

Gameboy-Nano
mit Raspberry Pi Zero und "Retropie"

Link to page in English

Nachdem ich mir kürzlich einen 3D-Drucker angeschafft habe, war ich auf der Suche nach Ideen für passende Aufgaben. Eine gute Adresse dafür ist Thingiverse, wo ich auf dieses Projekt gestoßen bin und die 3D-Vorlagen im STL-Format herunterladen konnte. Das fertige Teil ist eine winzige Spielkonsole, auf der die Emulationssoftware "Retropie" läuft. Retropie vereint eine große Anzahl verschiedener Emulatoren für alle denkbare Spiele-Hardware. Im Prinzip kann man fast jedes alte Spiel egal von welcher Plattform hier drauf spielen. In der Praxis laufen manche besser, manche nicht so und manche gar nicht. Sehr gut laufen im Moment bei mir alle echten Gameboy-Spiele und auch Megadrive. Es gibt ROMs für Spiele zu Hauf, man muß einfach testen, was läuft und was einem gefällt.

An dieser Stelle möchte ich Rasmus Hauschild aber auch r1cebank, helljumper078 und The_Real_Phoenix danken. Es sind ihre Veröffentlichungen, die dieses kleine Ding für mich möglich gemacht haben. Great job guys!

Wer möchte, kann gern mit dem Handy den Code hier scannen und gelangt dann direkt zu einer dieser Referenzseiten:

Ich beginne mal mit der Liste der benötigten Elektronikteile (zur Abschreckung mit Preis):

1x
Raspberry Pi Zero
20 €
1x
1,5" OLED Display
50 €
1x
PowerBoost 1000C
21 €
1x
LiPo Akku 1,2Ah
12 €
10x
Microtaster
5 €
1x
Umschalter
2 €
Summe:
110 €

Das ist also kein billiges Teil, eher eine teure Spielerei! Aber was soll's, in diesem Fall wollte ich einfach mal rausfinden, ob es machbar ist? Und das ist es!!!

Eine Bemerkung bevor ich zum Aufbau komme:
Ich würde das Software-Setup soweit wie möglich vor dem mechanischen Zusammenbau machen. Später ist alles schwieriger.

Anleitung zur Software-Installation und Inbetriebnahme als PDF

Aus den STL-Dateien von Thingiverse druckt mein Ultimaker mit dem Material PLA die folgenden Teile:

Frontteil

Hinterteil

innere und äussere Displayabdeckung

Sockel bzw. Distanzstück für PowerBoost 1000C

Und natürlich die Knöpfe. Fast alle Designs habe ich unverändert so gedruckt, wie sie von der Webseite bereitgestellt werden.
Eine Ausnahme sind die Select/Start-Bar in der Mitte und die vier bunten Knöpfe. Ein Probedruck hatte gezeigt, dass mir die
Originalen zu klein waren. Die klapperten in den Ausschnitten des Frontteils böse rum. Also hab ich sie etwas größer gestaltet.

Für Interessierte gibt es hier eine Zip-Datei mit den von mir geänderten oder zugefügten STL-Dateien zum Nachdruck.
Für die anderen Dateien empfehle ich den direkten Download von den angegebenen Links bei Thingiverse.

Hier die einfache Schaltung. In der Mitte der 40-polige GPIO-Port des Paspberry Pi, um den sich alles gruppiert. Der Akku speist den PowerBoost, der aus den 3,7V die nötigen 5V erzeugt. Der PowerBoost sorgt auch für das Laden des Akkus, wenn am USB-Eingang ein entsprechendes 5V Netzteil hängt. Der eigentliche Einschalter ist hier als Umschalter dargestellt, der den "Enable"-Pin zwischen Masse und +V hin und her schaltet. Wenn EN auf GND liegt, ist die Ausgangsspannung 0. Das Umschalten auf +V ist eigentlich unnötig. Durch internen Pull-Up Widerstand wird der EN sofort auf +V gezogen, wenn er von Masse gelöst wird. Ein zweipoliger Anschluss nur an EN und GND reicht also für die Funktion aus.

Das OLED-Display ist für diesen Zweck etwas "overkill". Daher auch der "wahnsinnige" Preis. Es kann deutlich mehr, als hier verlangt wird, z.B. ist ein SD-Card-Speicher integriert. Als Folge werden von den 11 Anschluss-Pins nur die gezeichneten 5+2 benötigt.

Der Rest sind die 10 Mikrotaster. Die zwei oben links in der Schaltung sitzen rechts und links unter der Select/Start-Bar. Die vier links unten sitzen unter dem D-Pad und die restlichen vier rechts unten sitzen unter den farbigen Knöpfen.

Der Raspberry Pi Zero V1.3. Er ist in diesem Fall die Variante mit Kamera-Port (rechte Schmalseite). Auch das ist hier nicht nötig, die billigere ältere hätte gereicht, war aber nicht zu bekommen.

Das Display ist schon ein nettes Teil, aber wirklich sehr klein. Die sichtbare Bildschirmdiagonale im fertigen Gerät ist 38 mm.

Den PowerBoost gibt es auch als 500mA Variante. Für den 1700 mA Akku ist dieser 1000 mA Typ besser dimensioniert.
Es gibt vier farbige SMD-LEDs: LOW(rot)=Akku leer, chrg(gelb)=Laden, chrg(grün)=Voll, PWR(blau)=5V Ausgang aktiv

Für die acht Taster unter D-Pad und bunten Knöpfen sollten eigentlich die bekannten quadratischen mit vier Pins verwendet werden.
Ich habe statt dessen die runden mit zwei Pins benutzt. Platzmäßig gefiel mir das besser. Die Schmalen rechteckigen sind aber unter Select/Start
unbedingt nötig. Dort ist kein Platz für andere Bauformen.

Dieser Typ wurde als Hauptschalter empfohlen. Ich hab ihn zwar gekauft, aber schließlich NICHT eingebaut.
Die Dinger sind so winzig (ca. 6mm lang), das kann unmöglich längere Zeit zuverlässig funktionieren.
Im fertigen Gerät habe ich einen etwas größeren genutzt.

Zu dem Akku gibt es nicht viel zu sagen, ausser das er nicht größer sein darf. Er passt sonst nicht ins Gehäuse.

Für die Mikrotaster habe ich Lochrastermaterial benutzt. Das Anpassen erfordert etwas Geduld.

Hier sieht man, warum für die beiden Select- und Start-Taster die schmale Bauform gebraucht wird. Es fehlt einfach der Platz!

Die Controller-Platte ist vorverdrahtet. Wer aufmerksam ist wird merken, dass es ein anderer Zuschnitt ist, als auf dem vorletzten Bild.
Ich hatte doch etwas knapp zugeschnitten, so dass für die Schraubbefestigung zu wenig Material stehen geblieben war.

Ein kleiner Drahtbügel dient als Führung und Zugentlastung der Litzen auf der Unterseite.

Nach dem ersten Einsetzen der Knöpfe und Controllerplatte zeigte sich, dass die Platte zu dicht an den Tastern sitzt.
Sie hatten gar kein Spiel, bzw. waren in Ruhe schon gedrückt. Daher habe ich jeweils zwei Unterlegscheiben M3
mit 2K-Epox übereinander an die vier Befestigungspunkte geklebt. An einer Stelle mussten die Scheiben mit dem
Seitenschneider etwas gekappt werden, sonst hätte das nicht gepasst.
Im Bild sieht man den unteren Rand des inneren Display-Rahmens. Dieser Rahmen wird als Erstes mit Epox in das Gehäuse
geklebt. Vorsicht beim Ausrichten. Der untere Rand (dort wo er offen ist) darf nur ganz wenig über die Gehäusekante ragen.
Nur soviel, dass er beim Ankleben Halt findet. Ansonsten hat man später mit der Ausrichtung von Display und äusserem
Rahmen ein Problem.

Display und Controllerplatte sind im Frontteil montiert. Das Display liegt zwar noch lose, wird aber nach den Funktionstest
mit vier kleinen Punkten Epox an den Ecken fixiert. Die schwarze Platine unter dem Raspberry ist ein USB-Hub.
Der wird nur für das Setup und die Tests gebraucht (WLAN-Dongle + Keybord) und kommt später nicht mit in das Gehäuse.

Der Hub ist zwar ein niedliches Teil, aber leider nicht zu gebrauchen, wenn der Raspberry im Gehäuse sitzt.
Er greift nämlich die USB-Kontakte von unten mit vier federnden Stehbolzen von der Platine ab.

Dieser Moment war wie Ostern und Weihnachten zusammen! Das Ding erwacht tatsächlich zum Leben!

Es geht an den Einbau der Teile in das hintere Gehäuse. Rechts unten der "Support" auf dem später der PowerBoost sitzt.
Rechts oben seitlich ein von mir zugefügter Support für den Schalter. Unter dem Raspberry klebt ebenfalls eine
zusätzliche 1,5 mm dicke Platte in genau seiner Größe. Es hatte sich gezeigt, daß er ansonsten zu tief im Gehäuse saß.
Die Ausschnitte für die Buchsen passten nicht.

Die Verdrahtung ist komplett. Vom PowerBoost wurde die Buchse für den Akku entfernt und dieser direkt angelötet.
Beide Platinen und der Schalter sind (sparsam) mit Epox festgeklebt. Das Gehäuse hat genau gegenüber der drei
SMD-LED des PowerBoost je eine kleine Bohrung bekommen. Dadurch sind die Anzeigen auch von Aussen zu
sehen. Nun sollte eigentlich der Zusammenbau folgen, die Frage war nur: WIE?
Die Löcher in Ober- und Unterteil stimmten nicht wirklich übereinander. Was ich auch seltsam finde, ist
dass zwar die Außenmaße beider Gehäuseteile exakt stimmen, aber die Innenmaße nicht.
Die Wandstärken differieren! Es sind in den Teilen auch keine Zentrierungen oder Führungen vorgesehen,
die die Teile beim Zusammenschrauben ausrichten. Das ist schlecht!

Hier nun meine Abhilfe für das Problem: Ich habe zwei zusätzliche Teile gedruckt (Fittings), die ich an den Schmalseiten des weissen
Frontteils eingeklebt habe. Die Teile haben nach oben einen eingesetzten Bund (das Hinterteil ist innen kleiner). Dieser Bund reicht
2 mm in das Hinterteil und soll dieses Zentrieren. Nach dem Aushärten des Epox habe ich mit dem Dremel durch das Hinterteil in die
Fittings 1,7 mm Löcher gebohrt. In diese drehe ich beim Zusammenbau (sehr vorsichtig) M2x16 metrische Schrauben. Das funktioniert
recht gut. Leider hat der Entwickler des Designs eine der vier Schrauben abweichend sehr dicht an den Rand platziert. Das sieht etwas
dumm aus, zum Glück aber nur von hinten, und ist nun sowieso nicht mehr zu ändern.

Und zum Schluss noch mal das fertige Teil in ganzer Schönheit!

 

nach oben