RetroPie Gameboy

Während eines langweiligen, verregneten Sonntag bin beim surfen zufällig auf das "Super Mega Ultra Pi Boy 64 Thingy Build" gestoßen und war total fasziniert von der Idee einen alten Gameboy in die ultimative Retro-Emulationskonsole zu verwandeln. Ich spielte die letzten Jahre schon immer wieder mit Gedanken einen Arcade Cabinet zu bauen, schaffte es bisher nur nicht meine Frau auch davon zu begeistern. Da erschien der Gameboy als das perfekte Ersatzprojekt.

 

 

Vor dem Projekt standen jede Menge Recherchen zu ähnlichen Projekten. Das kann ich auch jedem nur dringend empfehlen, der selbst Interesse hat so etwas zu bauen. Neben dem oben verlinkten Beispiel hat mich der "Raspberry Pi Gameboy Pocket" am meisten inspiriert. Der Anspruch dieser beiden Projekte war es, den Gameboy optisch so original wie möglich zu belassen. Man sollte auf den ersten Blick denken, dass es sich um einen original DMG handelt. Die Idee fand ich zwar sehr reizvoll, allerdings wollte ich unbedingt 4 Statt nur 2 Knöpfe auf der Front haben um Super Nintendo Spiele so original wie möglich spielen zu können.

 

Die Einkaufsliste

  • Raspberry Pi 2
  • Defekter Gameboy
  • Watterott 2,8" RPi-Display
  • Watterott GPIO Adapter für RPi-Display B+
  • SNES Controller
  • Audio Verstärker Board (PAM8403)
  • ein altes IDE Kabel
  • 2 USB A Buchsen
  • 1 Micro USB Buchse
  • 1 Gameboy Spiel

 

Der Gameboy

Ursprünglich wollte ich unbedingt einen Gameboy Classic für das Projekt benutzen. Schlicht und einfach weil das mein erster (und einziger) Handheld war und er mich doch sehr geprägt hat. Allerdings brachte ich es nicht übers Herz den noch funktionierenden DMG zu opfern. Daher begab ich mich bei ebay auf die Suche nach defekten Geräten. Ich war relativ erstaunt über die doch noch sehr stolzen Preise defekter Geräte und als mir dann eines Tages ein realtiv günstiger defekter Gameboy Color über den weg lief, verwarf ich den Gedanken an den DMG und erstand den Color. Als i-Tüpfelchen war es sogar noch ein transparentes Modell, so dass die ganze Technik darin nicht einfach auf nimmer wiedersehen verschwindet.

 

Gleich als der defekte Gameboy Color geliefert wurde, begann ich mit dem Ausschlachten und dem Cleanen des Gehäuses. Die vielen Verschraubungspunkte, das Batteriefach und einige Verstrebungen mussten aus platzgrürnden weichen. Ein Dremel mit Schleifaufsatz eignet sich perfekt für diese Arbeit. Die Drehzahl sollte dabei nicht zu hoch gewählt werden, denn das Plastik des Gehäuses beginnt relativ schnell zu schmelzen. Der Batteriedeckel findet in dem leeren Gehäuse keinen Halt mehr, daher wurde er mit etwas Sekundenkleber eingeklebt.

 

 

Beim Cleanen ließ ich erst einmal so viel wie möglich stehen, denn was einmal weg ist, bleibt auch weg. Im Laufe des Projektes musste der Dremel allerdings immer wieder für die eine oder andere Nacharbeit ran.

 

Als nächstes entlötete ich von der Platine des Gameboy alles was ich unter Umständen noch gebrauchen könnte. Tatsächlich wiederverwendet habe ich dann jedoch nur den Lautsprecher und den Lautstärken Poti.

 

 

Das originale Display hat ein Seitenverhältnis von 1,1:1 (4,4 x 4 cm) während das Watterott Display ein 4:3 Verhältnis hat. D.h. ich musste mich von der originalen Displayscheibe trennen. Da ich aber auch die Touch Funktion des neuen Displays nicht verlieren wollte, beschloss ich die original Displayscheibe auf das Sichtfeld des neuen Display auszufräsen. Bei der Gelegenheit bohrte ich dann auch gleich noch die Löcher für die 2 zusätzlichen Buttons (siehe auch Abschnitt Buttons).

 

Der Raspberry Pi

Die Entscheidung zu welchem R-Pie ich greife viel mir nicht ganz Leicht. Aufgrund der Leistung ist der R-Pi 2 seinen Vorgängern natürlich stark überlegen. Allerdings wurde der analoge Video out eingespart und ist nur noch über die 3,5mm Klinge erreichbar.

 

