Selbstbauprojekt
RetroPie im Originalgehäuse des SNES

Zu sehen sind:

Bildergalerie

Alle Bilder auf einmal sehen: Galerie in einem neuen Fenster (empfohlen) oder in diesem Fenster anschauen.

Material

Wiederverwendung

Natürlich wird das Gehäuse wiederverwendet, denn darum dreht sich ja die ganze Übung.

Vom Innenleben der Spielkonsole werden außerdem einige Teile benötigt:

Die Wiederverwendung wird weiter unten erklärt werden.

Von den Abfällen der Gehäuseentkernung ist ein wenig zu Stabilisierungszwecken benutzt worden, was aber auch anders gelöst werden kann.

Zusatzmaterial

Posten Anzahl
Raspberry Pi 3 Modell B 1
Raspberry Pi 3 B Official Power Supply, 5.1V/2.5A 1
PetRockBlock PowerBlock 1
Sertronics USB 2.0 Controller im SNES Design grau 2
DeLOCK USB 2.0 Verlängerungskabel USB(M) bis USB(W), Paneel montierbar, 25 cm 2
CAT 5e Netzwerkkabel, U/UTP, grau, 0,25 m 1
CAT 5e Modularkupplung/Verbinder mit Montageflansch, 2×RJ45-Buchse 1
Kabel USB 2.0 Micro-B Buchse zum Einbau nach USB 2.0 Micro-B Stecker, 25 cm 2
KRS - 8M 90° Adapter von Micro USB auf Micro USB gewinkelt 2 Stück 1×rechts1×links 1
SYSTEM-S HDMI Stecker zu HDMI Eingang, Panel Mount, Verlängerungskabel 35cm 1
microSD / T-Flash zu microSD Verlängerung "Ultraflexibel" 10cm 1
Samsung EVO Plus Micro SDHC 32GB 1
Reset/Power-Kabel mit 2-Pin Header, für PC Mainboards 2
Power/HDD-LED an Kabel mit 2-Pin Header, für PC Mainboards 1
Diverse selbstklebende Kabelclips 4
Diverse Kabelschellen vom Elektronikanbieter 4
Selbstklebender runder Gerätefuß mit 14mm Durchmesser 4
Polystyrolplattenteile in verschiedenen Millimeter-Dicken 3
Pauschale für diverse Versandkosten ...
Abstandhalter, Schrauben, Unterlegscheiben, Muttern, etc. vom Elektronikanbieter, meist M2,5 ...
Kabelmaterial ...
Plastikklebstoff ...
Heißklebstoff ...
Modellbaufarbe ...
USB-Verlängerungskabel (1m bis 3m, nach Bedarf) 2

Größenordnung der Kosten

Die Gesamtkosten belaufen sich auf etwas mehr als 150€. Die einzelnen Posten lassen sich mit Google&Co im Netz bei einschlägigen Elektronikhändlern finden.

Werkzeug

Entkernung des Gehäuses

Das Öffnen des Gehäuses erfolgt am besten mit Spezialwerkzeug. Danach wird die gesamte Elektronik und Mechanik entfernt, nur Gehäuse samt Schrauben, Ein/Aus-Schalter sowie ein Ausschnitt der Platine werden benötigt. Der Modulschacht wird mit Ausschnitten versehen, damit später der Raspberry Pi und die Verkabelung ins Gehäuse passen.

Nach der Entkernung sieht die obere Gehäusehälfte so aus:

Das Aussehen des bearbeiteten Modulschachts findet sich auch noch in weiteren, unten folgenden Bildern, welche die Verkabelung der Power-LED zeigen.

Die untere Gehäusehälfte bleibt zunächst unverändert.

Blende an der Vorderseite für USB-Anschlüsse

An der Vorderseite ist eine Frontblende aus Polystyrol mit Ausschnitten für zwei USB-Buchsen eingepasst. Die drei Millimeter dicke Blende ist mit Plastikklebstoff am unteren Gehäuseteil befestigt und mit Heißkleber stabilisiert. In der Mitte sind Stützteile aus Polystyrol, an den Seiten sind die Originalschraubenführungen wiederverwendet. Die Löcher nehmen die alten Schrauben auf, welche die untere und obere Gehäusehälfte verbinden.

