and the story of the
The CPU Board Tester currently handles Williams
Systems 3 through 11 and DataEast boards.
Note: I have several repaired System 9 and 11 boards for sale, and I also repair System 3-11 and DataEast boards. Please contact me for details.
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 bench by
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 the
5V supply is about 1.25 Amps. For the scope, I decided to use my
National Instrument's DAQScope card, which plugs into one of my
laptop's PCMCIA card slot. This allowed me to take easy snaps of
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 to pull up
documents from the web using my Wi-Fi connection. Note the playfield
setup on the rotisserie in the background.
I first washed the board with alcohol and a brush to remove the
built-up dirt and dust. Since there was no relay or anything like
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 the
core CPU functions (processor, RAM, ROM, busses, etc) are fine.
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 7404). I will replace this with a socketed part.
Hitting the sound CPU test button (SW2) showed this subsection working fine (speaker produced a game sound). I then plugged in a spare speech board into the CPU, and it passed all sound tests including speech.
After some successful initial checks, I plugged the lamp matrix 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 to 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 U7 was missing (a 7402). An IC socket was soldered into this location, and a part was plugged into it. Everything in this section checked out fine after this.
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 ROM, I checked 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 communication to this display board is a dual 4-bit bus with 16 strobes. The 4-bit bus communicates the BCD code of the digit. Since there are two of these busses, and 16 strobes, a total of 32 digits can be controlled. These digits are arranged among the four player score 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 difficult 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 LED display that has an integral BCD decoder, such as the TIL308. This kind of display can interface directly to the CPU board without any additional logic. The disadvantage is that these displays are hard to find and can be expensive. However, it is good for easy 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 to 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. It showed that this circuit was correctly reading the CPU's numeric data. Woohoo!
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 additional logic is needed to show digits with this display,
and no high voltage is needed.
Another interface that is multiplexed
is the lamp matrix. On the playfield, at the intersection of each
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 be
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, I
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 components.
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, I received
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 the
background board is about 5"x7".
The tester includes:
10x8 dot matrix grid to display the 8x8 lamp matrix and the 2x8 main solenoids.
Two dip switches and one momentary switch to select one of the 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 plasma
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 LEDs
and the DIP switches. All interface would have been through the
PC. It would have been slick to load the image of the backglass
and playfield into the PC user interface, and have a simulated machine
light up. Sort of like a 'virtual pinball', but with a real CPU
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 test System 11 boards, but will require modifying the Microprocessor code and additional supporting hardware (for the alphanumeric displays). Since the interfaces above are generic, I suspect it would also be able to test CPU boards from other manufacturers.
Schematic Capture and Board Layout
After some interruptions to complete the Space Shuttle Playfield Renovation, and some other 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 ORCad. This
is one of three pages. This page has the
Microcontroller for the score display.
Layout of the circuit board done in FreePCB. The size is 6"x7".
Unlike the concept, the actual CPU
tester board will be rearranged differently, and will not include the
TIL308 display. I decided since these are hard to find, and not
as funcational as the LCD display, that I would omit this device.
Completed circuit boards and
The layout of the circuit board was done using a freepcb. A great software package that generates Gerber files. I then sent the Gerber files 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 excellent.
Finished circuit boards for the CPU tester. This initial run is
The partially assembled CPU tester. The layout departs from the 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 bottom right and
another in the top left. In this setup, I could see all the lamps on the matrix work
without a 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. This 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 software
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 layout of
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 its
an analog input, and the fourth line of the LCD display shows the
voltage on that pin. This implements a DVM (Digital Volt Meter)
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 DVM function
right into the CPU Tester. Voltages on the CPU board can be
measured to verify their correctness.
The CPU tester can also be placed
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. This shows the signal
on the strobe control line for the numeric display. Compare to
Each pixel represents about 1 Volt in the vertical direction.
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 when started
in System 3-7 mode. Note the "Sys37".
System 3 through 7 machines use 6
digit glass displays, and the ordering of the digits with respect to
the strobe control lines is different than System 9. This causes
a confusing jumble of digits on the LCD display if the strobes are not
System 4 CPU and driver board
connected to the CPU tester.
Output of the tester with a simulated
four player game in progress.
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 the
score increments correctly, I could verify the micro's code. The
above display shows 8 credits, and we are in the middle of ball
2. Player 1's score is 508,550 points, etc.
System 8 compatibility
System 8 board under test
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 this
board has the plasma display driver integrated onto it, I needed to
apply +/-100V and connect 7-digit displays directly to it. I only
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
Video of above board with completed test
System 11 compatibility
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. To support this, Williams added a 26-pin connector on the board. The additional number of I/O lines exceeds the capacity of the Microprocessor 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 (System 11b).
In February 2013, I researched compatibility of this tester with DataEast/Data East boards and found that my tester could be used with a specific procedure, so I added this section to the manual. This is true for Version 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 to
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 assembly and
Six of the first units to be assembled. They are each tested by
plugging them into the System 9 CPU on the right.
These are ready to ship! I just need to fill them with foam peanuts.
A second batch being assembled and tested. Note the LED bar graph 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
With the tester, I repaired the second (non-working board) that I purchased on ebay. The special solenoid section had major damage 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 damage.
This was a board that Keith Apgar sent me to repair. It is the 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 all. This makes it the most difficult to troubleshoot as the problem could lie anywhere on the board. After a few days of troubleshooting, I concluded that the CPU's data bus was being corrupted. By removing each chip from the data bus one at a time, I found out that U5 was bad. This is the PIA that handles the blanking control, the plasma display and the 7-segment display.
Case #2. This board did not boot at all. It turns out U5
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 was
quite a victory, and represented the most challenging repair to
date. In addition to U5, I also found that U4, U6, and U7 were
This board was a System 4 board from my Flash machine. The CMOS RAM (5101) and a PIA (6821) was replaced. The former resulted in 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 board
This was a board I bought on ebay for $10 (+$10 shipping). It could have been a real 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 up and passed their self-tests. Other than some missing parts such 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 oscillator.
Note the "0" on
the display showing that the CPU passed all its self-tests. Note the rev
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 a 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 board 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 the 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 in the area of the lamp matrix resistors. The damaged traces were 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) the
low gate current eliminates the bulky and hot resistor. 2) the
whole area will run cooler and be less stressful on the board.
I selected the "FQP17P06", a P-channel MOSFET, available from Digikey, due to the following atributes:
Since this is a high side driver, a P-channel device is needed.
The pin order is G-D-S, allowing direct insertion of the new part 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 to be negligible.
Vgs of 4V, which will easily turn on with the drive from the predriver.
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 were
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.
A thread on RGP discussing MOSFET replacement.
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 System
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.
Moved to Sound Test section.
I use Leon's (R.I.P.) 'flasher' test chip to test the 1J21 and 1J22 parallel IO ports. There are a lot of pins there, and they pass through the often damaged battery holder area. This works quite well for most of 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 another IO 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. A
4-position DIP switch completes the fixture. By doing a minimal
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 verifies
continuity of the traces.
Note: I have several repaired System 9 and 11 boards for sale, and I also repair
Testimonial from a board repair customer (System 7 repair):
From: 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 never
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 services.you are
the best at what you do.
Another happy customer (IV McNamara) 3/15
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 minutes 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 it and suggested I sell it for parts. Thanks for rescuing it. It is truly appreciated.
All good things
Scott Zellner (May 2019)
(c) 2010 Edward Cheung, all rights reserved.