Die Kaufentscheidung hing also masgeblich von dem Display ab. Wie in den Oben genannten Projekten wollte ich ursprünglich auch das 3,5" LCD nutzen, welches jedoch in dem kleineren Gameboy Color keinen Platz hat. Bei meiner Recherche stieß ich dann auf den 2,8" Touchscreen von Watterott (siehe Abschnitt Display) das über die GPIOs angesteuert wird. Also konnte ich gut auf den RCA Anschluss, bzw. einen Workaround über die 3,5mm Klinke verzichten und es wurde der Raspberry Pi 2.

 

Mit der entscheidung für den Gameboy Pocket, handelte ich mir gleichzeitig massive Bauraumprobleme ein, die es zu lösen galt. Die erste Amtshandlung nach der Lieferung des Pi war es USB und RJ45 Anschlüsse abzulöten.

 

 

Aus praktischen Gründen wollte ich aber nicht auf die Anschlüsse verzichten. Aus einem defekten Laptop entlötete ich mir 2 einzelne USB A Buchsen um wenigstens 2 der 4 USB Buchsen zu behalten. Ursprünglich wollte ich einen USB an Stelle des originalen EXT Ausganges zu verwenden (siehe Bild). Im Laufe des Projektes stellte sich dann aber schnell heraus, dass das Display zu breit bzw. die USB Buchse zu lang ist und an dieser Stelle kein Platz bleibt.

 

 

Die Lösung des Problems ist das Gehäuse eines Gameboy Spiels. Nachdem der ganze Inhalt rausgeflogen ist, konnte ich auf der oberseite 2 Ausschnitte für die USB Buchsen machen. Im Nachhinhein gefällt mir die Lösung sogar besser als im vorher angedachten EXT Slot, denn mit Spiel sieht der Gameboy nicht ganz so nackt aus.

 

Für den Sound verwende ich das 2 Kanal (3W) Audio Verstärker Borad PAM8403. Die Verkabelung ist denkbar einfach (siehe Bild). 5V und GND beziehe ich von den GPIO Pins 2 und 6 des Raspberry Pi.

 

 

Die Micro USB Buchse für die Stromversorgung des Pi liegt seitlich ziemlich ungünstig. Daher habe ich, ebenfalls an GPIO Pin 2 und 6, eine weitere Micro USB Buchse angelötet, die auf der Unterseite des Gamboys ihren Platz findet und die Stomversorgung gewährleistet.

 

 

Mit dem RJ45 Anschluss habe ich ziemlich viel Zeit verschwendet. Wegen der Updatefähigkeit wollte ich den auf keinen Fall verlieren. Im Gehäuse ist aber absolut kein Platz so einen Riesen unterzubringen. Die erste Idee war, nur 4 der 8 Aderpaare (Paar 2 und 3) zu nutzen. Gigabit Ethernet ist damit natürlich nicht möglich aber 100Mbit sollten drin sein und für ein paar Updates wird es ausreichen. Aufgrund der kompakten Bauform wollte ich das ganze über einen micro USB Port laufen zu lassen und dazu ein micro USB auf RJ45 Kabel crimpen. Auf dem Bild seht ihr den Pi mit Verstärkerboard, Lautsprecher, Poti, 2 USB Ports, Watterott GPIO Adapter und dem Micro usb als 4 Pin Ethernet.

 

 

Nach einem kurzen, jedoch sehr frustrierednen Versuch und 10 min googlen war klar, warum das ganze so nicht funktionieren kann. Wie mich Netzmafia belehrte bestehen RJ45 Buchsen nicht mehr nur aus simplen Steckkonstakten, sondern enthalten gleich Übertrager, Drosseln und Widerstände. Fällt das alles weg, geht naütrlich nichts mehr. Also lötete ich die RJ45 Buchse wieder direkt an den Pi und lasse sie vorerst aus dem Gehäuse hängen, bis mir eine bessere Lösung einfällt.

 

Das Display

Das 2,8" Display von Watterott ist so designed, dass es direkt auf die GPIO Pins des Pi gesteckt werden kann. Prinzipiell ist das eine schöne und einfache Lösung, allerdings ist der Bauraum zu gering und der Pi an einer anderen Stelle verortet. Grundsätzlich wäre es auch möglich gewesen, die benötigten GPIO Pins für das Display (siehe auch weiter unten) mit ein paar Käbelchen direkt an den Pi zu löten, aber der GPIO Adapter schien mir hier die schönere Lösung zu sein.

 

