Introduction: Xbox 360 Wireless + Arduino

Picture of Xbox 360 Wireless + Arduino

Purpose :

Quick setup to get your robotic projects

wirelessly controlled with an Xbox 360 Controller

*Update ( 11 / 24 / 2015) :

If using the pc and having trouble ( especially with adapter not being recognized or having a green solid light) try the following:

Author :

Sergei Dines

Writer - Inventor - Philosopher


MECH Database :

Includes : Servo CAD Files, Arduino Codes, Robot Project Ideas , and whatever you'd like to add

Step 1: PARTS

Picture of PARTS
  • Xbox 360 Controller : Here

Note : has to be Microsoft - Do not cut corners else I cannot promise it will work with other controllers / receivers

  • Xbox 360 PC Adapter : Here : Also , THIS ONE is confirmed :
  • Arduino Uno : Here Should Come with PC Cable
  • Usb Host Shield : Here

Total : About $98

But : Once you purchase this setup, you can control servos, motors, and any robotic project wirelessly

Step 2: WIRING : Connections

Picture of WIRING : Connections
  1. Connect USB Host Shield to Arduino Uno
  2. Connect Xbox 360 Wireless Reciever to USB Host Shield
  3. Plug Arduino UNO Into PC

Step 3: COMPUTER : Software + Libraries

  1. Download Arduino IDE : Here
  2. Download USB Host Shield Library : Here : Scroll Down a little and Click " Download Zip" Right- Hand - Side
  3. Import Library by following the steps on Arduino Website : Here
  4. Close out Arduino IDE and Open it Again

Or Follow These Steps to Import the Library :

  • Open Arduino IDE
  • Sketch --> Include Library --> Add .zip Library ...
  • Add Zip File from Step 2 Above

Step 4: Confirmation

Picture of Confirmation

To Confirm :

  1. Open Arduino IDE
  2. Go to File [ Upper Left Hand Corner ]
  3. Examples
  4. Scroll Down to : " USB_Host_Shield_2.0-master" Or whatever you called the .zip library
  5. Hover Over " USB_Host..."
  6. Select Xbox --- >XboxRECV
  7. Upload Sketch to Arduino
  8. Open Serial Monitor [ Upper Right Hand Corner of Arduino IDE ]
  9. Should see the name of the button stressed followed by a number

Arduino Interface image from :

Step 5: CODE : Controlling Robotic Arms & Rovers & Stuff

  • OR Below -- > servo_xbox360_simple = my own code ( very simple and easy to follow )
  • Any questions / contracted work email :

See Codes Belowfor older version of code and another to control motors with speed control

See :

  • -For Controlling a robotic arm with the Xbox 360 controller [ 6 Servo control CODE INCLUDED ]

Note * Motor Control Sketch May Need Editing + Confirmation but should work

Step 6: Conclusion

I'd like to thank Barrett Anderies for helping me with this setup

He has a similar setup, but with a PS3 Controller : see Here

Step 7: Troubleshooting

  • Receiver Light Not On When Plugged Into USB Port ----- > Switch USB Port
  • USB Host Shield Library Not Recognized / named correctly ---- > Get rid of periods, special characters, spaces, or numbers - don't start name with number.
  • Weird characters are showing up in the serial monitor --- > Match " Baud rate" within code with serial monitor baud rate
  • Weird characters are still showing --- > Make Sure XboxRECV Selected [ as mentioned in comments by CarsonH2 ]
  • Sync or Avrdude error --- > Select Correct Board [ Arduino Uno] , Port, and Programmer [ ArduinoISP ]


HalaPainyo (author)2017-09-17

Hi, I don't know if this problem has been resolved yet, but my receiver will not show a solid green light when connected to the USB host, but it does when connected to the computer. I can press the sync button on the receiver and then the light will blink for a little bit, but then it will turn off. I do not know if this is a hardware, software, or battery power issue. Please let me know if anybody has resolved this issue. (And yes, I tried changing the USB port and it did not work). I'm using Arduino uno.

MaxMonster1. (author)2017-05-21

my receiver won't show a solid green light when I connect it to the usb host shield and the Microsoft help page is no longer availiable. What can I do? I'm using the SainSmart USB Host-Shield with an Elegoo UNO R3 and the original Microsoft Reveiver.

TheCiscoKid (author)MaxMonster1.2017-07-12

I'm Having the same problem. Using SainSmart USB Host-Shield, arduino uno, xbox wireless adapter for windows, and xbox one controller. I have tried connecting to pc, the dc jack, and the Vin pin but I cannot get the adapter to power up on the shield. The adapter works fine when connected to the pc and syncs with the controller easily, so no problem with the adapter. Any suggestions??

fugiapple12 (author)2016-09-03

I'm using the ATmega 2560.
so far, I've got the controller to communicate with it.
now all I need to do is have it control a few DC motors, though the code isn't working right and I can't find anything on how to wire DC motors up to the arduino(fairly new to this) any help would be most appreciated

RyanT20 (author)fugiapple122017-06-22

