I've mentioned at various times that I'm going to college for materials science and engineering. I'm nearly done with my degree, and for one of my last electives I'm taking a class on 3D printing. Apart from being an interesting topic with a lot of career opportunities, 3D printing aligns really nicely with my hobby of gaming and game controllers, because it lets me go from an appropriate 3D model to a physical object with a minimum of fuss and specialist knowledge required.
This is where it gets fun: For this class, I need to do a final project where I have free reign to design and print a prototype of something that could potentially be a commercial product. To this end, I want to develop a shell, d-pad, and buttons that would be used together with an Arduino board and digital switches to make a fully functional controller. Models for every part of my design and all the code for the Arduino would be freely available online for anyone who wanted to make their own or make changes to the design.
Here's where you come in, GAF - I need some ideas! What do you want to see in a scratch-built controller? Should I aim for something general-purpose, or try to fulfill a niche that's nor being served very well right now? What style of D-pad? Button layout and labeling? Style of handles/shell? Any other interesting elements I should be thinking of? I'm thinking this will be limited to a DirectInput PC controller with only digital inputs (no analog sticks or pressure sensing), since that's the low-hanging fruit that could be easily implemented with Arduino.
Here are my big bullet points.
If no one wants to share, I will still use this thread as my work-log and keep it updated with pictures and progress reports.
This is where it gets fun: For this class, I need to do a final project where I have free reign to design and print a prototype of something that could potentially be a commercial product. To this end, I want to develop a shell, d-pad, and buttons that would be used together with an Arduino board and digital switches to make a fully functional controller. Models for every part of my design and all the code for the Arduino would be freely available online for anyone who wanted to make their own or make changes to the design.
Here's where you come in, GAF - I need some ideas! What do you want to see in a scratch-built controller? Should I aim for something general-purpose, or try to fulfill a niche that's nor being served very well right now? What style of D-pad? Button layout and labeling? Style of handles/shell? Any other interesting elements I should be thinking of? I'm thinking this will be limited to a DirectInput PC controller with only digital inputs (no analog sticks or pressure sensing), since that's the low-hanging fruit that could be easily implemented with Arduino.
Here are my big bullet points.
- SHELL
- This could be as simple as a flat rectangle or dogbone like the NES/SNES, or a larger contoured body, or something in between like a Mad Catz FightPad.
- Would probably need to be printed as two halves that would be connected by screws. Not hard to do, just a necessary design consideration.
- The bottom half would feature places to mount the PCB and switches, while the top half would expose the buttons/d-pad and provide the rest of the grip.
- BUTTONS
- At their most basic level, buttons are just plungers that sit on top of a switch of some kind and allow it to be depressed from a distance.
- The only real choices to make here are the shape, height, and surface profile.
- Most of the other characteristics come from the switches used, and there are a variety of possible choices that could be ordered from Digikey, Mouser, etc.
- Shoulder buttons are similar, the only real difference being their length and any other structures needed to make them depress in a consistent way.
- D-PAD
- There are actually a lot of details about how these work, and most of it can be found in my d-pad thread.
- The relevant choices for a d-pad are the shape, how it pivots, and what kind of switches to put under it, which in turn determines the amount of travel and the force needed to press a direction.
- The pivot is kind of tricky; most d-pads are based on a disc that rocks on a spherical pivot point. Even the Playstation d-pad is a variation of this, it just hides more elements deeper in the controller.
- ELECTRONICS
- I plan on using an Arduino Micro as the heart of the controller. It's got 20 input pins, which is easily enough for an 8-way d-pad, start/select, and up to 14 other buttons.
- There are a lot of variables in choosing switches, but the most important ones are the travel distance, the force needed to actuate them, clicky vs. soft, and the profile of the switch.
- Most controllers rely on silicon membranes for this because they're cheap and easy to manufacture in large numbers, but we'll be using individual switches for our handmade artisanal controller.
If no one wants to share, I will still use this thread as my work-log and keep it updated with pictures and progress reports.