Retro-Konsole: Alte Joysticks per Leonardo USB-fähig machen

Eine Retro-Konsole: Alte Joysticks per Leonardo USB-fähig machen ist ein Projekt, das Nostalgie und moderne Kompatibilität auf besonders elegante Weise verbindet. Viele klassische Joysticks aus der Ära von Atari, Commodore, Amstrad oder MSX sind mechanisch robust, haben ein unverwechselbares Spielgefühl und lassen sich häufig erstaunlich gut reparieren. Das Problem: Die meisten dieser Controller nutzen den bekannten DE-9/DB9-Anschluss (9-poliger D-Sub) und arbeiten mit einfachen Schaltkontakten, nicht mit USB. Wer heute am PC, am Raspberry Pi, an Emulationsstationen oder an modernen Retro-Konsolen-Setups spielen möchte, steht daher vor der Wahl: teure Adapter kaufen, auf unzuverlässige „No-Name“-Wandler setzen – oder selbst eine saubere, wartbare Lösung bauen. Der Arduino Leonardo ist dafür besonders attraktiv, weil er dank ATmega32U4 nativ USB sprechen kann und sich als HID-Gamecontroller ausgeben lässt. So wird aus einem alten Digital-Joystick ein USB-Controller, der in Windows, Linux und vielen Emulatoren direkt erkannt wird. In diesem Artikel erfahren Sie, welche Joystick-Typen sich eignen, wie der DE-9-Standard funktioniert, worauf Sie bei Verdrahtung und Entprellung achten sollten und wie Sie Ihr Setup so gestalten, dass es stabil, reproduzierbar und langfristig wartbar bleibt.

Welche Retro-Joysticks eignen sich besonders für die USB-Umrüstung?

Die beste Ausgangslage haben digitale Joysticks mit Mikroschaltern oder federnden Kontaktzungen, die schlicht „ein/aus“ liefern. Dazu zählen viele Modelle, die am Atari-Joystick-Port-Standard orientiert sind und über den 9-poligen Anschluss Richtungen sowie mindestens eine Feuertaste schalten. Der große Vorteil: Elektrisch sind diese Joysticks sehr simpel. Sie schließen beim Betätigen einen Kontakt gegen Masse, und genau das kann ein Mikrocontroller hervorragend auswerten.

  • Digital-Joysticks (ideal): Vier Richtungen + Feuer (ggf. zusätzliche Buttons). Sehr gut geeignet für USB-HID-Buttons und D-Pad/Hat-Switch.
  • Paddle-Controller (eingeschränkt): Oft analoge Potentiometer an bestimmten Pins. Umrüstung möglich, aber benötigt saubere Analogmessung und Kalibrierung.
  • Spezialcontroller (abhängig): Mäuse, Lightpens oder proprietäre Protokolle erfordern andere Auswertung und sind nicht „mal eben“ umzurüsten.

Wenn Sie ein klassisches „Atari/Commodore“-Joystickgehäuse mit DB9/DE-9 besitzen, stehen die Chancen gut, dass Sie mit einem Leonardo eine robuste USB-Lösung bauen können.

Der DE-9/DB9-Joystick-Port: Warum er so verbreitet war

Der sogenannte Atari-Joystick-Port wurde ab Ende der 1970er zum Quasi-Standard im Home-Computer- und Konsolenbereich. Er nutzt einen 9-poligen D-Sub-Stecker und führt im Kern digitale Schaltleitungen (Richtungen, Trigger) sowie bei manchen Systemen zusätzliche Signale wie +5 V und Leitungen für Paddle-Eingänge. Eine übersichtliche Beschreibung samt Pinbelegung finden Sie beispielsweise hier: Atari joystick port (Pinout und Hintergrund). Für Commodore-Computer ist der Control-Port ebenfalls gut dokumentiert: C64-Wiki: Control Port.

Für ein DIY-USB-Projekt ist das entscheidend: Bei vielen klassischen Joysticks sind Richtungen und Feuer schlicht einzelne Schalter, die beim Drücken eine Leitung gegen Masse verbinden. Damit können Sie den Joystick sehr ähnlich wie ein Tastenfeld behandeln.

Pinbelegung verstehen: Das wichtigste Wissen vor dem ersten Kabel

Bevor Sie etwas verdrahten, sollten Sie die Pinbelegung Ihres Joysticks verifizieren. Beim Atari-Standard ist die Zuordnung der Richtungen und des Triggers in vielen Quellen konsistent. Ein verbreiteter Überblick zeigt unter anderem: Pin 1 = Up, Pin 2 = Down, Pin 3 = Left, Pin 4 = Right, Pin 6 = Trigger, Pin 8 = Ground. Genau diese Logik macht die Umrüstung so angenehm. Sie finden das in der Regel entweder in Service-Unterlagen, in Community-Wikis oder in Pinout-Sammlungen.

  • Tipp für die Praxis: Verlassen Sie sich nicht blind auf Zeichnungen, die „von vorne“ oder „von hinten“ gemeint sein könnten. Messen Sie im Zweifel mit einem Multimeter durch, welche Leitung bei welcher Bewegung gegen Masse schließt.
  • Wichtig: Der Stecker am Kabel und die Buchse am Gerät werden oft aus unterschiedlicher Perspektive dargestellt. Ein Messgerät spart hier Zeit und Nerven.