to hook up some DC motors you will need to buy a DC motor Board. You can get one for a 2WD or 4WD car. Also you should get an extra battery pack so that there is extra power for the motors.

KyleT77 (author)fugiapple122017-03-15

What code did you use to connect/communicate the Xbox controller with the USB dongle?

Sergei Dines (author)fugiapple122016-09-13

1 - If you haven't already, I'd suggest getting the arduino with those chips ,not just smd stand alone

2 - email me at and I can help with the motors

theoneandonly1 (author)2017-04-10

Would i be able to use stepper motors instead?

vigneshs19 (author)2016-08-02

@Sergei Dines I just want to know one thing is the Left and Right Trigger buttons i.e. LT and RT on the XBOX ONE or the XBOX 360 Controllers Analogous(0-255) or they just digital switches(0-1) because I love these controllers and I want one of these to fly my quadcopter and since the analog sticks both are center spring stick. I cannot use either of them for Throttle for my quad copter so I thought if the triggers were analogous I might be able to use the triggers for throttle.

I haven't gotten the Xbox One controller to work with this library, but I've used the 360. The triggers (LT/RT) are analog, 0-255. Of course, these have springs as well. But the bumpers (LB/RB) are digital.

Sergei Dines made it! (author)vigneshs192017-01-21

If you or someone mails me the parts, I will gladly attempt + post a video + code

Xbox one controller + Adapter :

Arduino uno :

USB Host shield :

Email :

I'll return the parts , and code , and have it working for servos and lights

I can get it to work with motors, but that may cost yah hah

Let me know - offer stands for anyone

ha1rtr1gg3r (author)vigneshs192017-01-16

Very late, I know. But if you wanted to come back to this idea, I am pretty certain they are variable like you were thinking. In racing games, you can pull it partially to increase speed, its not like an all or nothing, its gradual. (Why controllers for racing and vehicle games are better) I don't know about xbox one, just 360. But not sure why they would downgrade.

Now shooting games don't need the variable, so their program just tells the gun to shoot after its half way or greater if you will.

Sergei Dines (author)vigneshs192016-08-29

I haven't used the 360 controller in a while but I believe it may be digital [ it has a spring in it that makes it feel like analogue]

In the XBOXRECV and XBOXONE, it says Xbox.getButtonClick(... ) and that's for the ONE and 360 controller

For the future , a good way to test would be to take the output of the function and serial print it to the monitor. For example : let x = int; ( before the void setup where you define variables) and then in the main loop x = Xbox.get .... then Serial.print(x)

Hope that helps somewhat - and that's a good idea for the throttle - keep up the good work

MauricioM54 (author)2016-07-11

Hi, I'm hoping you could clear some issues I've been having trying to control a DC motors speed. For some reason when I run the code only the void setup runs. In the serial monitor the xbox controller is connected and feeding information but doesn't affect the speed. I'm relatively new at this so anything that might help as far as code and wiring world really help. I've spoken to my professor about it and she says that there is something wrong with the if (Xbox.XboxReceiverConnected) line she told me that the class this line is calling for is not defined in the library. Anything will help thank you.

Sergei Dines (author)MauricioM542016-09-13

email me at and I can help with the motors

EliuM1 (author)2016-07-11

I would like to buy it, but only if you have an translation to portuguese. Because I do not speak english and I understand just some words.

vigneshs19 (author)EliuM12016-08-02

And yet you speak good English :)

Paravel (author)2016-05-01

Hey i am using my Arduino Yún to work with a wireless xbox controller. Im not sure if it will work cause of the bridge. Do you have any advice ?

Sergei Dines (author)Paravel2016-05-01

Only Advice I can give is try it out and don't be afraid to have stuff fry

Paravel (author)Sergei Dines2016-05-04

I uploaded the XBOXREC scetcch and the serial monitor gives me :

Xbox Wireless Receiver Library Started

The Receiver has either a green solid or the light is blinking. The serial monitor does not give any response by using the controller. I cannot even say if the controller is connected

suggegtions how to solve this ?

RobertC141 (author)2016-05-01

I'm sure I'm missing something blatantly obvious, but what are the pin outs for the servo? Or, how do I connect the servo to the USB Host pinouts?

Sergei Dines (author)RobertC1412016-05-01

This isn't a tutorial on servos , or controlling them with this set up [ although you can ]

This is :

And very simple google searches will go far, both now and especially in the future

NiklasM2 (author)2016-04-30

Works like a charm! Thank's a lot. Will try to build a remote controlled pan/tilt head now. :-)

Sergei Dines (author)NiklasM22016-04-30

Dude that's awesome
No problem at all

I tried to make this as straight forward as possible for others to avoid some problems I had

Which receiver did you end up using?
Sounds pretty rad

Best of luck

NiklasM2 (author)Sergei Dines2016-04-30

I got the original Microsoft one a long time ago when I started playing FIFA at the PC. ;-)

Have two original XBox 360 controller lying around as well.

Sergei Dines (author)NiklasM22016-04-30

