Hello and welcome to the thread!
Why build a custom controller?
Because it's awesome.
But besides that totally valid point, it could be because you need a very specific set of buttons, axes, pedals or joysticks for your poison of choice. Maybe you want a new screen for more info while Sim Racing? Maybe you need extra buttons to deliver the pain and manage shields in your space ship? Maybe you just want to kick ass with an arcade stick that reminds you of the arcade by your house back in the 80's.
If you give it a go, you can end up with something awesome.
How do you build such a thing?
Well, there's two parts to this story: the electronics (the insides) and the box/hardware (the outsides.)
The electronics can vary a lot depending on what you want to achieve. If you're leaning towards only PC functionality, Arduino and Arduino-Compatibles are popular and rather cheap options if you select them appropriately. There's plenty of libraries for USB input devices, the Adafruit add-on shields, and plenty of cool sensors to toy around with to make some interesting controls (maybe an entirely proximity-sensing based controller?)
Examples of Arduino projects:
Another choice (though rather overpowered as a controller) could be the RaspberryPi. As I said, this could be rather too much power for a simple controller, but there are other projects that work, such as an actual (mini) arcade
Padhacking is (almost) the only option if you want to go the console route. This basically means taking a gamepad for your favorite console, opening it up, and rewiring the insides with whatever you happen to have in mind (most likely: a fighting stick.) This is not the only way, though. Several vendors in well known sites (that also sell the buttons and joysticks for fightsticks) carry some PCBs which can do console gaming, sometimes even multiple kinds of consoles with the flip of a switch. Another advantage is that such PCBs tend to be more "user friendly" and don't require soldering.
is pretty much the de-facto guide when it comes to fight sticks. We also had our very own thread on the subject
, by Daedalus, at one point.
If you're aiming for a fight stick, chances are you've already eyes some parts for it: names like Sanwa and Seimitsu thrown around, button sizes, ball-tops or bat-tops, it starts to boil down to personal preferences. In this case I turn again to Slagcoin
for more experienced descriptions of their attributes.
If you're looking something less fighty, normal electronic buttons, switches, potentiometers and hat-switches are for you. Chances are you're going to need to solder some stuff, but even then there's ways out of that.
Once you've decided on your buttons and what not, you'll need somewhere to place them. Now here is where you can get all creative building your box out of wood or lexan, maybe 3D printing a custom fit design of your choosing, or just outright ordering the box itself (chances are you can find all sort of made to order boxes for your fight sticks.) For smaller projects, maybe you'll do with a small plastic project box (which are rather cheap) to house all of your work.
What's next, then?
I created this thread because I just (almost) finished my very own project. I learned a lot while making it, including making a custom USB Report Descriptor (which is a bit of a headache, but unless you want everything to line up perfectly, you don't need this one and can find and use a generic one in a guide.) to report the proper amount of buttons/axes and name of my device. I wanted to share it in more detail (maybe it'll help someone have an easier time figuring it all out,) but I also wanted a place to get together and help each-other in possible projects like this, but not just limited to fight sticks because there are some awesome stuff and ideas out there.
Also because I kinda liked this first button-box I built, and I think I want to build my very own fight stick, so this place could work for getting some input in that project.