Instructables
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 1: 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

Step 2: Locate and remove the screws

Picture of Locate and remove the screws
There are seven phillips head screws holding the two halves of the controller together. One of them is hidden underneath the sticker.

Step 3: Voiding the warranty

The easiest way to get to the hidden screw is to feel where it is, then push the screwdriver through.

Step 5: Remove the board

Now, pull up on the plastic bit that holds the headset and other peripherals. It will slide out, along with the pcb. Be mindful of the rumble motors that are still plugged into the pcb. We'll disconnect these in a later step.

Now that you have removed the pcb, store the top half in a safe place, where you won't lose any buttons. If they do fall out, putting them back is pretty easy. They all have unique shapes, and they can't be put in the wrong hole.

Step 6: Back to the PCB

Now we will remove the communicator/peripheral socket and motors to get better access to the board, itself.
1-40 of 70Next »
alii3 years ago
WOW GOOD
just wondering what features can you add by doing this? auto fire?
Hold a lighter for a few secs under your wire and burn away the Casing It will work but usally nit ery neat
genius05245 years ago
Can you do this with a PlayStation2 Controller?
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
Sandisk1duo5 years ago
a 555 timer is more reliable, and you don't have to program it!
chanchanman6 years ago
dam thats long
Modarius6 years ago
Ah so that's why they hide the screws! The warranty
jlw32316 years ago
anyone ??
jlw32316 years ago
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
PopkinZ6 years ago
(removed by author or community request)
klee27x (author)  PopkinZ6 years ago
One of my friends is selling my kit. His ebay ID is halo3controllers. Superscorer copied my kit. I dunno if his is as good. Maybe it's better? But I know his pinout is not exactly the same as mine, so you will have to follow his installation instructions if you buy his kit.
CaNi8a1 17 years ago
<<<<>> PLEASE RESPOND.. rocket1200@hotmail.com TELL ME HOW....PLEASE HELP ME>>>>>
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. : )
klee27x (author)  oneeyedlizzard7 years ago
Well, my timings are all in assembly. They don't go by micro or milliseconds, as do the commands in pbasic. They are all decfsz loops, so they don't translate very well.
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.
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.
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.
yeah that would help
Host7 years ago
Why dont you guys just practice the double shot and play legit, instead of spending all this time and money on cheating?
klee27x (author)  Host7 years ago
Personally, it was more fun for me to hack up a controller than it is to play halo. To each their own. :)
Ok before i buy anthing that i might need to make this how would i make it have two buttons instead of just one?
also can it be a PIC12F629
klee27x (author)  SSuperSSoldier7 years ago
It can be any microcontroller that runs on 5V and and enough io pins, but you will have to program it first. If you need to ask how to make it use two buttons, then I am guessing you don't have programming experince. A blank microcontroller won't do anything useful. I sell preprogrammed chips for the reg xbox with all the parts for the mod, if you aren't up to coding your own.
Host klee27x7 years ago
How much do you sell all the parts and the programmed chip to mod the controller for?
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
C:\Users\SSuperSSoldier\Desktop\FG51FXTG5XEY95VGDY_MEDIUM.jpgC:\Users\SSuperSSoldier\Desktop\F7MWLRYTGVEY95VGF7_MEDIUM.jpgC:\Users\SSuperSSoldier\Desktop\P6300004.JPGC:\Users\SSuperSSoldier\Desktop\P6300002.JPGC:\Users\SSuperSSoldier\Desktop\P6300003.JPGC:\Users\SSuperSSoldier\Desktop\P6300001.JPG
klee27x (author)  SSuperSSoldier7 years ago
Your controller is an older and somewhat rare version. Actually, it is better! I have found this type to be more immune to noise, so the little capacitors are probably not necessary. Also, you don't have to scrape and solder to a via. The yellow dot is the Y trace. The blue dot is the X trace. The grey spot is where you can put your chip. Make sure to solder your wires to the X and Y traces before you glue your chip down, else you won't have room. Thanks for posting your pics!
D:\Documents and Settings\klee27x\My Documents\My Music\My Pictures\aaaarrrrrrrreeeeeeeee.jpg
klee27x (author)  klee27x7 years ago
Oh! Right click and save the pic, then open it up to zoom in. I painted some colored spots onto it, but they don't show up well, here.
um i just realized why r my rumble motors different?
klee27x (author)  SSuperSSoldier7 years ago
Did you buy your controller off ebay from some guy in Hong Kong, by any chance?
er that probably didnt come out right, y r my two rumble motors different than eachother, or is that the same response
klee27x (author)  SSuperSSoldier7 years ago
thats normal
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?
You're going to need programming experience because klee27x wont share his code. : (
ok im a fast learner and ok i dun care if he wont share his code besides y do u care
because i wouldn't have had to spend 40 minutes making my own code if he would have kindly supplied the timing to us.
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.
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.
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.
Yea, I would have bought a chip from klee27x but he charges 30 bucks for a $2 chip. I just had a BASIC stamp so I just programed that. If you do ever program the PIC would you be nice enough to post your program? Thanks
1-40 of 70Next »