Wireless Xbox360 controller on a PC, without the commercial dongle

Update: I updated the post to mention using two 1N4001 or equivalent diodes instead of just one. Two diodes in series take the voltage down to almost exactly 3.3V, which is the required voltage for the RF board. I also added actual photos of the wiring now, as I’ve redone it (hence the messy wires from re-soldering Etc.)

Update 2: It seems that syncing is impossible directly from the RF module and PC, but if the wireless controller you use was already synced with the RF module, and hasn’t been re-synced with another Xbox since, it will work. However, I am working with another modification I found which adds LED and sync enable functions by means of a serial connection with a PIC16F628A μC. You can find the related forum post here: Link (and see how my thrown together version of it looks [here] and [here]. Messy, I know :P).

Update 4: Alternative means of syncing mentioned in the comments by George.

Update 5: Further testing on alternative syncing method shows how non-play & charge kit compatible peripherals can be synced -without- a microcontroller. Thanks, Pat.

Yesterday I had a thought – I don’t like having a wire to the Xbox360 controller I use for games on my PC. As I’m tight on cash right now I figured I’d have a quick look around to see if there was a way to use a wireless controller on the PC without going out and buying the official wireless transceiver. I was thinking that there may be some other RF transceiver that could be modified or adapted to work with it. As it happens, there -kind of- is.

Now if you’re like me, and have a spare wireless controller sitting around, it’s likely you have a dead red ringed Xbox 360 sitting in a cupboard. This is the key to getting the controller working with a PC. The wireless transceiver in the Xbox can be made to work with a little modification. Well, I say modification but I really mean little more than soldering a few wires and altering a .inf file. Let’s get on to it:

What you’ll need:

  • Dead/Red Ringed Xbox 360 you don’t mind cannibalising.
  • Any old USB cable you don’t mind cutting.
  • Two diodes – a couple of 1N4001 or equivalents will do. Basically it’s just there for a forward voltage drop WHICH IS VITAL (unless you don’t mind burning the board out and killing your USB controller).
  • A soldering iron.
  • Solder.
  • A brain.

Taking the Xbox 360 apart:

I’m not going to reinvent the wheel here. Anandtech.com has a perfectly good explanation of how to do this. Take a look here: http://www.anandtech.com/show/1864/inside-microsoft-s-xbox-360/3

Pro tip: Instead of a small plastic knife that they say to use to ping open the case, you can either buy a tool for it, make one out of an old CD/DVD spindle cover, or just rip the damn thing open with a screwdriver (after all, it’s dead right?).

The part you’re looking for:

It’s the board on the front of the machine where the ring and power button are. It’s held on by 3 screws, so be sure to pop the little plastic part off to find the third screw. Don’t go trying to pry it off like I almost did. Once the screws are out it just unplugs. And that’s your part.

The soldering part:

As you’re reading this and have an interest in it I’ll assume you know how to cut, strip, and tin your wires, so I’ll not bother with that part. Instead I’ll assume you’re sitting there with an RF board, a USB cable ready for soldering, a diode, and a hot soldering iron. Basically, follow the picture (click for bigger image):

xbox360_rf_module_wiringAnd make it look like this:

20110307_xbox360_rf_module_wiring_1

Beginner’s mistake/brain fart moment warning: Make sure the diode is the right way around.

I chose to cut the diode legs down a fair bit and soldered it off to the left of pin 1, along the bottom edge of the RF module. You might like that idea, you might not. It’s up to you how you solder it. I could have been neater, but I honestly didn’t see much point. I’m not going to make a project box for it or anything, and it’ll be hidden away somewhere so practicality > looks.

I will mention again that the diodes are ABSOLUTELY NECESSARY. The whole board runs on 3.3V while USB standard is 5V. The diodes that you put in series on the power line will lower the voltage to tolerable levels for the board – almost exactly 3.3V, to be honest (my multimeter is showing 3.34V). From what I’ve read in comments in various places the RF board likes to burn out quite spectacularly without a diode in place, taking the USB controller it’s connected to with it. I was paranoid enough about it to actually test the unit on my old Macbook (that I neither care about nor use) before trusting it on my main machines.

