Control your Raspberry Pi by using a wireless Xbox 360 controller

8. May 2017

In addition to the control of the Raspberry Pi via infrared remote controls, 433 Mhz transmitter, messengers and many more, also a wireless Xbox 360 controller can be read from the Raspberry Pi. This allows the gamepad to be used as an external mouse (in desktop mode) or in scripts and thus the GPIOs can be controlled. In RetroPie, the Xbox Controller can also be used as input media for games on the Raspberry Pi.

In this tutorial several of these possibilities are shown. From the installation of the required software, to the use as a mouse, to the switching of the GPIOs and the control of a servo motor with the joystick.



To use the Raspberry Pi with the Xbox 360 controller, you do not need a lot of accessories:

  • Xbox 360 Wireless Controller (US / UK)
  • Xbox 360 USB Receiver (US / UK)

Each Raspberry Pi with at least one free USB port can be used, for example, the more powerful Raspberry Pi 3.

If you want to rebuild the small project below, you also need:



Raspberry Pi Software for the Xbox 360 Controller

For Linux distributions, there is a developed driver, especially for communicating with (wireless) Xbox controllers.

We first install the driver so that it can be communicated with the controller:

sudo apt-get install xboxdrv

Now the USB receiver can be connected. With lsusb, you can check if it has been detected:

pi@raspberrypi:~ $ lsusb
Bus 001 Device 005: ID 045e:0291 Microsoft Corp. Xbox 360 Wireless Receiver for Windows
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


Now you can turn the controller on and test if it is detected. To do this, start the driver using:

sudo xboxdrv --detach-kernel-driver

After that, press the keys to change the log, which indicates which key(s) is/are pressed and its value.

On the documentation page, there are all commands with a brief explanation. For example, it is possible to make the LEDs of the Xbox 360 controller light / flash (--led NUM)  or vibrate (-r 255,255). In total, up to 4 radio controllers can be used and addressed or read out.

Use the Xbox 360 Controller as Raspberry Pi Mouse

A feature I particularly like is the mouse option. Since I have rarely connected a keyboard to the Raspberry Pi (I use almost exclusively SSH and sometimes the Remotedesktop) and even more rarely a mouse, I find it very handy to use the Xbox 360 wireless controller as a mouse for the Raspberry Pi. Everything we need is already installed.

Only one other parameter must be specified:

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

You can also change the speed and selection of the buttons (as described in the documentation). If the command should be executed at system start, you can either write an autostart script or use crontab.

The following (standard) assignment of the keys for use as a mouse applies:

  • A: Left click
  • B: Right click
  • X: Middle mouse click
  • Y: Enter
  • Left Joystick: Mouse movement
  • Right Joystick: Scroll wheel
  • D-Pad: Arrow keys
  • Start: Forward
  • Back: Back
  • LB: Page up
  • RB: Page down



Use the Xbox 360 Controller to start scripts and commands

One way to use the driver in your own scripts is the manual readout of the output values. In order to save us this effort, we can go back to an already created Python library.

git clone
cd Xbox

Attached is also an example (, which can be viewed if necessary.

I have therefore built a small example with a servo motor and 4 LEDs as inspiration. The wiring is quite simple (resistance to the LEDs), therefore only shown here as a schematic structure:

Raspberrya Pi Xbox 360 Steckplatine


The code for this is as follows (create a file with sudo nano and with CTRL + O, X save and exit):

Then you can run the code (sudo nano and use the buttons to turn the LEDs on and off or use the left joystick to control the servo motor. To stop, press the BACK button.

In the following video you can also watch this small project:

In addition, many more things can be done with the Raspberry Pi and Xbox 360 Controller. For example, using Recallbox or with a robot control with the help of the joystick and changing the modes with the buttons.

Well, what will be your next scheduled projects with the controller? 🙂

14 Responses

  1. Great post!, just what I was looking for. But, when y tried to compile the code, it said an error with
    import xbox
    ImportError: No module named xbox.
    What should I do?


Leave a Comment

Your email address will not be published.

Subscribe to Raspberry Pi Tutorials and don't miss any new Tutorial!