ePanorama.net - Joystick Documents


Special PC joysticks

Index

Analogue interface joysticks and gamepads

Gravis Gamepad for PC

Gravis PC keypad is a simple game controller desgined for replacing PC analogue joystick in some games. Gamepad has better "touch" in some games and sometimes there is need for more than two buttons.


  _____     ||
 |     \____||________
 |  __    GRAVIS      \
 | /  \  GamePad   B  |
 | \__/          A   C|
 |______________   D  |
                \_____|


Resistance values for different gamepad positions:


   +----------------------------------------------+
    x = 0 kohm     x = 50 kohm    x = 100 kohm 
    y = 0 kohm     y = 0 kohm     y = 0 kohm   
   +--------------+---------------+---------------
    x = 0 kohm     x = 50 kohm    x = 100 ohm  
    y = 50 kohm    y = 50 kohm    y = 50 ohm   
   +--------------+---------------+---------------
    x = 0 kohm     x = 50 kohm    x = 100 kohm 
    y = 100 kohm   y = 100 kohm   y = 100 kohm 
   +----------------------------------------------+

The GamePad buttons are accessed the same way that the normal joystick buttons are accessed:

+--------------------------------------------------------+
 GamePad Button A               =  Joystick A, Button 1 
 GamePad Button B               =  Joystick A, Button 2 
 GamePad Button C (autofire A)  =  Joystick B, Button 2 
 GamePad Button D (autofire B)  =  Joystick B, Button 1 
+--------------------------------------------------------+

Gravis Analog Pro

Gravis Analog Pro is a PC analogue joystick designed specially for flight simulators and sgn games. The joystick has four buttons and throttle control.

The Analog Pro joystick position is read the same as the regular Joystick A. The throttle value is read the same as for the regular Joystick B X-axis value.


           +---------------------------------------------+
            Analog Pro Button A =  Joystick A, Button 1 
            Analog Pro Button B =  Joystick A, Button 2 
            Analog Pro Button C =  Joystick B, Button 1 
            Analog Pro Button D =  Joystick B, Button 2 
           +---------------------------------------------+

Radio Shack Deluxe Joystick (260-0384)

In Radio Shack Deluxe Joystick the control stick controls the X-Axis (Up/Down) and Y-Axis (Left/Right) of "Joystick 1". Deluxe Joystick's on-board throttle and rudder controls control the X- and Y-Axes of "Joystick 2". Some software lets you use a second joystick to control your speed. The Deluxe Joystick throttle control works as a second joystick, if needed. The rudder control performs the function of a second joystick's Y-axis.

Some tips in using: Before using your software, slide both throttle controls to the minimum position (closest to you) and make sure the rudder control is in the center position.

Virtualpilot Pro and F-16 comp.stick.

Information to this chapter is from article posted to sfnet.harrastus.elektroniikka newsgroup by Vesa Saastamoinen (152226@proffa.cc.tut.fi).

Normal joystick movement is same as in normal joystick. Throttle is joystick 2 Y-direction.

Pedals are connected in series and each is 0..50 kohm potentiometer circuit. Right pedal up is 0 kohm and down is 50 kohm. Left pedal up is 50 kohm and down is 0 kohm.

                     50 kohm         50 kohm
      INPUT  o------|\/\/\/\|---+---|\/\/\/\|------o +5 V
                        /_______|_______/
                                |
                Right up   equals 50 kohm,
                Right down equals  0 kohm,
                Left up   equals 50 kohm,
                Left down equals  0 kohm,

Buttons

A B C D Function

X       Button 1
  X     Button 2
    X   Button 3
      X Button 4
X   X   Button 5
X     X Button 6
X X X X Hat 1 up
x x x   Hat 1 down
X X   X Hat 1 right
X X     Hat 1 left
  X X X Hat 2 up
  X X   Hat 2 down
  X   X Hat 2 right
    X X Hat 2 left
What those markings mean:
A = connected from ground switch in series with diode to pin 2
B = same as above, but to pin 7
C = same as above, but to pin 10
D = same as above, but to pin 14
Example: A+B
        ___
GND-----. .----|<|---pin 2
             |
             --|<|---pin 7

CH Flightstick Pro

