How do I implement a turbo button into my project?

Hi all,

I am totally new to fight stick building, but for the past days I have been reading a lot about it and I really look forward to building my own. But I have a question, and there would be no better forum then SRK to ask it!
Because I really like the way the turbo button works on the MadCatz Street Fighter Pads, I would like to implement a turbo function into my own project. But I really have no idea how to do this. I hope someone could help me with it, or show me how to do it.

Thanks anyway!

Cheers

If the pcb you use already has a ‘turbo’ function then all you have to do is connect it up like any other button.

Thanks for the quick reply. But I want to use either a PCB from a Sixaxis or Dualshock 3 controller. So there is no turbo fucntion on board.

That sounds a bit tricky.

Personally, I’d get a Project Leo board, to force the sixaxis to be common ground in order for it to work well with a microcontroller. Then, I’d wire in and program a microcontroller that would be wired to all of the main action buttons and turbo button. Then, code it so that it would pull a low to high voltage flip-flop ever 16.67 ms when activated to get a button press once a frame. Then maybe code in some extras, such as a 30 fps turbo or something.

This sounds like a very complicated way to make it work. I am not (yet) good with electronics so I really don’t have a clue on some parts what you are talking about =P

As Nerrage says, that is a very advanced mod you want to do if sticking with a Sixaxis pcb. Don’t try it if you are new to modding.

Why not just use a PS3 Fightpad / Brawlpad pcb instead? They cost next to nothing at the moment, wireless, common ground, and have turbo.

As gahrling says, Brawlpad pcb is probably your best bet, or something like the paewang pcb if you wanted dual system support.

That is true gahrling. But I would really like to build a stick I where I could just charge the battery. This is not possible with a Fightpad nor with a Leo right? The Leo uses a weird 3.7V battery which I have never seen before.
By the way, is there maybe a place I can get basic information about electronics? Or at least, more info about how PCB’s work with their commen ground etc?

Short of using a PCB that comes with turbo functions, a microcontroller is probably one of the simplest ways to do something like that. (FWIW, you probably won’t need off-chip flip-flops, and typical Turbo on current consoles is around 25 presses per second.)

But because I am pretty new to complex electronics, I really don’t have a clue how to pull this off!

Perhaps a good reason why you shouldn’t be attempting this project yet. The things you want (hacking a Sixaxis controller and adding a turbo mode) do not equate to your current level of experience. I don’t think you appreciate how difficult this will be for you!

You might be able to hire a modder to do this for you, immediate thoughts are with someone like Gummo.

Otherwise you’d be better off keeping things simple for now. Two options:

  1. Use your Sixaxis pcb with a AXISdapter board. You won’t have turbo.

  2. Use a PS3 Fightpad / Brawlpad pcb. You will have turbo.

if your building it for the PC and PS3 you can still download C Libs for just about any microcontroller. I’m a big fan of AVR’s. this is the second time in two days I think I mentioned the teensy 2.0 and the teensy 2.0+ they are like $16 and $22. cheaper than most other pad hacks or PCB’s you could buy. it will take up all your time if you never wrote code in C or compiled or programmed a microcontroller. I would like to see more people on this forum doing their own microcontroller projects instead of it all being done by one person. there is a lot of information on the internet but I don’t want to jack this thread with a two page response.

http://www.pjrc.com/teensy/

as a side note to making your own turbo. there are many ways but here is another. when you have a common ground pad, that means that each input pin is connected to V+ through a resistor making the microcontroller see V+ at that input pin. when you press a button, you are pulling that pin to 0v (ground). since there is a resistor sitting between the input pin for that button and V+ but no resistor on the ground side, the microcontroller sees this 0v as a ON (button pressed). but in reality its being triggered when there is NO electricity flowing to that pin. if you want to make your own turbo you need to totally erase that pull up resistor so you can control whats going in to that pin of the microcontroller from yet another microcontroller. they connect pin for pin. output to input. just dont send 5v logic to a 3.3v microcontroller that might come stock in the pad you are hacking.