Once you have that all soldered up, you have yourself a wireless dongle for your Xbox 360 wireless controller, something like this:

xbox_wireless_controller_adapter_front

Congratulations. Now for the software.

The software part:

This bit isn’t all that scary. You just need to modify the .inf file that comes with the official Microsoft drivers to allow for the different PID of the RF controller of the Xbox 360. First, if you don’t have it already, download the Xbox 360 Accessories Software for your operating system from the Microsoft gaming software download site, and install it. Now, before plugging the RF module in, you need to do that modifying I mentioned. Head over to c:Program FilesMicrosoft Xbox 360 Accessories (or wherever you installed it to) and make a backup of Xusb21.inf before opening it in your favourite text editor (Notepad++ is nice for it’s ini support with collapsing headers etc).

The parts you’re going to modify are under the headers [MSFT.NTx86.6.0], [MSFT.NTamd64.6.0], [MSFT.NTx86], and [MSFT.NTamd64].

What they’ll look like/similar to:

%XUSB21.DeviceName.Wired%=CC_Install, USBVid_045E&Pid_028E
%XUSB21.DeviceName%=CC_Install, USBVid_045E&Pid_0719
%XUSB21.DeviceName.Wired%=CC_Install, USBMS_COMP_XUSB10
%XUSB21.DeviceName%=CC_Install, USBMS_COMP_XUSB20
%XUSB21.DeviceName.Jump%=CC_Install, USBVid_045E&Pid_028F

What you need to change them to:

%XUSB21.DeviceName.Wired%=CC_Install, USBVid_045E&Pid_0291
%XUSB21.DeviceName%=CC_Install, USBVid_045E&Pid_0291
%XUSB21.DeviceName.Wired%=CC_Install, USBUNKNOWN
%XUSB21.DeviceName%=CC_Install, USBUNKNOWN

After you’ve saved the changes, go ahead and plug in the RF module. Chances are it will complain that drivers can’t be found. Cancel out of the hardware wizard and head over to the device manager and find the Unknown USB Device, or whatever it is your flavour of Windows has decided to call it. You’ll know which one it is by the yellow !triangle! (and if you don’t have a clue what I’m on about, what are you doing trying to hack an Xbox component on to a PC in the first place?). Give the device a right click and update it’s drivers, but tell it you have a disk and navigate to the Xusb21.inf you modified. It might complain about unsigned drivers, it might not, but if it does just tell it to continue. At the end of it all you’ll have an Xbox 360 Controller for Windows device with a Hardware Id of USBVID_045E&PID_0291 in your Device Manager. If not, reboot.

After all that, try syncing your Wireless controller with the unit. With any luck you should have a controller showing in your gaming devices. Give it a quick test with the diagnostics, maybe calibrate it etc.