The following information about additional buttons in CH Flightstick Pro is from Joytic specifications by Vojtech Pavlik and added here with permission from the original author of the document:

 Button state  Meaning
         0      Nothing pressed
         1      Button 1
         2      Button 2
         3      Hat 1 left
         4      Button 3
         5      Button 5
         6      Hat 2 down
         7      Hat 1 down
         8      Button 4
         9      Button 6
        10      Hat 2 right
        11      Hat 1 right
        12      Hat 2 left
        13      Undefined
        14      Hat 2 up
        15      Hat 1 up
If more than one button is pressed they are either ORed together, or the lowest one is signalled, depending on joystick model.

TM FCS

The following information about TM FCS hat switches is from Joytic specifications by Vojtech Pavlik and added here with permission from the original author of the document:

 Axis 3 resistance   Meaning
         0.2 kOhm       Up
        20.0 kOhm       Left
        40.0 kOhm       Down
        60.0 kOhm       Right
        82.0 kOhm       Center

Mixed mode joysticks

Microsoft sidewider 3D Pro

Microsoft sidewider 3D pro works in two modes: analog and digital interface. In analog emulation it emulates the two resistors in a standard joystick. The other mode is all digital where it sends a serial data stream on one of the joystick button inputs, It feeds a clock on another of the button inputs.

The following information is from Joytic specifications by Vojtech Pavlik and added here with permission from the original author of the document:

In digital mode MS SideWinder joystick send data through button wires. he transmission starts on a normal measure trigger (out to port 0x201). Button 0 is used as clock (100 Hz), other three buttons carry data. Data is valid at clock 0 to 1 transition, LSB is transmitted first.

SideWinder 3D Pro sends three packets, each 22 triplets long (64 + 2 bits). The packets have all the same contents. The packet layout seems to originate from the Mac version of SW3DP. Transmit speed is 300 kbit/sec, first packet takes 320 us to transmit, all three take 760 us.


  Byte 0:
        7....... - Always 1
        .6...... - Hat bit 3
        ..543... - Axis 0 (X) bits 7-9
        .....210 - Axis 1 (Y) bits 7-9

  Byte 1:
        7....... - Always 0
        .6543210 - Buttons bits 0-6

  Byte 2:
        7....... - Always 0
        .6543210 - Axis 0 (X) bits 0-6

  Byte 3:
        7....... - Always 0
        .6543210 - Axis 1 (Y) bits 0-6

  Byte 4:
        7....... - Always 0
        .6...... - Buttons bit 7
        ..5..... - CHF (0) / TM (1) switch
        ...43... - Axis 2 (Twist) bits 7-8
        .....210 - Axis 3 (Throttle) bits 7-9

  Byte 5:
        7....... - Always 0
        .6543210 - Axis 2 (Twist) bits 0-6

  Byte 6:
        7....... - Always 0
        .6543210 - Axis 3 (Throttle) bits 0-6

  Byte 7:
        7....... - Always 0
        .654.... - Hat bits 0-2
        ....3210 - Checksum bits 0-3
The last two bits are zeroes.

Sidewinder hat data (for SW 3DP, FFP and PP):

     Value     Direction
        0       Center
        1       Up
        2       Up-Left
        3       Left
        4       Down-Left
        5       Down
        6       Down-Right
        7       Right
        8       Up-Right
Sidewinder Force Feedback Pro and Sidewinder Precision Pro packet:
SW FFP sends 16 triplets (48 bits).

          Bits     Meaning

         0 ..  8 - Buttons              ( 9 bits)
         9 .. 18 - Axis 0 (X)           (10 bits)
        19 .. 28 - Axis 1 (Y)           (10 bits)
        29 .. 35 - Axis 2 (Twist)       ( 7 bits)
        36 .. 41 - Axis 3 (Throttle)    ( 6 bits)
        42 .. 45 - Hat                  ( 4 bits)
              46 - Always 1
              47 - Parity

The following Microsoft Sidewinder 3D pro circuit description is based on article posted to sci.electronics.design newsgroup by Terry Harris (terry.harris@dial.pipex.com).

