The CPU Board Tester currently handles Williams
Systems 3 through 11 and DataEast boards.
several repaired System 9 and 11 boards for sale, and I also repair System 3-11 and
DataEast boards. Please contact
me for details. I no longer sell the Board Tester.
In order to learn about
how to repair
the System 9 CPU board, I purchased a non-working unit from Coin Op Warehouse.
Compared to System 3 through 7 and System 11 parts, System 9
boards appear less
frequently on ebay. About 1-2 units come up per month in the
price range of $75. After several months of watching the
auctions, I decided to contact Lloyd, and he had one at a reasonable
Photo by the seller with the original state of the CPU board.
It had a few missing parts and it had "Strike Zone" ROMs installed (a
I setup my initial test
first setting up an ESD safe work area to set the board onto, along
with a wrist strap. For the power supply, I used a benchtop
supply that supplied +5, and +/-12V. The current needed from
5V supply is about 1.25 Amps. For the scope, I decided to use
National Instrument's DAQScope card, which plugs into one of my
laptop's PCMCIA card slot. This allowed me to take easy snaps
the screens, and served as a means for me to pull up reference
documents (datasheets, web pages, etc) without having to run to my
My initial testbench. The laptop was my scope and allowed me
pull up documents from the web using my Wi-Fi connection. Note the
setup on the rotisserie in
I first washed the board with alcohol and a brush to remove
built-up dirt and dust. Since there was no relay or anything
that, all parts could be washed in the fluid. One benefit is
that it removed dirt from the Molex connectors.
To my relief, the 7-segment display showed "0" after power
up. This means that all the CPU self-tests passed and that
core CPU functions (processor, RAM, ROM, busses, etc) are
If the 12V supply is disconnected during power up, the display shows
"7", which means that the CPU is halted and that the "0" was
intentionally written by the CPU.
When I hit the CPU test button (SW1), the display showed
"5". This meant that the CPU read that the coin door was
closed. I traced this to a bad output on U41 (a
will replace this with a socketed part.
Hitting the sound CPU test button (SW2) showed this
working fine (speaker produced a game sound). I then plugged
spare speech board into the
CPU, and it passed all sound tests including speech.
After some successful initial checks, I plugged the lamp
from my playfield (in the rotisserie stand) into the CPU board, and all
the lamps on the playfield lit up! The kids and I were amazed
see the board on the table perform the attract mode light show just
like the one in the machine.
For the special solenoids (pops and slings), I found that
missing (a 7402). An IC socket was soldered into this
and a part was plugged into it. Everything in this section
checked out fine after this.
The K1 flipper relay was missing when I received the board.
found a socket for it, and a
4PDT power relay.
Two of the TIP122 solenoid driver transistors needed to be
replaced due to them being missing or their installation was suspect
(blobs of solder, etc). Using Leon's test
out all 16 drivers. This successfully completes the
initial checkout of all the parts of the board, and all circuitry on
the board appears
to be operational.
Test fixture breadboard
The CPU board normally connects to a display driver board which in turn
connects to the plasma displays in the machine. The
to this display board is a dual 4-bit bus with 16 strobes.
4-bit bus communicates the BCD code of the digit. Since there
two of these busses, and 16 strobes, a total of 32 digits can be
controlled. These digits are arranged among the four player
and the ball/credit displays.
During the initial checkout above, I could tell all lines to the
display driver board were toggling. However, it is very
to tell what the numeric information is without some specialized
hardware. Although I have a spare display board, and plasma
displays, I would also need to hookup a power supply board for the
+/-100V supply. This in turn would need a cabinet
transformer. Although I do have all these items as spares, it
would quickly become unwieldy. I decided instead to use an
display that has an integral BCD decoder, such as the TIL308.
of display can interface directly to the CPU board without
additional logic. The disadvantage is that these displays are
hard to find and can be expensive. However, it is good for
checks to make sure the logic that controls the display board is
working. I just need to use a test clip to select which digit
show by clipping to the corresponding strobe line.
Once I had the display wired up, I could read (one digit at a time)
"2535" on the Player 1
display. This is the model number of the machine.
that this circuit was correctly reading the CPU's numeric
The initial connection of the decoded LED display to the CPU
board. Note the MSI circuit under the encapsulation. It
decodes the BCD information and latches it between digits. No
logic is needed to show digits with this display, and no high voltage is needed.
Another interface that
is the lamp matrix. On the playfield, at the intersection of
row and column of the matrix is a light bulb in series with a
diode. It occurred to me that a standard LED dot matrix could
a compact tester for the lamp matrix. As a quick test, I used
some quick clips to connect 1J6 and 1J7's pins to the pins of the dot
matrix. When I powered up the board and reset the CPU board,
was rewarded with the glittering attract mode light show on the dot
matrix display. Neat to see the idea actually work.
As a quick test, I used some quick clips to connect 1J6 and 1J7 to
the 5x8 LED matrix. The CPU board can interface to this display without any additional
By putting the CPU board into lamp test,
every lamp on the playfield will flash.
CPU Board Tester Project
After I built the System 9 Playfield tester,
a few e-mails about building a tester for the CPU board. I
decided to combine the ideas explored above into a unit for testing the
many types of I/O that are furnished by a pinball CPU board.
Concept photo of the Pinball CPU board tester. The size of
background board is about 5"x7".
The tester includes:
10x8 dot matrix grid to display the 8x8 lamp matrix and the
Two dip switches and one momentary switch to select one of
64 switches to close in the switch matrix.
One dip switch and LED bar graph display for the special
solenoids (pops & slings).
A Microprocessor and 20x4 digit LCD display for all the
displays such as the player score and the credit/match displays.
Since the processor will be programmed to read all the score
information, its code could be modified to display the data on a
Desktop PC, an alternate
display, or over the
internet. Another approach would have been to use an
FPGA. This would have allowed me to absorb all the I/O into a
single device, and put the user display on a PC (connected via USB or
serial). In that case, I would do away with the dot matrix
and the DIP switches. All interface would have been through
PC. It would have been slick to load the image of the
and playfield into the PC user interface, and have a simulated machine
light up. Sort of like a 'virtual pinball', but with a real
board. However, the cost increase would have been significant
(double or more). One advantage of this approach, is that the
FPGA could be reprogrammed to test a variety of CPU boards.
Although intended for testing System
9 CPU boards, my cursory look at the other system shows that it should
be able to test System 3 through 9. It can also be made to
boards, but will require modifying the Microprocessor code and
additional supporting hardware (for the alphanumeric
Since the interfaces above are
generic, I suspect it would also be able to test CPU boards from other
Capture and Board
Layout After some interruptions to complete the Space Shuttle
activities, I returned to the CPU tester project. With steady
work, I completed the schematic capture and the layout of the board.
Schematic drawn in
is one of three pages. This page has the Microcontroller for the
Layout of the circuit board done in FreePCB. The size is
Unlike the concept, the
tester board will be rearranged differently, and will not include the
TIL308 display. I decided since these are hard to find, and
as funcational as the LCD display, that I would omit this device.
Completed circuit boards
The layout of the circuit board was done using a freepcb. A
package that generates Gerber files. I then sent the Gerber
that were created from the layout process to Advanced Circuits.
After only three days, the finished boards arrived at our
doorstep. The online tools and the turn-around time were
Finished circuit boards for the CPU tester. This initial run
The partially assembled CPU tester. The layout departs from
concept, to optimize bench space when it is located next to the CPU board.
Testing on my workbench. Note the System 9 board in the
right and another in the top left. In this setup, I could see all the
on the matrix work
rats nest of jumper wires. It was very cool.
Scope picture of two of the 16 strobes of the display interface. Note the period is about 15 msec, and each strobe is activated
for slightly less than 1 msec.
Sept 09 Update: The IRQ on System 3-11 fires every 928 usec.
is the source of the "less than 1msec" timing reported above.
The display board has no latches on the BCD data. Thus the
data is kept between strobes by persistence in the displays. This
shows that the Microprocessor should sample the BCD data after several hundred usec after the strobe goes low. The
strobe line should be polled once every 100 usec.
Development of the Micro
Once the circuit board was verified to be correct, I started on the
development of the software for the Microprocessor. This unit
controls the LCD panel and implements the score/numeric display.
Power-on banner of the CPU tester display. It shows the
the digits. Each of the four players are shown in the top two lines, and the credit (CR) and ball (BL)
display are below them.
This banner appears for one second after power-up.
In addition to the
normal function of
showing/testing all the numeric
digits of the score displays, I added two special features: DVM and
scope mode. The microprocessor is programmed to use one of
an analog input, and the fourth line of the LCD display shows the
voltage on that pin. This implements a DVM (Digital Volt
The display showing the numeric digits that are being sent by the CPU
board. Note the voltage reading on the bottom line. It implements a
function right into the CPU Tester. Voltages on the CPU board can be
measured to verify their correctness.
The CPU tester can also
into 'scope mode'. This is similar to the function of the osziFOX.
the user to checkout the signals along the chain for the
various switch, lamp and solenoid matrices.
One additional feature is the simple oscilloscope display.
shows the signal on the strobe control line for the numeric display. Compare to
image. Each pixel represents about 1 Volt in the vertical
The horizontal resolution
is still to be determined, but
can be as fast as about 100k samples/second.
System 3-7 Compatibility
Although similar to
System 9 (bcd
data is sent from the board to the display driver), the interface
format for System 3 through 7 is sufficient enough that I decided to
add a special section to the code to handle this form of display.
Display of the CPU Tester
in System 3-7 mode. Later, the code was revised to handle 7 separately.
System 3 through 7
machines use 6 or 7
digit glass displays, and the ordering of the digits with respect to
the strobe control lines is different than System 9. This
a confusing jumble of digits on the LCD display if the strobes are not
System 4 CPU and driver
connected to the CPU tester.
Output of the tester with
four player game in progress. Note the six digit display of a System 3-6.
To verify that the display code was
written correctly, I put some credits on the System 4 board, and
started a four player game. By hitting targets, and verifying
score increments correctly, I could verify the micro's code.
above display shows 8 credits, and we are in the middle of ball
2. Player 1's score is 508,550 points, etc.
output on a 7 digit system such as 6A and 7 is shown below. In
this case, the machine has 9 credits, is on Ball 1, and the Player 1
has a score of 6500 points. Current modes for display are System
3-6, System 7, System 9, or System 11. They are selected on a
rotating basis by pushing the "Advance" button upon power up of the
Output of the tester on a seven digit system such as System 6A and 7.
was sent a System 8 to repair in 2017, and after some studying of the
schematics figured out how to connect it to my tester. Since
board has the plasma display driver integrated onto it, I needed to
apply +/-100V and connect 7-digit displays directly to it. I
needed to make the simple high voltage power cable (near the bottom in
the image), and after some continuity checks, was able to get the
The display is handled very differently with a System 11 board from the
previous Williams Systems. Instead of BCD, the computer board
controls the segments of the alphanumeric display directly.
support this, Williams added a 26-pin connector on the board.
additional number of I/O lines exceeds the capacity of the
on the CPU board, so the display is tested one half at a time.
Development of the interface with a Big Guns System 11 board.
Although a bit awkward, the user
swaps two cables to allow observation of the left and right half of the
The two halves of the display put together (left and right). Obviously, this is for a "Big Guns" machine running Rev 8 software
February 2013, I researched compatibility of this tester with
DataEast/Data East boards and found that my tester could be used with a
procedure, so I added this section to the manual. This is
1 (single row alpha), and Version
2 boards (dual row alpha), and mostly true for Version
3 (DMD - see below).
DataEast/Sega CPU board under test (Version 3 shown here).
the Version 3 and 3b
games of this series used a DMD, ROM software from
those games cannot be used for test. The user needs to switch
older software to test the board or else, hes/she cannot read the
messages the software is displaying. More details are listed
in the manual.
Initial round of
Six of the first units to be assembled. They are each tested
plugging them into the System 9 CPU on the right.
These are ready to ship! I just need to fill them with foam
A second batch being assembled and tested. Note the LED bar
is of a different color.
A new batch of boards with revised artwork to correct a small mistake
on the first rev. Note the model number is now W1A, and a new date (bottom right corner).
This unit was assembled by Richard (Firepower pinball) in 2010.
Using the tester Case #1
With the tester, I repaired the second (non-working board) that I
purchased on ebay. The special solenoid section had major
and burn marks.
Original state of the special solenoids section. Lots of burn
Repaired special solenoid section. I replaced U6 and U7
(socketed), the flipper relay
transistor, four driver transistors, and removed the baked-on carbon
This was a board that Keith Apgar sent me to repair. It is
first board I have seen that showed a "7" on the 7-segment display on
power-up. This indicates that the CPU will not boot at
This makes it the most difficult to troubleshoot as the problem could
lie anywhere on the board. After a few days of
concluded that the CPU's data
bus was being corrupted. By removing each chip from the data
one at a time, I found out that U5 was bad. This is the PIA
handles the blanking control, the plasma display and the 7-segment
Case #2. This board did not boot at all. It turns
that it has been removed (it is normally located
to the upper right of the battery bank).
After U5 was removed,
the CPU board
finally booted up, and ran Leon's test ROM just fine. This
quite a victory, and represented the most challenging repair to
date. In addition to U5, I also found that U4, U6, and U7
This board was a System 4 board from my Flash machine. The
RAM (5101) and a PIA (6821) was replaced. The former resulted
the machine powering up in Audit mode, and the second caused the
displays to go blank once the RAM was replaced. For more
information, see here.
Testing with a System 4 board. Photo shot before the driver
This was a board I bought
ebay for $10 (+$10 shipping). It could have been a
steal, or a real dog. When I got it, it was very dirty (see here), but a wash with
alcohol and a soft
long brush cleaned it up nicely. I then hooked it up to the
tester and quickly realized that the crystal oscillator was not
running. After replacing that, the main and sound CPU booted
and passed their self-tests. Other than some missing parts
as a few transistors, the battery holder
and the cover for the relay, the board is complete.
This board worked after replacing the 4 Mhz crystal
Note the "0" on
the display showing that the CPU passed all its self-tests.
5 software on the
ROMs (visible on the LCD display).
This repair included the CPU board, power supply board, display board,
and all five displays. Comment by the owner below.
Got the board today. Installed it, plugged it in, said
prayer and turned it on and it fired right up! I about hit the ceiling
and could not believe that (most everything) worked. All I need to do
is make a few adjustments and that's about it. Another Space Shuttle
brought back to life---and in part directly due to you!
Thank You so much for your help in fixing the power
for me. Just so you do know, for whatever reason, the game would not
start and/or respond to the start button prior to you fixing
board. As soon as I get the bugs out of it I'll fire you off a few pics
of it. This was the first game I ever took completely apart,
fixed and reassembled so I'm really pumped up about it.
Thanks again Ed!
This was a System 11 repair. The board suffered burn damage
the area of the lamp matrix resistors. The damaged traces
replaced with wiring, but the job was poorly done.
Original condition of the lamp matrix of Case #6, a System 11A board.
I decided that this
board was a good
candidate for a MOSFET upgrade. This has many advantages: 1)
low gate current eliminates the bulky and hot resistor. 2)
whole area will run cooler and be less stressful on the
I selected the "FQP17P06",
MOSFET, available from Digikey, due to the following
Since this is a high side driver, a P-channel device is
The pin order is G-D-S, allowing direct insertion of the
into the old hole pattern on the board.
Max current is 17 Amps. More than enough to do
the job here.
94 milliOhm typical Rds on resistance. Low enough
Vgs of 4V, which will easily turn on with the drive from
At $0.66 in quantities of ten, they were a good price.
In addition to removing the old power resistors, I also replaced all
the Darlington pre-driver transistors with 2N2222A NPN switching
transistors in a metal can. Some of the existing Darlingtons
damaged, and I wanted all 8 high-side drivers to match. After
repairing the burn damage to the board with epoxy, polyurethane and
acrylic paint (mixed to match the color of the existing board), I
replaced the missing wiring with thin black wires, and the circuit
worked like a champ on the CPU tester.
The area of the board was repaired with epoxy, polyurethane and acrylic
paint. Then, the wiring was replaced.
Side note (Aug 2020). The 8
Amp lamp matrix fuse on the power supply board can be reduced. A
customer of mine tried a fast blow 2 Amp fuse and it did not blow,
although it glowed a faint orange at times (Space Shuttle - attract
mode). So he switched to 3 Amp slow blow and it worked fine.
Converted 11A board.
board was an original 11 board, and then converted by the Williams
factory to a System 11A. I have seen these referred to as
11a (note small "a"). One can see the original 7-segment LED
display board layout was not used, and then individual LEDs used
instead. Photo added 2/2012.
I use Leon's
'flasher' test chip to test the 1J21 and 1J22 parallel IO ports.
There are a lot of pins there, and they pass through the
damaged battery holder area. This works quite well for most
the pins, but some of the pins on 1J21 (connected to Port C) do not
flash (despite his last update on Version
5 that said it would). I then have to do a tedious
continuity test of all those
pins. In early 2016, I hit on a good fixture to test those.
It involves individually connecting the Port C pins to
that is flashing (via a switch), and then verifying the flashing back
at the PIA Port C pin.
Special test fixture to test 1J21. This connector is similar
to the adjacent
1J22 dual row header connector.
fixture (pictured above) consists of a female header that plugs into
1J21, onto which is soldered a tiny perforated circuit board.
4-position DIP switch completes the fixture. By doing a
amount of wiring under the board, I can selectively short or open the
output in question to a flashing IO line.
Partial schematic of 1J21. Output pins CA1 (and similar) do
not flash with Leon's
test ROM. So to test those, a switch on my test fixture
shorts that output to
1J21-10 and I verify the flashing at the PIA pin. This
continuity of the traces.
I have several repaired System 9 and 11 boards for sale, and I also repair Williams 3-11 and
DataEast boards. Please contact
me for details. I no longer sell the Board Tester.
Testimonial from a board repair customer (System 7
Timothy Borlie Sent: Saturday, November 24, 2012 10:43 AM
i have had my pinball machine
for 20 years, it has never
worked right.i had a service tech from a large company work on it they
could find the problem.you fixed the machine it works better
than it ever
did. every thing that was wrong now works.thank you for your
the best at what you do.
Another happy customer (IV
Shane was so happy with my work
that he printed this
picture to hang in his gameroom (4/15)
Another happy customer: Thomas P with the System 11 board (9/16).
Christmas card from the family of a happy customer.
We final got to putting the
Comet back together. It
plays beautifully. I installed LEDs from Comet
pinball and the game
lights up beautifully. I have been playing it for the past 45
after everyone here went home. I cant thank you
enough. The local
repair guy said the game was a complete failure and there was no fixing
suggested I sell it for parts. Thanks for rescuing
it. It is truly