Difference between revisions of "Bally/Stern"

From PinWiki
Jump to navigation Jump to search
Line 66: Line 66:
 
===Bally MPU -133===
 
===Bally MPU -133===
  
*Baby Pac-Man (pinball video game hybrid)
+
*[[Baby Pac-Man]] (pinball video game hybrid)
 
*Big Bat (bat game)
 
*Big Bat (bat game)
 
*Grand Slam
 
*Grand Slam

Revision as of 12:44, 24 April 2011

ExclamationPoint.jpg
Note: This page is a work in progress. Please help get it to a completed state by adding any useful information to it.


1 Introduction

Put system info here

2 Games

A list of solid state games by system and manufacturer (including those that aren't necessarily pinball). Source: http://www.ipdb.org

2.1 Bally MPU -17

  • Freedom
  • Night Rider
  • Black Jack
  • Evel Kenievel
  • Eight Ball
  • Power Play
  • Mata Hari
  • Strikes & Spares

2.2 Bally MPU -35

  • Lost World
  • The Six Million Dollar Man
  • Playboy
  • Voltan
  • Future Spa
  • Star Trek
  • Kiss
  • Paragon
  • Harlem Globetrotters
  • Supersonic
  • Dolly Parton
  • Nitro Ground Shaker
  • Silverball Mania
  • Space Invaders
  • Rolling Stones
  • Hotdoggin'
  • Mystic
  • Viking
  • Skateball
  • Frontier
  • Xenon
  • Flash Gordon
  • Eight Ball Deluxe
  • Embryon
  • Fireball II
  • Fathom
  • Medusa
  • Centaur
  • Elektra
  • Vector
  • Rapid Fire (flipperless)
  • Mr. & Mrs. Pacman
  • Speakeasy
  • Spectrum
  • BMX
  • Eight Ball Deluxe
  • Centaur II
  • Gold Ball
  • Grand Slam
  • X's & O's
  • Kings of Steel
  • Black Pyramid
  • Spy Hunter
  • Fireball Classic
  • Cybernaut

2.3 Bally MPU -133

  • Baby Pac-Man (pinball video game hybrid)
  • Big Bat (bat game)
  • Grand Slam
  • Granny & The Gators (pinball video game hybrid)

2.4 Stern M-100 MPU

  • Cosmic Princess
  • Dracula
  • Hot Hand
  • Lectronamo
  • Magic
  • Memory Lane
  • Nugent
  • Pinball
  • Stars
  • Stingray
  • Trident
  • Wild Fyre

2.5 Stern M-200 MPU

  • Ali
  • Big Game
  • Catacomb
  • Cheetah
  • Cue
  • Dragonfist
  • Flight 2000
  • Freefall
  • Galaxy
  • Hypnox
  • Iron Maiden
  • Lazer Lord
  • Lightning
  • Meteor
  • Nine Ball
  • Orbitor 1
  • Quicksilver
  • Seawitch
  • Split Second
  • Star Gazer
  • Viper

3 Technical Info

3.1 Bally/Stern MPU Board LED Flash Sequence

Bally and stern boards on startup have an LED that flashes to tell you the results of tests of various parts of their system. This section explains what is being tested and how, according to information from the Bally "FO-561-2 Theory of Operation rev. 5-1982" manual, and the Stern manual "Theory of Operation, Stern's Microprocessor Controlled Solid-State Games".

When power is first applied to the mpu board, the led by default is ON. The very first set of valid instructions in every bally/stern game is to turn the led off. This is more of a flicker than a flash, so is not counted as a flash in the 7 flash sequence.

3.1.1 Quick summary

Flicker: MPU reset good, program booted.
1st Flash: ROM Checksums OK
2nd Flash: U7 6810 ram OK
3rd Flash: U8 5101 ram OK (U8 & U13 on mpu-200)
4th Flash: U10 PIA OK (see details for caveats)
5th Flash: U11 PIA OK (see details for caveats)
6th Flash: U12 555 Display interrupt timer OK
7th Flash: Zero crossing interrupt detector OK (solenoid voltage present)

3.1.2 First flash:

After the program is running (led flicker tells you the cpu chip was able to start a valid program stored in the eproms) the program performs a checksum of all program chips u1-u6. Most Bally games' programming is split between an operating system chip U6 and a game rom chip U2; Stern's games were a little looser - the operating system and game code are freely interspersed.

Bally checksums are calculated by summing each byte, discarding any carries. Most games check their code in $0400 blocks, so it would be possible to determine down to the chip which chip failed this checksum. (A 2716/9316 chip has hex $0800 space available in it - 2732 sized images are $1000 in size. The smallest chip used was a 474 PROM which has $0200 bytes available) However, to do so would require a way to read the X register from the 6800 cpu chip at the time of checksum failure, so if you do not get the first flash, it is best to replace the U6 chip first, then move onto the other chips U5, U2, and U1 (if present).

Stern checksums are calculated similarly, but not in chunks - the entire program space is summed and must equal $00 for the first flash to occur.

Regardless of the manufacturer being Bally or Stern, after the checksum is passed, the first flash occurs.

3.1.3 Second flash:

Next, the program tests the 6810 RAM chip at U7, by writing the data $00 to each memory location contained in the ram ($00-$7F). It then reads back each location to ensure that $00 is returned. It increments the data to $01 and repeats this test; this continues until the data read back is $FF (256), the maximum value any one byte can store in the RAM. It then increments the memory location being tested, and repeats the $00-$FF data storage test. If any of the tested locations returns an unexpected result, the program stops, alerting you to a problem with U7 (since you got the first rom checksum flash, but not the 2nd U7 OK flash)

3.1.4 Third flash:

Now, the program tests the 5101 Non-volatile RAM chip at U8 (U8 AND U13 on Stern mpu-200 boards). The 5101 stores bookkeeping data, game parameters, high scores, replay levels, etc. The program tests this ram ($200-$2FF) by reading the original nibble/byte (see sidebar) and saving it in a temporary location, then storing a test pattern in the location similar to the U7 test. After the byte successfully passes the test, the original data is returned to the location, and the program loops onto the next byte.

LEARN MORE: How does a 128 byte 5101 RAM occupy 256 memory locations?

If you look at a pinout of the 5101 memory, you will notice it is a 128 byte device. Yet, it is addressed by the mpu via 256 memory locations ($200-$2FF). This is because the 5101 is actually a 256 nibble device - a nibble is a half-byte (4 bits). So data stored to a 5101 in a pinball machine actually only stores half of the data byte being sent to it. Which half depends on the board design - Bally and Stern use the upper nibble for storage, and Williams used the lower nibble. Stern mpu-200 boards have an additional 5101 at U13 - this stores the lower nibble in conjunction with U8 storing the upper nibble of a byte saved to $200-$2FF, allowing mpu-200 games to store more data and avoid doing some fancy processing in getting the data in and out of the non-volatile ram area.

For example, here's some pseudo-machine code for what happens: LOAD #$24 (the data you want to store is 24); STORE $231 (you want to store the data 24 at memory location $231); READ $231 (you want to read back the data you just stored). The data returned is not #$24 as expected, but rather #$2F. The lower nibble was never stored, as the 5101 memory does not store data as bytes but rather as nibbles. To store #$24 properly would require splitting the byte into its nibbles '2' and '4', storing the 2 in one memory location, doing some shifting to the 4, and storing it in another memory location.

Showing the byte as binary might be helpful to visualize what's involved. The hex #$24 in binary is %00100100 - split into nibbles is %0010 (the 2) and %0100 (the 4). The upper nibble is the one the 5101 is able to store directly, but the position in the byte of the lower nibble prevents it from being stored. A shift operation is performed 4 times on the byte to reposition the lower nibble as the upper nibble, enabling it to be stored to the 5101. (Each shift moves the binary pattern to the left one bit - here's the full sequence: Start=%00100100, shift left=%0100100x, shift left=%100100xx, shift left=%00100xxx, shift left=%0100xxxx, giving you the #$4 in the high nibble) All byte data has to be split this way to be saved, and recombined on reading from the single 5101 ram boards (bally -17 and -35, stern mpu-100). You can see why Stern added the second 5101 ram to their boards, to make programming much easier!

3.1.5 Fourth and Fifth flashes:

Next, the program tests each of the 2 6820/6821 PIA's (peripheral interface adapters) at U10 and U11, starting with U10. The PIAs are set to a known state, then data is stored and read back from them to verify their registers are functioning properly. It is important to note that it is not possible for the PIA to be 100% tested with this test as external data would have to be fed in to do so, but the test will at least test the internal registers. (So it would be possible for a PIA to pass the self-test, but still not work properly with external inputs)

Assuming the PIAs pass, the fourth (U10) and fifth (U11) LED flashes occur. (The LED itself is connected to the U11 PIA - so if the LED is locked on, U11 might be bad. It's worth letting a locked on LED board 'sit' for a minute or so to see if the game boots all the way up without flashing each test step. This is an example of how a PIA can pass self test but still be bad, as the LED control pin has no feedback as to if the LED is in fact flashing)

3.1.6 Sixth flash:

The sixth flash waits for an external input on U11 pin 40 from the display interrupt generator circuit - this occurs 300 times a second. If you're missing the sixth flash, there may be a problem with either the U12 circuit, OR the input pin on the PIA. A logic probe, oscilloscope, or a multimeter on pin 40 can help you determine which. A logic probe will pulse if the display circuit is operating, the scope will show you the signal's waveform, and the multimeter should settle on a voltage somewhat between 0-5 volts. With no sixth flash but good results from the measurement, it's a safe bet that U11 is bad and needs to be replaced.

Note that the sixth flash does NOT check for the PROPER frequency of operation of the display generation circuitry. As long as there is a pulsing signal (technically, ONE state change), the test is marked good and the program allowed to continue.

3.1.7 Seventh flash:

The last flash waits for an external input on U10 pin 18 from the zero crossing detector circuit - this occurs 120 times a second (as the AC waveform passes or "crosses" 0 volts). Diagnosis of issues with the 7th flash are similar to the 6th flash; you can measure the input to pin 18 to determine if the signal is present or not. Signal present but no flash could mean a bad U10 PIA. Signal missing usually points to missing solenoid voltage (the source of the zero crossing signal is derived from this voltage delivered from the rectifier board) or if present, an issue with the zero crossing detection circuit itself.

Note again that the seventh flash does NOT check for the PROPER frequency from the zero crossing detector, it simply checks for a pulsing signal, and it only checks for ONE transition.


After the 7th flash, the program does some background setup, reads dip switches, enables the displays, attract modes, switch scanning etc. in a 'game over' mode, waiting for player input. The LED will sometimes be dimly glowing or even pulse as this happens, which is not a cause for alarm - you can rebuild the LED circuit around Q2 if this worries you, but it is harmless.

3.2 Bally Solenoid Driver for Dummies

First off, take a look at the picture below:

http://stevekulpa.net/pinball/ballycoil1.jpg

This is a typical Bally coil from a Mata Hari machine. Notice 3 things: The two big fat yellow wires going to one lug, the small skinny wire going to the other lug, and the diode connected to the two lugs.

One lug on every coil is visited by these fat wires, in what's called a daisy-chain. This is the wire that supplies each coil with positive 43 volts DC (+43VDC). So each coil is connected to the +43VDC bus. Most have two fat wires, but some may have one. Flipper coils have these wires too, but they are connected a little differently, and are discussed elsewhere. For now, just assume we're talking about regular solenoids here.

Next, you'll notice each coil has a small skinny wire on the other lug. This wire goes to the control circuits on the solenoid/regulator board. In order to energize the coil, there must be a path to ground for the +43VDC. Normally, there is not so the coil is relaxed. When the small skinny wire gets connected to ground, the path is complete and current will flow. This current flow turns the coil into an electro-magnet and then pulls the plunger into the coil. When the wire is disconnected from ground, current flow stops, the electro-magnet is turned off, and the plunger returns to it's normal position, with help from either a spring, or gravity.

Finally, the diode. When the current is quickly turned off on an energized coil, the magnetic field around the coil collapses quickly and causes the coil to generate a huge voltage spike. The job of this diode is to prevent the majority of this spike from reaching the solenoid driver circuity. If the diode is bad, or installed backwards, you'll pop the driver transistor the first time the coil is energized, then released. It's like the ignition in older cars - when the points open, the 12 volts is removed from the car's coil quickly, which causes another coil to generate a huge voltage spike, to the spark plug. The computer program that runs the machine also tries to limit this spike by turning off the coil near the zero crossing of the line AC. This helps because the DC that drives the coils is rectified, but not filtered, so it's not smooth DC, but "humpy", like in this picture. By energizing the coils just after the zero crossing, the in-rush of current caused by a coil is limited, and by turning them off just after the zero crossing, the voltage spike caused by the collapsing field is also kept to a minimum.

So, in the simplest form, the solenoid driver circuits in your Bally look like this:

http://stevekulpa.net/pinball/bsoledraw1.jpg

Look at it as a bunch of coils all connected to the +43VDC bus, and the other lugs going to switches which are also connected to ground. Then, if you were to close a switch, that would connect the circuit from +43VDC to ground, and the coil would energize as long as the switch is closed.

http://stevekulpa.net/pinball/bsoledraw2.jpg

Now see how the circuit is complete due to the switch being closed, and the coil is energized. Then you open the switch and the coil turns off and you're back to the first picture. If the diode were not there, when you opened the switch, there's be a big arc across the switch contacts at the moment they opened up.

Finally, take this one step further and replace the manual switches with transistors. Transistors are normally used as amplifiers, but you can also use them as switches too. There are 3 leads on a transistor, the base, the emitter, and the collector. For NPN transistors like the ones on your Bally solenoid driver, you can used the emitter and collector like a switch. With no current supplied to the base, there is no current flow between the collector and emitter, so the transistor switch is open, or OFF. If you supply a current to the base, current will then flow between the collector and emitter, so now the switch is closed, or ON.

http://stevekulpa.net/pinball/bsoledraw3.jpg

Without getting into too much detail - what happens is a current is applied to the base which is high enough to 'saturate' the transistor. This means the collector-to-emitter current will be amplified as high as it can, and the transistor will then conduct a large amount of current from COLLECTOR to EMITTER, in relation to the current flow from the BASE to the EMITTER. This is how it acts like a switch. The base goes high to turn it on, and low to turn it off. Since the collector is connected to the wire that goes to the coil (the small single wire), and the emitter is connected to ground, turning the transistor as the effect of connecting the collector to ground. This completes the circuit to the coil and it fires.

You may have heard that you can test a coil by grounding the tab on the coil's driver transistor. For the TIP-102 transistors used in the Bally solenoid driver, the metal tab is connected to the collector. Knowing this, and what you've just learned, you can now see that grounding the tab is the same as grounding the collector, which will complete the circuit to ground and fire the coil. Note that this test only tests the wiring from the solenoid driver to the coil. It DOES NOT test the transistor, or any circuitry before the transistor.

So, you can now replace the transistor and "control signal" in the simplified drawing above, with the actual circuit and more details found in the following section.

--Stevekulpa 21:06, 22 April 2011 (BST)

3.3 Bally Solenoid Driver

First off, everything mentioned on this page is in reference to the Bally AS-2518-22 model solenoid driver board, found in most Bally pins from 1977 through 1985. Since it is very silmilar to the AS-2518-16 board and is identical as far as the operation of the solenoid driver circuits, you can assume it is applicable for these boards as well.

Second, if all this is Greek to you and you have no idea how Decoder ICs work, or what a Transistor is, take a look at the Bally Solenoid Driver for Dummies article above first to learn the basics of how this stuff works.

Thirdly, this model of solenoid driver board actually has three functions: The first obviously is to drive the solenoid and relay coils of your pin, the second is a 5-volt regulator which provides a nice and steady 5 VDC to the other boards for their various logic circuits, and third is the high voltage regulator (190 VDC) for the display driver boards. I won't be discussing the voltage regulator stuff here, just the solenoid driver parts.

Finally, Don't forget that the Solenoid Driver board contains the high voltage circuitry for the displays. There is 190 volts DC here and if you're not careful, you'll get knocked on your ass. A shock from 190 volts DC will hurt. If you don't know what you're doing, then keep away from it and have a professional fix it instead. In addition to high voltages, there are static sensitive parts on this board, so if you're going to work on it, be sure to properly ground yourself before touching the board, and always work in a static-free workspace.

3.3.1 Overview

We'll be discussing things from two circuit boards: The MPU board (AS-2517-17 or -35) and the Solenoid Driver board (AS-2518-22 or -16). The solenoid driver gets signals from the MPU board. These signals tell the solenoid driver which solenoid to fire. Up to 15 momentary and 4 continuous solenoids can be controlled by the solenoid driver. The flipper solenoids are enabled or disabled from the solenoid driver too, but are not controlled like the other solenoids.

3.3.2 How the Solenoid Driver Works

The solenoid driver is responsible for energizing the solenoid coils of your pinball machine. Four signals from the U11 PIA integrated circuit on the MPU board travel out from the J4 to the J4 connector on the Solenoid Driver board. These four signals tell the Solenoid Driver which solenoid to fire. This is accomplished by using a decoder chip that takes the binary pattern of the four signals (16 different patterns) and decodes (or demultiplexes) them into one of sixteen different outputs. The four signals are applied to the decoder then the decoder is strobed. Normally, all sixteen of the decoder output lines are held high (+5 vdc). When strobed, the decoder lowers one of it's sixteen output lines, depending on the pattern of the four input signals. You can learn more about the 74LS154 decoder chip from here.

Take a look at the schematic below, which shows one typical output line and the associated circuitry to drive a single solenoid coil:

With no input supplied (strobe is high), the output lines of the decoder are high (+5 vdc). This puts a voltage at the base of Q1 (this transistor is one of 7 in the CA3081 chip). This turns Q1 "on" and the voltage supplied to it's collector via resistor R1 passes through the transistor to ground. At this point, little or no voltage is present at the base of Q2, and Q2 is "off". With Q2 off, the 40 vdc at the coil has no place to go, and the coil remains deenergized.

When the MPU board supplies the proper input signals (A-B-C-D) to the decoder, and the decoder is strobed (signal drops to low), the proper output signal will go low, which turns Q1 "off" (notice one of the two strobe lines goes to ground, so it's always low). This allows the +5 vdc at Q1's collector to flow through the diode instead of Q1 on it's way to ground via resistor R3. This also puts a voltage at the base of Q2 and turns this transistor "on". When Q2 turns on, the 40 vdc at the solenoid now has a path to ground through Q1 and current flows through the coil, thereby energizing it. Then the strobe to the decoder is released, the decoder output goes high again, Q1 turns on, Q2 turns off, and everything is back to normal.

http://stevekulpa.net/pinball/b_solenoid1.jpg

Diode D1, resistor R3 and capacitor C1 work to slow the speed at which Q2 and the solenoid are able to turn off. This is important to prevent the "inductive kick" voltage that builds up when you try to turn off a solenoid quickly. A solenoid coil can build up hundreds of volts if it is switched off too quickly. For example, the spark in the sparkplug of a car is generated from this inductive kick when the ignition coil is turned off quickly. In this case, D1 allows Q2 and the solenoid to turn ON quickly (which is OK) because the current that used to be flowing through Q1 can now flow forward through D1 and turn on Q2 quickly. However, when the decoder output goes back to high and Q1 turns back on, D1 prevents the charge from the base of Q2 from being sucked down Q1. The charge on C1 must drain off (slowly) through R3 and the base of Q2. This takes awhile and slows the turn-off of Q2 and the solenoid COIL, thus reducing the kick. Also, as the solenoid turns off and the voltage on the collector of Q2 starts to rise, this voltage is "fed back" by C1 to the base of Q2 and tends to keep Q2 on a little longer, slowing the turn-off of the solenoid even more. The OTHER diode (D2, across the solenoid) works to absorb the solenoid's turn-off kick by conducting when the voltage on the collector of Q2 is greater than about 40 volts.

--Stevekulpa 21:07, 22 April 2011 (BST)

3.4 Bally 6-Digit Displays

This section will help you understand and repair your Bally 6-digit displays. The information is focused on the AS-2518-21 display. Since the AS-2518-15 display is interchangeable with the "-21" display, everything mentioned here will apply to both displays. 7-digit displays behave the same too, so this information will be helpful for those too. The only real difference is an additional digit enable signal, and some more electronics on the board to drive the 7th digit.

If you could care less how they work, but are looking for information on how to repair them, then look for the Repairing Bally Displays article below. We'll also show you some ideas on how to keep your displays working properly.

Below is a healthy Bally 6-Digit Display:

B-disp6.jpg

Examples off a Bally AS-2518-21 6-digit display, and a Bally AS-258-15 6-digit display:

B-disp15.jpg
B-disp21.jpg

You can see that the two displays are a little different in the way the components are laid out. Regardless of the differences in appearance, they both perform the same function and are interchangeable with each other The original display (at least the one mentioned in my Power Play Owner's Manual) is the "-21". The two shown here were upgraded with 1/2 watt 100K ohm resistors. A modification that you should do on all your displays too.

Here are some Stern displays that will work in place of the two above:

B-disps1.jpg
B-disps2.jpg


3.4.1 How the displays work

The way the display circuitry works is really quite interesting. Although the human eye can not detect it, at any given moment, each display is only showing one digit at a time. The program that runs on the machine's computer is changing the digits so fast that you can not tell. If you were to film the displays and play the film back in slow motion, you'd see all the displays showing the same digit, and it cycles through all six, from left to right. It just cycles so fast that your brain thinks the whole display is lit all the time.

As you can see, each display has six digits, and if you look closely, you can see that each digit consists of seven segments. This is important stuff to know in order to understand how these displays work, and most important, how to fix them cheaply!

If you study the display's schematic, you can see that there are 4 main "parts" of a display assembly: The glass display itself, and the display driver consisting of the input decoder, six digit driver circuits, and seven segment driver circuits. There is one digit driver circuit for each of the six digits, and one segment driver circuit for each segment of a digit. How the actual glass display does what it does in order to light various digits and segments is beyond the scope of this tutorial, so we'll ignore that. The decoder takes a number from 0 - 9 as input and determines which segments need to be energized in order to represent this number. The digit drivers are responsible for applying the proper voltages to the proper pins of the display to tell it which digit to light. The segment drivers are responsible for applying the proper voltage to the proper pins of the display to tell it which segments of the digit to light. It is the MPU's job to supply the proper signals to the display driver to make it do all this stuff.

The decoder is a small integrated circuit (MC14543LE) called a "BCD To Seven Segment Decoder". This decoder happens to be a "latching" decoder, which means it latches on to it's inputs and keeps them, even if they are no longer applied, until the decoder is told to release them (blanked). The decoder also has an input called a strobe. When strobed, the decoder will read it's four inputs and latch on to them. A strobe signal is usually a quick off/on/off pulse. There is also an input for the blanking signal.

BCD stands for Binary Coded Decimal and is a fancy term for storing a number from 0 - 9 in a half byte of storage (four bits). Using BDC encoding, each byte of memory can store two digits. Anyway, the input of the decoder is a BCD number from 0 - 9, and the output of the decoder is seven signals. These seven signals are either on or off, and relate to the seven segments of a digit. Each of the seven output signals go to a MPS-A42 transistor, which is part of a circuit called a segment driver. This transistor acts like a switch to turn the segments on or off. The outputs of the seven segment drivers go to the seven segment pins of the display glass. So this is how the computer tells the display driver which segments to light. The MPU has a four-signal data path that goes to all five displays (or seven for Six Million Dollar Man). These four signals provide the 4-bit input into the decoder, and remember, all four signals go to ALL of the displays. Below is a diagram of how the segments are labeled, and a truth table showing the 15 possible inputs and outputs to the decoder. For those of you that don't know about binary arithmetic, you can get 15 possible combinations of on/off with 4 digits. (e.g., "0000", "0001", "0010", ..., "0111", "1111"). This is also how you count in binary, or base-2. Remember that the display driver is only interested in 10 of the 15 possible combinations, the ones that represent the numbers 0 - 9, or "0000" - "1001". Any other input combinations will result in unpredictable outputs from the decoder, so we label these as "don't cares", since we know they will never happen under normal circumstances.

Dispchart.jpg

The digit driver circuit consists of an MPS-A42 transistor and a 2N5401 transistor connected in a circuit that acts as a switch. Normally with no input signal applied, the switch is off, keeping the high voltage supplied by the HV Regulator away from the display. There are 6 digit signals provided by the MPU, one for each digit. The MPU will enable one signal at a time, telling the display driver which digit to operate. This signal will then turn on the "switch" for the digit, allowing the high voltage a connection to the proper pins of the glass display to energize the desired digit. These signals from the MPU are simply 6 wires and the MPU will activate one of them at a time. Like the segment signals, the six digit signals go to all of the displays in a daisy chain fashion.

OK, before I explain how the computer makes all this work, let's sum up: A display driver has four inputs from the MPU. The first is a collection of six signals used to tell the display driver which digit to energize (six digits in the display, six digit signals). Only one of these signals are on at a time. The second input is a collection of four signals that tell the display driver which number to display, in the form of segments. These four signals provide a binary pattern that is interpreted as a binary number from 0 to 9. The third input is a strobe signal, which tells the decoder to read it's inputs, and the fourth signal is a blanking signal, which tells the decoder to turn off all it's outputs. Also, but not mentioned above, are various voltages from the power supply and high-voltage regulator. Each display driver is supplied with +5VDC from the 5-volt regulator on the solenoid driver board. This is used to drive the logic circuits of the decoder. There is also +190VDC* applied to the display driver from the high-voltage regulator on the solenoid board. Finally there is a connection to ground, which brings all the voltages to the proper reference point.

  • For brand new displays, this voltage should be at +190VDC in order to "burn in" the display. Once a display has become used, this voltage may be backed down to +170VDC, which will work just fine and will help prolong the life of the display.

3.4.2 How The Computer Controls The Display

OK, so now you know how the display works. The next thing to understand is how the computer in your pinball machine operates the displays. For this article, we'll refering to the AS-2518-17 Bally MPU Module, but all this also holds true for the "-35" MPU module as well. And again, I'm only refering to the Bally AS-2518-21 and AS-2518-15 Display Drivers. I've not studied the Stern style display driver, but I'd guess they behave about the same.

As mentioned above, there are four sets of signal lines that go from the MPU module to the display driver modules. The first set is the BCD data set which carry the display segment BCD data to all the displays on 4 wires. They leave the MPU module (A4) at connector J1, pins 25-28 and visit every display driver module at connector J1 and pins 16-19 (D4 - D0). The next set of signals is the digit enable signals. These 6 wires carry signals to all the display driver modules with information telling it which digit to light. The third set of signals are 5 latch strobe signals. There is one separate signal for each display driver, and it is the signal that tells the driver's decoder to read the decoder inputs, and output the proper segment signals. The final signal is a single single that goes to all the display drivers called Display Blanking. The signal tells the display driver's decoder to turn off all segment outputs, thereby blanking out the display, or turning all segments off. Below is a diagram of all the connections between the MPU module and the display driver modules that have to do what we're talking about.

B-dispdiag.jpg


Once the machine has been turned on and has booted up, the processor on the MPU module is continuously running a program that is stored in the module's ROM chip(s). This program is responsible for controlling the game by reading all the switches, lighting all the lamps, activating all the solenoids, and controlling the displays. The program keeps a lot of information in RAM and uses this information to keep track of scores, switches, etc. An interrupt is a term for a section of computer program that interrupts the "main" program in order to execute a smaller program, sometimes referred to as a "service routine". We won't get into just how this actually happens, just be aware that the main program of a computer may be interrupted at any given time. And to make things even more complicated, interrupts themselves can be interrupted by higher priority interrupt service routines. There may be several different interrupts that occur in a pinball's computer program, but the one we want to study is the one that controls the displays. Keep in mind what was mentioned above, that at any given instant, only one digit is lit on any display. This is called multiplexing.

320 times a second, or once every 3-1/4 milliseconds (thousands of a second), the CPU is interrupted to service the displays. In memory, the CPU keeps track of all the information it needs to operate all the displays. This information includes a counter used to indicate which display digit is active, the BCD data for all the displays, etc. Here's what the display service routine actually does:

Determine which digit was updated last time - The MPU looks at the digit counter and adds 1 to this value. If the new value is 7, it is changes to 1, then the new value is stored back into memory. Let's assume the new value is 4, so we're going to update the 4th digit.

Blank out all the displays - The CPU raises the signal on the Blanking Line which causes all displays to go blank (the blanking signal tells all the decoders to turn off their segment outputs).

Fetch the BCD data from memory - The BCD data for the first display, 4th digit is fetched from memory.

Send the BCD data to the display driver - This BCD data is placed on the BCD data bus and display #1 is strobed. This will cause the display's decoder to latch onto the input signals (store them for future use).

'Do it again - The previous two steps are repeated for the second, third, fourth, and fifth display.

Enable the digit - The MPU then enables the 4th digit and disables the other 5 digits by raising and lowering signals on the Digit Enable lines.

Finally, turn the digit on - The MPU lowers the signal on the Blanking Line, which causes the all of the decoders to output their proper segment signals and the 4th digit on each display is displayed.

All done! - The interrupt service routine then exits and control returns to the main program

As you can see, the display interrupt service routine only handled 1 digit for all displays. Every time it is invoked, it will process the "next" digit, resetting the counter back to 1 when necessary. The process of updating 1 digit for all displays takes about 500 microseconds, or 1/2 of a millisecond, to complete. Pretty cool, heh?

So, lets do some math. It takes 1/2 millisecond to update one digit, and since there are 6 digits, it takes 3 milliseconds to display all six digits. Since the interrupt runs 320 times a second, and it takes 6 interrupts to update the entire display, dividing 320 by 6 means that the displays are completely updated just over 54 times every second. That's fast enough to fool your eyes and brain into thinking the display is completely lit all the time. Also, since the interrupt routine takes about 1/2 millisecond to run, and it runs 320 times every second, that means about 160 milliseconds of every second of time is spent updating the displays, which is about 16 percent of the time.

3.5 How To Hook Up a Bally AS-2518-18 Rectifier Board

Often folks buy a new or used rectifier board and then when they get it, they realize that they have to hook it back up to the old wiring harness. If this is you, and you forgot to take notes or pictures before you removed your old board, then here you go. The photo below shows an original AS-2518-18 rectifier board connected to a factory wiring harness. As far as I know, the wire colors are the same for ALL AS-2518-18 applications.

http://stevekulpa.net/pinball/as2518-18-wiring.jpg

Key:

E1 - Red 18 AWG - Transformer Lug 5 - Primary AC Hot

E2 - Yellow 18 AWG - Transformer Lug 1 - Primary Neutral

E3 - Red 20 AWG - Transformer Lug 2 - Solenoid Bus Hot

E4 - White/Red 20 AWG - Transformer Lug 6 - Solenoid Bus Neutral

E5 - Green 20 AWG - Transformer Lug 8 - Display High Voltage Hot

E6 - White/Green 20 AWG - Transformer Lug 10 - Display High Voltage Neutral

E7 - Blue 18 AWG (2 wires) - Transformer Lug 17 - GI Bus Hot

E8 - Black 18 AWG (2 wires) - Transformer Lug 18 - GI Bus Neutral

E9 - Orange 18 AWG - Transformer Lug 13 - Controlled Lamp Bus Hot

E10 - Green 18 AWG - Transformer Lug 14 - Controlled Lamp Bus Neutral

E11 - White 20 AWG - Transformer Lug 15 - 12V Input for 5-Volt Regulator Hot

E12 - White/Black 20 AWG - Transformer Lug 16 - 12V Input for 5-Volt Regulator Neutral

AWG = American Wire Gauge (18 = fat, 20 = skinny)

"E" solder pads are labeled on the top side of the circuit board

--Stevekulpa 21:08, 22 April 2011 (BST)

4 Problems and Fixes

4.1 Power Driver Issues

This may not apply to some, as MPU might have been part of it.

4.2 MPU Issues

4.3 Power Supply Issues

4.4 Display Driver Board

Possibly doesn't apply to some, can't think of an example.

4.5 Rebuilding Flippers

5 Game Specific Problems and Fixes


5.1 Solenoid expander board

There is a 555 bulb near (or sometimes not so near) that lights when the solenoid expander is activated. This bulb is essential for proper operation of the expander as the main opto isolator chip on the expander board needs a load to work; if you're having entire sets of solenoids not working, check this bulb.

The header pins on this board like to crack, also, so standard operating procedure should be to replace or at minimum resolder the headers, and re-pin the connector with Trifucon connectors.

Also, it's very important that all solenoids on the expanded circuits have *TWO* diodes on them! If you or someone in the past replaced the coils with one that one had one, multiple solenoids will activate on any solenoid expanded solenoid, causing a memory drop to activate when it shouldn't, or a target bank reset when a saucer ejects.


5.2 Stern SB-300 sound board modification for VSU-100 usage

Games with a VSU-100 speech card require a modified SB-300 to utilize the speech. First, see if your SB-300 already has a trace for this connection by checking continuity between pin 5 of the rightmost connector at the bottom and the top of capacitor C14. If you read continuity, you do not need to do this mod. Add a jumper wire on the back of the SB-300 between pin 5 of the rightmost connector Media:sb300sig3.jpg and the top of capacitor C14 Media:sb300sig2.jpg. Here is an overall picture of the entire jumper for reference: Media:sb300sign1.jpg


6 Repair Logs

Did you do a repair? Log it here as a possible solution for others.