That's good to hear

That's how I got into this and it working as well [ gaming on the pc]

JohnB405 (author)2016-03-26

I am trying to control a power wheels car with a arduino and a xbox 360 controller. Any thoughts?

stevenm109 (author)2016-03-25

hello, I can control servo with my control xbox one and raspberry pi?

GhostEye360 (author)2016-03-08

I am working on a project where I can control an RC car using an Xbox one controller. So far I have purchased: an Arduino uno (smd), Sainsmart usb host shield, Sainsmart motor shield (To allow the uno the be able to power the servo motors), Xbox one controller, Xbox one wireless PC adapter, Arduino PC cable (came with uno), Arduino 9v external battery pack (came with uno), and RC car I am willing to take apart. This is what I have set up: usb host shield is attached on top of the uno, motor shield is attached on top of the usb host shield, Xbox one wireless PC adapter is plugged into the usb host shield, Arduino uno is connected to the PC, 9v external power supply is connected to uno, and the controller is ready to connect to the wireless PC adapter. The problem is that the Xbox wireless PC adapter does not seem to be receiving power. When the adapter is plugged directly into the computer, is works how it should, but when it is plugged into the host shield, it doesn't show any indication that it is even receiving power. I don't know if the code has anything to do with this but I need help. Thanks in advance!

Daxswag999 (author)2016-03-08

A few days

DaxSwag (author)2016-03-07

My arduino does not seem to be applying enough power to the pc wireless adapter. help

GhostEye360 (author)2016-03-02

Does this work with an Xbox one controller and Xbox one PC adapter? Please answer asap. thanks!

Sergei Dines (author)GhostEye3602016-03-02

New Library Should -

lingqiuJ (author)2016-02-07


I am trying to turn on the receiver Light and troubleshoot it. In the troubleshooting section you mentioned, "Receiver Light Not On When Plugged Into USB Port ----- > Switch USB Port". But here is only one usb port on the shield. which one you want me to switch to.

ps: does it have something to do with vbus bin?

Sergei Dines (author)lingqiuJ2016-02-07

Switch USB port on Computer

If light still not on -

Unplug from usb host shield

Plug Xbox Receiver into computer

Computer should download the driver , verifying that you have a good receiver / controller.

Download xbox driver for windows here if device not recognized

if device cannot be found on computer, then you have a bad receiver or controller or either may not authentic Microsoft brand.

No idea about the vbus

lingqiuJ (author)Sergei Dines2016-02-07

thanks for the quick response. i can pair both the receiver and controller with my computer now while i am still unable to get the receiver powered on Arduino. it seems that the shield just doesn't deliver power to the receiver. Because when i tested several other pins on the shield, they worked properly.

Sergei Dines (author)lingqiuJ2016-02-07

Try powering the Arduino[ with the shield on top] through V_in - your usb may not be able to deliver the current needed [ I do remember having that issue sometimes ]

---->Read up on V_in before doing so though :

And no problem

lingqiuJ (author)Sergei Dines2016-02-07

sorry, but could you please be more specific? i just wired the 5v pin from my mega and the v_in pin on the usb shield. The next thing i saw was the smoke from the Arduino's processor.

Sergei Dines (author)lingqiuJ2016-02-07

Not really sure why you did that - did you not like your board?

We all burn a few

Deffers (author)2015-12-04


I am trying a similar project but with a non-wireless xbox 360 controller. I have everything wired up, I placed the libraries in the correct places, but when I plug the controller into the usb port on the arduino it fails to recognize the controller. The code spits out "--û" to the serial port. I've tried downloading the driver for the controller on the computer (not sure if that was necessary, but I read it somewhere). Any tips would be much appreciated.

CarsonH2 (author)Deffers2015-12-14

Are you using the XBOXUSB sketch rather than the XBOXRECV?

Sergei Dines (author)CarsonH22015-12-14

That's good advice


Make sure the baud rate on the bottom of the serial monitor matches that of the code

mikaelbjornson (author)2015-12-03

Sorry, what do you mean with
6. XboxRECV
Is it code you should write or what?

Xbox is the main folder name :

file --> USB_Host_Shield_2.0-master ( or whatever you named it) -- > then Xbox ( which is a main folder) --> then XBOXRECV

This gets you the functions and serial prints the values after you download the program to the arduino (with the xbox receiver hooked into the usb shield and usb shield on top of the arduino)

Hope that clears it up

laith mohamed (author)2015-05-12

Good work and good description .

Hey Thank You

Much Appreciation

seamster (author)2015-05-04

Very cool!

Sergei Dines (author)seamster2015-05-04

Thank you Seamster - tried to make it as straightforward as possible

About This Instructable




Bio: Transformational Speaker - Writer - Philosopher - Futurist - Inventor - Philosophy Portfolio : Robotic Portfolio :
More by Sergei Dines:How to get started with roboticsHow to create an engineering / maker / technical portfolioReal Pipboy / IronMan : Wearable Heater + Runner Utility Light
Add instructable to: