The arcade buttons for the keyboard arrived. I ordered them from XGaming because they had a much better price than other sites that I had found, and they were willing to offer a lifetime warranty on their products, which impressed me. They are standard concave arcade buttons, designed to fit into a 28mm or 1-1/8" hole. When I ordered them, they were specified to come with an SPDT (3-terminal) microswitch, and only came in black. What I did not realize is that each 20-pack of buttons came with 18 black buttons and 2 white 1- and 2-player buttons.
|Pictures from xgaming.com|
|Each white ring marks a C.|
There was another problem that wasn't so conveniently solved, though. You may have noticed that I specifically mentioned SPDT switches. For those of you who aren't familiar with the basic function of electronic logic, here's a brief explanation.
You are probably familiar with the concept of computers "running on ones and zeros" or functioning using binary, but you may not entirely understand what that means. Digital electronics use binary logic, which compares inputs that are either 'true' or 'false'. Different types of comparisons can be chained together to process the inputs and produce a useful output, whether that output is turning a light on and off or making a sound or displaying a video game. Here, the output is compressed air being let out in the right place. In any case, the important part is how the signals are compared, and most (if not all) digital electronics function by comparing voltage. An input is compared to a reference (or ground), which is considered to be at 0 volts, and another reference called V+ or Vcc, which is often at 3.3v or 5v depending on the chip. If the voltage between the input and the ground is approximately zero, the input is treated as 'false' or a 0, also referred to as 'low'. If the voltage is closer to V+, the input is treated as 'true' or 1, also known as 'high'. This means that you can't necessarily just connect a switch to turn an input on or off, because if you connect the input pin directly to high, there's nothing that would cause it to change to low once you disconnect it; you have to specifically connect the pin to ground. Otherwise, it just floats around somewhere between high and low and may result in unexpected behavior.
A standard switch as most people think of it is an SPST (single-pole, single-throw) switch, which means that it has two positions and either connects or disconnects a pair of terminals (connection points). In other words, it's either on or off, 'go' or 'stop' along a single path. An SPDT (single-pole, double-throw) switch is more like a switch in a railroad system; it also has two positions, but it has three terminals and connects one 'common' terminal to only one of the other terminals at a time. SPDT switches can be used easily for digital inputs because you can connect the common terminal to an input pin on a chip and connect the other two pins to high and low levels. When the switch is in one position, it will connect to low, and when you flip it, it will connect to high. This allows you to avoid dealing with pull-down resistors and such, which generally just drive up your part count and mess up your PCB routing.
[And now, back to our regularly scheduled programming.]
|Left: the expected SPDT switches. Right: wrong.|