Conventional Analog Design
In order to communicate a full range of motion to the computer, a joystick needs to measure the stick's position on two axes -- the X-axis (left to right) and the Y-axis (up and down). Just as in basic geometry, the X-Y coordinates pinpoint the stick's position exactly.

In the standard joystick design, the handle moves a narrow rod that sits in two rotatable, slotted shafts. Tilting the stick forward and backward pivots the Y-axis shaft from side to side. Tilting it left to right pivots the X-axis shaft. When you move the stick diagonally, it pivots both shafts. Several springs center the stick when you let go of it.

To determine the location of the stick, the joystick control system simply monitors the position of each shaft. The conventional analog joystick design does this with two potentiometers, or variable resistors. The diagram below shows a typical arrangement.

Each potentiometer consists of a resistor, in the form of a curved track, and a movable contact arm. The computer power supply conducts electricity to the input terminal, through the curved resistor, through the contact arm and back to the joystick port on the computer.

By moving the contact arm along the track, you can increase or decrease the resistance acting on the current flowing through this circuit. If the contact arm is on the opposite end of the path from the input connection terminal, electricity will have to flow through a long length of resistor, so it will face maximum resistance. If the contact arm is near the input terminal, the potentiometer will have minimal resistance.

Each potentiometer is connected to one of the joystick shafts so that pivoting the shaft rotates the contact arm. In other words, if you push the stick all the way forward, it will turn the potentiometer contact arm to one end of the track, and if you pull it back toward you, it will turn the contact arm the other way.

Varying the resistance of the potentiometer alters the electrical current in the connected circuit. In this way, the potentiometer translates the stick's physical position into an electrical signal, which it passes on to the joystick port on the computer.

This electrical signal is totally analog -- it's a varying wave of information, like a radio signal. In order to make the information usable, the computer needs to translate it into a digital signal -- a strict numerical value.

In the conventional system, a card (a printed circuit board) inside the computer handles this with a very crude analog-to-digital converter. The basic idea is to use the varying voltage from each potentiometer to charge a capacitor, a simple electrical device that stores electricity (see How Capacitors Work for more information). If the potentiometer is adjusted to offer more resistance, it will take the capacitor longer to charge; if it offers less resistance, the capacitor will charge more quickly.

By discharging the capacitor and then timing how long it takes it to recharge, the converter can determine the position of the potentiometer, and therefore the joystick. The measured recharge rate is a numerical value the computer can recognize. The computer performs this operation whenever it needs to get a read on the joystick.

You can potentially apply this system to an infinite variety of controls by connecting a potentiometer to different rotating components. For example, conventional steering wheel controllers work exactly the same way, with the wheel rotating the potentiometer contact arm directly. Some joysticks use an additional potentiometer for a Z-axis, activated by rotating the stick itself.

Photo courtesy CH Products
Steering wheel and pedal controls work on the same basic system as conventional joysticks.

Some joysticks also have a "top hat" -- a thumb-activated miniature controller on top of the stick. This small joystick uses the same switch system as the simple joystick in the last section.

The conventional analog system works okay, overall, but it does have limitations. In the next section, we'll find out what the major problems are and look at some recent solutions.