ACHTUNG!! Wenn man das Display über den GPIO Adapter betreiben will, ist es wichtig die SPI Jumper auf der Rückseite des Displays zu schließen. Weil Mann aus Prinzip keine Bedienungsanleitungen ließt habe ich das auch erst nach etwa 5 facher Neuinstallation der Treiber gemerkt, da außer der dauerhaft angeschalteten Hintergrundbeleuchtung auf dem Display sonst nichts weiter passiert ;-)

 

Nachdem ich das Display fertig in Betrieb genommen hatte, ist mir aufgefallen, dass Watterott das Display zusammen mit dem Adapter auch in einem Flex Paket anbietet. Das hat dann den Vorteil, dass die GPIO Steckleiste nicht erst abgelötet werden muss.

 

 

Das Display und der Touch Controller werden über die GPIO Pins 7, 8, 9, 10, 11, 18, 23, 24 und 25 angesteuert und über den Adapter mit einem FFC/ZIF-Steckverbinder mit dem Pi verbunden. Dadurch ist die GPIO Leiste des Displays frei zugänglich. Prinzipiell kann man dann die Buttons direkt an den Pi löten. Ich wollte so wenig Kabel wie möglich zwischen dem Pi und der Gameboy Front haben, um das Öffnen des Gerätes im Zweifel nicht unnötig zu verkomplizieren. Daher habe ich die Buttons dann an die vorher freigelöteten GPIOs des Display gelötet.

 

Die Buttons

Wie schon erwähnt wollte ich unbedingt die 4 charakteristischen SNES Buttons haben. Die nahm ich aus einem SNES Controller. Es war kein originaler, mir war nur wichtig, dass er die europäischen und nicht die US Buttonfarben hat.

 

 

Als nächstes musste ich die PCB des Controllers in Form fräsen, die Leiterbahnen mit einem Skalpel vorsichtig freilegen und die entsprechenden Kabel anlöten. Nach dem Verlöten der Buttons empfiehlt es sich, die selbingen vor dem Zusammenbau auf Funktion zu prüfen. Am einfachsten geht das mit einer Widerstandsmessung am Multimeter. Ist der Button nicht gedrückt, also der Stromkreis nicht geschlossen, sollte der Widerstand unendlich groß sein. Wird der Button gedrückt und somit der Stromkreis geschlossen, sollte im ein Wert < unendlich angezeigt werden.

 

 

Die Buttons des Gameboy sind einerseits kleiner als die des SNES und liegen auch etwas näher zusammen, daher mussten die originalen Löcher entsprechend vergrößert werden. Zusätzlich war der Abstand zwischen von Button B (gelb) zu Button Y (grün) zu groß, so dass die Buttonplatine zweigeteilt und verkleinert werden musste. Es fehlt ein etwa 3mm breiter Streifen im vergleich zum Original.

 

Das nächste Problem, das es zu lösen galt, war die Buttons am Gehäuse zu befestigen. Denn leider hatte ich nicht mehr eine zusammenhängende PCB die man irgendwo hätte festschrauben können sondern 6 PCB Fitzelchen. Als erstes versuchte ich jedes PCB Fragment einzeln zu befestigen und auszurichten. Beim herumprobieren verschiedener Befestigungsmöglichkeiten verabschiedete sich leider die Steuerkrez PCB und die Button PCB Grün-Blau. Ich opferte dann einen alten XBox1 Controller eines Fremdherstellers. Die Vorbereitungen waren die selbe wie bei dem SNES Controller.

 

Die Lösung, die dann letztendlich zum Erfolg führte ist denkbar simpel im Aufbau, nimmt jedoch relativ viel Platz ein (siehe Skizze). Ich hatte noch die Platine des geopferten Gameboy Spiels herumliegen. Die passte von der größe her recht gut zu den Buttons und musste nur für den Lautsprecher etwas abgeschnitten werden. Diese alte PCB nahm ich als Grundplatte und klebte die einzelnen Button PCBs mit doppelseitigem Klebeband auf. Da ich durch das cleanen des Gehäuses sämtliche Anschraubpunkte verlohren habe, musste ich einige M4-Mutter mit etwas Sekundenkleber am Gehäuse festkleben. Anschließend konnte ich die Platte an das Gehäuse schrauben.

 


 

