Gameboy Programmieradapter

GameBoy is a registered Trademark of Nintendo Corporation, Ltd.

Einstieg in das Thema “Gameboy Spiele selbst programmieren” findet man am einfachsten über eine der zahlreichen Seiten die sich bereits intensiv mit dem Thema beschäftigt haben. Ich habe auf Reiner Zieglers Seite angefangen.

Nachbau des CARTIO von Pascal Felber. Eigene Platine im EAGLE-Format, einseitig entflochten.

Erst mal eine Entschuldigung bei Lukas Zimmermann. Dessen Design habe ich nämlich verwendet um die Portierung nach EAGLE durchzuführen, aber hier Pascal Felber als Urheber der Schaltung erwähnt.

Letztlich ist es aber komplizierter: Die Originalschaltung des CartIO stammt von Pascal Felber, machte aber Probleme, wenn die Bits des Parallelport des verwendeten Rechners nicht exakt gleichzeitig schalteten. Der Versuch, die Schaltung durch einfügen von Kondensatoren stabiler zu machen hat nicht richtig gefruchtet. Michael McCormac hat daraufhin einen Synchronisierungsmechanismus entwickelt der das Problem löste. Darauf basiert die Schaltung des Synchronized CartIO von Lukas Zimmermann die ich dann in EAGLE umgesetzt habe.

Als ich mit dem Nachbau begann dachte ich, ich zeichne schnell das Schaltbild in EAGLE nach und entflechte dann eine einseitige Super-Duper-Platine die alle Bauteile inklusive der beiden Steckverbinder aufnimmt und schön klein ist, damit sie billig zu fertigen ist...

Na ja, nach den ersten Versuchen der Umentflechtung habe ich recht schnell einsehen müssen, dass das Design von Lukas schon ziemlich das Optimum für eine einseitige Platine darstellt. Da Lukas keine Einwände hatte, habe ich dann kurzerhand sein Layout in EAGLE nachvollzogen, und lediglich kleine Änderungen eingebracht, die es erlauben, alle Bauteile auf einer halben Europakarte (die natürliche Grenze für die Verwendung der Freeware-Version von EAGLE) unterzubringen.

Das Ergebnis meiner Bemühungen kann als ZIP-Datei mit Schaltbild und Layout im EAGLE 3.5-Format heruntergeladen und auf der nächsten Seite angeschaut werden. Das Schaltbild ist zu groß, als dass es hier direkt angezeigt werden könnte, deshalb als Link. Die Schaltung entspricht 1:1 dem Entwurf von Lukas, nur habe ich die Signalflussrichtung von links nach rechts orientiert.

Ich ließ die Platine von Adrian Furrer in der Schweiz fertigen. Adrian bietet bisher ausschließlich einseitige Platinen an, dafür ist sein Service preiswert und schnell.


Nachtrag:
Adrian Furrer hat die Fertigung der Platinen von fotochemischem Verfahren auf Fräsen mit Fräsplotter umgestellt. Damit lässt sich die Platine des GB-Programmers nicht mehr fertigen. Das Problem liegt im minmalen Leiterbahnabstand. Bei der fotochemischen Umsetzung des Designs beherrschte Adrian 0,2 mm Mindestabstand, Fräser für den Fräsplotter sind minimal 0,3 mm dick, was den Mindestabstand bestimmt.
Die Platine in der vorhandenen Ausführung lässt sich also nur noch Fotochemisch herstellen. Mir bekannte Unternehmen, die solche Arbeiten anbieten sind PCB-Pool und MME. Es gibt sicher Weitere.
Sollte jemand sich die Mühe machen und das Design auf einen Mindestleiterbahnabstand von 0,3 mm umentflechten, biete ich an, diese Datei hier zu hosten.


Eine spannende Sache war auch die Bestellung des Gameboy-Steckers. Hier in Deutschland ist sowas offenbar nicht zu haben (zumindest hatte ich damit kein Glück. Falls jemand einen Händler kennt oder findet der Gameboy-Stecker verkauft möge er sich bitte bei mir melden. Ich veröffentliche die Info dann hier). Ich habe meine 3 Stecker bei MCM in USA bestellt die ca. 6 Wochen ab Aufgabe der Bestellung unterwegs waren und zusammen fast 40 € kosteten. Die Stecker selbst kosteten jeweils 3,60 Dollar, mithin zusammen ca. 12 €. Der Rest war Handling & Shipping :-{ Der Hinweis auf der MCM-Seite, dass die Kosten für Transport und Verpackung nicht vorher angegeben werden können hat damit für mich seine Erklärung gefunden. Andererseits muss ich gestehen, dass ich in Kenntnis dieses Missverhältnisses zwischen Warenwert und Versandkosten wahrscheinlich immer noch keinen GB-Stecker hätte ;-)

Nach diesen vorbereitenden Maßnahmen konnte dann der Aufbau des Programmers starten.

Die wesentlichen Schritte sind Bestücken

  • der Drähte zwischen und unterhalb der ICs
  • der Widerstände und Kondensatoren
  • der IC-Sockel (die können natürlich weggelassen werden, aber wer schon mal einen kaputten IC wieder ausgelötet hat, spendiert möglicherweise das nächste Mal die Sockel ;-)
  • aller anderen Bauteile, zuletzt der beiden Stecker
    (zumindest beim Gameboy-Stecker empfiehlt es sich, vor Beginn aller anderen Arbeiten zu kontrollieren, ob alle Löcher für die Befestigung vorhanden, groß genug und an der richtigen Stelle sind)
  • der IC-Sockel mit den ICs

