> The analog input adapter (joystick
interface) was offered at the time of
> release, but no joysticks (until YEARS later) - but the docs had a drawing
> that was clearly and obviously the joystick of the RS Coco.
On Mon, 15 Oct 2012, Tony Duell wrote:
Which wouldn't ahve wored without intenral
wiring changes (not just a
conencotr adapter). The CoCo jopsticks used 3-terminal pots as a
potential divider acorss the 5V supply, the slider goes ot ta voltage ADC
input on the CoCo. The IBM (and Apple ][) joysticks are variable
resistors (2 terminal) used as part of the timing network on a 555
monostable (actually a 558, which is a quad 555, wired in monostable mode
only).
You would ahve to separate the 'bottom end' of the 2 pots in the joystick
for it to work proeperly.
Doing so took less time than changing the connector on them to a DA15.
Yo uahd to unscrew the bottom covver, take it off, snip out a bit of wire
[1] and then refit the cover and screww. To change the connector you had
to cut off the DIN plug ans solder 5 wires ot a DA15. Seems like it woudl
take about the same time.
However, is thaerw a gotcha here? The buttons in both the PC and CoCo
joysticks return to the ground rail, which is what you're disconnecting
from the pots. If the cor of the cable goes ot the
button, and then wires
from that tag to the 2 pots, all you haev to do is snip out the latter
wires. But
if the core i nthe cable goes to one of the bot terminals
(with wires ot the other pot and the button switch), you would have to
reoslder the cable core ot the tag o nthe swtich. That would take a
little longer.
In any case, my point is that you can't simply make up a cable adapter
with a 5 pin typ B or 6 pin DIN socket wired to a DA15 plug for this. You
have to make intenral modificatiosn to he joystick.
[1] The slang term 'Dikes' for diagonal cutters (side cutters) is
well-known, but I have always treated it as a slang, colloquial, term. I
was therefor suprised to find in the HP9125B service manual the following
as part of the 'X axis restringing procedure'
"e. Crimp cable clamp securely. This operation can be perfomed with a
pair od dikes"
Anyway...
Some years back I was fooling around wit hthe Vectrex (is that on-topic
here? It's not a user-prgrammable computer, but it's over 10 years old,
has a 68A09 in it, and is a fun machine). The controllers for that
machien conenct usign DE9 connectors, and have a 2-axis joystik and 4
buttons. The joystick inputs are voltge ADCs, liek a CoCo.
Anyway, the original controlelrs are hard to find, so I decided to see
what else could be used. At the time I picked up some Tandy 'Deluxe
Joysticks' for the CoCo. I found 2 ways to use these. The problem was
that at least one of the axes was reversed wrt the CoCo -- that is in one
case moving the joystick in a particualr direction produced an increasing
voltage on the input while the Vectrex required a decreasing voltage.
The simpler way for soembody like me was a little circuit using a few
op-amps that simply inverted the votlage (and buffered the signal on the
otehr axis IIRC).
But for those who didn't like soldering, I foudn a way to modify the
joystick itself. The problem is that the potentiometers are not
conventional compoennts. They're resistive traces on a plastic substrate
with cotncts wiping over them. Both pots, and the trim cotnrols, are on
the same substrate, there iws no way to reverse the end conenctions to one
of them.
I think I ended up rotating the plate through 90 degrees -- soemthign that
involved a bit of cutting and filing of the plastic housing,m since it
was designed to be impossible to assemble wrongly, and then mopving
push-on terminals around. It worked, but soldering up the Op-amp circuit
was a lot quicker
I also made an interface to use a noraml (of the time) PC joystick wit
hte Vectrex. This used the pots in the joystick against constant current
sinks (Op-amp + trannsisotr) + more op-amps to convert the resulting
voltage changes to the Vectrex input specification.
Hang on... I've found the docs I produced on this....
Converting a Tandy Joystick to use with the Vectrex
===================================================
These instructions relate to the Tandy 26-3123 Deluxe Joystick only.
The main problem in converting the joystick for use with the vectrex is that
the sense of the vertical axis needs to be reversed. Since the potentiometers
in this unit are formed by resistive traces on a plastic plate (the 'Pot
Plate'), it's not a simple matter to reverse the connections to one of the pots.
Here's how to do it.
1) Remove the 4 screws from the underside of the joystick, and take off the
lower cover. Set these parts aside
2) Carefully lift up the 'Pot Plate', and note where the wires are connected.
Disconnect the wires. Note that 2 of the connections are linked by a
(red) wire.
3) Disconnect the wires on the PCB. Note where the 3 wires (white, red, black)
which go to the switches in the joystick handle are connected. Set the
joystick cable aside. You'll need to recover the push-on tags from this
cable later.
4) Remove the 2 screws, the PCB, and the fire button + springs. Set these parts
asside for the moment.
5) Note how the joystick mechanism is assembled. The aim is to rotate the
'Pot Plate' and the sliding contacts counter-clockwise by 90 degrees. To
do this, first unclip the 2 return springs from the mechanism
6) Lift out the pivot from the centre of the sliders, and then remove the
sliders. Note how they are fitted
7) Remove the plastic base from the joystick mechanism. You need to rotate this
through 90 degrees also, so that the sliders will fit correctly. In order
to do this, enlarge the hole that will be in the lower right corner using
a 7.5mm drill from the side that faces the joystick handle, until the
plast base will fit correctly in this orrientation.
8) Now you start reassembling the parts. Refit the plastic base (rotated
through 90 degrees), the sliders (metal contacts on the left and top as
you look at them), the central pivot, and the return springs (over the top
left and bottom right bosses).
9) Slide the fine trim controls off the pot plate _carefully_. Hold the
pot plate so that the track side is uppermost, the connection pads are on the
top and right sides, and the fine trim controls are on the bottom and left
sides. Refit the fine trim controls by sliding them on, takeing care to avoid
damaging the contacts.
10) Use the socket end of a Sega extension cable for the connection to the
Vectrex. Remove about 4" of outer covering from the cable, and recover 3
clips from the original cable. Do not touch the red jumper lead for the
moment.
11) Crimp and solder these tags to the Green (pin 5, Pot0), Blue (Pin 6, Pot 1)
and Grey (pin 7, +5V) on the cable. Now cut the red jumper wire complete wit
it's tags from the original cable. Solder the white lead from the cable to
one tag on the jumper wire.
12) Reconnect the leads to the pot plate in the following way, seen from the
track side
White + Red Jumper (-5V)
/ Blue (Pot 1)
/ / Grey (+5V)
/ / /
/ / /
+-----####------####----####-----+ Green (Pot 0)
| | /
| # /
| # /
| #
| |
| |
| |
| |
| | Red Jumper
| # /
| # /
| # /
| |
+--------------------------------+
13) Now take the PCB you removed earlier. Carefully desolder the slide swtich
from it. Also cut the track between the fire button on the PCB and the
first connector slot on the edge.
14) Connect 3 more wires from the cable to the holes left vacant by the removal
of the slide switch as shown.
^ ^
| Notched edge of board, viewed from component (non-track side) |
(Sw3) (Sw4)
Orange----o o---- Yellow
o o
Red-------o o
(Sw2)
15) Connect the black lead of the cable (0V) to the far left slot on the PCB.
This slot is connected to all the other slots on the left of the fire
button.
16) Re-install the fire button, the PCB, and the screws.
17) Reconnect the leads from the joystick handle to the PCB, in the same
positions as they were originally.
18) Position the pot plate over the joystick mechanism. Use 2 of the cover
screws to hold it in place
19 Plug the joystick into the vectrex, and use the joystick test in the
diagnostic ROM to test it.
20 Cut a slot in the left side of the cover to allow the fine trim control to
protrude. Copy this slot from the one on the right side, and file down the
lower part of the cover in a similar way.
21) Use a couple of cable ties to make a strain-relief to hold the cable in the
slot in the joystick body.
22) Remove the screws you fitted to hold the pot plate in place, fit the cover,
and secure it with the 4 screws.
Interface for Tandy Joystick - Vectrex
======================================
+5V +5V
J5 )--------+--+---------+--------------------------------------------( V7
| | | Gy
| \ 10k |
| / | 10k
| \ +----)---/\/\---+
| / | | |
| | | |\| |
| +----+--|-\ | Pot0
X | | >---------+---------------------------------( V5
J1 )--------)----------|+/ U1a Gn
| |/ 1458
/
\ 10k 100k
/ +----/\/\----+
\ | |
| | |
Y 47k | | |\ |
J2 )--/\/\/-)------+---|-\ | Pot1
| | >-----+-------------------------------------( V6
+----------|+/ U1b Bu
| |/| 1458
| | -5V
/ +--------------------------------------------( V9
\ 4k7 W
/
\
Gnd | 0V
J3 )--------+------------------------------+-------------+------------( V8
| | Bk
| |
SW2 | -+ SW1 | -+
=| =|
| -+ | -+
| | Sw1
| +------------( V1
| Br
|
| Sw2
+--------------------------( V2
R
SwA Sw4
J4 )------------------------------------------------------------------( V4
Y
SwB Sw3
J6 )------------------------------------------------------------------( V3
Or
6 pin DIN skt 9 pin D skt
Theory
------
The switches are simple : The Tandy joystick has 2 fire buttons which ground the
appropriate pins (4 and 6) on the connector when they are pressed. Thus, these
pins are simply linked to the button 4 and 3 (respectively) inputs on the
Vectrex. Two more buttons on the interface (SW1 and SW2) ground the remaining 2
Vectrex inputs.
Although the Tnady joystick is proportional, it differs from the Vectrex unit
in 2 important ways.
a) The output voltage varies from 0 to +5V, not -5V to +5V
b) The Tandy joystick output increases for movement to the right and movement
down. The Vectrex joystick output increases for movement to the right and
movement down.
The conversion between these 2 systems is performed by U1, a 1458 Dual Op-Amp.
U1a, wired as a non-inverting *2 amplifer, doubles the X voltage without
reversing it. The input resistor is returned to the +5V line to provide the
required voltage offset. U1b is wired as an inverting amplifier with a gain of
approximately 2, which inverts and doubles the 'Y' voltage. The potential
divider connected to the non-inverting input of this device provides the
necessary offset.
Notes
-----
1) Layout is not critical, and any standard technique should work
2) The Op-Amp used was a 1458. Any similar dual Op-Amp should work, but has
not been tested.
3) Connection to the Vectrex is best performed by using the socket end of a
Sega extension lead. The colours on the circuit diagram are the colours
in the cable used for the original design.
4) Connection to the Joystick is perfomed by a 6-pin DIN socket
5) 2 more swtiches (SW1 and SW2) provide the extra 2 vectrex buttons.
6) Distribution and use of this circuit for the benefit of Vectrex owners is
encouraged. Please feel free to put it on ftp sites, etc.
PC Joystick
1 )--+
|
8 )--+
|
9 )--+ Vectrex
|
15)--+----------------------------------------------------------------- R --( 7
+5v
2902(a)
75k |\
6 )----/\/\/---+--------|+\
| | > --+-------------------------------------- Or --( 6
| +------|-/ | Pot 1
| | |/ |
| | |
| +---/\/\/-----+
| | 10k
| \
| / 15k
| \ 20k +--/\/\-----+
| / | |
| | 2902(d) | |\ |
| | |\ +----|-\ |
| | +----|+\ 10k | | >---+------------- Y --( 5
| | | | >---+---/\/\/---+ +-|+/ Pot 0
| | | +-|-/ | | |/
| | | | |/ | | 2904(a)
| | | +--------+ |
75k | | | |
3 )-----/\/\/--)-)---+--------------------------)--------+
| | | |
4 )--+ +-)----------------+ | |
| | | | |
5 )--+-------+---+----------------)-------------+--------)------------ Bk --( 8
| | | | Gnd
12)--+ | | |
| | | |
| / | |
| 10k \ | |
| / +--------------)----------+ |
| \ | | | |
| | | | | |
| | | 2902(b) | | 2902(c) |
| | | |\ / | |\ /
| +-----+-----|+\ |/ 2N3904 +--|+\ |/
| | | >--| | >--| 2N3904
| | +-----|-/ |\ +--|-/ |\
| | | |/ V | |/ V
| / | | | |
| 1k1 \ +-------------+ +----------+
| / | |
| \ / /
| | \ 15k \ 15k
| | / /
| | \ \
| | | |
| | | |
| +-----+-------------------------+------------------------ Gy --( 9
| -5V
|
+----+-------+
| |
/ \
1 <==/ \==> 2
/ o o \
| |
| |
14)-------+------)---------------------------------------------------- W --( 1
| SW0
|
10)--------------+--------------------------------------------------- Bu --( 2
SW1
7 )------------------------------------------------------------------ Gn --( 3
SW2
2 )------------------------------------------------------------------ Br --( 4
SW3
Theory of operation
--------------------
The buttons of both an IBM PC joystick and a Vectrex controller simply connect
the input pin to ground. Thus the 2 button inputs from the IBM joystick
connector (pins 2 and 7) are connected directly to the SW3 and SW2 inputs on
the Vectrex. Since most IBM PC joysticks only have 2 buttons, 2 extra switches
are fitted on the interface and connected to SW0 and SW1. However, these signals
are also connected to pins 14 and 10 on the IBM PC joystick connector to allow
the use of 4 button PC joysticks.
The analogue inputs of a PC and a Vectrex are quite different. The PC joystick
acts as a variable resistor from 0 to 150k with one end connected to +5V, while
the Vectrex requires a varying voltage between about -4V and +4V. The interface
also has to reverse the direction of the X axis, so the 2 channels are somewhat
different in operation. The simpler Y channel will be described first.
This channel consists of 2 main sections : a constand current sink to convert
the changing resistance into a changing voltage and a *1.5 amplifier to convert
the signal level to the correct one for the Vectrex.
The +ve (non-inverting) input of section (b) of the 2902 is maintained at
-4.5V by the potential divider consisting of the 10k and 1k1 resistors. The
action of the op-amp thus maintains the -ve (inverting) input at the same
potential and hence stabilises the current through the 15k resistor at
0.5/15 = 1/30 mA. This same current flows through the collector circuit of the
2N3904 (since the base current is negligable), and thus maintains a 2.5V drop
across the 75K resistor. The collector circuit is completed by the 150k variable
resistor between the joystick. Thus, the joystick drops between 0V (When the
resistance is 0) and 5V (when the resistance is 150k), and hence the collector
voltage of the 2N3904 varies from +2.5V to -2.5V respectively. This signal is
amplified by section (a) of the 2902 (which is connected as a standard
non-inverting amplifier with a gain of 1.5) and connected to the Pot 1 input on
the Vectrex.
The X axis channel operates in a similar way, and consists of a constant current
sink, a *1 buffer amplifier and a *-1.5 amplifier to convert the signal level to
that required by the vectrex.
Section (c) of the 2902 and its associated components form a current sink
indentical to the one described above. The output voltage on the collector of
the 2N3904 transistor is buffered by section (d) of the 2902, which is connected
as a standard voltage follower (unity-gain amplifier). The output of this stage
is connected to section (a) of the 2904, which is connected as a standard
inverting amplifier with a gain of -1.5. The output of this section is connected
to the Pot 0 input on the Vectrex
Notes
-----
1) Layout is not critical, and any standard construction method will work.
2) The Op-amp chips used (2902 (quad) and 2904 (dual)) may be difficult to
obtain. The circuit will also work with the more common LM324 (to replace the
2902) and LM358 (to replace the 2904)
3) Since the power and ground connections to the joystick are identical to those
used in a PC system, any autofire circuits in the joystick should still work.
4) The joystick connector is a standard DA15 socket, and the vectrex connection
can be made using the cable from a Sega controller. The wire colours are those
found in the cable I used, and are not standard.
5) The op-amp power connections are made to the +5V and -5V rails.
6) This schematic and the documentation are Copyright 1995 A.R.Duell. However,
distribution for the benefit of Vectrex owners is encouraged, provided no
profit is made. Feel free to upload this document to ftp sites, etc.
Somewhere I have a commercial interface to use Atari swtich-type
joysticks wit hthe CoCo. It's a few resistors an transsitors to give a
midpoint votlage with no swithcs operated and +5V or ground if the
approroitate swithce is closed. It;'s a litte plastic box with 2 DIN
plugs on flying leads ot conenc to the CoCo (or Dragon) and 2 DE9 plugs
for the Atri joysticks. I do not have a scheamtic of that yet, it would
not take long to trace out if I could find the darn thing...
Of coruse it's entirely possible that IBM
were planning on selling
joysticks made by the same company that made the CoCo ones, but wired fro
the 5150 adapter.
a reasonable guess
Since the Apple ][ Joystick interface is very similar to that on the PC,
what were Apple][ compatible joyusticks like? Those would presumably have
been quite easy to covert for the IBM 5150.
-tony