login/register

Pinball Rehab

pinball repair and restoration

Switch Matrix - Theory and Troubleshooting Switch Matrix - Theory and Troubleshooting Featured Hot video

All solid state pinball's use a switch matrix and although the actual implementation may vary slightly, the theory and troubleshooting are the same.

The purpose of the switch matrix is to reduce the number of driver circuits form 64 to 16 and minimize playfield wiring.  This is achieved by pulsing each column sequentially while monitoring all of the rows.  This is why the column is called the strobe, or send side, and the row is called the return side.

For a list of common problems and troubleshooting, you can jump to this section of the document.

Switch Matrix Theory

Image 1 is the switch matrix from an Addams Family.  The wire color, board connector and pin, and the IC or transistor identifier are provided for each row and column.  So for any switch we can move left across the row to get the return side info and up the column to get the send (or strobe) side info.  The switch number, which  is displayed during diagnostic tests and on the Switch Locations page in the manual, is also provided.

Most of this information is also available in the system diagnostics.

Image Gallery

Switch Matrix - Theory and Troubleshooting
Switch Matrix - Theory and Troubleshooting
Switch Matrix - Theory and Troubleshooting
Switch Matrix - Theory and Troubleshooting
Switch Matrix - Theory and Troubleshooting
Switch Matrix - Theory and Troubleshooting
Switch Matrix - Theory and Troubleshooting
Switch Matrix - Theory and Troubleshooting

Note: Switch columns and rows are not wired in the same order as they are shown on the switch matrix.  For example in column 6 the physical wire might go from "Left Ramp Enter" to "Thing Eject Lane" to "Train Wreck."

Each column of switches is connected by a green wire with a colored stripe (for example, green-red for column 2) running from one switch to the next.  The same is true of each row, except in this case it's a white wire with a colored stripe.

Each switch has an associated blocking diode as shown in Image 2.  Since current can flow in only one direction through the diode, the result is isolation of the switch when it's closed.  If this isolation is lost the switch matrix will exhibit bizarre behavior.  The root cause will be a reversed diode, shorted diode, switch improperly wired or diode lead touching one of the other switch lugs (this is common on switches where the pinball can hit them).

In some early solid state games there is also a capacitor across the switch.  The purpose of the capacitor is to  "stretch" the closure of the switch (extend the pulse width) so the CPU can reliably determine the switch has been closed.

Note: On WPC games switch 24 is always closed (there actually is no switch) and the blocking diode is located on the coin door board.

The inactive state of each column is high (test point A in image 5), thanks to the 12 volt pull-up resistor on the output of the ULN2803.  The inactive state of the row is also high (test point C in image 5), because of the 12 volt pull-up resistor on the input of the LM339. 

Note: There is an error in the WPC manual in regards to the switch matrix circuit in Image 5 (it shows a connection that does not exist), which has been noted in the image.

If you check at the switch while in the inactive state, both the column side of the switch and the row side (the side without a band) of the diode will be high.

When the system strobes the columns, the output of the ULN2803 on the CPU goes low (test point A in image 5) and the column side of all the switches in that column go low.   If a switch is closed, then the row side of the diode will be pulled down close to ground.  When the row goes low (test point C in image 5) the LM339 on the CPU senses a switch is closed.

If you check at the switch in active mode, the column side of the switch will be low and the row side of the diode will be low if the switch is closed or high if the switch is open.

The matrix strobes each column in sequence, pulling down column 1 and checking all of the rows, then strobes column 2 while checking all of the rows, and so on. This sensing happens at a rate of 500 reads per second.

Image 3 shows a pulsed signal alternating across the 8 columns.  The columns are strobed at 500 pulses per second, so there is 2ms between each column being pulsed.  So at 2ms column 1 is pulsed low, at 4ms column 2 is pulsed low, etc.

In Image 3, switch 43 is closed (column 4, row 3).  The system will read a low on row 3 when column 4 is pulsed (the blue line shows the current path) and determine the switch in column 4 and row 3 is closed.

By cycling through each column sequentially, the system can differentiate between the switches in each column while the rows are separated by the blocking diodes.  If a diode is shorted, or has been installed incorrectly, the system will get confused since the isolation between switches no longer exists.