Beachte auch die drei Einbuchtungen am oberen Rand der Blende, welche Platz für die Laschen an der oberen Gehäusehälfte schaffen.

Die Blende ist grau bemalt, um später nicht weiß hervorzustechen. Darin sind schon die Schrauben mit Unterlegscheiben zu sehen, mit denen später die USB-Buchsen angeschraubt werden. Später wird die Originalblende über dem Gebilde zu liegen kommen.

Hinweis: Die Ausschnitte liegen hier zu weit innen. Wären sie etwas weiter außen, würden sie besser zur Originalblende passen.

Blende an der Rückseite für Stromversorgung und HDMI-Anschluss

Der rückwärtige Originalblock, an dem sich die Stromversorgung, der Antennenausgang (RF) sowie der alte Multi-Out befinden, muss einigermaßen aufwendig bearbeitet werden. Er wird beschnitten und gefräst, so dass eine USB-Micro-Buchse sowie eine HDMI-Buchse daran befestigt werden können. Multi-Out hat glücklicherweise schon ähnliche Ausmaße wie eine HDMI-Buchse.

Vom Originalblock bleibt im Wesentlichen eine Blende zurück, welche mit Polystyrolteilen verstärkt wird. Die Blende wird mit Plastikklebstoff am Gehäuse befestigt sowie mit Originalschrauben in den Originalgewinden verschraubt. Dazu werden zurechtgeschnittene Abstandhalter verwendet. Wieder dient Heißkleber zur Stabilisierung. Außerdem werden die alten seitlichen Schraubenführungen später wiederverwendet, welche die Schrauben zur Verbindung der beiden Gehäusehälften aufnehmen. An einer Führung wird die bearbeitete Blende mit einer weiteren Originalschraube festgeschraubt.

In der Blende befinden sich Schrauben mit Unterlegscheiben, mit denen später die USB-Micro-Buchse sowie die HDMI-Buchse befestigt werden.

Blenden im geschlossenen Gehäuse

Zur Probe werden die beiden Gehäusehälften zusammengefügt. Vorder- und Rückblende passen, es kann mit der Arbeit weitergehen. Hier ist auch zu sehen, dass an der Rückblende die alte Beschriftung weggefräst und mit Farbe überdeckt ist.

Ethernet-Buchse

An der Gehäuserückseite ist eine Ethernet-Buchse eingebaut, welche durch einen Modularkuppler umgesetzt wird.

Zunächst folgen Bohrungen für Schrauben und ein Ausschnitt an der Rückseite der unteren Gehäusehälfte. Die Bohrungen werden durch Polystyrolplättchen verstärkt. Der Modularkoppler wird durch einen Sockel aus Polystyrol gestützt.

Für eine Passform müssen drei Rippen innen an der Rückseite der oberen SNES-Gehäusehälfte abgefeilt werden. Der Koppler muss ebenfalls bearbeitet werden, damit beide Gehäusehälften aufeinanderpassen. Stellenweise erfolgt eine Abtragung vom Kopplergehäuse.

Schlussendlich wird der Modulkoppler an der Innenseite der unteren Gehäusehälfte angeschraubt. Aus Stabilitätsgründen werden wieder Unterlegscheiben benutzt. Der Koppler wird mit Plastikklebstoff auf den Sockel geklebt, zusätzlich wird er mit Heißkleber stabilisiert.

Bohrlöcher und Raspberry-Schablone

Auf einigen Bilder sind schon Bohrlöcher zu sehen. Bevor man allerdings wirklich bohrt, ist anzuraten sich eine Schablone auszudrucken, auf der die Anschlüsse und Bauelemente des Raspberry Pi zu sehen sind. Achtung, durch den PetRockBlock PowerBlock verlagert sich die Micro-USB-Buchse!

Mit Hilfe der Schablone kann man mit den Kabeln und Anschlüssen so experimentieren, bis alles zueinander passt. Hat meine eine gute Lage gefunden, markiert man die Bohrlöcher. Man fügt also am besten Anschluss um Anschluss hinzu und variiert Kabellagen und -befestigungen.

USB-Buchsen und Reset-Taster

Befestigung der USB-Buchsen

