ePanorama.net - Joystick Documents
Special PC joysticks
Index
- Gravis Gamepad for PC
- Gravis Analog Pro
- Radio Shack Deluxe Joystick (260-0384)
- Virtualpilot Pro and F-16 comp.stick.
- CH Flightstick Pro
- TM FCS
- Microsoft sidewider 3D Pro
- Stering wheels and pedals
- Controllers with force feedback
- Misc information
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 ([email protected]).
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 leftWhat 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 14Example: 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 upIf 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-3The 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-RightSidewinder 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 ([email protected]).
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.