In Image 4 switch 43 is pulsed low at 8ms and switch 73 goes low at 14ms so even though they are in the same row, the system knows two different switches have been closed.

Note: All matrix circuits are pulsed and are best tested with a logic probe or oscilloscope.

All testing should be done using the switch edge diagnostics and all balls removed from the game.  It's easy to miss relationships between different switches when in game mode.

Opto Boards

Keep in mind when troubleshooting switch matrix problems that optos work differently than mechanical switches.  Since there is no physical connection between the strobe and the return side of the opto, it cannot directly cause a problem like a shorted blocking diode can.  Instead the opto board can cause problems like ground short errors or symptoms that resemble a shorted diode.

As I will explain later, knowing which switches are closed is an important part of troubleshooting random switch indications.  In the case of optos though it doesn't matter if the switch is open or closed since there is no physical connection as described above.

If there are optos in the row or column you are having problems with, remove the connectors from the board and see if your problem goes away.

Troubleshooting the Switch Matrix

There are a few common problems you will come across with the switch matrix.

  1. I recently worked on the game or it's new to me and has matrix problems.
  2. All of the switches in a column are not working.
  3. All of the switches in a row are not working.
  4. Two or more consecutive, but not all switches, in a column or row are not working.
  5. Row or column of switches all show closed.
  6. Ground short error in switch edge test.
  7. Closing any switch in a row, or column, causes a switch in another row, or column, to indicate closed.
  8. Random switch indications.

Human Error

Before troubleshooting any problem, the first question to ask yourself is if you have recently done any work on the game.  Or if the game is new to you and has problems, never rule out mis-wiring by the previous owner.

If after replacing a diode/switch you have switches indicating closed when they shouldn't be the diode or the wiring is reversed.  Check your setup and make sure the band on the diode is oriented towards the switch and then the green wire (see Image 1).

An entire column is locked on or not working.  The column driver is extremely vulnerable to a short from GI lighting, the lamp matrix and flasher/solenoid power. Flasher and solenoid voltages can take a while to go to zero, so damage can occur even after powering off the game.

If one of these voltages does contact a switch, then as soon as the column driver (ULN2803) scans it, it overloads and fuses.  Flasher/solenoid voltages and above can blow through the ULN2803 and take out the 74LS374 that drives it, potentially crippling the CPU.

And as always check all connectors and then check them again.

Column Failure

First we'll cover a column of switches not working, and the first question we need to answer is whether the problem is on the playfield or the circuit board.  There are a couple of ways you can check this out.  The following method works fine or you can use the jumper method explained at the end of this document or the Siegcraft switch matrix tester.

The quickest approach is to test continuity between the column wire under the playfield (with the game off) and where the column connector is soldered to the circuit board (on the back side of the circuit board).  It is important to test to the board, not just to the connector, since you could have a bad connector. 

If we use Addams Family as an example, and column 3 is out, we can see from the manual (see Image 1) it's a green-orange wire and the connector is J207 pin 3.

While you're at it, also test from the strobe wire to ground just to make sure there's not a short.

If both tests read good, you've got a board problem.  If you want to confirm this you can use the jumper method at the end of this article.

If there is no continuity from the playfield to the board, check the connector and the last section of wire that runs from the playfield to the connector.  If you read a short to ground start tracing the wire from beginning to end looking for a short to ground.

If your problem is on the CPU board, it's a fairly simple circuit, although different manufacturers use slightly different designs.  Some will use a transistor as a driver and others will use an inverter or buffer.  In the case of Addams Family an inverter is used (see Image 5). 

Get your logic probe out and starting at the connector work back through each test point to find where the pulse is getting lost.

Note: The column test point readings in the manual are for use with an oscilloscope or logic probe, not a DMM.

Note: J206 and J207 (column drives) are electrically the same and the connector may go to either one.  The same is true of the two switch row connectors, J208 and J209.

Row Failure

The first part of troubleshooting the return circuit is the same as above; use your ohmmeter to test to the circuit board and ground or use the jumper method at the end of this article or the Siegcraft switch matrix tester.  If the problem is on the playfield, troubleshoot as above.