It senses the 555 timer discharge pulses to trigger a response, then clocks and sends a fixed length serial packet (64 bits I think). All timing is done by the Sidewinder and appears not to be adjustable. The drivers sit in a tight loop reading in the packet. The clock rate is something like 500kHz.

Interrupts are disabled while it reads in the packet but DMA isn't and if your system has some extra overhead doing ISA DMA across the ISA/PCI bridge then it will miss bits from the stream and will not ever get a valid packet. Basically a crap interface design.

One solution is changing the crystal for the uP inside the sidewinder to slow it down enough to work on some systems. (something like 30% slower didn't seem to affect the rest of it's operation too much).

The position sensors in the Sidewinder are impressively simple, some sort of split photodiode (or maybe it is some sort of photo array) and 3 LEDs to sense 4 axies (sp?) - neat.

Stering wheels and pedals

Some PC car games have started to support steering wheels and pedals. The steering wheels is simply a steering wheel connected to potentiometer which is wired to joystick 1 X-axis (between pins 1 and 3). The shift buttons are standard PC joystick 1 buttons. Gas and break pedals are both connected to PC joytick 1 Y-axis (between pins 6 and 8). The pedals are connected in series just like in flight simulator pedals.

                     50 kohm         50 kohm
      INPUT  o------|\/\/\/\|---+---|\/\/\/\|------o +5 V
                        /_______|_______/
                                |
The connection is made so that when both pedals are released, the joystick interface sees about 50 kohm resistance. When gas is pressed (and break is kept up) the resistance increases and gets maximum resitance when gas pedal is fully pressed down. When the break pedals is fully pressed and gas pedal is released, the pedals system gets the minimun resistance. There is nice picture of wheel and pedal wirings at http://www.monmouth.com/~lw4750/.

For more detailed wiring diagram of steering wheels and pedals, check Lew's Sim Racing page and Lews Wheels page. Another page to check for information on building pedals can be found at http://www.terravista.pt/ilhadomel/3179/pedais_i.html.

Controllers with force feedback

Force feedback can add more reslism to certain computer games, especially simulators. Force feedback can add more realism to certain games by adding the sense of touch to the virtual world. The disadvantage of the force feedback system is that complexity and the price of the force feedback hardware. Nowadays the price of the technology has come down and some joystick manufacturers like CH Products and Microsoft have started to offer force feedback joysticks to PC gaming market.

Force feedback is typically implemented using an electrical motors which will move the joystick under the computer control. Microsoft Sidewinder Force Feedback Pro uses two separate force feedback mechanisms, one for X (left/right) and one for Y (up/down) handle motion. Each mechanism is composed of a DC brush type motor, gear train, and linkage. The force feedback effect controlling is done using microprocessor inside joystick and optical sensors which sense stick movement. Typical solution is to replace the pots with digital encoders. These output a pair of square waves in quadrature thus allowing you to use a simple up/down counter on each axis measure the direction and displacement of the joystick.

Normal computer joystick interfaces are typically input only interfaces and so do not normally support force feedback devices quite well. The force feedback joystick manufacturers have overcome this limitation by also adding a serial port interface to the joystick to support those extra functions. Because moderm PC joystick ports in soundcards have MIDI interface functions built in the same connector. Microsoft Sidewinder Force Feedback Pro joystick has selected to use that MIDI interface to control the joystick force feedback functions. Because Microsoft Sidewinder Force Feedback use MIDI channel 6 for force feedback controlling MIDI music which has information on this channel can cause all kinds of side-effects to the joystick.

Misc information

Additional features in some PC joysticks

Some PC joystick have also some other extra features. The hat-switch is implemented by using joystick B Y-axis for those buttons. The Y-axis is (usually) divided to four parts to implement the functions needed.

Some PC joysticks with more functions that can be easily implemented using PC have also some additional interface which handles those extra functions. I have sene joysticks feaured with serial port wire or connector which goes to keyboard connector (AT or PS/2 standard keyboard connector).

Gravis GrIP

Gravis has come up with their own special GrIP technology for multi-player gaming and adding extrafunctions to game controllers. The system consist of one GrIP hub which communicates digitally though standard PC joystick port (using proprietary protocol) and a driver program for Windows 95.


author: Tomi Engdahl