#221 – cart reader V4 – build

Noch vor gar nicht allzu langer Zeit haben wir – in den Artikeln 184 und 185 einen „Open Source Cart Reader“ gebaut. Erinnert ihr euch? 😉

Zur Erinnerung: Mit dem Teil lassen sich die Programmdaten und Spielstände diverser Videospielmodule (Game Boy, Supernintendo, Nintendo 64, etc.) auslesen und in einigen Fällen (z.B. bei speziellen Flashkarten) sogar wieder beschreiben.

Moment mal – warum erzähle ich euch das überhaupt? Eigentlich müsstet ihr das ja alles bereits wissen, denn schließlich haben wir ja schon ziemlich viel mit dem Gerät experimentiert (ich erinnere nur an die Artikel 186, 187 oder 188). Warum heute also nochmal einen Beitrag zu dem Teil? Tja, wie es nun eben mal so ist mit Open Source Projekten, werden diese stetig weiterentwickelt. Das gilt nicht nur für die auf dem Arduino aufgespielte Software, sondern auch für die Hardware.

Neben der von uns in Artikel 184 gebauten „V3“ wurde mittlerweile eine neue Hardware-Revision (V4) entwickelt, welche etwas modularer aufgebaut ist. Dabei werden die Slots zum Auslesen von Videospielen verschiedener Konsolen als einzelne Adapter (mit jeweils eigener Platine) auf den Cart Reader aufgesteckt. Ebenso besitzt die neue Version ein deutlich größeres Display und einen kleinen Akku, mit welchem der Cart Reader ohne externe Stromversorgung betrieben werden kann.

Das hört sich zwar prinzipiell alles sehr gut an, ist aber auf Grund des aktuellen Rohstoffmangels schwierig umzusetzen, da die benötigten Teile kaum aufzutreiben sind und wenn dann ein Vermögen kosten! 🙁 Dementsprechend möchte ich eine etwas abgespeckte Variante (ohne Display und Akku) bauen, für welche ich nicht ganz so viele Teile benötige! Also quasi die „Version für arme Leute“ 🙂

Klingt gut! Dann wollen wir doch mal sehen, was wir alles an Teilen für das Projekt brauchen. Vielleicht lassen sich ja sogar ein paar Komponenten aus Schrott und Resten recyceln? 😉

Die gute Nachricht zuerst: Wie es der Zufall will, bin ich über ein Videospielforum an den dafür benötigten Platinensatz gekommen – ein guter Anfang! 🙂

Ein Teil, welches wir leider definitiv kaufen müssen, ist der „Arduino Mega 2560 Pro“. Diese Mistviecher haben mal 10€ gekostet, sind mittlerweile aber fast ausschließlich nur noch mit entsprechenden Lieferzeiten für ca. 20€ aus China zu beziehen. Ich habe nach langer Recherche das letzte Exemplar innerhalb der EU (aus Irland) ergattern können. Verrückte Zeit, in der wir leben!

Auch um das MicroSD-Modul kommen wir nicht herum, aber das habe ich glücklicherweise für ein paar Euro sogar noch aus Deutschland bestellen können:

Fun Fact: Natürlich brauchen wir zum Auslesen der Moduldaten auch eine Speicherkarte. Die 4GB große MicroSD-Karte hat mir ein Arbeitskollege überlassen. Die Firma dankt! 😉

Bei ein paar Kleinteilen (Stiftleisten und Schiebeschalter) ist mir ein Forumskollege zu Hilfe gekommen und hat sie mir gegen Erstattung der Portokosten überlassen – cooler Typ! 🙂

Die gewinkelten Stiftleisten sowie die Buchsenleisten habe ich dann noch für ein paar Euro auf eBay gekauft. Würde man größere Mengen von diesen Dingern (z.B. bei Pollin, Voelkner oder Conrad) kaufen, könnte man sie bestimmt etwas billiger bekommen, aber, wenn ich ehrlich bin, will ich wenn möglich keinen Überschuss an Teilen haben. Im Keller liegt sowieso schon viel zu viel Zeug! 😀