And you’re done. On to wireless gaming. (o/

Any questions feel free to ask in the comments below and I’ll see what I can do to help.

298 thoughts on “Wireless Xbox360 controller on a PC, without the commercial dongle

  1. Kiefer

    Hi Glad to see you still provide answers for us. I have some problems when doing this. I read the link you provided:http://forums.xbox-experts.com/viewtopic.php?f=13&t=4029, and solder all things up, windows recoginze the new hard ware, I can use my wireless controller now, but the LEDs do not light. I used a PIC16F628A, PIC Pin 3 to RF module Pin 7; PIC pin 4 to 3.3v through a 10k resitor;PIC Pin 5 to Ground;PIC pin 6 to RF module pin 6; PIC pin 9 to Rf module power(pin 5); PIC pin 14 to 3.3v; and I flashed the PIC using PICKIT2 with the RFMODULE.hex which I downloaded from above link. Is there some mistake? Kindly please help, thanks in advance.

    Reply
    1. dilandou Post author

      With the 10k resistor you’re only supplying 330 µA to the PIC. Are you sure that’s enough to power it? The datasheet says around 120 µA @ 1 MHz 2.0V. I see the source showing the clock set to 4 MHz. I’d guess a fairly linear scale for power usage, making that around 480 µA minimum?

      Reply
      1. dilandou Post author

        Personally I wouldn’t bother with resistors in power lines for microcontrollers. A filtering capacitor, maybe. But not a resistor. The only call for a resistor I can really see there is the pull up for the reset pin.

  2. Kiefer

    Thank you for the reply. Infact I am not familiar with MCUs, I just started to search and try to get some knowledge about such devices. Well, I guess the power supply for the PIC is through Pin14(VDD–I just read it from the datasheet). I think you are right that the 10k resistor is a pull up resistor. I saw your picture that you use the PIC16F628a at “update 2″, is it works fine? If yes, please help check where my problem is.
    Sorry for the english, I am not a native.
    Thanks.

    Reply
    1. dilandou Post author

      I see I was reading wrong. I thought you had the 10k on pin 14 (I was reading it quickly at work ^^;).

      I never actually got around to making the PIC work, which is why I switched to the Arduino that I had sitting around, which is an AVR. When it comes to the PIC, I’m not so clued up. I’ve had far more experience with AVR chips than PIC. You might have more luck on the original posts.

      Reply
      1. Kiefer

        Thank you very much. Maybe I need changing from PIC to Arduino. I will feedback later.

  3. Dean

    so just tried this today and what an experience. this will be my second time soldering and im not to sure if i burn the RF out or not i got everything soldered finally and hooked it up to the pc but nothings happened so im not to sure what i did wrong if anything. im pretty sure i did all the software right just not to sure on the hardware parts any help would be greatly appreciated.

    Reply
    1. Dean

      never mind i just spent an hour using a incompatible usb cable lol switched it out for an old ipod one took 5 min to re solder everything and it works thanks for the awesome hack.

      Reply
  4. lostone

    hey i follow your blueprint right and solder it right but now when i go to plug the usb in the diodes are heating up and the third time i try one diodes and head up and i seen smoke. just wondering where i miss up ?

    Reply
    1. dilandou Post author

      A component heating up is sure sign of either a shorted component, or far too much power for the rating of the component. What diodes did you use?

      Reply
      1. dilandou Post author

        Those should work fine considering they’re rated 10x above USB voltage, and 740mA above the current drawn by the RF module. Besides the possibility of a bad batch, I have no idea why they would be failing unless they were heat damaged during soldering.

  5. kenny

    i got all needed parts except a diode and silicon. I have read a couple of LED lights would do thesame or even more cause it lights up :) and I thought maybe some resistors connected in series might also work???……
    going through my scraps i found these two little boards http//m.flickr.com/photo.gne?id=7845173970&
    The round board is from a broken little torchlight, its got 4 white led lights and 4 components I think are resistors?………..
    the rectangular board is from a damaged DVD i preserved some 5 years ago, below the 3 different color LEDS are 3 components looks like the ones i thought of being resistors earlier and are in series….
    I would like to know which one of the components or boards can serve as an alternative to the diode i do not have.
    And more importantly, after soldering up with whatever i had and the modified board is connected to the PC, on which points exactly am I to place the two ends of the digital muultimeter inorder to measure the voltage across the board? I could keep trying anything until i get the required voltage level provided the board isnt fried already lol……….

    Reply
    1. dilandou Post author

      LEDs do have a forward voltage drop, yes, but they also suck up current like a sponge and blow up without current limiting resistors. If you were to put limiting resistors in line with the LEDs to drop them down to 15-25mA, you’d also be choking the current for the RF board. The RF board will have the right voltage, but nowhere near enough current.

      Alternatively, if you have a few spare resistors sitting around try reading up on voltage dividers.

      Reply
  6. kenny

    will the 1N4007 work? beacuse i have tried several of them i took out of a board for a charger. I tested the two ends with the meter and it read about 592ohms (all 4 i had), but when they are connected to the board the PC doesnt detect anything. I even tried two of them in series, but nothing happens. Willing to take the risk, I removed the diode and connected it straight, and the system saw an unrecognized device (thus the board is okay?)

    Reply
    1. dilandou Post author

      Any of the 1N400x series will work. I’m curious as to whether you know what a diode actually is or what it does, however. They’re not resistors, nor are they expected to work like one. I suggest you read up on them a little, as the only immediate reason why the board wouldn’t be detected with a diode in line with the +5V is because the diode was backwards.

      Reply
      1. iZaQ

        I compile this code. Now i have code 10 error. I use low drop out voltage regulator fix to 3,3V, so its no problem with power. When I use swich, diodes are blinking just like in xbox, but board not syncing with controler. Somebody write about pull-up resitors, how i can turn it on? Or can I use external resitors and wher I should solder it.

      2. dilandou Post author

        Internal pull-up is set by setting a pin to input, then setting it high. The internal pull-up being set is unaffected by any subsequent state changes to the pin until reset.

        To use an external pull-up resistor, use a high value (10K or so) resistor between the pin and +V.

  7. Garnak

    So I built the board to the specs listed (I lack a multimeter at this current point in time so I can’t test my connections). I plugged in the board and installed the drivers just as listed (I hope), and the devices registers as a xbox 360 controller. Where I’m stuck now is when I plug my controller into the computer with the play and charge kit it just blink at me and doesn’t connect. I don’t know if the play and charge kit is suppose to register on my computer or I’m missing software or something. Any ideas? I’m running windows xp 32-bit if that information helps.

    Reply
    1. dilandou Post author

      Unfortunately I can’t think of why it’s not connecting. From my own tests, and from other commenters, it syncs automagically. I’ve personally tested on XP 32bit, Windows 7 Professional 64bit, and Windows 7 Home Premium 64bit. In each case, plugging the play and charge kit syncs to the hacked wireless module.

      Just curious, but does the sync button on the controller help at all? Does the controller flash the circle in a searching for sync way, or does it have a single quarter lit up?

      Reply
      1. Garnak

        When I just plug the controller in all 4 quarters flash in sync. Iv tried using the sync button on the controller and then plugging in the receiver, iv tried plugging the controller after hitting the sync button (that was recall just a shot in the dark) but it always just goes back to all 4 quadrants flashing in sync at a slow pace.

      2. Garnak

        One weird side note, my computer kind of locks up when I plug in both the receiver and the controller. I don’t know if its relevant but who knows.

  8. Sully

    So I just wanted to post another option. If you have an old power supply laying around it can be used for the 3.3v instead of reducing the voltage with diodes. My power supply required the jumper trip to turn it on.

    1. Locate 3.3v and ground leads from the power supply.
    2. Cut the 5v wire (red) out of the usb cable, you will not be using it.
    3. Solder the ground from the power supply and the ground (black) from the usb together.
    4. Follow the above directions = just use the 3.3v line from your power supply instead.

    Reply
  9. Jesse

    Just want to say it works grate. my 1st build i powered the receiver off off my psu and used a usb header on the mobo. and hiding the receiver in my tower. my next one will be powered from 5v usb, and a lm1117 3.3 v fixed regulator. any who. thats about it. thanks.

    Reply
  10. Виталик

    Good time. Sorry for the English. I have a google
    help please
    I have a question to this devaysu /
    I want to collect on attiny13 I need a program or text “. Hex” in which program flash
    I am new in this business and do not understand.
    thanks for the reply

    Reply
  11. spikeysyco81

    i have had mine working for 5 months now no issue’s, i’m just posting to say thanks again, also if any of you have old 360 cases and earth cages laying around you can make a pretty smart stand alone casing,

    i basicaly cut the front right half of my 360 away from the rest of the casing, and cut the two usb ports (including the bit of motherboard the’re on for connecting wires to) and cut the 360’s cage too, re-secured the rf board to the earth cage, screwed the cage back inside the half 360 case (with rf board) when doing this i passed the long screw through the usb ports plastic (where it was originaly) and rebuilt the half 360,

    after checking the allignment of the usb ports with the 360 facia i took it apart and wired a 4 port usb hub inside to the front ports, and added an 8gb memory pen to one of the remaining ports of the hub and wired the rf board to the last remaining port to the hub,

    all i had left to do was use one of the original 360 end plates (the grey ones full of holes) and used that as a lid for the whole thing,

    all this has left me with a stand alone 360 reciever that looks exactly themed like a 360, it has two working usb ports and an internal 8gb of memory, my thinking on the memory is that it makes it portable, i can use it anywhere because i have all the drivers stored on the pen drive for at friends houses or relatives, or after fresh windows installs,

    to finish it off i have added an 8 LED control board internaly that runs 36 sequances and speed and mode control, all looks great,

    sorry for the long post, just wanted to maybe inspire some people to make there own, also because i went the pic route the ring of light on my half 360 or 180 if you like, it lights like up as per original console

    Reply
  12. Stephany

    Hey There. I found your blog using msn. This is a very well written article.
    I’ll be sure to bookmark it and come back to read more of your useful information.
    Thanks for the post. I’ll certainly comeback.

    Reply
  13. Dustin Evans

    Wow that took forever. I’m going to write down what I did because I couldn’t get the modded driver to load for anything.

    Normally you right click the yellow triangle device in Device Manager and click update driver. For me this kept saying “file not found” or something like that. After an hour or so I’ve finally figured out how to do it.

    1. Make the changes to the .inf file like it says on this site.
    2. Right click the yellow triangle device in Device Manager.
    3. Click the top Driver tab and click Update Driver.
    4. Click “Browse My Computer”
    5. Click “Let me pick…”
    6. Scroll down and find “Microsoft Common Controller for Windows”
    7. Click next.
    8. Click “Xbox 360 Wireless Receiver for Windows” (At the bottom will be a yellow triangle complaining it’s not digitally signed)
    9. Click next and accept all the dialog boxes that may pop up.
    10. Viola! The driver should be installed.

    Thanks a bunch for this guide!

    Reply
  14. Dalton

    HEY i got a question, could i use a 100v diode instead of 2 50’s because im runnigh out of shit to take apart trying to find the 1n4001’s so far ive found one, in a old school power supply for a pc

    Reply
    1. dilandou Post author

      All you’re using the diodes for is their forward voltage drop to drop 5v to 3.3v. If you really wanted to you could use a voltage divider from two resistors. The diodes are just easier. If the 100v diodes have a similar forward voltage drop then go ahead. If not, anything that drops the voltage to 3.3v is fine. There are plenty of alternatives.

      Reply
  15. Graeme

    Hey, great tutorial! Quick question though.

    I can’t update the drivers at all on windows 8.1 (I have everything working on windows 7). Whenever I attempt to update the drivers by selecting the file I get the error, “The folder you specified doesn’t contain a compatible software driver for your device. If the folder contains a driver, make sure it is designed to work with Windows for x64-based systems.”,

    I’ve tried to have windows detect the driver by running the ‘add legacy hardware’ wizard, but that fails as well.

    Can’t really understand why the same process won’t work on both windows 7 and 8.

    Any Ideas?

    Thanks.

    Reply
    1. Kevin

      I guess you already have a solution, and I’m not sure if this was the solution, but anyway give it a try

      http://www.makeuseof.com/tag/how-can-i-install-hardware-with-unsigned-drivers-in-windows-8/

      if not go to device manager, then right clic the xbox devive and clic update driver, select the second option (manual install) and then the second option again (the one that lets you select from a list), look for the xbox peripherals and clic use disk and look for the .inf.

      zorry if Im’m not clear enough, my windows 8 is in spanish and I don’t know the actual english text.

      Reply
  16. mike

    I had similar driver problems, I ended up giving up on using the modded .ini file and just used the one windows 8.1 showed up with and it worked right away.

    Cheers dilandou for the tutorial, I can now lay on my couch controlling my XBMC with the controller!

    Reply
  17. Kevin

    Hello there, thanks for your tutorial I’ve been using it for a long time, but I don’t know if you can help me with this situation, I want to use the chatpad, I don’t think Microsoft will ever give any kind of support for it, but there are some custom drivers, wich uses vJoy, but vJoy uses the libUsb drivers and the libUSB drivers won’t recognise this, do you have any idea how could we mod the .inf so it can recognise them???
    thanks in advance.

    here it is the download of the .inf

    https://www.mediafire.com/?5l8wx47b460g0py

    Reply
    1. dilandou Post author

      Only gotcha to look out for if you do try it is that the different revisions of the RF boards had slightly different pinouts, I believe. Also it’ll possibly (likely) have a different device ID.

      Reply
  18. Adam Rabah

    I know this thread is a century old , but what did you do to get the LED’s / Sync working? I see you used a Arduino, wondering if I could do the same with a TEENSY.

    Reply
  19. BanBlade

    Hey i know ppl have asked this but anyone have information on a slim rf board any or could someone tell me how i could figure the pin out on one which wires are the usb ive searched the web with no luck but i dont see them changeing it that much but who knows

    Reply
  20. Will M

    Thanks for this. Always been meaning to do this and finally bothered to yesterday to trouble shoot my analog sticks.
    Slightly different approach as I an old beat to hell failed rrod fixed xenon. So I clipped off the connector for the rf.
    I took the 2 diodes and was able to fit it inside the house behind the pins, almost touched the pin for the white wire, but nice and smooth.
    Applied some hot glue, pressed it down with my Metrocard (train pass). Peeled it off when cool, then used a razor to slice the excess glue off. Looks pretty good.
    I thought the rol would light up, hence I wanted to have it interchangeable when doing LED mods, but that will have to wait.
    Sadly at one point I did misgrab the iron too high up and got a nice little blister in the process.

    Reply
    1. Will M

      Forgot to mention, I didn’t bother doing anything with the inf edits.
      I just installed the drivers from the MS site, then in devmgmt.msc manually picked the wireless 360 driver. On win7 64.

      Reply
      1. dilandou Post author

        Seems there may have been some changes to the default drivers supplied by MS to allow for it. Can’t really confirm, but I’ve read other people saying the same thing.

  21. Sen

    Thanks for this, but I have a small question. I don’t have 1N400x diodes around, only a few RL205 which from the datasheet they have a maximum forward voltage drop of 1V. Would these work?

    Reply
    1. dilandou Post author

      They might do. There’s a possibility they’ll drop to below the necessary 3.3v. The 1v forward voltage drop is quoted at 2A. As the RF module doesn’t draw anywhere near that, the figure could go one of either way. Best bet is to do some maths, or try it and see with a multimeter.

      Alternatively, rig up a voltage divider with a couple of resistors. As USB is pretty much a constant 5v you can’t really go wrong. Failing that, if you have a voltage regulator sitting around anywhere, use that.

      Reply
      1. Sen

        Thanks for the answer. Unfortunately, using a voltage divider is no good. It seems that the receiver has two different power states. Plugging directly to a 3.3v PSU then to the computer a multimeter shows 0.008mA, which seems way too low for normal operation (I wonder if someone can confirm this?), but the computer recognized the receiver without issues after forcing the driver install. My guess is that the receiver cranks up when in actual use… So depending on resistor voltage drops is uncertain. So, I guess using stuff I had laying around is no good, I’ll either buy a 3.3v VRM or a couple 1N4001 in series (Which seem the best option really).

        By the way, it seems that driver modification is not needed anymore. Windows reports receiver as working correctly, but I’ll check out when I get the components.

  22. Sen

    I got a few 1N4002 since 4001s were unavailable. Tested it and it’s working nicely. Controller was immediately detected as soon as I connected the Play n charge. Though, it seems the voltage drop across the diodes isn’t as high as I expected, the RF board is being powered with 3.56v. I don’t know how tolerant the RF board is to a little over-voltage but I tested it for a few minutes and it doesn’t seem to be having problems.

    Added a small blue LED (As power indicator) to the RF as the on-board SMDs apparently don’t appreciate being fed with 3.5v. One popped dead as soon I plugged the board.

    Thanks again for this awesome guide.

    Reply
  23. Nicolò

    Hello,
    I need your help. I correctly install the drivers of the adapter and the PC revongnize it correctly, but the green led will not light at all and doesn’t recognize the controller. What should I do?
    Thank you in advance

    Reply
  24. paletail

    Made this and can connect my pads fine, however I’m struggling to make the Les Paul guitar work without microcontroller. Any thoughts?

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s