(Topic ID: 115187)

Q's about Williams system 4 displays

By uncivil_engineer

9 years ago


Topic Heartbeat

Topic Stats

You

Linked Games

Topic Gallery

View topic image gallery

IMG_2694.JPG
IMG_2693.JPG
IMG_2688.jpg
IMG_2613.jpg
combined input 2.jpg
pin9 signal.jpg
strob6 input 2.jpg
masterboard 2.jpg
masterboard 1.jpg
#1 9 years ago

Ok, I have some basic questions from our local EEs with regards to how the CPU board drive the plasma display board on early Williams pinball machines (like 1979 flash).

I would like to do a project to replace the CPU and driver board with a P-roc setup, but I am still scratching my head as to how I am going to drive the old plasma displays.

I have found the pinouts for the master display boards:
masterboard 1.jpgmasterboard 1.jpg
masterboard 2.jpgmasterboard 2.jpg

The pinball CPU board connects at through plugs 4j5 (strobe inputs), and 4j6 (segement bcd and blanking).

Is there anyone who might be able to give me a basic description as to the signals the CPU board used to light up segments on the display? I'd like to try to use something like an Arduino Uno to generate the signal based in input form a computer.
Thanks,
Uncivil Engineer

#2 9 years ago

Any of the schematics from that era will help, a lot!
--
Chris Hibler - CARGPB #31
http://www.Team-EM.com
http://webpages.charter.net/chibler/Pinball/indexhtm
http://www.PinWiki.com - The Place to go fr Pinball Repair Info

#3 9 years ago

Download the firepower schematics on IPDB. It has the detailed schematic drawing. They use BCD segment data and logic level decoders. The decoder data sheet would explain a lot. The UDN chips are what switch the signals to high voltage. Digit drivers come in and go through a 4069 inverter which also acts like a buffer and then another UDN chip switches the signals to HV.

#4 9 years ago

Thanks Barakandl, that was the direction I was looking for. The data sheets are going to help alot.
--Uncivil engineer

#5 9 years ago

let me know if you need better quality copies of any of them.

#6 9 years ago

Actually, the schematics that were in the ipdb for Firepowers were much clearer.

I think I kinda understand how the circuit operates now. This is how I understand it:

The BCD segment decoders get high signals on the terminals that correspond to the number they are supposed to display. Per the data sheet, if a display is going to show a '1', then it would get a high signal at terminal 'A'. this would cause outlets b and c to go high. This is fed to the Gas display segment driver. Each number place (like the 100,000 - 10,000 - 1,000 - 100 - 10) on each display has an associated strobe input. So if I want to display that 1 from my gas display driver on the player 1 board, I would then hit the strobe associated with that number place (in this case, it would be strobe 6).

So now I just have to figure out the timing all of this has to go on at in order for the strobes to stay lit. I imagine it ran at the speed of the old motorola 6800 that runs the CPU board.

#7 9 years ago

Does anyone know the refresh rate for the displays?

#8 9 years ago

I would imagine they update with the frequency of the IRQ. Oscope would help you.

#9 9 years ago

I may have to break down and get an oscilloscope soon..

#10 9 years ago

Keep in mind that only one digit per display will be lit at any given time. The segments are connected in common and there are unique enables for each digit. The MPU updates them fast enough that it's not evident to your brain that there is only one lit at a time.

The Bally/Stern display interrupt runs at 320hz. I would expect Williams to be pretty close. Either way, that's a good place to start. You could also look at the data sheet for the 4020 counter that's generating the IRQ and determine it's frequency. If it's somewhat close to Bally (or just a sane number) then you can assume that's they're display interrupt.

I would recommend reading the Bally Theory of Operation manual. It's geared toward Bally hardware, but many of the concepts are universal to pinball and it explains things in understandable terms.

http://arcarc.xmission.com/Pinball/PDF%20Pinball%20Misc/Bally%20Theory%20of%20Operation.pdf

You'll definitely benefit from an oscilloscope with frequency counter and a logic analyser if you're going to be building circuits to drive pinball boards. As mentioned, you could just measure the circuit to determine the display interrupt frequency more easily than rationalizing what it should be doing.

I use one of these as a scope for pinball stuff. It works great. Pinball runs really slow so something like this works well, and it's approx. $200. You should also be able to find a conventional dual trace oscilloscope in the 100Mhz range pretty cheap in the used market, though these beasts can be a pain and I'll only pull mine out on rare occasion.

ebay.com link: Uni T UT81B Scope Oscilloscope Digital Multimeter

For a logic analyser I use Logic by Saleae. Another great product for pinball that's relatively inexpensive.