Zwei kurze USB-Verlängerungskabel mit montierbaren Buchsen kommen zum Einsatz. Die Buchsen werden an der selbstgebastelten Frontblende festgeschraubt. Zuvor wurde ein Teil der Originalfrontblende aufgeklebt, so wie weiter unten beschrieben. Die Kabel werden mit selbstklebenden Kabelclips am Gehäuse sowie mit Kabelschellen und Originalschrauben an Originalschraubgewinden befestigt. Die Stecker werden so durch ein Plättchen auf Abstand gehalten und mit Kabelbinder fixiert, dass die beiden Stecker in die Buchsen des Raspi passen.

Reset-Taster

Für den Reset-Taster wird ein Teil der Originalplatine verwendet und mit dem Gehäuse verschraubt, wobei zusätzlich ein USB-Verlängerungskabel befestigt wird. Der Reset-Schalter vom oberen Gehäuseteile drückt auf den Reset-Taster. Der Platinenteil wurde ausgefräst. Aufgepasst, das ist eine staubige Angelegenheit.

In das Platinchen wurden zwei Löcher gebohrt, um einen Steckpfosten mit zwei Stiften daran zu befestigen. An dem Pfosten wird nachher ein Kabel befestigt, welches zum Raspberry führt. Auf der Rückseite des Platinchens wurden Drähte passend zu den Anschlüssen des Tastschalters geführt und angelötet, wobei zusätzlich Platinenleitungen durch Kratzen getrennt wurden. Auf dem Foto sind an der Oberseite Kratzspuren zu sehen, dort scheint Kupfer durch.

Letztlich ist die Verdrahtung auf der Rückseite und das Auftrennen von Leitungen so durchzuführen, so dass bei gedrücktem Taster der Stromkreis zwischen den Pfostenstiften geschlossen ist (also kein Widerstand) und bei nicht gedrücktem Taster der Stromkreis zwischen den Pfostenstiften offen ist (also unendlicher Widerstand). Ich habe dazu mit einem Messgerät den Widerstand bestimmt und kontrolliert.

Wiederverwendung der Originalfrontblende

Aus dem Frontblock der Spielkonsole kann eine Frontblende gewonnen werden, die auf vorne auf das Polystyrol-Ensemble mit Kunststoffkleber festgeklebt wird. Problematisch an diesem Kleber ist die chemische Reaktion mit dem Kunststoff, welche zu Krümeln und Fäden führt. Für einen Nachbau kann man versuchen, die Buchsen weiter nach außen zu legen, wobei man dann aufpassen muss mit dem Verlegen der Kabel innerhalb des Gehäuses.

Anschlüsse für Stromversorgung und HDMI

Kabelverlegung

HDMI-Kabel und Stromanschluss, also Micro-USB-Verlängerungskabel, werden an der Rückblende festgeschraubt, mit Kabelschellen und selbstklebenden Kabelclips am Gehäuse befestigt, sowie mit Kabelbindern fixiert. Abstandshalter sind zurechtgesägt und -gefeilt worden.

Das HDMI-Kabel ist sehr starr. Es muss daher stark gebogen und gut fixiert werden. Das Steckerende wird zwischen Schraubenführung und einem aus Plastikresten gebasteltem Sockel eingeklemmt. Der Sockel ist mit Plastikklebstoff und Heißkleber angebracht. Als Krümmer ist zusätzlich ein zylindrischer Abstandshalter zum Einsatz gekommen.

Die Stromversorgung wird über einen 90°-Adapter mittels des PetRockBlock PowerBlock dem Raspberry Pi zugeführt. Der Adapter ruht mit Plastikklebstoff festgeklebt auf einem zylindrischen Abstandshalter, der mit Heißkleber am Gehäuseboden fixiert ist.

Anschlussabstimmung und Vorbereitung für Micro-SD-Verlängerungskabel

Im folgenden Bild ist im Gesamtüberblick zu sehen, wie die Kabel verlegt und befestigt sind.

Zwei Dinge sind besonders zu beachten:

Power und Reset

Ein/Aus-Schalter

Zum Ein- und Ausschalten des Gerätes kommt der Originalschiebeschalter zum Einsatz. Die alten Käbelchen werden ersetzt, ein Power-Kabel mit 2-Pin-Buchse für PC Mainboards, hier schwarz-rot, wird an den Schalter gelötet und mit dem Switch-Pfostenstecker auf dem PowerBlock verbunden. Auf der Anbieterseite ist sogar ein Bild mit SNES-Schalter zu sehen. Der Schalt schließlich ist am alten Platz mit den alten Schrauben befestigt.

