Joystick PC Gameport

PC game port (15-pin DA-15): two analogue joysticks read as RC-timed potentiometers, active-low buttons, and MIDI on pins 12/15 of sound cards.

15 PIN D-SUB FEMALE 15 PIN D-SUB FEMALE at the computer

15 PIN D-SUB MALE 15 PIN D-SUB MALE at the joystick cable

The PC game port is the 15-pin analogue joystick interface introduced with the IBM PC’s Game Control Adapter in 1981 and later built into most sound cards. A single port supports two joysticks, each with two analogue axes and two buttons. The axes are potentiometers read as RC time constants — the card fires a one-shot timer per axis and times how long its output stays high — while the buttons are simple active-low TTL inputs. On sound cards, pins 12 and 15 are repurposed for MIDI.

PinNameDirDescription
1+5VOUT+5 VDC
2/B1INButton 1
3X1INJoystick 1 - X
4GND-Ground
5GND-Ground
6Y1INJoystick 1 - Y
7/B2INButton 2
8+5VOUT+5 VDC
9+5VOUT+5 VDC
10/B3INButton 3
11X2INJoystick 2 - X
12GND-Ground (MIDI OUT on sound cards, see PC MIDI + game port)
13Y2INJoystick 2 - Y
14/B4INButton 4
15+5VOUT+5 VDC (MIDI IN on sound cards, see PC MIDI + game port)

Axis signals

Each axis is a variable resistance — a 0–100 kΩ potentiometer — not a voltage input. Writing to the port (I/O address 201h) fires a one-shot timer for each axis; the card then times how long that timer’s output stays high, which is proportional to the pot’s resistance, and converts it to a position. A digital joystick imitates the centre and extreme positions with fixed resistor values.

Buttons signals

These pins are TTL level signals, they are normally high at logical level 1 and when a button is pressed they go low to logical level 0. Note: Direction is Computer relative Joystick.

Types of joystick and actual connection to the port

Analog joystick

The original joystick on the PC was an analog joystick, wich is composed of two fire buttons and two potentiometers for each axis (X and Y). The potentiometers used on this type of joystick are linear type with a value of 100 k ohms, wired between the +5 V supply and the axis timing pin.

Digital joystick

A second joystick type started in the early 80’s, it was based on a digital circuit, it replaced the potentiometers with regular digital (on/off) switches, it was also known as an atari style joystick. And when Nintendo came out with the know well known joypad many companies like Gravis came out with PC joypads. These types of joysticks pretty much work all the same, replacing each potentiometer with an on/off switch to ground on the corresponding axis and button pin.

If a second joystick is to be connected to the same port, a two button joystick should be used, because the 3rd and 4th buttons are connected to the 1st and 2nd button of the second joystick. If the joystick used has a 3rd or even a fourth button, you could also add a rapid fire repeater to it. An common way to add this feature, if you have the room for it, is to use a simple circuit based on a 555 timer which is enabled when you press the button, and sends pulses at about 400Hz to the computer input, you could even make an inline box adapter that would add auto repeat fire to the existing buttons of your joystick by simply feeding the signal from the joystick to the 555 timer and sending the output of it to the computer.

When a second joystick is to be used on a single port, you must first have a port that allows two joysticks to be connected to it and secondly you need a special Y adapter cable witch can be purchased at most computer resellers.

Some people or manufacturers will replace the two blue wires connected to pins 4 & 5 of the Joystick 2 connector and will connect them to pin 12 from the computer and the red wire connected to pin 8 of the joystick 2 connector and will connect it to pin 15 from the computer. This is ok, but if you have a midi enabled connector (mostly found on soundcards), it might not work, it could disable the soundcard all together, because these pins (12 & 15) are used for midi input and output. So to be on the safe side, keeping the second joystick on its own pins is the safest way to go. If you have already bought a cable and it doesn’t seem to work wright, it might be that the cable is wired to pins 12 & 15. One way to overcome this problem is to build a special adapter that reroutes the two pins from pins 5 & 9 and thus isolates the two midi pins. Note that on a 3 axis joystick(like with a throttle) the Z axis would go to pin 13 (Y2). The 4th axis, the U axis (like for rudder pedals), would go in pin 11 (X2).

References

Category:Input Device Connectors