Für einen schnellen Einstieg in typische Digital-Joystick-Pinouts kann auch eine technische Übersicht wie diese hilfreich sein: ePanorama: Digital joystick connector pinouts.

Warum der Arduino Leonardo für Retro-Joysticks so gut passt

Der Arduino Leonardo unterscheidet sich von vielen klassischen Arduino-Boards dadurch, dass der ATmega32U4 USB direkt integriert. Dadurch kann sich das Board gegenüber einem Computer als HID-Gerät ausgeben, also etwa als Tastatur, Maus oder Gamecontroller. Das ist eine der wichtigsten Grundlagen, um einen Joystick ohne zusätzliche USB-Adapterhardware zu emulieren. Die offizielle Dokumentation beschreibt genau diese Eigenschaft: Arduino Leonardo (offizielle Hardware-Dokumentation).

  • Native USB-Funktion: Der Leonardo kann ein echtes USB-Eingabegerät darstellen, statt nur Daten seriell zu senden.
  • Genug digitale Pins: Für Richtungen, Feuer, Zusatzbuttons und optionale Schalter (z. B. Autofire-Toggle im Hardware-Sinn) reicht es meist aus.
  • Kompatible Libraries: Für Gamepad-/Joystick-Emulation gibt es bewährte Bibliotheken, die speziell für ATmega32U4 gedacht sind.

USB-HID-Grundlagen: So „spricht“ Ihr Joystick mit dem PC

Damit ein PC Ihren umgerüsteten Joystick als Controller erkennt, muss das Gerät eine definierte HID-Beschreibung liefern: Welche Buttons gibt es? Gibt es ein D-Pad/Hat-Switch? Gibt es Achsen? Diese Begriffe sind nicht nur „Techniksprech“, sondern bestimmen ganz praktisch, wie Emulatoren und Spiele Ihr Gerät einlesen und belegen. Als Referenz für HID-Strukturen gelten die offiziellen Usage Tables: USB HID Usage Tables.

Für klassische Retro-Joysticks ist die naheliegende Abbildung:

  • D-Pad/Hat-Switch oder vier Buttons: Up/Down/Left/Right
  • Ein oder mehrere Buttons: Fire, ggf. Fire 2/Fire 3 (bei manchen Joysticks/Modifikationen)

Die Entscheidung „Hat-Switch vs. vier Buttons“ ist nicht nur Geschmack: Viele Spiele und Frontends erwarten ein D-Pad als Hat-Switch. Andererseits funktionieren vier Buttons ebenfalls häufig zuverlässig. Für maximale Kompatibilität ist ein Hat-Switch oft die elegantere Wahl.

Bibliotheken und Firmware-Ansatz: Joystick-Emulation ohne exotische Workarounds

Für Leonardo-Projekte, die als Gamecontroller erscheinen sollen, hat sich die ArduinoJoystickLibrary etabliert. Sie erweitert ATmega32U4-Boards um eine flexible Joystick-/Gamepad-HID-Implementierung. Die Projektbeschreibung erklärt, dass sie explizit für Arduino Leonardo/Micro und andere ATmega32U4-basierte Boards gedacht ist: ArduinoJoystickLibrary (GitHub).

  • Mehrere Buttons und Achsen: Je nach Bedarf konfigurierbar.
  • Guter Community-Einsatz: Viele nutzen sie für Button-Boxen, Arcade-Controller und ähnliche HID-Projekte.
  • Saubere HID-Identität: Hilft, dass Systeme den Controller konsistent erkennen.

Für ein Retro-Joystick-Projekt genügt meist ein einfacher „State-Reader“: Pins einlesen, Zustände entprellen, dann als HID-Report senden. Entscheidend ist weniger Komplexität, sondern Stabilität.

Verdrahtung in der Praxis: Pull-ups, Masseführung und Störsicherheit

Alte Joysticks arbeiten typischerweise mit Schließkontakten gegen Masse. Das lässt sich auf dem Leonardo besonders stabil mit internen Pull-ups auswerten: Der Eingang liegt im Ruhezustand auf HIGH, und beim Drücken zieht der Joystick den Pin auf GND (LOW). Dadurch vermeiden Sie „floating inputs“, die zu Geistereingaben führen können.

  • Gemeinsame Masse (GND): Der Joystick-Ground (typisch Pin 8 beim Atari-Standard) wird mit GND des Leonardo verbunden.
  • Signalleitungen: Up/Down/Left/Right/Fire jeweils auf einen eigenen digitalen Eingang.
  • Interne Pull-ups: Pro Eingang aktivieren, sodass keine externen Widerstände nötig sind.
  • Kabellängen: Je kürzer, desto besser. Lange Leitungen können Störungen einfangen, besonders bei schlecht abgeschirmten Retro-Kabeln.