https://www.saleae.com/logic/

#11 9 years ago

Lindsey,
I saw your post after I had already purchased a Sain Smart DDS120 20Mhz USB oscilloscope.

http://www.amazon.com/SainSmart-Portable-Handheld-Oscilloscope-Bandwidth/dp/B00FYGEFYM/ref=sr_1_1

It came today, so I got a chance to look at the circuit timing finally.

At least it is dual trace, and it seems to work fine. One advantage of it being computer based is that I can post the outputs here!

So for all of those that are curious, here is what I found:
The strobe inputs are actually opposite of what I thought they would be. Here is strobe 6 that drives the one place on the player 1 board:

Strobe inputStrobe input

It looks like it is high all the time, with just a short pause on about a 56hz frequency.

Here is one of the segments coming out of the BCD chip. I picked an output because the displays are all showing '0' right now, so all four inputs should be low. This input is running at 943hz.
pin9 signal.jpgpin9 signal.jpg

You can really see what is going on when you overlay the signals:
combined input 2.jpgcombined input 2.jpg
The yellow channel is the strobe, and the blue channel is the segment. If you do some counting, you see that the strobe goes low on every 16th segment signal. There is also a gap in the segment signals every 16th signal. I wonder if this gap is because the CPU needs this gap to calculate the score.

It should be noted that there are 16 strobe inputs into the master display board, and the segment inputs run at about 16 times faster than the strobe inputs. I suppose should have been expected, as the BCD chip is used to refresh all 16 strobes.

#12 9 years ago

That scope looks cool for the price! I might buy one of those.

The Uni-T scope meter has USB and a PC GUI as well, but it seems like a less versatile interface, is only single trace, and 10Mhz, but it's a dedicated meter so it really makes sense to have both

Post edited by Lindsey: Added Uni-T detail.

#13 9 years ago

I played around some more tonight with the oscilloscope trying to figure out how williams implemented blanking. After finding the blanking lines were not cycling, I came to the conclusion that williams did not implement blanking in system 3 to 6. If they wanted a display off, I think they simply shut off the strobe. The blanking line pretty much always stays just short of 5 volts.

I also figured out the strobes pretty much fire one after another in the order that they are shown on the schematics.