Gott – wie ich dieses „Zusammenhamstern“ von Teilen immer hasse! 😀 Am schwierigsten zu ergattern waren mal wieder die Modulports. Diese habe ich von diversen Händlern in China (Aliexpress) kaufen müssen. Dementsprechend lang war die Wartezeit auf die Dinger…

Not so fun Fact: Obwohl wir die „Billig-Variante“ des Cart Readers bauen wollen, läppern sich die ganzen einzelnen Teile doch auf knapp 50€. Das ist schade, aber vielleicht als schwacher Trost: Der „Vollausbau“ (samt Taktgeber, Display und Batterie) wäre noch deutlich teurer und würde bei den aktuellen Preisen vermutlich weit über 100€ kosten. Und es kommt noch besser: Ein bereits fertiges Gerät wird – sofern überhaupt irgendwo verfügbar – in der Regel für 200-300€ verkauft – nein danke!

So – genug Geld ausgegeben! Alle weiteren Teile würde ich eigentlich gerne „aus dem Bestand“ nehmen. Mal sehen was noch da ist… Hm, es ist nicht viel aber zumindest ein paar Kleinteile habe ich noch gefunden, welche wir für das Projekt verwenden können:

Fun Fact: Upcycling heißt das Zauberwort! Den Widerstand habe ich aus einem defekten SNES-Modul entlötet. Die kleine Buchse sowie der dazugehörige Stecker samt Kabel stammen dagegen aus dem defekten RAID-System (siehe Artikel 123). So wird die Elektroschrott-Kiste auch langsam leer… 😀

Ich denke jetzt müssten wir alles zusammen haben. Na, wenn das nicht nach einer kleinen Lötsession schreit? 😉

Bevor wir anfangen, sollten wir aber noch fix den Arduino mit entsprechender Software bestücken. Im Endeffekt geht das genauso wie in Artikel 184 beschrieben. Das bedeutet Arduino über ein USB-Kabel am PC einstecken und mit Hilfe der Arduino IDE die Firmware aufspielen.

Fun Fact: Das Micro-USB-Kabel hatte ich auch noch herumliegen. Ich kann euch nicht mehr sagen, wo das mal übriggeblieben ist, aber jetzt bin ich froh, dass es noch da ist! 😀

Der einzige Unterschied im Vergleich zum letzten Mal ist, dass wir diesmal in der „options.h“-Datei bei „Hardware Version“ die Auswahl „SERIAL_MONITOR“ setzen müssen. Dadurch weiß die Software, dass kein Display angeschlossen ist und das Menü stattdessen über den USB-Port des Arduino auf einem „Seriellen Monitor“ ausgegeben werden soll.

Und wo finden wir so einen „seriellen Monitor“? Theoretisch lässt sich dafür jede beliebige Anwendung verwenden, welche mit serieller (RS232) Kommunikation über den USB-Port umgehen kann. Praktischerweise befindet sich aber innerhalb der Arduino IDE (im Menü Werkzeuge) bereits ein serieller Monitor – so müssen wir keine weitere Software herunterladen oder installieren. Mit Hilfe des Teils können wir gleich mal überprüfen, ob der Firmwareupload geklappt hat. Es sieht gut aus, denn zumindest bekommen wir mal eine Ausgabe auf dem Bildschirm – quasi ein erster Beweis, dass die Kommunikation mit der Arduino-Hardware funktioniert!

Fun Fact: Der „SD error“ ist völlig normal, schließlich haben wir ja noch keine SD-Karte – geschweige denn einen SD-Kartenleser verbaut! 🙂

So, genug mit der Software rumgespielt, nichts wie ran an den Lötkolben! Als erstes muss eine kleine Sicherung vom Arduino entlötet und an deren Stelle ein Dupont-Kabel angelötet werden. Das ist notwendig, um später die Platine des Cart Readers mit Spannung (5V) zu versorgen.

Das Gegenstück der Spannungsversorgung wird auf der Platine – unterhalb dem Platz, an dem später mal der Arduino sitzt – verlötet. Da wir keine Batterie verbauen werden, muss mit einem weiteren Kabel die 5 Volt-Spannungszufuhr überbrückt, bzw. weitergeleitet werden.