Wenn Sie ein DB9-Adapterkabel bauen, empfiehlt sich eine Zugentlastung. Retro-Kabel werden häufig bewegt und sind mechanisch nicht immer für moderne „Rig“-Belastungen gedacht. Ein kleines Gehäuse mit Buchse, Leonardo und sauberer Klemmen-/Steckverbindung ist oft die langlebigste Lösung.

Entprellen: Warum Retro-Schalter ohne Debounce selten perfekt sind

Selbst hochwertige Mikroschalter prellen. Bei Retro-Joysticks können zusätzlich Oxidation, Kontaktfedern und mechanisches Spiel zu kurzen Mehrfachflanken führen. Ohne Entprellung passiert dann das, was Spieler sofort merken: Menüs springen, Figuren machen Doppelschritte, ein Schuss wird als zwei Schüsse registriert. Eine einfache, robuste Strategie ist eine Sperrzeit Δt nach jeder Zustandsänderung.

Schaltzustand übernehmen, wenn  t tletzterWechsel Δt

In der Praxis ist außerdem eine „Stabilitätsprüfung“ hilfreich: Ein Zustand gilt erst als gültig, wenn er über mehrere Abtastzyklen gleich bleibt. So verhindern Sie, dass beim schnellen Umschwenken kurzzeitig falsche Richtungen gemeldet werden.

Diagonalbewegungen und SOCD: Wenn zwei Richtungen gleichzeitig anliegen

Viele Retro-Joysticks erlauben Diagonalen, indem zwei Richtungsschalter gleichzeitig schließen (z. B. Up+Right). Das ist grundsätzlich korrekt und sollte als diagonale D-Pad-Eingabe umgesetzt werden. Kritischer sind gegensätzliche Richtungen (Left+Right oder Up+Down). Das kann durch Defekte, verschobene Mechanik oder verdrehte Kontakte entstehen. Für eine stabile Controller-Emulation sollten Sie dafür eine Regel definieren:

  • Gegensätze neutralisieren: Left+Right ergibt „keine horizontale Bewegung“, Up+Down ergibt „keine vertikale Bewegung“.
  • Plausibilitätsmodus: Wenn Gegensätze auftreten, kann der gesamte D-Pad-Status auf neutral gesetzt werden.
  • Diagnose: Häufig sind gegensätzliche Signale ein Indikator für mechanische Probleme oder verdrehte Schalter.

Diese Logik ist weniger „Overengineering“, als es klingt: Sie macht Ihr USB-Gerät in Emulatoren deutlich robuster.

Zusatzbuttons und Mehrtasten-Joysticks: Was ist mit „Fire 2“?

Viele klassische Systeme hatten standardmäßig nur eine Feuertaste, später kamen jedoch Joysticks mit zweiten oder dritten Buttons auf. Teilweise wurden dafür zusätzliche Pins genutzt, teilweise kreativer: Manche Erweiterungen nutzen vorhandene Leitungen oder spezielle Protokolle. Für moderne USB-Emulation ist das grundsätzlich kein Problem, solange Sie die zusätzlichen Signale sauber erkennen und eindeutig auf Buttons abbilden.

  • Einfachster Weg: Jeder zusätzliche Schalter wird als eigener USB-Button gemeldet.
  • Wichtig für Kompatibilität: Emulatoren können Buttons frei belegen, wenn das HID-Profil klar ist.
  • Hinweis: Bei manchen historischen „Mehrbutton“-Konzepten sind die Signale nicht rein „Schalter gegen Masse“, sondern nutzen besondere Beschaltung. Prüfen Sie Ihren Joystick-Typ vorher.

Wenn Sie sich speziell mit DE-9-Joysticks und Mehrbutton-Varianten beschäftigen, können technische Wikis und Community-Seiten zusätzliche Kontextinformationen liefern, etwa zur Erweiterungsidee über den DE-9-Stecker: Individual Computers Wiki: DE-9 Joystick.

Paddles und analoge Retro-Controller: Besonderheiten bei Potentiometern

