Recently, a member of my Discord reached out with a unique request. He wanted to have 4 extra buttons that added an UP+RIGHT, UP+LEFT, DOWN+RIGHT, and DOWN+LEFT to his custom build. At first, I just said this is easy, just connect your extra buttons to both of the inputs on the PCB you are using with the double stuff method. Don’t care about the explanation and just want a device that will do this for you? Check out these files: DiagonalSafe [PCB Design Files]
The double stuff method is where a single input on a PCB has two wires connected to it for two different buttons to activate it.
Then after thought and discussion, we both realized “D’OH!” this doesn’t work. When you press any of the buttons (in this case let’s say UP, LEFT, and UP+LEFT) the two directions will both be registered regardless of what button is pressed. Here’s an illustration on what’s happening:
As you can see, when you press any of the buttons, each directional input’s signal on the PCB will sense a GROUND connection. In this case I chose to illustrate with the LEFT button. When you press the button, the two wires at the button are electrically connected. In this case, the PCB’s LEFT INPUT and GND are connected and the PCB will register you pressing LEFT. But wait! Because the PCB’s LEFT INPUT is also connected to the combo button, and the combo button is also connected to the PCB’s UP SIGNAL input, the PCB will register an UP being pressed as well. This is not what we want at all! So, how do we fix it?
DIODES! Diodes are great because they let current flow in only one direction. They are like little check valves for electrical current. When we press a button on our fight stick (and it’s a common ground pcb), basically we are letting current flow out of the microprocessor. I’m sure there is a more technical way to describe this, but for the sake of simplicity let’s go with it. We can stop this current flow with some diodes on our combo button lines which will stop the signals from always registering no matter which button we press. Here’s another diagram update:
When we put diodes on the wires connecting the UP and LEFT terminals to our combo button, they fix the issue. If you trace the current flow from the PCB signal (in purple) you can see what happens. Current flows out of the LEFT SIGNAL point directly to GND via our LEFT BUTTON. It also travels out to the combo button, to the terminal, to the wire that goes to the UP SIGNAL but it’s stopped by the diode inline right before the UP SIGNAL connection on our PCB. This works the same way when you press the UP button too!
Here’s a few tips if you want to do this for your build:
- Get through hole type diodes.
- Wire them such that you have wire coming from the button -> diode -> wire -> PCB.
- Heat shrink over them so they look clean.
- Ensure you orient them the right way, they do have a correct way to be installed!
Just want something “turn-key” that makes this easy? Get some EagleCAD and JLCPCB.com files that will let you make a simple PCB to handle all of this. Best yet? It’s name your own price!