If the problem is on the CPU board see Image 5.  Get your logic probe out and starting at the connector work back through each test point to find where the pulse is getting lost.  The row you are testing needs to be jumpered to a column as described at the end of the article.

Note: The column test point readings in the manual are for use with an oscilloscope or logic probe, not a DMM.

Partial Row or Column Failure

The only way you can get a partial row or column failure is a wiring problem under the playfield.  The switches before the problem will work and the switches after the problem will not work since they're daisy-chained.  Use switch diagnostics while following the wire downstream and closing each switch (remember the manual will give you the wire color) until you find the point where the switches quit working.

Somewhere between the non-working switch and the last working switch the wire is broken or there's a bad connection.  The usual problem is a wire has become broken at the solder joint on the switch, which can often look like it's still connected so you should gently tug any suspect wires.

Row or Column, All Switches Show Closed

This problem is different than random switch indications in that triggering one switch will cause an entire row or column of switches to indicate closed.  This can be rather exciting when you hit one target and eight different things all happen at once.  You can verify the problem by going into switch diagnostics and manually closing the switch that causes the problem.

Note: Normally closed switches, or some types of board failures, can cause this problem to occur as soon as you start a game.

If the problem is with a column check the associated column wire for a short to ground.  Most earlier solid state games have a column driver transistor which is a common cause of this problem (the transistor number will be noted for each column on the switch matrix rather than an IC number).  On some games this will be reported as a ground short error.

These problems are typically caused by a row or column circuit staying low or high rather than being pulsed.  For a column problem, get out your logic probe and starting at the connector work back through each test point to find where the pulse is getting lost (see Image 5).  Do the same with the row circuitry for a row problem.

Note: The column and row test point readings in the manual are for use with an oscilloscope or logic probe, not a DMM.

Ground Short Error

The system will report the row number and wire color for the suspected ground short when in switch test mode (i.e. - Row - X, Wht - XXX).  Check the wire looking for something that is pinching it against a metal part or a diode/switch assembly that is bent and touching ground.

If you remove the row and column connectors and the error goes away the problem is most likely on the playfield.  If the error continues the problem is with the board.

To test the playfield, disconnect the column or row connector and check from the colored wire identified in the error to ground and see if there is a short.  If you do not read a short there is a problem with the switch matrix circuitry, most likely caused by shorting a high voltage to the switch circuitry.  See the associated row circuitry (LM339 and 74LS240, Image 5).

Column or Row Short

A column short is indicated by the following symptoms.  When any switch in a column is closed, another switch in the same row, but different column, will also indicate closed.  For example, on Addams Family the slam tilt (column 2, row 1) falsely indicates closed when the upper left jet switch (column 3, row 1) is closed. 

This will also happen in reverse and for every switch in that column.  For example, the upper left jet switch (column 3, row 1) will falsely indicate closed when the slam tilt (column 2, row 1) is closed.

This indicates a short between the column 3 wire (green-orange) and column 2 wire (green-red).  See Image 1.  The best way to find the problem is with a visual inspection.

A row short is indicated by the following symptoms.  When any switch in a row is closed, another switch in the same column, but different row , will also indicate closed.  This will also happen in reverse and indicates a short between the two row wires.

Random Switch Indications

Random switch indications occur when one switch is closed and another switch erroneously thinks it has also been closed.  For example, A ball hits the left sling and one of the pop bumpers fires.  This is typically caused by a reversed diode, a shorted diode, the switch improperly wired or diode lead touching one of the other switch lugs.  Any of these issues allows current to flow backwards and take a row low that shouldn't be low at that time.

While this is often a one to one relationship (one switch closes and one switch thinks it's closed when it isn't) there can be multiple one to one relationships.

Note: I've added a video at the bottom which briefly covers the switch matrix theory of operation and provides detailed information on troubleshooting shorted switch diodes.

In Image 6 you can see a shorted diode at column 3 row 4.  Note the switch at column 6 row 4 is closed and nothing bad is happening.  Everything will work as expected because although the diode is shorted its associated switch is open.