Was in der Theorie einfach klingt, gestaltet sich bei dem engen Bauraum als extreme Fummelei bis alles passt. Wichtig ist, dass die Platte festgenug angeschraubt wird, dass die Buttons beim Druck auch auslösen, aber nicht zu fest sonst stimmt der Druckpunkt am Ende nicht mehr oder der Button löst dauerhaft aus.

 

Wer, wie auf dem original Gamboy, nur zwei Buttons nutzen will, hat es da wesentlich einfacher. Der kann entweder direkt das original PCB des Gameboy so ausschneiden, dass nur noch die Buttons da sind und selbst Kabel anlöten (wobei die original Leiterbahnen wirklich extrem dünn und klein sind) oder auf das Common Ground DMG Button PCB von Kitsch Bent zurückgreifen. Eine fertige Lösung für 4 Buttons ist mir nicht bekannt. Nach den ersten Versuchen war ich auch kurz davor selbst eine Plattinenlayout zu entwerfen und zu ätzen. Mit der Direkt-Toner-Methode geht das relativ gut, allerdings hatte ich etwas bedenken wie das langfristig mit Korrosion aussieht, denn die Gamepad PCBs sind soweit ich weiß noch gold beschichtet. Ätzen lassen war aufgrund des Preises und der Abnahmemenge keine wirkliche alternative für mich.

 

Der Zusammenbau und die Software

Der Zusammenbau war die kritischste Phase des Projektes. Jeder Heimwerker kennt den Moment an dem man denkt alles läuft super und plötzlich schlägt einem die Realität mit voller Wucht in die Fresse ... man möchte das Projekt am liebsten hinwerfen. Tonne auf und rein den Müll. Der Zusammenbau war einer dieser Momente.

 

Das Display sitzt perfekt im Gehäuse, die Buttons funktionieren und alle Bauteile haben die Löterei mit meinem 10 € Lötkolben überlebt. In Gedanken resümiert man bereits wie viel Spass das Projekt gemacht hat und sieht sich schon "Secret of Mana" spielend im Bett liegen. Frohen Mutes führt der Heimwerker also testweise die beiden Hälften zusammen und fängt sich sofort eine klitschkohafte Realitätsschelle ein, wie sie im Buche steht. Die Buttons und Kabel bauen zu stark auf. Es fehlen etwa 3mm Bauraum. Also ran an den Lötkolben, Kabel teilweise verlängern und anders verlegen bis es passt.

 

 

Es ist saueng, aber irgendwie gehts doch. Der Platz ist jedoch so extrem begrenzt, dass der Druckpunkt der Schulterknöpfe nicht mehr passt. Für einen Tastendruck reicht es aus den Knopf etwa 1-2 mm einzudrücken. Ist das Gehäuse ca. 3-4 mm geöffnet hat man einen Sauberen Druckpunkt wie man ihn gewöhnt ist. Daher spiele ich mit dem Gedanken Rund um das Gehäuse Plexiglas einzukleben, um so etwas mehr Bauraum zu schaffen. Vorerst bleibt es jedoch so.

 

Zeit sich um die Software zu kümmern. Auf die Installation möchte ich hier nicht im Detail eingehen, denn zu jedem Schritt gibts sehr verständliche Anleitungen bei den Herstellern.

 

Ich verwende ein fertiges RetroPie Image für den Raspberry Pi 2. Eine sehr gute Anleitung zur Installation des Displays findet sich auf der Github Seite von Watterott. Um die Buttons anzusprechen benutze ich das kleine C Programm Retrogame von Adafruit, das nur noch an die verwendeten GPIOs angepasst und neu compiliert werden muss.

 

Ein erster Test am noch offenen Gehäuse funktioniert ganz gut und man ist dem Ziel wieder ein kleines Stück näher gekommen.

 

 

Als nächstes muss der Pi noch fixiert und die USB Ports im Gehäuse des Spiels untergebracht werden ...

 

 

... und schon steht er da, der RetroPie Gameboy (derzeit noch behelfsmäßig mit Tesa fixiert), bereit für unzählige Stunden voller Retrospaß.

 

Fazit

Es war mein erstes Projekt in Richtung Elektrotechnik und ich muss sagen es hat mir wirklich sehr viel Spass gemacht und ich konnte einiges dazulernen. Lessons Learned wäre für mich das Gehäuse. Im nachhinein würde ich definitiv ein Gameboy Classic Gehäuse nutzen oder alternativ nur 2 Buttons und das Kitch Bent PCB verwenden, denn der Bauraum ist wirklich mehr als beengt und schafft unnötige Probleme.

Kommentar schreiben

Kommentare: 0