Als nächstes müssen die Leitungen für den MicroSD-Kartenleser verlötet werden. Hierfür habe ich zum Testen einfach ein paar Dupont-Kabel direkt mit der Platine verlötet…

…und am anderen Ende der Kabel das MicroSD-Modul angesteckt. Nicht schön, aber funktional! 😀

Fun Fact: An den beiden Steckplätzen (EXP1 und EXP2) würde man in der „Vollversion“ (also im Vollausbau des Readers) ein großes Display mit Hilfe von zwei Flachbandkabeln anschließen. Da wir die „Sparversion“ (ohne Display) bauen, können wir uns das alles sparen! 🙂

Um den Arduino sowie die einzelnen Modulslot-Adapter aufstecken zu können, müssen noch ein paar Buchsenleisten verlötet werden. Wer klug ist, bestellt die Leisten gleich in der richtigen Größe. Wer sparen will oder nicht mitdenkt (so wie ein gewisser retrololo), der muss sich die Steckplätze erst entsprechend zurechtfräsen. Selbst schuld! xD

Abschließend wird der Arduino – über das zuvor angelötete, blaue Jumperkabel – mit der 5V-Leitung verbunden und auf die Hauptplatine aufgesteckt. Tatsächlich ist der Cart Reader (mal abgesehen von den noch fehlenden Adaptern für die unterschiedlichen Konsolen) damit bereits fertig!

Wird Zeit, das Ding auszuprobieren. Damit das Gerät ohne angesteckte Adapterplatine überhaupt anspringt, müssen die Pins „VCC“ und „5V“ auf der oberen Buchsenleiste überbrückt werden:

Fun Fact: Natürlich muss auch die MicroSD-Karte eingesteckt und vorab mit den entsprechenden Konfigurationsdateien (Informationen, welche zum Auslesen einiger Modultypen benötigt werden) beschrieben werden. Den Schritt spare ich euch, da ich euch das bereits in Artikel 184 erklärt habe! 😉

Es sieht gut aus – der serielle Monitor erkennt den Cart Reader immer noch und bietet uns das – bereits aus vergangenen Beiträgen vertraute – Menü zur Auswahl der einzelnen Spielkonsolen an:

Ohne die entsprechenden Aufsteck-Adapter können wir allerdings nichts tun, darum fix zurück an den Lötkolben. Letztendlich müssen nur die Slots samt Stiftleisten an die einzelnen Adapter gelötet werden. Hier habe ich das exemplarisch mal für den SNES-Adapter gemacht:

Bei den drei Adaptern für Mega Drive, Supernintendo sowie Game Boy (Advance) kann man nicht viel falsch machen. Man muss nur aufpassen, die Modulports nicht auf der falschen Seite der Platine zu verlöten. Glaubt mir – ich spreche aus Erfahrung! 😀

Fun Fact: Bevor ich es vergesse – beim Game Boy Adapter muss zusätzlich noch ein Schiebeschalter zur Auswahl der Spannung (3V für Game Boy Advance Spiele, 5V für Game Boy (Color) Spiele) verlötet werden. Das wollte ich nicht unter den Tisch fallen lassen! 😉

Beim N64-Adapter muss dagegen etwas mehr getan werden, denn dieser braucht neben dem Modulsteckplatz zusätzlich noch einen Widerstand (1 Kiloohm) auf der Unterseite sowie eine Buchse, zum Anschluss eines Adapters für den N64-Controller.

Passend zur Buchse wird auch ein Kabel (Stecker auf N64-Controllerport) benötigt. Zur Erinnerung: Mit Hilfe eines N64-Controllers lassen sich mit dem Cart Reader auch Controller Paks auslesen.

Fun Fact: Wie man das Kabel im Detail baut erkläre ich euch nicht nochmal, wen das interessiert, der kann gerne nochmal einen Blick auf Artikel 185 werfen! 😉

Endlich fertig! Eigentlich wollte ich heute noch dazu kommen das Kunstwerk zu testen, aber der Beitrag hat die obligatorische Länge von vier Seiten bereits wieder überschritten! 😀 Seht es mir nach, wenn ich das auf das nächste Mal verschiebe! 😉

In diesem Sinne – bis die Tage, ciao!

Write a comment