In Image 7, the switch at column 6 row 4 is closed and the switch with the shorted diode is now closed.  Again, nothing bad will happen because all of the other switches in that column are open.  But when one of the other column switches is closed...

In Image 8, the switch at column 3 row 2 is closed in addition to the previous switches.  Now bad things start to happen.  The shorted diode and the closed switch allow row 2 to be taken low when column 6 is pulsed low.  So the system falsely thinks the switch at column 6 row 2 is closed (see yellow circle).

In summary, the following must all happen for the problem to show up: the switch with the shorted diode must be closed, another switch in the same row must be closed and another switch in the same column must be closed.

The combination of three closed switches is not as unlikely as you think when you consider multiball, NC switches and commonly closed switches (ball locks or ball trough).

If you map out the three switches on the switch matrix you will have three corners of a rectangle and the fourth corner of the rectangle provides us with a fourth switch.  The shorted, or reversed, diode will be on one of these four switches.

Always use the switch edge test when troubleshooting random switch indications.  It addition to providing a graphical display of the problem, you will often find false indications that you weren't even aware of.

If the problem occurs all of the time, the following technique will often quickly identify the problem.

Remove all the balls from the game and hold open (use a business card) any normally closed switches.  If that solves the problem then add the balls back, or open the switches, one by one to identify the specific switch. 

Then use the switch matrix diagram to map out your problem using the three switches (the one you just identified, the falsely indicating switch and the switch that causes the problem to show up).

If the problem occurs randomly during a game, you need to identify the pattern.  For example, when switch A is closed and switch B is closed and switch C is closed, the system thinks switch D is closed (keep in mind any NC or commonly closed switches).

Unless you're lucky and two switches you identify are opposite corners on the rectangle, you will need to identify three switches.

If you are able to identify the pattern, finding the shorted diode is then easy using the previously described rectangle approach.

Note:  Odd cross-column effects can also be caused by a flaky ULN2803 on the CPU board.  A borderline chip will still pass the jumper test described below.  (Thanks to Pam at Pinbits.com.)

Testing Columns and Rows

Caution

Do not use this, or any, jumper method unless you know what you are doing.  It is not uncommon for beginners to cause severe circuit board damage by shorting pins or applying high voltage to a low voltage circuit.

For the jumper cable I recommend either a mini-grabber (also called mini-clip) or a .1" female to female jumper.   You can get the latter at most electronics stores in a variety of lengths, but 6" works well.  If you need to jumper more than one row/column at a time you will need a 1N4004 diode installed in the jumper.  This is not necessary for the procedure below, but is required for more advanced testing.  The end of the jumper with the banded side of the diode should be placed on the column side when testing.  

The connector and switch info are for Addams Family (use Image 1 as a reference), but you can use this procedure with any machine.  Just check the manual to identify your row connector and column connector, the pins for each row and column and the switch numbers.

Note: J206 and J207 (column drives) are electrically the same and the connector may go to either one. The same is true of the two switch row connectors, J208 and J209.

Use the following procedure to test each column.

  1. Remove J209 (return connector) and J207 (send connector).
  2. Turn on the game and enter switch edge diagnostics.
  3. Put one end of your jumper on pin 1 of J209 (row 1).
  4. Place the other end of your jumper on pin 1 of J207 (column 1)
  5. Switch 11 (column 1, row 1) should indicate closed on the display.
  6. Move the jumper on pin 1 of J207 to pin 2 (column 2).
  7. Switch 21 (column 2, row 1) should indicate closed.
  8. Continue testing each column by moving the jumper.

Use the following procedure to test each row.

  1. Remove J209 (return connector) and J207 (send connector).
  2. Turn on the game and enter switch edge diagnostics.
  3. Put one end of your jumper on pin 1 of J207 (column 1).
  4. Place the other end of your jumper on pin 1 of J209 (row 1)
  5. Switch 11 (column 1, row 1) should indicate closed on the display.
  6. Move the jumper on pin 1 of J209 to pin 2 (row 2).
  7. Switch 12 (column 1, row 2) should indicate closed.
  8. Continue testing each row by moving the jumper.

Contributors
Martin at Pinbits for help with common problems, troubleshooting and matrix explanation.