In Mach3 the parallel port has 12 outputs and 5 inputs. Pins can be active-high or active-low, which means their "on" state can be indicated by a positive or negative voltage respectively. Whether a pin should be active-high or active-low is determined by the BOB configuration and the associated control circuitry. Active-low is typically considered more ideal because it is more immune to noise and false signals. Inputs should never use open circuits to indicate "off" because a pin that is not connected to anything is like an antenna, it can pick up electromagnetic interference from motors as false signals, or simply float between off and on. Inputs must be tied to "off" with a resistor, to force the pin to that voltage in the absence of an "on" signal. BOBs often have built in pull-up or pull-down resistors to take care of that. Pins are digital, they must be 1 "on" or 0 "off". There is no in between. And they must operate at zero or 5 volts, with very little margin for error, so a clean stable 5 volt supply is critical for pins to function correctly. Pins have very limited power, so they cannot be used to drive relays or motors directly. They can drive a low power LED directly, but to operate mechanical things like relays they need external electronics of some sort to avoid overloading the pin by drawing too much current. Ideally, the BOB will provide features to isolate, protect, and condition pin signals to greatly simply connecting such pins to machines. If the BOB is just a terminal board that connects signals directly to the pins, then all sorts of problems with signal issues can arise. For each axis, we will use 2 output pins to control the motor driver, and 1 input pin to detect the home limit switch. Which will leave us with 6 outputs and only 2 inputs for future expansion. That's not enough for THC, but don't worry, we'll get to that later. We are going to setup X and Y first, to get the servos working, then we will setup the Z axis separately, because it is completely different.