3 Simple Ways to
Share What You Make

With Instructables you can share what you make with the world — and tap into an ever-growing community of creative experts.

PhotosPhotos

Share one or more photos of a project, recipe, or whatever you've made, quickly and easily.

Step by StepStep-By-Step

Share your step-by-step photos with text instructions of what you made so others can do it too!

VideoVideo

Share your how-to video. You'll need your embed code from a video site such as YouTube.

Hacking the Xbox CONTROLLER

Hacking the Xbox CONTROLLER
In this tutorial I show you step-by-step how I install a PIC microcontroller inside of an Xbox controller in order to provide custom functions. Now that you have the methods, all you have to do is go write some code and program a chip! Well, I know this is easier said than done, but check out my "5 transistor PIC programmer" if you are ready to go down that road.
 
Remove these adsRemove these ads by Signing Up
 

Step 1Tools

Tools
a small phillips screwdriver
soldering iron
solder (60/40 or 63/37... not the lead-free silver solder)

flux (this is more or less a must-have to get good connection to pcb traces)

glue gun
30 AWG wrapping wire
wire wrap tool (Optional, but makes things easier)

wire stripper (A razorblade works well on wrapping wire, but check out my instructional on "precision wire stripper" to see the one I use in this tutorial.

A DIP microcontroller
A small tactile switch
« Previous StepDownload PDFView All StepsNext Step »
70 comments
1-40 of 70next »
Sep 9, 2011. 8:23 PMalii says:
WOW GOOD
Feb 8, 2010. 3:11 PMchris2001net says:
just wondering what features can you add by doing this? auto fire?
Jul 27, 2009. 3:30 PMstephenniall says:
Hold a lighter for a few secs under your wire and burn away the Casing It will work but usally nit ery neat
May 23, 2009. 6:52 AMgenius0524 says:
Can you do this with a PlayStation2 Controller?
Mar 24, 2009. 11:56 PMtubbychick3n says:
I really need some help. IF you could PM me with the answer, that would be great. I am going to be programming my own chips (taking the code from an ebay kit) and installing them into/ selling controllers to kids at my school. I don't want to go through the work of making the reader/writer myself, so which programmer would be best for me? I have serial ports on my computer, so that's not an issue. I also need to know which chip to use. The ones in all the kits are 8-pin pic microcontrollers like the one you've used here. If you can help me, that would be great. Thanks for your time, -Nick
Mar 22, 2009. 12:57 PMalex-sharetskiy says:
a 555 timer is more reliable, and you don't have to program it!
Oct 19, 2008. 12:38 AMchanchanman says:
dam thats long
Oct 14, 2008. 4:05 PMookid says:
Ah so that's why they hide the screws! The warranty
Feb 24, 2008. 5:37 PMjlw3231 says:
anyone ??
Feb 20, 2008. 7:51 PMjlw3231 says:
hey i did all of your steps and followed them to the tee, but i am a little confused on how to communicate to the microcontroller and have it do whatever it is that i want. Is there any advice you can give me? Btw I thought the tutorial was pretty awesome ive never seen clearer instruction and pics. Thanks
Jan 6, 2008. 7:41 AMPopkinZ says:
(removed by author or community request)
Nov 4, 2007. 7:25 PMCaNi8a1 1 says:
<<<<>> PLEASE RESPOND.. rocket1200@hotmail.com TELL ME HOW....PLEASE HELP ME>>>>>
Jul 1, 2007. 9:24 PMoneeyedlizzard says:
If you don't want to make your program open source i guess thats alright, but could you at least tell us the exact timing between buttons in the double shot sequence. That would be a great help. : )
Aug 12, 2007. 12:29 AMoneeyedlizzard says:
yea my timings aren't exactly milliseconds either, could I just have the numbers you use just so I know the best ratio. my timings are good, they just could be a little better.
Aug 19, 2007. 1:06 AMpRtkL xLr8r says:
I think the best way to go would be to make a subroutine that do the same thing (e.g., RRX), with registers for the timing delays. Then make a code loop that increments the delays (ie, time pressed, time between presses, etc) every time an input is detected. The input can be a different one than ones for the buttons, one just used for testing and debugging. You could of course do this while the controller is still apart. That way, you would press a button/short teminals/etc to fire the test input, and would keep track of how many times you fired the input so you would know what timing delays would work.
Aug 29, 2007. 11:13 AMr00t69 says:
Hah, yes I did that, I stored the time to the eeprom of the 12f683, and then when I got it right, I recover it back with the programmer. It took me a while but it worked, I am not sure if it is perfect, but I think it looks pretty good, you can take a look at: http://r00t-ed.homeip.net/projects/xbox_mod_v2/
And my code/project files are open source, you are welcome to take a look and modify it if you feel like it. I used mikro C, the free demo is enough for this project.

I am done with the version 3 of the thing, it does BRXX, if extra button is tap, and if it is held down it does just double shot. I may make it public, not sure yet, the thing is that halo 3 is almost out; probably it is just irrelevant at this point.
Jul 1, 2007. 10:33 PMSSuperSSoldier says:
yeah that would help
Aug 13, 2007. 6:13 PMHost says:
Why dont you guys just practice the double shot and play legit, instead of spending all this time and money on cheating?
Jun 30, 2007. 2:55 AMSSuperSSoldier says:
Ok before i buy anthing that i might need to make this how would i make it have two buttons instead of just one?
Jun 30, 2007. 9:20 PMSSuperSSoldier says:
also can it be a PIC12F629
Aug 13, 2007. 6:06 PMHost says:
How much do you sell all the parts and the programmed chip to mod the controller for?
Jun 30, 2007. 9:05 PMSSuperSSoldier says:
ok i am having a small placing prob which may not even affect it but here take a look ur 2 r first and compare them to my 4
Jul 2, 2007. 2:48 AMSSuperSSoldier says:
wow those r gunna be hard to solder
Jul 1, 2007. 4:46 PMSSuperSSoldier says:
um i just realized why r my rumble motors different?
Aug 9, 2007. 12:20 PMSSuperSSoldier says:
er that probably didnt come out right, y r my two rumble motors different than eachother, or is that the same response
Jul 1, 2007. 4:36 PMSSuperSSoldier says:
wheres the a button and no i dun hav programming experience and by a second button i meant like do i need another pic microtroller or can i use the same one for the two buttons to do different things?
Jul 2, 2007. 4:36 AMoneeyedlizzard says:
You're going to need programming experience because klee27x wont share his code. : (
Jul 2, 2007. 12:42 PMSSuperSSoldier says:
ok im a fast learner and ok i dun care if he wont share his code besides y do u care
Jul 8, 2007. 3:02 PMoneeyedlizzard says:
because i wouldn't have had to spend 40 minutes making my own code if he would have kindly supplied the timing to us.
Jul 12, 2007. 12:03 AMrcp90ftw says:
Mind sharing your code, then? I've never programmed a microcontroller before, my programming experience is limited to basic C++ and Java I picked up during high school. If you don't want to share your code, think you could help me out with maybe some pseudocode or the timings you used? I'm still trying to look around the internet for some guides to PIC programming, but I'm not sure exactly what I'm looking for. If anyone has a good site they'd like to recommend, I'd really appreciate it. I'm more than willing to spend an afternoon learning how to do this just for the experience. Thanks.
Jul 12, 2007. 2:40 AMoneeyedlizzard says:
Yea, no prob
I can't actually help you with the PIC program because I used a Basic Stamp. Here's the program I used in PBASIC.
note: the timing is in ms

' {$STAMP BS2}
' {$PBASIC 2.5}

R PIN 15
X PIN 14
Y PIN 13
G PIN 12

INPUT R
INPUT X
INPUT Y
LOW G

DO

DO
PAUSE 50
LOOP UNTIL IN7=1

'First R
LOW R
PAUSE 136
INPUT R
PAUSE 30

'Second R
LOW R
PAUSE 38
INPUT R

'X
LOW X
PAUSE 50
INPUT X
PAUSE 210

'Double Y
LOW Y
PAUSE 50
INPUT Y
PAUSE 50
LOW Y
PAUSE 50
INPUT Y
PAUSE 200

LOOP

I used Input instead of high because leaving the buttons high would make it unable for you to use the buttons while not doubleshoting. I find this code to work almost everytime with my regular Xbox. If you have any other question's I'll try my best to answer them.
Jul 13, 2007. 12:21 AMrcp90ftw says:
Wait, aren't Basic stamps like $50 or so? I could've sworn the last time I saw a BS2 the asking price was like $50. I think I'm going to have to buy the 12f683 used in this guide and a programmer, just for cost reasons. But that doesn't mean your code isn't helpful. Although I have 0 experience with Basic, I understand the majority of it and the timings are all there. Thanks man.
1-40 of 70next »

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
80
Followers
32
Author:klee27x