Wireless Xbox Controller am Raspberry Pi (4) verwenden

Wenn du bereits in der Vergangenheit probiert hast, einen Wireless Xbox Controller am Raspberry Pi zu verwenden, wirst du festgestellt haben, dass dies nicht auf Anhieb funktioniert. Je nach Version des Xbox Wireless Controllers musst du entweder nur einen Treiber installieren oder noch zusätzlich ein paar Konfigurationen vornehmen.

In diesem Beitrag zeige ich dir, wie du den Xbox Wireless Controller auf deinem Raspberry Pi (in meinem Fall der 4er) zum Laufen bekommst und wie du auch die neuen Xbox Controller mit dem Pi koppeln kannst.

BOM | Bill of Material | Materialliste

Hier findest du alles, was man für die Durchführung des Tutorials benötigt oder zur Verfügung haben sollte.

Empfohlen

Optional

Methoden zur Einrichtung eines Xbox Controllers am Raspberry Pi

Es gibt 3 verschiedene Methoden, um den Xbox Controller mit dem Raspberry Pi zu koppeln und anschließend erfolgreich zu verwenden. Die beiden einfachsten Methoden sind dabei über das USB-Kabel sowie über den offiziellen Microsoft Wireless Adapter.

Xbox Controller über USB Wireless Adapter verbinden

Der Xbox USB Wireless Adapter ist einer der einfachsten Möglichkeiten, den Controller anzuschließend und gleichzeitig kabellos zu verwenden. Dies ist auch der optimale Weg, um einen älteren Xbox 360 oder Xbox One Controller der ersten Generation wireless zu verwenden.

Hierbei ist wichtig, dass jeder Xbox Controller Typ einen anderen USB-Adapter verwendet.

Xbox Controller über Bluetooth verbinden

Die Verwendung von Bluetooth ist nur für die neueren Xbox One Controller möglich, welche mit Veröffentlichung der Xbox One S eingeführt wurden. Um den Controller per Bluetooth zu koppeln, bedarf es einige Schritte zusätzlich. Dazu kommen wir aber im Folgenden.

Hier kannst du direkt zum Punkt springen, wo es um die Bluetooth-Verbindung vom Xbox Controller mit dem Raspberry Pi geht.

Xbox Controller mit USB-Kabel verbinden

Ein USB-Kabel ist der einfachste Weg, den Xbox Controller (egal welche Version) mit dem Raspberry Pi zu verwenden und einzurichten. Wenn es sich jedoch um einen Xbox 360 Controller handelt, kann ausschließlich die bereits kabelgebundene Variante verwendet werden, da bei den kabellosen Xbox 360 Controllern der USB-Port ausschließlich zum Laden verwendet wird.

Schließe einfach ein Micro-USB-Kabel an den Controller und das andere Ende an den Raspberry Pi an und schon kann es losgehen.

Einrichten des Raspberry Pi für den Xbox Controller

Bevor du mit einem der Schritte startest, solltest du immer sicherstellen, dass der Raspberry Pi auf dem neusten Stand ist. Die kannst du mit folgenden 2 Befehlen im Terminal (Alt + Strg + T [Bei Desktop Systemen]) sicherstellen.

sudo apt update
sudo apt upgrade

Obwohl der Treiber xboxdrv nicht mehr unbedingt installiert werden muss, da der Xpad-Treiber im neuen Raspbian-Kernel standardmäßig vorhanden ist, installiere ich ihn trotzdem mit. Dadurch bieten sich einige weitere Einstellungen (zukünftig) sowie auch die Kompatibilität mit Anwendungen, die auf xboxdrv erstellt worden sind.

EDIT: Mit der aktuellen Raspbian OS Version ist das Repository für xboxdrv entfernt worden. Der Standard Xpad-Treiber übernimmt die komplette Funktion. Somit kann er bei neueren OS-Distributionen übersprungen werden.

Um den xboxdrv zu installieren, tippst du folgenden Befehl in dein Terminal ein:

sudo apt install xboxdrv

Damit sind die Vorkehrungen bereits getroffen und wir können mit dem Pairing fortfahren und den Controller per Bluetooth mit dem Raspberry Pi verbinden.

Xbox Controller per Bluetooth mit Raspberry Pi koppeln (Pairing)

Bevor du versuchst, den Xbox Controller zu koppeln, prüfe zunächst, ob du den obigen Treiber bereits installiert hast und dein Raspberry Pi auf dem neusten Stand ist. Wie das geht, ist im Abschnitt vorher erklärt.

Du startest damit, dass du den folgenden Befehl in dein Terminal eingibst. Dieser sorgt dafür, dass der Enhanced Re-Transmission Mode (ERTM) des Bluetooth Moduls deaktiviert wird. Ist er aktiviert, lässt sich der Xbox Controller nicht korrekt per Bluetooth koppeln.

echo 'options bluetooth disable_ertm=Y' | sudo tee -a /etc/modprobe.d/bluetooth.conf

Diese Änderung wird nur wirksam, wenn wir den Raspberry Pi neu starten. Somit ist der nächste Schritt der Neustart des Raspberry Pis.

sudo reboot

Nach dem Neustart kannst du mit dem eigentlichen Koppeln oder Pairing des Xbox Controllers starten. Damit dies klappt, musst du die Bluetooth-Tools in deiner Konsole ausführen mit folgendem Befehl:

sudo bluetoothctl