Reset-Leitung

Der Taster wird in einem Ausschnitt der originalen Platine wiederverwendet. Auf dem Ausschnitt sind geeignet Leitungen verlegt. Dadurch entsteht ein Stromkreis, der unterbrochen ist durch den Tastschalter und durch eine Brücke, bestehend aus einem Stecker mit zwei Stiften. Die Leitungen sind auf der Rückseite mit Schalter und Stiften verlötet.

Die beiden Stifte werden über ein Kabel, so wie es für ein Reset-Kabel eines PCs üblich ist, per 2-Pin-Buchse mit der Stiftleiste des Raspberry verbunden, und zwar mit Pins 13 (BCM 27) und 14 (Masse). Dadurch kann gemessen werden, ob der Taster gedrückt ist oder nicht. Beim Anschluss ist die Polung egal. Wer möchte, kann die Farbcodierung passend wählen: Schwarz an Masse (ist im Bild anders geraten).

Das Schaltbild zeigt, dass man am GPIO Pin 13 messen kann, ob der Schalter geschlossen ist oder nicht.

Das Reset-Kabel ist im nachstehenden Bild am unteren Bildrand als schwarz-rotes Kabel zu sehen. Mit dem weiß-grünen Kabel ist die Power-LED angeschlossen.

Power-LED

Das weiß-grüne Kabel im obenstehenden Bild ist ein für PCs übliches LED-Kabel, das per 2-Pin-Buchse an den LED-Pfostenstecker des PowerBlock angeschlossen wird, wie beispielsweise im Foto zu sehen. Beim Anschluss der LED ist die Polung wichtig, das kürzere Beinchen ist die Kathode (Minus-Pol, grün) das längere Beinchen ist die Anode (Plus-Pol, weiß). Die LED ist mit Klebepad-Maße am Lichtfenster der oberen Gehäusefenster festgeklebt.

Beachte auch, wie die Auswurftaste mit Heißkleber fixiert wurde. Zu sehen sind auch die runde, dunkelgraue Säule, welche den Reset-Taster drückt, sowie die rechteckige, dunkelgraue Säule, welche den Ein-Aus-Schalter verschiebt. An den obenstehenden Fotos kann man gut erkennen, wie der Modulschacht angefräst worden ist, um Platz für das Innenleben zu schaffen.

Kabelanschlüsse

Kabel an Rückseite

Auf den folgenden drei Bildern ist gut zu erkennen:

Etwas versteckter ist das Flachbandkabel und dem Stromzuführungskabel, welches den Micro-SD-Kartensteckplatz nach außen führt.

Die Fixierung der Kabel erfolgt durch Kabelbinder, Klebeband oder selbstklebende Kabelclips, jeweils weiß im Bild zu erkennen.

Kabel an Vorderseite

Und jetzt ein Blick auf:

Alle Raspi-Anschlüsse, samt Ethernet

Zum Abschluss sind nochmals alle Anschlüsse am Raspberry Pi zu sehen, wobei im mittleren Bild das kurze, graue Netzwerkkabel gut zu erkennen ist.

Software

RetroPie

Als Software kommt RetroPie zum Einsatz. Dadurch wird der Raspberry Pi zur Retro-Spielmaschine. Als Speichermedium dient eine 32GB Micro SDHC Karte der Kategorie "Class 10" bzw. "U1". Die Bootzeiten liegen bei etwa 20 Sekunden. Als freier Speicherplatz verbleibt etwa 26GB, was eine komfortable Reserve für Anwendungen, Multi-Media-Daten sowie Spiele bietet.

Für die Einrichtung sind die folgenden, gut verständlichen Seiten hilfreich:

Es ist empfehlenswert, gleich beim Erstellen der SD-Karte WLAN einzurichten und SSH zu aktivieren. Kurz gesprochen, erstelle die Datei /boot/wifikeyfile.txt (siehe Einrichtungsbeschreibung der EmulationStation ) sowie die leere Datei /boot/ssh (siehe Raspberry Pi: SSH einschalten/aktivieren).

PowerBlock

Für den PowerBlock gibt es eine einfache Installationsprozedur, welche in der Ausführung des folgenden Kommandos auf der Konsole besteht:

wget -O - https://raw.githubusercontent.com/petrockblog/PowerBlock/master/install.sh | sudo bash

Die Konfigurationsdatei /etc/powerblockconfig.cfg muss so aussehen:

{
   "powerswitch" : {
       "activated" : true
    },
    "statuspin": 17,
    "shutdownpin": 18
}            

Alternativ kann die Ansteuerung des PowerBlock über das RetroPie-Setup installiert werden. Dazu ist das Setup aufzurufen, entweder über die EmulationStation oder über das Kommando retropie_setup.sh . Über die Taste "P" für den Menüpunkt "Manage packages" erreicht man im nächsten Fenster über den Eintrag "driver" für "Manage driver packages" schließlich den Eintrag 821 für den PowerBlock.

Für den Betrieb des Reset-Tasters muss ein systemd-Dienst eingerichtet werden, welcher den Taster-Status abfragt und gegebenenfalls das System herunterfährt. Der Dienst wird durch /etc/systemd/system/snes_reset_button.service wie folgt definiert:

[Unit]
Description=Handles SNES reset button
After=multi-user.target
[Service]
ExecStart=/usr/local/bin/handle_snes_reset_button.py
Restart=on-failure
[Install]
WantedBy=multi-user.target

In /usr/local/bin/handle_snes_reset_button.py wiederum steht:

#!/usr/bin/env python
import os
import time
import RPi.GPIO as GPIO
# SNES reset switch connects BCM 27 (pin 13) with ground (pin 14)
RESET = 27
# switch polling period in seconds
PERIOD = 0.2
# required switch button press time in seconds
TIME = 2
# count maximum derived from polling period and press time
COUNT = TIME / PERIOD
# select BCM pin numbering
GPIO.setmode(GPIO.BCM)
#  use GPIO pin as input
GPIO.setup(RESET, GPIO.IN, pull_up_down = GPIO.PUD_UP)
# switch button monitoring loop
count = 0
while count < COUNT:
    time.sleep(PERIOD)
    if (GPIO.input(RESET) == GPIO.LOW):
        count += 1
    else:
        count = 0

# reset request has been detected
GPIO.cleanup()
os.system('reboot')

Nicht vergessen, die Rechte der Datei passend zu setzen! Insbesondere muss diese ausführbar sein. Aktiviert wird der Dienst durch das Kommando:

sudo systemctl enable snes_reset_button.service

Wartung

Datenaustausch

Für Wartungszwecke wie Update, Konfiguration und Datensicherung ist die Fernwartung per SSH und SCP zu empfehlen, ergänzt durch Samba (Adresse \\retropie ). Dazu bietet sich unter Windows MobaXterm in der freien "Home Edition" an. Eine Alternative ist PuTTY. Als Ergänzung ist WinSCP nützlich. Auf Linux-Systemen gehören SSH sowie SCP zur Standardausstattung, müssen aber gegebenenfalls installiert oder aktiviert werden.

Grundlegende Hinweise zur Wartung finden sich in RetroPie: Tipps & Tricks. Zum Datenaustausch findet sich mehr unter Dateiaustausch zwischen einem gewöhnlichen Computer und dem Raspberry Pi.

Datensicherung

Anstatt die komplette SD-Karte zu sichern, werden nur die wichtigsten Daten gesichert wie z.B. Konfigurationen. Insbesondere wird davon ausgegangen, dass ROMs, Spiele, ..., auf der Karte schon eine Kopie sind und daher anderweitig gesichert sind. Ein Archiv, welches per MobaXTerm geholt wird, wird mit dem folgendem Skript retropie-backup.sh erstellt, welches sich im Verzeichnis /usr/local/bin/ befindet:

#!/bin/sh
DIRTMP="/dev/shm"
DIRLST="/etc /opt/retropie/configs /usr/local/bin"
tar -vzcf $DIRTMP/retropie-backup-$(date -Iminutes).tgz $DIRLST

Aktualisierung

RetroPie auf Raspberry Pi einrichten erklärt, wie RetroPie aktualisiert wird. Dies geschieht über die grafische Oberfläche der EmulationStation. Dort gibt es einen Eintrag "RetroPie Setup", welcher zu dem Skript "RetroPie-Setup" mit den Einträgen "Update RetroPie-Setup script" und "Update" führt.

Kontakt