Einige Retro-Eingabegeräte nutzen Potentiometer (Paddles) statt reiner Schalter. Das klassische Prinzip: Ein Drehregler verändert den Widerstand, und die Konsole misst daraus eine Zeit-/Spannungsabhängigkeit. Für eine moderne USB-Umrüstung ist das machbar, aber anspruchsvoller als ein Digital-Joystick, weil Sie eine stabile Analogmessung, Kalibrierung und ggf. Filterung benötigen.

  • Kalibrierung (Min/Max): Der nutzbare Bereich des Potis muss auf 0–100% skaliert werden.
  • Rauschen/Drift: Alte Potis können „kratzen“ und springen; leichte Glättung oder ein Medianfilter kann helfen.
  • USB-Achse: Paddles passen gut auf eine X- oder Y-Achse eines HID-Joysticks.

Für die lineare Skalierung eines gemessenen Rohwerts x auf einen normierten Wert y (0 bis 1) ist diese Abbildung ein solides Grundmodell:

y = xa ba

Dabei sind a und b Ihre gemessenen Minimal- und Maximalwerte. In der Praxis sollten Sie zusätzlich begrenzen, damit Rauschen nicht unter 0 oder über 1 führt.

Gehäuse, Buchsen, Adapter: So wird das Projekt wirklich alltagstauglich

Die eleganteste Lösung ist meist nicht „Joystickkabel auf Arduino-Pins löten“, sondern ein kleines Interface-Modul. Das hat mehrere Vorteile: Sie können verschiedene Joysticks anschließen, Kabel tauschen, Defekte leichter finden und das Ganze bleibt mechanisch stabil.

  • DE-9-Buchse im Gehäuse: So können Sie Joysticks wie früher einstecken.
  • Innen Steckklemmen oder Pfostenleisten: Erleichtert Wartung und Umbauten.
  • Zugentlastung und Kabelführung: Reduziert Wackelkontakte und Kabelbruch.
  • USB-Port schützen: Der Leonardo sollte im Gehäuse so sitzen, dass der USB-Stecker nicht mechanisch belastet wird.

Wenn Sie Retro-Hardware langfristig nutzen wollen, ist Wartbarkeit ein echter Qualitätsfaktor – besonders bei Joysticks, die bereits Jahrzehnte alt sind.

Testen und Belegen: Erst Betriebssystem, dann Emulator

Bevor Sie in RetroArch, MAME, VICE oder andere Emulatoren gehen, sollten Sie im Betriebssystem prüfen, ob alle Eingaben sauber ankommen: keine Doppeltrigger, keine hängenden Richtungen, saubere Diagonalen. Danach ist das Belegen in Emulatoren meist straightforward, weil USB-Gamepads als Standardgeräte behandelt werden. Je standardkonformer Ihr HID-Profil ist, desto weniger Überraschungen erleben Sie.

  • Stabilitätstest: Buttons schnell mehrfach drücken, D-Pad-Richtungen wechseln, Diagonalen prüfen.
  • Langzeittest: Einige Minuten „wild“ bewegen und drücken – Wackler zeigen sich oft erst unter Bewegung.
  • Emulator-Mapping: Pro System/Spiel prüfen, ob D-Pad als Hat oder Buttons erwartet wird, und entsprechend konfigurieren.

Weiterführende Quellen: Leonardo, HID und Retro-Pinouts zuverlässig nachschlagen

IoT-PCB-Design, Mikrocontroller-Programmierung & Firmware-Entwicklung

PCB Design • Arduino • Embedded Systems • Firmware

Ich biete professionelle Entwicklung von IoT-Hardware, einschließlich PCB-Design, Arduino- und Mikrocontroller-Programmierung sowie Firmware-Entwicklung. Die Lösungen werden zuverlässig, effizient und anwendungsorientiert umgesetzt – von der Konzeptphase bis zum funktionsfähigen Prototyp.

Diese Dienstleistung richtet sich an Unternehmen, Start-ups, Entwickler und Produktteams, die maßgeschneiderte Embedded- und IoT-Lösungen benötigen. Finden Sie mich auf Fiverr.

Leistungsumfang:

  • IoT-PCB-Design & Schaltplanerstellung

  • Leiterplattenlayout (mehrlagig, produktionstauglich)

  • Arduino- & Mikrocontroller-Programmierung (z. B. ESP32, STM32, ATmega)

  • Firmware-Entwicklung für Embedded Systems

  • Sensor- & Aktor-Integration

  • Kommunikation: Wi-Fi, Bluetooth, MQTT, I²C, SPI, UART

  • Optimierung für Leistung, Stabilität & Energieeffizienz

Lieferumfang:

  • Schaltpläne & PCB-Layouts

  • Gerber- & Produktionsdaten

  • Quellcode & Firmware

  • Dokumentation & Support zur Integration

Arbeitsweise:Strukturiert • Zuverlässig • Hardware-nah • Produktorientiert

CTA:
Planen Sie ein IoT- oder Embedded-System-Projekt?
Kontaktieren Sie mich gerne für eine technische Abstimmung oder ein unverbindliches Angebot. Finden Sie mich auf Fiverr.

 

Related Articles