Halt, beinahe hätte ich das vergessen.
Ich musste vor Beginn alle Lötaugen für die Drahtbrücken mit einem 0,8 mm Bohrer nachbohren, weil die verwendeten Vias einen zu geringen Innendurchmesser hatten. Als Draht habe ich dann 0,6 mm Silberdraht verwendet. Das passt gut. Außerdem müssen für den Gameboy-Stecker noch einige Löcher gebohrt werden, die zwar im Layout eingezeichnet und auf der Platine markiert sind, aber offenbar im falschen Layer, so dass sie bei der Platinenherstellung nicht gebohrt wurden.

Den Footprint für den Niederspannungsstecker bitte ich zu entschuldigen. Ich habe bisher noch keinen Lieferanten für diesen Stecker gefunden und ihn eigentlich nur verwendet, weil ich ihn schon in der Biliothek hatte. Auf dem Foto sieht man, wie ich das Problem mit einer Einschraub-Niederspannungsbuchse gelöst habe. Die anderen Bauteile sind z.B. bei Reichelt erhältlich (ausgenommen der schon oben erwähnte Gameboy-Stecker).

Da der Quarzoszillator im Schaltbild nicht bezeichnet ist, hier diese  Info: der Oszillator schwingt mit 10 MHz.. (Danke für den Tipp Matthias!)


Nachtrag:
In mühevoller Kleinarbeit hat ein Nachbauer des Programmieradapters herausgefunden, dass er sich die Fehlersuche mit einiger Wahrscheinlichkeit hätte ersparen können, wenn er entweder meinen Tipp mit den Sockeln für die ICs ignoriert, oder alternativ nicht die billigen Sockel mit Flachfedern verwendet hätte. Ein solcher Feder-Kontakt war im Sockel aufgebogen und hat in Folge das IC-Bein nicht berührt, woraufhin trotz positivem Ergebnis des Programmertests in ReadPlus keine Cartprogrammierung durchführbar war.
Ich erweitere hiermit meinen Ratschlag für die Sockel auf solche mit gedrehten Kontakten.

Umbau einer Cart

Um den Programmer nutzen zu können, bedarf es einer programmierbaren Cart. Auch hierfür gibt es auf den Seiten von Reiner Ziegler massenhaft Beispiele. Ich habe gleich den ersten Vorschlag für eine 512K Cartridge verwendet und als Basis das Spiel “Tetris-DX” gekauft.

Man hat zwei Alternativen das Original-ROM von der Platine zu bekommen. Einmal die Rambo-Methode, also jeden einzelnen Pin des SMD-ICs mit einem feinen Seitenschneider direkt am Gehäuse des IC abzwicken und anschließend die Reste mit Pinzette und Lötkolben von der Platine ablöten. Ich habe mich für die zweite Möglichkeit entschieden und mit einer Stahl-Graviernadel die vorsichtig heiß gemachten Pins einzeln hochgebogen. Auf diese Weise habe ich das ROM noch, was auch immer ich damit letztlich anfangen werde ;-))

vorbereitete CartDie Platine ohne das ROM sieht dann so aus. Im Bild ist links oben bei der Batterie ein Stück Plastik zu erkennen, das ich zwischen die Platine und den vor Beginn aller Arbeiten abgelöteten Batteriebügel gelegt habe, damit die Schaltung bei den Lötarbeiten spannungslos ist.

 

Flash-PROM eingelötet

 

 

Nach Bestückung mit dem Flash-PROM von Typ AM29F040-150JC von AMD und nachdem die Batterie wieder angelötet ist, ist die umgebaute Cart einsatzbereit. Man sieht, dass das Flash -PROM “schief” eingebaut werden muss, weil die Pin-Zuordnung leicht verschoben gegenüber dem Original-ROM ausgelegt ist.

Die Verbindungen zwischen den Anschlüssen an den Schmalseiten des Flash-PROMs und den Lötpads habe ich mit dünnem Kupferlackdraht ausgeführt. Eine ruhige Hand ist für die Durchführung der Arbeiten unabdingbar.

Die Anschlussdrähte am unteren Ende des IC dürfen nicht allzuweit in Richtung der Steckkontakte geführt werden, sonst kommen sie beim Zusammenbau des Gehäuses mit dem Plastiksteg oberhalb des Steckkontakts in Konflikt. Den Draht an Pin 31 des Platinensteckers habe ich entgegen dem Vorschlag auf Reiners Seite nicht direkt am Kontakt angelötet, sondern in die Durchkontaktierung direkt davor eingesteckt und angelötet. Auf diese Weise besteht keine Gefahr, dass das Lötzinn auf den vergoldeten Kontakt läuft und später Kontaktprobleme hervorruft.

 

Über eine Suchmaschine hier gelandet? Dann bitte mit Click Navigations Schaltflächen anzeigen

[Home] [Modelle] [Eisenbahn TT] [Was ist neu ?] [Elektronik] [Kontakt] [Links] [Tipps+Tricks]