so how do you know what the voltage is??? easy, just look for 3.3v regulators in SMD. most things are USB power these days so that is 5v. other standards are 2.7v and 1.8v though I have not seen it in a pad yet since that is relatively new technolgy. not new but not popular till now. 1.8v is also lower than most batteries and can be subject to noise and interference at high speeds so I guess it makes sense.

here are some picture of real PCB’s with regulators of various sizes.

http://jlectronique.org/images/ArduinoUnoFront_commented.jpg

on this one its got 5 pins instead of 3. its sitting dead center below where it says “mini”. directly below that SMD resistor that has 2 pins and is way small.

so most regulators are 3 or 5 pins. sometimes the extra pins are just to hold it physically to the board and are either NC (no connection) or redundant with other pins. in the first example it is very easy to find it cause its big and it has a heat sink. in the second example they use one of the two designs that you see everywhere for small regulators.

there are other tricks like memorizing part numbers and looking up datasheets. LP2985 for example is part of a family that includes every LP29XX

I hope I’m not just dumping too much information on you. let me know if this is useful or not.

I am shocked on what you guys know! Really, wow! Just mind blowing! But I nearly understood nothing of what you said tigermaskchi. Next year I will be going to uni and probably electrical engineering. That is why i thought this would be a nice start up project before I start the study. But basically, I have no knowledge about electrical components. Following a tutorial on how to solder wire x to point y has nothing to do with knowing something about electrical components. But this in fact does. So first I would need to get some knowledge about electrical components.
Where could I get such information? Is there maybe a website with information?

You would need a common ground controller, but you could try to use a 555 timer chip from radio shack. I forget how exactly you would hook it up, but you would set it up for astable circuit (square wave).

http://www.kpsec.freeuk.com/555timer.htm#astable

thats a difficult question to answer. I honestly think the best way to learn is to just do it and read as you go. I think that you will have more fun that way. there are chat rooms and forums for electronics. the other way of doing it is to read for days without getting your hands dirty or discussing real world problems. doing it that way often causes people to loose interest very fast if they don’t have anything finished and they are not learning it in a real college environment.

ok so where to start?? you MUST be able to read schematics and PCB layouts. practice is the only way. thats why I posted pictures or real world problems. this is better than a book IMO. you must learn basics of what a resistor is, what does it do. you should know resistors, capacitors, diodes. transistors is a very deep subject that you probably won’t need here since its all done by integrated circuits also called IC’s. an IC is like a black box that does “something”. we can read the datasheet to figure out what that is. datasheets are available from the manufacturer of the part but you can also google “[part#] datasheet”. or “part datasheet pdf”

being able to pull the most useful information from a datasheet while ignoring thermal graphs and crap is a very important skill. google “reading a datasheet” for a good tutorial.

if you want to get started with microcontrollers, go on youtube and watch arduino tutorials that start at lesson 1. then after you get really good you can ditch the training wheels and program the arduino or some other microcontroller in C using AVR studio. its a free software that rocks. you might need to spend $20 on a programmer later but you can start coding in software for free right now. I don’t want to be an AVR fanboy exclusively but I think its a better path for learning compared to PIC or ARM development kits.

arduino.cc
avrfreaks.net

on freenode IRC we have
#arduino
#AVR
#electronics

also I think there is a #microcontrollers

Thank all of you guys so much for your information! I read all of your post very thorough. I will try to learn some more about what certain components do first and start out simple. Thanks again guys!

sure you can do that but then you need a dedicated button for A and turbo A. you still need to erase your pullup resistor if you want to do it right. and you need to wire your button with a logic inverter like a CD4049. its a total mess. you would need another 555 for each button. if you combine 2 in one (LM556) they cross sync each other and bleed. I mostly avoid the 555 cause of the noise it creates on the power rails. the low power version is slightly less garbage.

microcontrollers come in every size. even the attiny45 or attiny85 is the same DIP8 package as that 555 but its totally programable and can do what 3 555’s do on one IC. the 555 requires external components for timing. again, forget the 555 here. although I still use it for other things. I just don’t use it here.