It looks like people have been confused, misinformed, or ignorant about preventing SOCD (Simultaneous Opposite Cardinal Directions, such as inputting Left and Right at the same time) on All-Button Controllers (ABCs). I’ve seen posts on SRK such as “If you dual-mod a HitBox, the other system won’t have SOCD prevention” and “I converted my stick to an ABC, but I wish I had SOCD prevention on it.” I created this thread to show everyone that it’s possible to add SOCD prevention to any common ground PCB, and how to do it. I am by no means a Tech Talk guru, so if you see something wrong or have something to add, please speak up!
SRK member Rufus figured out in the “The “Stickless Arcade Stick” Thread” thread that you can use 7400 chips in order to prevent SOCD. 7400 chips are microchips with 4 NAND logic circuits inside of them, and by wiring them up a certain way, you can get them to disallow two inputs on an axis from reaching the PCB.
You will need one 7400 chip per axis. For easiest soldering, you would want to buy 7400 chips meant for through-hole soldering, such as these.
The circuit below will cancel both inputs on an axis to Neutral.
The circuit below will cancel Up + Down to Up. This is how the HitBox handles Up + Down. Some prefer this over canceling to Neutral, because it makes Super-Jumps come out quicker.
You install these circuits between the button’s input wire (not the ground wire) and the PCB. The button’s input wire goes into the chip, and the filtered output (which has SOCD prevention) comes out of the chip and goes into the PCB. You also need to provide power to the 7400 chips, so connect Pin 14 (Voltage) to Voltage on the PCB, and connect Pin 7 (Ground) to Ground on the PCB.
Some notes on these circuits:
(Optional) For cleaner wiring, you can use a blob of solder to join two adjacent legs instead of using wire.
Each 7400 has a maximum power draw of 22mA according to the datasheet.
If you’re worried about input lag, the circuits within the 7400 chips are comprised of discrete analog electronic components with no microprocessor. Therefore, the amount of lag in these circuits is technically a few (<25) nanoseconds, but a 60fps frame is 16666667 nanoseconds… in other words, they don’t lag. Check the datasheet if you doubt me.
Some notes on installations (these assume you have built the circuits already):
If you are converting a stick to an ABC, or building your own ABC, or installing these into an ABC without SOCD prevention, and want to prevent SOCD on it, you can install these circuits by connecting a piece of wire to your direction button (the input side and not the ground side), soldering the other end of that wire to the appropriate Input on the 7400 circuit, soldering another wire to the corresponding Output of the 7400 circuit, and connecting the end of that Output wire to the direction on the PCB. If you’re installing these into to an ABC without SOCD prevention, disconnect the wires that go directly from your button to your PCB before installing these circuits.
If you are dual-modding a HitBox and want to prevent SOCD on your other PCB, you can install these circuits by connecting a piece of wire to a direction’s screw terminal on the HitBox Cthulhu+ PCB, soldering the end of that wire to the appropriate Input on the 7400 circuit, soldering another wire to the corresponding Output of the 7400 circuit, and connecting the end of that Output wire to the direction on the other PCB. edit: I posted an ugly visual aid for using 7400s in a HitBox dual-mod later on in this thread, click here if you want to see it.