Relay Inventory

There's nothing for it, I'm going to have to dig into the logic at the heart of this thing.  It's difficult to know where to start.  Perhaps let's just take stock of the relays and see where that gets us.


Computox relays

As noted earlier, there are 47 relays mounted in 5/6 columns on three metal frames.  These all appear to be standard GPO 3000 series telephone relays, manufactured by Strowger.  Bob's Telephone File (BTF) has been very helpful in learning a bit more about these.

GPO 3000 series relay (courtesy of Bob's Telephone File)

It seems these 3000 series relays are very modular and can come with a wide range of different coils and then can be set up with a vast array of switches.  According to BTF, type 3000 relays typically have a label indicating their manufacture date.  Where these are still attached inside the Computox, they are dated between 1951 and 1960, with the majority being produced in 1960.  This sets the earliest date for the creation of the Computox as 1960, and assuming its relays were second hand, probably some time later than this.

GPO Type 3000 relay diagram (courtesy of Bob's Telephone File)

Switches 

At the risk of looking like a real noob, I'm going to treat the Computox as a digital device, ignore the differences in coils for the moment, and focus on the switches. Each GPO 3000 relay coil can operate multiple switches mounted in two banks, which I will label "top" and "bottom" reflecting their position in the Computox.  It seems there are four fundamental types of switch which can be installed:

  • (M)ake - two contacts close when power is applied to the relay (aka normally open).
  • (B)reak - two contacts separate when power is applied (aka normally closed).
  • (C)hangeover - a common contact flips from closing one contact to another when power is applied, breaking the first contact before making the second (aka double throw).
  • Make before brea(K) - a common contact flips from closing one contact to another when power is applied, making the second contact before breaking the first.

Any combination of switch types can be installed in a type 3000 relay.  Within the Computox each relay actuates between two and eight switches.  Below, I've created a map which shows each relay, and which switch types are in its two banks (you can find the Google Sheet where I'm collating this information here).  To build the map I carefully actuated each relay by pushing on the armature, and observed how each switch in the two banks moved. The relays take their names from the Dymo labels seen in the image above, and the switches are marked using the single character code from the list of types.

Computox relay map

In total, the 47 relays control 257 switches, the majority of which are the "Make" type.  The 257 switches make and break a total of 547 contacts.  This means that to naively check which pairs of contacts are connected would take approximately 150,000 spot tests.  It's nowhere near Enigma levels of complexity, but I think we're going to have to work smarter, rather than trying to brute force this.  

Clearly, the fact that there are two columns of relays for each combination of position and player is meaningful (e.g. AOA, AOB, AXA and AXB).  The fact that all the **A relays have all 8 switches and the **B relays have differing numbers of switches is interesting.  Perhaps if we can crack the purpose and wiring of the switches on one **A relay, the rest will be consistent.  It's also really interesting that there isn't a DOB, FOB or DXB relay (the latter's position being taken by NA, the only relay to have a Make before brea(K) switch).  Hopefully the 33 position / player combination relays will be pretty consistent, meaning we only have to brute force the remaining 14 relays and their 48 switches.

My first thought is that we might find where the controller inputs and display outputs connect to the relay array.

Display Outputs 

As we saw on the tour of the base unit, the wiring for the game display is relatively easy to follow as it uses a rather distinctive large gauge, white wire that runs in two looms from the connector at the top of the unit.  Roughly following this and using a continuity tester, it's possible to deduce the following connections:

  • Display AO -> Relay AOA top bank, switch 1, pin 1
  • Display AX -> Relay AXA top bank, switch 1, pin 1
  • Display BO -> Relay BOA top bank, switch 1, pin 1

This pattern continues for all 18 display outputs, with the exception of lamp BX which is connected to relay BXB, rather than BXA as expected.  The reason for this inconsistency is unknown, but it might suggest that either BXA and BXB have been switched for some reason, or alternatively the coils of BXA and BXB should be activated together.  The second possibility can be discounted, as this would require the coils of BXA and BXB to be wired together.  Whilst it is the case that one contact of all *XA*XB*OA and *OB relay coils are wired together, the other contacts act independently.

All 18 of these switches are the (M)ake type, and their second pins are connected together in chains, creating common connections that go to the X and O 2V outputs of Varley transformer.  So we know the purpose of 18 of the 257 switches and how they're wired.  Whenever relay *OA or *XA (or BXB) is active, the equivalent display lamp will be lit.

Other lamps are found in the "winner" indicator on the base unit.  Following these wires gives us:

  • Winner O -> Relay L, top bank, switch 1, pin 3
  • Winner X -> Relay W, top bank, switch 1, pin 3

Clearly L and W represent for loser and winner from the stand point of player X.  The fact that these are both (C)hangover relays means the wiring of the other pins is a little more tricky.  Pin 2s appear to connect to the relevant 2V power supply, and whilst pin 1s are also connected to a white lamp wire I have yet to track down where they go.

The final lamps are the controller "Play" indicators.  These are wired as follows:

  • Controller O Play -> Relay V, top bank, switch 1, pin 3
  • Controller X Play -> Relay V, top bank, switch 1, pin 1 

The common for the controller play indicators is sourced from the Varley 2V O output.  This is fed to relay V, top bank, switch 1, pin 2.  As a consequence, relay V switch 1 directly controls which of the two player controllers has its Play lamp illuminated, and therefore, the signal that activates its coil indicates which player's turn it is. 

This information can be found on the Output tab of the Google Sheet (please be aware this is a work in progress).

X / Left Controller Inputs

The left controller has to be used in both single and two player games.  We can infer this because the socket that it plugs into does not connect pins 5 and 6 (see below).  If you recall, these pins were shown to be shorted in the controller tear down.  If these shorted pins aren't connected to any logic (they are for the O controller), the assumption must be that whether this controller is connected doesn't need to be sensed, and therefore, the controller is always used.

X controller connector with "shorted" contacts not connected

Apart from the controller "PLAY" lamp pins 1 and 2, the connector is wired with small gauge largely darker coloured wires.  These are rather trickier to follow through the loom, but using the association with the game positions and a bit of trial and error it was possible to deduce the following:

  • Button A -> Relay AXA top bank switch 2, pin 1 and relay AOA top bank, switch 4, pin 2
  • Button B -> Relay BXA top bank switch 2, pin 1 and relay BOA top bank, switch 4, pin 1
  • Button C -> Relay CXA top bank switch 2, pin 1 and relay COA top bank, switch 4, pin 1
  • Button D -> Relay DXA top bank switch 2, pin 1 and relay DOA bottom bank, switch 4, pin 2
  • Button E -> Relay EXA top bank switch 2, pin 1 and relay EOA top bank, switch 4, pin 1
  • Button F -> Relay FXA top bank switch 2, pin 1 and relay FOA top bank, switch 4, pin 2
  • Button G -> Relay GXA top bank switch 2, pin 1 and relay GOA top bank, switch 4, pin 2
  • Button H -> Relay HXA top bank switch 2, pin 1 and relay HOA top bank, switch 4, pin 2
  • Button J -> Relay JXA top bank switch 2, pin 1 and relay JOA bottom bank, switch 4, pin 1

For each button, according to the relay map the first switch in the *XA column is consistently wired to pin 1 of a set of (M)ake switches.  These could be used to control whether the input is accepted into the logic, based on whether it's the X player's turn for example.  The wiring of the second, *OA column relay is not as consistent, but all the switches are (B)reak rather than (M)ake.  This is important, because if we activate a relay like AOA, breaking switch 4, the controller input A is no longer connected to AXA switch 2.  Therefore, relay AOA switch 4 is wired prior to, and in series with AXA switch 2, creating a logical AND.  This makes sense, as a controller input is only valid if the square isn't occupied by O and it's player X's turn.  As a consequence, the connections above should be revised to:

  • Button A -> Relay AOA top bank, switch 4, pin 2
  • Relay AOA top bank, switch 4, pin 1 -> Relay AXA top bank switch 2, pin 1
  • Button B ->  Relay BOA top bank, switch 4, pin 1
  • Relay BOA top bank, switch 4, pin 2 -> Relay BXA top bank switch 2, pin 1
  • Button C -> Relay COA top bank, switch 4, pin 1
  • Relay COA top bank, switch 4, pin 2 -> Relay CXA top bank switch 2, pin 1
  • etc

This information can be found on the Input tab of the Google Sheet.

O / Right Controller Inputs

The right controller seems to be more complicated than the left, possibly because inputs to the O logic can come from either a controller in a two player game, or the computer opponent in single player mode.  I'm still in the process of working it out, so hopefully more on this in the next update.

Comments