Innerhalb der Bluetooth-Tools stehen dir verschiedene Befehle zur Verfügung. Einer ermöglicht es uns, unseren Xbox wireless Controller zu finden und anschließend zu koppeln.

Zunächst muss jedoch der Bluetooth Agent eingeschaltet werden:

agent on
default-agent

Danach kannst du dich auf die Suche nach deinem Bluetooth Gerät machen. In diesem Fall ist es der Xbox Controller.

scan on

Sobald der Scanvorgang gestartet hat, sollten sich alle Bluetooth Geräte im Umkreis, die erkannt werden können, im Terminal wiederfinden.

Wenn du jetzt die „Sync-Taste“ auf der Vorderseite deine Xbox Controller eine kurze Zeit gedrückt hältst, versetzt du einen Controller in den Paring-Mode. Nach kurzer Zeit findest du dann auch den Eintrag in deinem Terminal wieder.

Hier ist es wichtig, die MAC-Adresse zu notieren oder herauszukopieren. Die MAC-Adresse ist eine hexadezimale Zahl, welche durch Doppelpunkte „:“ getrennt ist. Zum Beispiel folgende Zeile im Terminal:

[NEW] Device A5:B2:D3:A4:59:A8 Xbox Wireless Controller

Mit der erhaltenen MAC-Adresse kannst du nun eine Verbindung zum Controller aufbauen. Dafür verwenden wir den normalen Bluetooth-Stack des Raspberry Pi.

Gebe dazu einfach folgenden Befehl ein und ersetze „DEINE_MAC_ADRESSE“ durch die Adresse, die du in deinem Terminal bei der Suche gefunden hast. In diesem Beispiel war es A5:B2:D3:A4:59:A8

connect DEINE_MAC_ADRESSE

Sobald eine erfolgreiche Verbindung zum Controller hergestellt wurde, siehst du folgende Befehlszeile (oder ähnlich) bei dir im Terminal.

Attempting to connect to A5:B2:D3:A4:59:A8
[CHG] Device A5:B2:D3:A4:59:A8 Modalias: usb:v054C123123P88
[CHG] Device A5:B2:D3:A4:59:A8 UUIDs:
...

Jetzt steht bereits die erfolgreiche Verbindung zwischen dem Raspberry Pi und dem Bluetooth Xbox Controller. Jetzt muss der Controller noch zur sicheren Liste der vertrauenswürdigen Geräte hinzugefügt werden. Dadurch kann sich der Controller automatisch beim nächsten Start mit dem Raspberry Pi verbinden.

Dazu muss nur eine einzelne Zeile in das Terminal eingegeben werden. Wichtig dabei wieder ersetze die DEINE_MAC_ADRESSE mit deiner MAC-Adresse aus den vorherigen Schritten.

trust DEINE_MAC_ADRESSE

Jetzt ist der Controller vollständig gekoppelt und kann verwendet werden. Die Bluetooth-Tools (bluetoothctl) kannst du mit „quit“ oder mit Strg + D verlassen.

Jetzt kannst du noch das Joystick-Toolset installieren. Mit diesem Toolset kannst du überprüfen, ob der Xbox Controller richtig funktioniert. Dafür führst du einfach den folgenden Befehl aus:

sudo apt-get install joystick

Sobald das Joystick-Toolset installiert ist, kannst du den Controller auf Funktion testen. Dafür führst du den Befehl aus, um den auf js0 eingestellten Joystick zu testen:

sudo jstest /dev/input/js0

Auf dem Bildschirm siehst du eine Reihe von Zahlen. Durch das Drücken der Tasten und Bewegen der Joysticks sollten sich diese Zahlen verändern. Wenn sich bei jedem Druck etwas ändert, ist der Controller erfolgreich eingerichtet und funktionsbereits.

Steuerung des Raspberry Pi mit einem Xbox Controller

Du bist jetzt bereits in der Lage, Spiele am Raspberry Pi (zum Beispiel mit Steamlink oder ähnlichem) zu spielen. Wenn du jetzt noch deinen Raspberry Pi mit dem Controller steuern möchtest, kannst du einen einfachen Befehl dafür verwenden. Dieser Befehl sorgt dafür, dass der Controller die Maus imitieren kann.

sudo xboxdrv --detach-kernel-driver --silent --mouse

Sobald dieser Befehl abgeschlossen ist, solltest du die Maus mit dem Xbox Controller steuern können. Die folgenden Tasten stehen dir anschließend zur Verfügung:

  • A: Linksklick
  • B: Rechtsklick
  • X: Mittlere Maustaste
  • Y: Enter
  • Linker Joystick: Mausbewegung
  • Rechter Joystick: Scrollrad
  • D-Pad: Pfeiltasten
  • Start: Vorwärts
  • Select: Back
  • LB: Page Up
  • RB: Page Down

Ich hoffe, die hat dieser Leitfaden etwas Mehrwert geboten und konnte im Idealfall dein aktuelles Problem lösen. Jetzt sollte dein Xbox Controller erfolgreich mit deinem Raspberry Pi verbunden sein und auch verwendet werden können.

Gerade wenn man am Raspberry Pi ein Spiel spielen oder auch Software wie Steamlink verwenden möchte, erweist sich der Controller doch als sehr nützlich.

Falls du Fragen oder auch Feedback hast, lass es mich gerne in den Kommentaren wissen. Ich freue mich, von dir zu hören!

Schreibe einen Kommentar