Back to my original purpose: putting a P-roc in my Flash. I went ahead and ordered a Arduino Uno from amazon. One of these should be able to drive two displays, and the programming interface looks pretty easy to use. I just need to find a sacrificial wiring harness (I don't want to cut mine up) so I can build an interface harness to the master display board.

#14 9 years ago

In a nutshell, what does this p-roc thing do??

#15 9 years ago

Blanking in Williams-speak is really the WDT. Yes Williams didn't implement blanking for the displays per se but the blanking circuit will certainly blank the displays (and just about everything else).if there's a problem with the machine.

viperrwk

#16 9 years ago
Quoted from Daddy-o:

In a nutshell, what does this p-roc thing do??

You can find out more about P-roc here: http://pinballcontrollers.com/

Basically, it is a micro-controller board setup specifically for controlling a pinball machine. The actual game code runs on a PC, and connects to the P-roc via USB. The P-roc handles all of the coil drivers, switch matrixs and lamp drivers. The P-roc community has already put together several programming frameworks in pyton that work with the board, and have even created a Williams system 11 interface board that makes converting a pinball machine over to P-roc almost plug and play. They have even adapted Pinmame to run with the P-roc so you can run your pinball machine on either the original roms, or switch over toy our own custom rule set.

Some pretty cool original tables, and updates of older tables have been done with P-Roc. One of my favorites is by a gentleman over in England who did a conversion of Williams F-14, and in the process, developed the Williams system 11 conversion board. You can read about his work here: http://www.pinballcontrollers.com/forum/index.php?board=37.0

My goal with Flash is to create my own custom rule set, but I also want to preserve the original look of the game. This is why I am trying to find a way to run the displays from my own micro-controller. P-roc is setup to run a DMD, but I want to keep my old school look of the six digit displays, so I am looking to using a different micro controller. Ultimately, the display controller will have to talk to a PC over USB to make it work correctly.

#17 9 years ago

Basically there's no real 'control' in the display controller, it's just a simple logic and amplification board. There's no latching at all. While a given strobe is low, it routes and displays whatever the BCD output is at that time to the appropriate digit locations. When the strobe goes high, that digit shuts off, it moves to the next one and displays the active BCD to the whichever digit has the strobe low.

What Williams calls a 'blanking' signal would be called a watchdog in the modern world. It's not related to blanking out displays. The 'blanking' circuit is just a 555 timer that's looking for activity on one of the CPU board PIA chips. If the 555 doesn't see any activity from the PIA in whatever the cycle time is, the output goes low, and it shuts down the CPU for the whole machine.

-Hans

#18 9 years ago
Quoted from uncivil_engineer:

You can find out more about P-roc here: http://pinballcontrollers.com/
Basically, it is a micro-controller board setup specifically for controlling a pinball machine. The actual game code runs on a PC, and connects to the P-roc via USB. The P-roc handles all of the coil drivers, switch matrixs and lamp drivers. The P-roc community has already put together several programming frameworks in pyton that work with the board, and have even created a Williams system 11 interface board that makes converting a pinball machine over to P-roc almost plug and play. They have even adapted Pinmame to run with the P-roc so you can run your pinball machine on either the original roms, or switch over toy our own custom rule set.
Some pretty cool original tables, and updates of older tables have been done with P-Roc. One of my favorites is by a gentleman over in England who did a conversion of Williams F-14, and in the process, developed the Williams system 11 conversion board. You can read about his work here: http://www.pinballcontrollers.com/forum/index.php?board=37.0
My goal with Flash is to create my own custom rule set, but I also want to preserve the original look of the game. This is why I am trying to find a way to run the displays from my own micro-controller. P-roc is setup to run a DMD, but I want to keep my old school look of the six digit displays, so I am looking to using a different micro controller. Ultimately, the display controller will have to talk to a PC over USB to make it work correctly.

Thanks! Way beyond the comprehension of this old guy

#19 9 years ago

Ok, much tinkering has taken place since my last post.

I got my Arduino Uno in the mail from Amazon, along with a Sunfounder super kit. The super kit is just a collection of electronic parts and a guide book that steps you through some projects with the Uno that can be useful to learn how program the Uno.

I went with the Uno because it is advertised as having 20 input/output ports.

To control the score displays, I need 16 strobe outputs, 8 BCD outputs, and 1 blanking output for a total of 25 outputs. My plan was to use one Uno to control two display, thus needing 16 strobes and 4 BCD outputs. However that plan was tossed out the window when I realize that two of the pins on the Uno are setup for transmitting and recieving data. Given that the Uno will be talking to a PC to get the data it displays, this only really leaves me 18 usable outputs on the Uno.

This is where my decision to purchase the super kit kinda saved my project. One of the exercises the super kit takes you through is how to use a 74HC595 register shift chip with the Uno. There is a command in the Uno called shiftOut that allows a user to move 8 bytes of data out to this chip, and use eight of the pins on the chip as eight additional outputs! This works out very well for me, as the BCD runs on a 4 byte word, and there are two of these chips that have to be controlled. So now I can move 8 of the outputs I need to the 74HC595 chip (at the cost of only three output pins on my Uno).

So, this means I need 16 strobe outputs and only 3 data outputs for a total of 19 outputs. This leave me just one output pin short of being able to run all the displays off 1 Uno board. However, I still have one more trick up my sleeve. The 'unit' displays are all on strobe 6 and 14. On these older pinball machines, the until displays almost always display '0', because nothing no the game scores less than 10 points. So I may be able to combine these two strobes into one output, and make it all work off one Uno board. This is kinda the digital equivalent of the eternal '0' reel on old EM machines.

I also won an ebay auction last week for all the head wiring off a Williams Close Encouters machine. This will give me all the plugs I need to hack together a wiring harness to plug my Uno board into my Master display driver board.

Ive taken baby steps so far, and I think I have the hardware side figured out. Now I just need to dust off my C+ skills and work out the software.
IMG_2613.jpgIMG_2613.jpg

2 weeks later
#20 9 years ago

So I have made some more progress on this since my last post..

The software for the Arduino Uno is done. I now have a sketch that will take input wrapped in '<>', and will create the BCD signals, and output them for the proper strobe. It also has a master kill switch that get enacted when I send the board <B> and a master on switch when I send the board <G>. When I send a player one score, it has to be in the format <P1XXXXXX> where X is the score, or what ever else I want displayed. This is the same for the other player scores, and the two smaller master displays. Also, if I send a 'B' in place of a number, it sends the BCD processor all high signals, and that gets interpreted as a blank space in my score.

I did manage to solve my input problem. Why use one 74HC595 register shift chip when you can use two! Turns out you can chain these register shift chips together to make as many outputs as you want. So now all 16 strobes are controlled by two 74HC595s.

So now I am now creating a prototype using a screw shield board.
soldering up the prototypesoldering up the prototype
These screw shield boards are pretty nice, they allow you to make screw connections to all of the Uno input/output pins, and there is space in the middle for both of my 74HC595 chips.

I have already cut the wiring harness I got in the ebay auction, and it is the last thing I need to attach to my screw shield board before I do the 'fiss-bang' test.

I'm about 80% certain this will work, the only issue I can foresee at this point is the old masterboard not liking the input from the Uno because it operates at a slightly different voltage. The Uno is running off USB power, and only has about a 4 volt range. When a pin goes high, it reads 4.0 volts. The old hardward runs at 5 volts. If the old hardware can't operate with a 4 volt input, I may have to wire the Uno board into the pinball machine power supply so it sees the same 5 volt reference that the master board operate on. This is 5v power at the master board, and it may just be a case of tapping that power. I want to try it at 4v first. I think the worst that could happen is that it simply won't work.

#21 9 years ago

Holy cr@p, it works...

Well sort of.

I finished all the soldering tonight, and being the impatient type that I am, I went ahead and plugged it into my Flash. It only connects in two places, at the BCD inputs, and the strobe inputs.

I then plugged my Adruino Uno into the usb port on my computer and uploaded the program.

The serial monitor gave me an 'Setup Complete', and I went ahead and sent the Uno a <G>, and the displays on my Flash lit up with all 0s. The default variables for the score digits start with 0, so that was a good sign....A VERY GOOD SIGN!

The Adruino Uno running the displaysThe Adruino Uno running the displays
displaying numbersdisplaying numbers

So I started testing it by sending scores to the displays. This is where things got interesting.

When I sent a score to the player 1 display, it came up in Player 2. When I sent a score to the player 3 display, it appeared in the player 4 display. so I have got something switch up. I also cant send blanking calls to the player 3 or 4 displays without it instead blanking out players 1 and 2. So I still have some trouble shooting to do, but I feel like I am 90% there.

When I set up my display inputs, I was using a set of schematics from a Firepower pinball machine. I wonder if they switched up some of the inputs for Flash. I may have to do some wire tracing sometime next week to find out.

#22 9 years ago

Ok, I figured out why my scores were flipped. It turns our I was sending the bytes to the shift registers in the wrong order. It turns out when you daisy chain more than one shift register together, the first byte you send goes to the lowest chip in the daisy chain. I had assumed that the first byte when to the first chip in the chain. Oh well, that is easy enough to fix in the software.

#23 9 years ago

Ok, the software is debugged, and I found my other mistake in the blanking routine. I pasted and copied part of the code from the IC5 section to IC7, without changing the reference back to IC5, so it was trying to blank the wrong digits. That is now fixed, and it works as I hoped.

2 years later
#24 7 years ago

How is your arduino / proc powered FLASH project going?

I have a Flash Pin with either a bad CPU board or a bad Master Display Board (maybe connections at the MPU?) I had a technician 'work' on this for a year, charge me for the work and upon getting home to set it up the machine locked up and displays sometimes switch to all 0. Took it back and he basically didn't fix it in the last year, to my dismay.

Well i just got my machine back and the $400 he charged me to not fix it, so now i am looking to fix this myself. In the last year however i have learned about the P Roc as well as the FAST controllers and think my Flash might also be a good candidate. There is a guy in Ohio who has re-themed his Flash to Queen - The Band, all running on either P Roc or Fast Pinball.

Love to see how your project is coming along!

Promoted items from Pinside Marketplace and Pinside Shops!
400 (OBO)
Machine - For Sale
Green Brook Township, NJ
$ 65.00
Boards
Pinball Haus
 
$ 20.00
Electronics
Yorktown Arcade Supply
 
$ 9.95
Eproms
Pinballrom
 
$ 12.50
Lighting - Led
RoyGBev Pinball
 
$ 130.00
Electronics
KAHR.US Circuits
 
From: $ 5.00
Cabinet - Other
UpKick Pinball
 
$ 27.95
Eproms
Pinballrom
 
From: $ 11.00
2,100 (OBO)
Machine - For Sale
Milan, IL
From: $ 90.00
Tools
Pincoder Store
 
$ 170.00
Displays
Digipinball Shop
 

Reply

Wanna join the discussion? Please sign in to reply to this topic.

Hey there! Welcome to Pinside!

Donate to Pinside

Great to see you're enjoying Pinside! Did you know Pinside is able to run without any 3rd-party banners or ads, thanks to the support from our visitors? Please consider a donation to Pinside and get anext to your username to show for it! Or better yet, subscribe to Pinside+!


This page was printed from https://pinside.com/pinball/forum/topic/qs-about-williams-system-4-displays and we tried optimising it for printing. Some page elements may have been deliberately hidden.

Scan the QR code on the left to jump to the URL this document was printed from.