Acidmods
Console Modding------ ( Here you can talk about your favorite Consoles ) => XBOX 360 => 360 Controllers / 360 Rapid Fire Controllers => Topic started by: jrfhoutx on April 28, 2011, 01:03:26 PM
-
OK, guys, This idea was something I had considered for a while now and thanks to interest from drummerdude and Anonamous, I was finally prompted to actually do something about it. I've been working on this one for a few weeks now, trying to get the bugs worked out, and I finally got it working properly. So I present to you the On-Board CG1 SOIC 12F683 install:
Now, you may be asking yourself why you would even want to attempt this, well lets compare the SOIC 12F683, the PDIP 12F683, and the PDIP 12F683 with a socket:
(https://www.acidmods.com/JR/SOICRF/IMG_1555.JPG)
(https://www.acidmods.com/JR/SOICRF/IMG_1557.JPG)
(https://www.acidmods.com/JR/SOICRF/IMG_1558.JPG)
Now, if space inside the controller is important to you (for whatever reason) you can see how much space this chip can save you...
First things first, this SOIC footprint is only on the CG1 controllers, and you have to cut the traces that lead to the footprint in order to be able to use it for this, but you need to be very careful and very precise in cutting the traces so that you don't affect the controller's normal operation.
Second, there are two pads that once cut loose will kill the sync on the controller as well as make the analog sticks and the triggers act funky, do not miss that step.
Third, be extremely careful when placing the chip and soldering to the footprint so that you don't cross pins or wires (very easy to do considering the small amount of space you'll be working in), or lift a pad (it's not that hard to do).
OK here we go:
First, scrape the traces that lead to the pads. You don't need to clean that much of the trace since you really only need to remove about 1mm of each trace. Some of the pads have more than one trace connecting to them, you will need to cut ALL of them in order to isolate the pad. the ground plane connections are the hardest to remove (the ground plane is the large checker board looking sections).
Here is a pic of the traces surrounding the pad after I have scraped them clean:
(https://www.acidmods.com/JR/SOICRF/IMG_1536.JPG)
Here are the pads and traces marked, Pads are in red, Traces are in Yellow:
See attachment at the bottom labelled 'Pads'
Here are the purple marks are where I removed small potions of the traces in order to isolate the pads:
See attachment at the bottom labelled 'Traces'
Here is a pic of the traces and pads after I have cut the traces, isolating the pads from the rest of the controller's circuits:
(https://www.acidmods.com/JR/SOICRF/IMG_1538.JPG)
NOTE: There are two pads that once isolated the traces that lead to them need to be rerouted (The two upper right pads in the above pictures). What you need to do is find a close section of ground plane and scrape some clean till you have some bare copper showing, then tin that section and run a small jumper wire from the trace to the ground plane as shown in this pic:
See attachment at the bottom labelled 'Greenie'
After cutting the traces and rerouting, I used a soldermask pen (also called an overcoat pen) to cover the remaining bare copper of the traces and the surrounding resistors and other components, to prevent any shorts.
(https://www.acidmods.com/JR/SOICRF/IMG_1566.JPG)
Then I soldered my SOIC 12F683 to the footprint, making sure that the chip was fairly straight and well centered on the footprint (chip orientation doesn't matter I've installed with pin 1 at the top left and bottom right pads in the above pictures).
(https://www.acidmods.com/JR/SOICRF/IMG_1560.JPG)
Right now you may be saying "wait, you didn't program the chip!" Well if you have the proper tools and want to program the chip before soldering it to the footprint, be my guest; but don't forget in the future you may want to program a different code to the chip, and that would mean you would have to desolder the chip from the footprint and then you risk lifting a pad. So, what's the solution? Make a programmer lead... This is very simple and shouldn't take too long, here's the one I made:
(https://www.acidmods.com/JR/SOICRF/IMG_1554.JPG)
So basically it's as simple as twisting 5 wires together and soldering one end to a section of pin headers, the only thing you need to know is which pins are which on your programmer and making sure you connect the right wires to the chip pins...
Here is my revised programming lead soldered to the chip and inserted in the programmer:
(https://www.acidmods.com/JR/SOICRF/IMG_1541.JPG)
(https://www.acidmods.com/JR/SOICRF/IMG_1547.JPG)
Once the lead is soldered in place, program the chip, and then desolder the programming lead.
Then all you need to do is follow a normal RF install. I prefer to use t0pfire, so here is what it looks like once everything is soldered in place (well minus the ground wire you need, as this was taken on my first attempt to do this mod and I didn't realize I left out the ground wire mentioned earlier):
(https://www.acidmods.com/JR/SOICRF/IMG_1572.JPG)
(https://www.acidmods.com/JR/SOICRF/IMG_1573.JPG)
-
Nice work man!!
-
Thank you sir! :)
-
nice job on this will save some room for sure
-
Very Nice setup JR! Im gonna order some chips so i can do this mod lol, so cool. Again great job!! :clap:
-
thanks man, just be careful as it can be a little finicky...
-
IC Soldering Trick:
minihoof tip soldering iron works best for soldering/desoldering surface mount ICs.
Nice you've been talking about this for a while and it turns our to be great!
-
I give you props, also like that you went the distance to insulate the traces!
*ignore FOOKz, he eats cat flavored pop tarts...
-
Thanks [HoP], I just think overall the mask pen makes it look a little cleaner, plus it's a pretty tight space to work in and I didn't want to risk an shorts... ;)
-
ill definitely be trying this, nice job man.
-
Very nice work!!
I really like the clean stock look and use of the existing pad is right up my alley ,but i cant see doing all that nice work and having to solder on leads every-time to program,I mounted my dip style on a socket and small board like the one in your pic,
One question though, when i read the data sheet on the 12F683 it says(in circuit programing via 2 pins), then i looked at the description of the pin out and i find GPO I/O GP1 programing clock, and GP3 programing voltage. by my count that's 3 .
I see you use 5 .
Would it not be possible to use just 3 pins and mount a mini stereo jack to plug programmer leads into?
I am a total newb in this area of expertise ,i have only programed the 2 12F683 chips that came with my 5 dollar ebay jdm type programmer .
-
in all reality once all the wires are run to their respective places it really only takes ~30 mins tops to desolder the RF wires, solder on the programming lead, program, desolder the lead, and resolder the RF wires... I know that sounds like a lot, but it really isn't any more than having to desolder everything from a PDIP installation, pull the chip out, program it and then resolder everything...
As far as I know the mini stereo jack method you sometimes see is for using a bootloader (as far as I know). that's a totally different method of programming and I'm honestly not sure if the 12F683 supports bootloader functionality...
I really don't know what the minimum number of leads is for programming the 12F683, to be honest, I know that in my lead I have Power, Ground, MCLR, ICSPDAT, and ICSPCLK... I suppose if you had power and ground from the circuit it was installed in you could cut it down to 3 wires, but I prefer the regulated voltage that the programmer provides (a constant regulated 4V).
I am working on an ICSP header for this mod though, so all you would have to do is plug the programming lead into the header and program it, no soldering at all, but ICSP can be really tricky in circuits that weren't initially designed for it... currently the one I'm working on works sometimes and sometimes it doesn't...
-
Nicely done. When I saw all the traces connected to the pads I honestly didnt think it would work but I figured I would open my mouth and say something anyway, Im quite glad I did :)
-
WOW nice job JR. this makes a very clean mod, and and thanks to drummerdude and Anonamous for bringing up the idea out in the open, :hifive:
I will definitly be installing this in one of my next controller mods :tup:
-
Now the only other thing bugging me about the controller is that thing that looks like is meant for a 10pin ribbon cable connector thingy. Its on the back of the board to the right where TP1 and J9 are. Honestly I just want to know what thats for lol. For those who have no problem cutting traces if it still works afterwards lol, maybe a ribbon cable connector could be stuck in there to be used for rapid fire reprogramming, you would just barely have to cut the controller to since they are extremely thin. Just throwing it out there lol.
-
I'm honestly not sure what that set of pads is for, but one of the pins from this SOIC footprint actually connects to it (the trace leading from the two pads at the top right of the SOIC), and then the trace continues on to the main chip on the controller board. I had to remove a trigger pot to trace it but one of them does connect to it. idk, possibly a planned expansion or programming port... you'd have to trace it out, and honestly the most helpful thing would be a datasheet for the main chip on the controller (which I still haven't been able to find)...
-
my only thought of what the pads could be for is that there are two sets of pads for that so that either type of package can be used
oh and tht header is mostly likely for debugging
-
I think hyper is right, the header is probably for an internal debug setup, where there is circuitry installed expressly for debugging the design in-house, but left on the PCB empty for manufacturing. The header pad is probably for a header connection.
As for the datasheet for the main IC, you wont find one. Its not a chip that can be bought from a vendor somewhere. Its an ASIC. Microsoft designed the chip solely for this purpose, and they will most likely not be sharing the design publically. For mass production, ASICs are the least expensive option for digital + analog proprietary designs.
One last note: The 12F683 does not support bootloaders (self-write in microchip terms). But there are two methods you can use where you still get to 'reprogram' the chip using sserial comms:
1: Just serial bit-bang routine. You can send upto 256 bytes to store into the EEPROM. Your code would not change, but anything relying on a value (speed, certain options on or off, time delays, modes) would be changed with a PC RS232 program. My Final Rapidfire code did exactly that.
2: This one is complex. Write a simple psuedo microcontroller OS that deciphers bytes from the EEPROM as instructions. In otherwords, your main routine would grab a byte from EEPROM memory and decipher it the same way the CPU deciphers instructions from the Program Memory. You would have 256 instructions of psuedo code to work with, and the functionality would be severly reduced, but it would give the same effect as having a bootloader. A perfect example of this is the PicAxe, it does exactly what I just described.
ICSP: You need all 5 wires, unless you have a stable 5V for power. Then you can have 4 wires but it requires that you still connect ground. 3V from the controller will not be enough for ICSP (well, not reliably). You have to have MCLR for 13V to get the chip into program flash mode, and this line should be disconnected from the rest of the controller. ICSP DAT and CLK are required to transfer the code. These lines will be inputs when the chip powers up with 13V on MCLR. If the circuitry on these pins has alot of resistance or capacitance, then it will interfere with the programming.
Good luck
-
if i were to hook up an ICSP header on a controller wired up with burnmeup, i figure i will have to break the connection between pins 1 and 4 while programming (power and MCLR). can this be done with a transistor on a switched voltage? so when the controller has no power, the transistor isolates those pins, then i can program the PIC. would this work?
https://www.acidmods.com/software/hazer/burnmeup2/matrix_sleeper.jpg
heres what ive setup so far, this would be nice with JRs SOIC mod
(https://acidmods.com/forum/proxy.php?request=http%3A%2F%2Fi587.photobucket.com%2Falbums%2Fss313%2FSilvaaa_%2FIMAG0148.jpg&hash=9851a8ae318937cdf9760782dae3767a3cd453b7)
(https://acidmods.com/forum/proxy.php?request=http%3A%2F%2Fi587.photobucket.com%2Falbums%2Fss313%2FSilvaaa_%2FIMAG0153.jpg&hash=ebea8a3dc30978f3c721b09977e98ba5fadc232f)
-
I'd say if you're going to try that you should put one on each of the necessary programmer pins, so Vdd, Vss, mclr, icspdat, and icspclk
-
Hi!
Help me....
I can use the SMD 12F683 I/SN for rapid Fire?
:confused:
Is it
http://mexico.newark.com/microchip/pic12f683-i-sn/ic-8bit-mcu-pic12-20mhz-soic-8/dp/61K3434?in_merch=true&MER=ACC_N_L5_SemiconductorsToolsAndAccessories_None (http://mexico.newark.com/microchip/pic12f683-i-sn/ic-8bit-mcu-pic12-20mhz-soic-8/dp/61K3434?in_merch=true&MER=ACC_N_L5_SemiconductorsToolsAndAccessories_None)
It's compatlble with BurnMeUp, GamePlay .Hex ?
(MICROCHIP - PIC12F683-I/SN - IC, 8BIT MCU, PIC12, 20MHZ, SOIC-8 )
-
only if you have a way to program it.