I’m new to the whole series and recently purchased SFV for PC - I FREAKING LOVE IT!
I’m not getting on so well with my PS4 controller, and used my friends TE2+ SFIV fight stick and it’s great.
I can’t afford/don’t want to spend £130+ on a FightStick so wondered if it was possible to make one using an Arduino UNO as the brains (I already have the Arduino).
I would like to put illuminated LED pushbuttons corresponding to the attacks (Blue, Yellow, Red) and have LEDS inside the case the will spill light out the side when I take a hit (rumble feature?) (NOT PRIORITY)…
So yeah, if anyone has experience of using Arduino as a games controller, please share!!
Yes it is possible to make an Arduino board or one of it’s derivatives into the brains of a game controller.
As a PC controller, yes both as a PnP game controller or as a Keyboard encoder. As a PS3 controller, Maybe certain devices like the Teensy has been blocked by firmware updates.
It works fine for PC. For this project the arduino Micro works great since it has native USB/HID device input right on the board. If you don’t mind waiting a a bit, you can grab clones off ebay for $3-4 each from China that work great. Teensy is also a great option.
The problem with the UNO is that the actual computer doesn’t take convenient commands like keyboard write/print. This is due to not having an ATmega32U4 microcontroller like the micro does. It’s not impossible to turn an UNO into a game controller, but it’s not something I’d recommend for a newbie. You’ll need a lot more than just code writing to get it working. One guide I looked at had you formatting the Uno to install your own firmware on it to get something akin to a controller. You might have more luck, but I was unsuccessful.
I always keep an UNO handy to prototype circuits or bits of code. Don’t feel compelled to put your only Arduino into an arcade stick!
Exactly why I suggested the Micro or a teensy! :). There are a number of projects out there to turn a Micro into a USB keyboard, controller, joystick etc. so you can literally copy and paste some code to get it working and do minor tweaks as needed. You can even customise your own SOCD behaviour or get a bit creative add shortcuts/custom buttons for things like getting though menus faster or combos/training. The nice thing about it is that once programmed it will work as a USB HID so it should work fine plug and play on most computers/operating systems and even on consoles like the PS3.
I was a bit wrong about the price, the chinese clones for the micro are slightly more expensive at about $4-5 for one but probably take 3-4 weeks+ to arrive from China. If you want it quickly and are in North America they cost about $8-12 or the official ones run at about $20-25 (not worth it IMO).
Wish I knew about teensy before getting my “pro micro.” All dem analog pins… I’ll have to try one once I’m done with my power glove project.
Since OP made a call out for people who have tried going this route, I’ll share my experience. I too was new to arduino and didn’t realize the difference a micro controller could make. For my arcade stick that used an UNO and had a very ambitious lighting feature, I didn’t have enough pins left to control the actual functions of the controller. So I stuck a ZDencoder in there to work along side the UNO and issue commands while the uno lit stuff up. Despite the extremely small number of LEDs for the project (nine), the UNO wasn’t working right. While the ZD encoder was always reading my button inputs perfectly, the UNO was not happy running on slightly less power than what the USB port could deliver. Anything that caused more than five LEDs to turn on at once forced the UNO to turn off long enough to reset, at which point the lights didn’t work for a full 2 seconds and would continue to reset in this manner. I solved the problem by making it so that no more than four lights could be on at one time.
The lesson to be learned here is that the UNO consumes quite a bit of power, and should be the only PCB in your arcade stick if that’s the route you want to go. I strongly recommend using something other than an UNO for one’s first attempt at an arcade stick. While reading button inputs and lighting up LEDs should be fairly easy, turning those button presses into something the computer can read is not.
Furthermore, getting the arcade stick to react to something going on in the game itself would require unfathomable software wizardry, regardless of the PCB used. You’d need the micro controller to read the code the game is writing so that it can “see” when you are getting hit. The only other solution I can think of is to have the micro controller listen for the sound of a scored hit and react accordingly. The only other method I can think of is to somehow tap into the rumble function on console games and run a light sequence instead. all of these methods are far outside my area of expertise, and you will have to do your own research if you wish to explore them further.
Seriously though. get a different micro controller. you’ll find other uses for that UNO that it actually lends itself towards.
Thanks again for the replies, all. I have no literally other uses for my UNO - i don’t know if any of you have heard of UNOJoy? It’s a code that turns the UNO into a controller? With the reactive lighting, i’ve seen it done when using an xbox controller as the brains because you can literally take the motors out and replace it with LED’s, but with an UNO or any other board I can see it being very problematic. I might stop being so tight and just buy a TE MadCatz or something, I dunno. I’m still learning the game at the moment, so I think I should wait 'til i’m better!