Monthly Archives: September 2012

William’s Flash Ideas

Mark has his William’s Flash up and running at this point.  This Tuesday it will probably be working 100% except for the displays, but it will be a 100% playable machine.  We will fix the displays up over the next month or two, and spend the next month cleaning the machine to make it run like new.  (One of the mylars has lifted, so that has to be removed and replaced.)

Here is my question to the pinball community.  Everytime that I see a machine with a kickout hole, I think of multiball possibilities.   Flash is no exception to this.  I have a Gulfstream/Tropic Fun which is an old EM machine that has a kickout hole which can be modified to do multiball.  (If anybody has the schematics for that modification, I would really appreciate them so that I don’t have to figure it out myself).

Looking on the different internet pinball boards for different modifications, I can’t see anybody who has modified Flash to be a multiball machine.  Looking at the amount of space available in the EPROM, it seems like it should be doable.  I’d rather not re-invent the wheel by disassembling all of the firmware, figuring it out, and finding a quick way to add the multiball.  I haven’t heard if anybody has disassembled the standard PROMs and commented them, or if it is even legal to do that.  Truth be told, it would probably be a shorter project to write the firmware from scratch unless somebody else has done most of the leg work of commenting the standard green PROMs.  Getting Flash up and running meant that I have a really good understanding of how the controller board works, and its address space.  I don’t have timings on kicking the different solenoids or writing to the displays, but I could get that with a couple quick traces of the logic analyzer.  There is plenty of space to add extra pieces to the program especially since PROMs are much larger now than they were.

So here is the question.  Has anybody modified a Flash pinball machine (or similar) to be multiball?  I’m thinking a pretty simple two ball multiball that you would activate by completing the five bank drop targets.  Drop the ball into the kickout hole, and then hit the three drop targets or “flash” to start the multiball.  If you don’t complete the whole sequence, the captured ball drains before a new ball is kicked out onto the playfield.  (No ball stealing like in Firepower II).

I’m also looking for extra info from people who have disassembled the William’s system PROMs.  I’ve disassembled it, but have not yet spent the couple of days/week necessary to really understand what is going on in the code.  Send me an email/post a comment if you have any information.   Thanks.

Flash now up and running

Last pinball night was one of those stellar ones where it seems like you can do no wrong.  First up was the left flipper not working.  A quick visual inspection showed that one of the wires (main voltage to both coils) was broken.  A minute later that was fixed.

Next up were the switches.  This machine probably hasn’t been played for 10 or 15 years.  The household that it was in was a heavy smoking household, and previous to that it was sitting in a barn.  It had lots of grime, and most of the contacts for the switches just needed a little TLC.  Somebody decided that they should put some oil on certain parts in the machine, and it had gunked up over the last 10 or 15 years.  A little bit of IPA goes a long way.  A couple plays of the machine also does a lot to clean the contacts.  The five bank drop target doesn’t reset when all of them are down, but that should be a pretty quick fix now that I know that it is just daisy chained.  I’m guessing that is gunked up and it just needs to be removed and cleaned.

The displays are currently the biggest issue.  Replacement displays online are running around $260 for a whole set (Rottendog/Pinside).  I looked into the cost of doing it myself from scratch.  Looks like $45 for the PCB, $45 for the LCD digit displays, $13 for registers to run the displays, $8 for the MOSFET drivers, and another $10 for connectors/processor/caps/resistors, etc.  That gets the cost to around $121.  I might be able to cut the cost of the PCB in half, but it doesn’t really help since I’m only going to make one set of these.  If I get work to pay for the shipping (i.e. have another board that they need so the shipping for a second set of boards is free), it drops $7.  If I didn’t want to add the circuitry to make the displays dimmable, it would only drop out $2 or $3.  The other possibility is to try and drop the MOSFETs out and just use the register drivers.  That would drop out $8, and if the i2c still worked (which it should), would not reduce the functionality.

The basic design would be an MS9S08SH32 grabbing the row and column strobes from the driver board by polling them.  It would then convert the two BCD digits for each strobe into LCD segments and send the information out to each of the displays using an i2c bus and remote registers.  Since the segments of the LCDs will be constantly on, instead of strobed like in the original design, the processor is only sending updates so it is really low bandwidth.  The project is mainly dependent on whether Mark wants to replace his displays for the $120.  The design itself is really simple.

Flash Limping Along

It’s alive!  Well sort of…  Last pinball night was very productive.  It was mostly me sitting around drinking beers while watching Mark replace the 40 pin PIA chip.  What a pain that turned out to be.  It was very difficult to wick all the solder out of the holes.  Once we did that, we put the new chip in and powered it up.  Turns out that we had a copper whisker between two of the pins, and as soon as we removed it, the driver board was up and running.  We finished all of the test EPROM tests which passed with flying colors.

We moved on to testing the “whole” system which involved powering on the machine with the real PROMs installed and praying.  Let’s test the displays.  Oops two of them are cracked and don’t look like they will ever work again.  Swap one of the working display cables with a bad display just to make sure, and y’up the two displays are toasted.  Next comes the lamp test.  Why is it when I buy a pinball machine, we can get it working in a couple of hours, but nearly every bulb is burnt out, and when Mark buys a machine, it takes us three months to get it working, but nearly every bulb is good?  There are literally only three or four bulbs out on the machine.  Oh well, let’s move onto the solenoid test.  (Of course, the one of the displays that isn’t working is the credit/ball number display.  This is also the display that shows you the test, and the solenoid that it is testing.)  Without that info,  it is a little more difficult to know what is going on, but it should still cycle through the solenoids.  Nothing…, not a single solenoid.  That’s easy, that is the main fuse on the supply board.  We test it which shows that it is bad, and replace it with one of Mark’s many fuses from his fuse kit.  (Who owns a fuse kit with over 200 different types of fuses in it?  That would be Mark.  Earlier we were looking for a voltmeter and he pulled out no less than six different DMMs. )  We replaced the fuse, hit the credit switch…nothing.  Ooops, forgot to put the pinball in the machine.  Cracked it opened, tossed in a ball, powered it on.

Threw a credit on the machine, hit the one player button and we were off and playing.  When you hit the right flipper you score 100 points.  Hmmm, play the machine, not the game, so I quickly racked up a couple thousand points without even sending the ball into the playfield.  Left flipper, well it doesn’t work at all, so that is going to make the game a little bit more difficult.  We play two or three games and it is time to go home for the night.  There was no background music, I’m questioning if I ever saw the lower pop bumper work, and of course the left flipper doesn’t work, but wow, not too bad for the first real power up of the machine.  All these issues are easy to fix.  The only one Mark is worried about is the displays being bad.  Looking at prices on the web, they are pricey to replace.  Looks like we might be making our own displays.  I’m thinking it should be pretty easy to reverse engineer those and make some new ones.

Building EEPROM burner from scratch

I’ve been away for awhile with getting the kids ready to go to school/end of summer vacations, etc.  On a side note, ended up going to Santa’s village in New Hampshire, and the aging hotel (Cabot Inn) that we stayed in had a pinball machine.  (Strangely enough most places that we stay close to there, have a pinball machine.  Lamplight resort is really nice and has one in their game room.  Two years ago it was a Mars Attacks machine, and last year it was a Pirates machine, 2nd one, not the first)  Anyhow, the hotel was not very nice, but they did have a pinball machine in their game room which was much better maintained than the hotel itself.  Whoever the operator is in that area, hats off to him and how well he maintains his machines.  They are a pleasure to play, and rarely have any major issues.   The Cabot Inn had a Ripley’s Believe It Or Not from Stern and it was a pleasure to play.  I completely agree with all the comments on IPDB which state that the machine is too easy/intermediate machine, because a friend and I ended up dropping $2 in it for five games, and after playing for about 45 minutes, still had six credits on the machine.   We gave the remaining credits to the random kids that were in the game room at the time.  Hopefully they will end up learning to love pinball.

The EEPROM project started a couple of months ago with Mark purchasing a Flash pinball machine.  This was the first machine that we ever purchased where absolutely nothing worked on it.  It was reported to us that it had worked somewhat as recently as a year ago, but I really find that hard to believe.  First issue was putting a cap across the crystal.  This fixed it so that the processor came up each time.  Next came the 5101 RAM chip which was bad.  All of the interconnects between the driver board had broken solder joints, so we reflowed each of these pins.   Just this past week we found that the PIA chip going to the displays is toasted.  (There was a piece of wire sitting on the interconnect and probably made the chip the “fuse” for the short).  If anybody is looking for a new PIA chip, a new company is making them called WDC and you can get them from Mouser.  It is $5.95/qty 1 at this time, and there is no minimum dollar amount on orders.   They just started a new shipping option which is $5.99 and the parts get to you in about a week if you are in the middle of no where, like I am.  They slightly changed the chip name from 6821 which made it difficult to find.  Here is a link to the new part W65C21N6TPG-14.  Note:  I doubt the link will work for long so just search on the above part number.

Each fix took us a week to get the chip, and then another week to test the fix and find the next thing that was wrong.  We read about the EPROM chip that some guy from Belgium wrote and decided that it was the only way that we were going to get this machine to work.

Searching on the web, we couldn’t find anybody who actually was still selling the pre-burned chip.   It also seemed like there were some people who would sell them to you, but they wanted a very high premium.  I couldn’t see spending $100 on a used EPROM burner, so I decided to make one from scratch using parts that I had laying around.  It isn’t the most efficient way to make the circuit, but I had all of these parts on hand so all I had to do is purchase the Flash chip.  I chose the Microchip 39SF010A.  ($2.05/qty 1 at the time of writing).  The other nice part is that the chip is big enough that it can hold both the Test ROM and the program ROM, so by using a jumper, I can choose between the two programs.  The chip is a 32 pin dip so it is nearly a drop in replacement.   (More on that later).

On the open pinball project google code repository, I’ve stored the schematic and the layout for the EEPROM burner.  Use the layout if you have access to etching equipment from work.  Otherwise you will need to do a little more soldering and need to use some proto board.  I etch the board upside down (all the traces are on the bottom), because it makes soldering the components that much easier.  The design requires 3.3V and 5V.   You can use an old PC power supply to provide these two voltages and get the burner working.  I used three 74LV595 shift registers to present that address/data to the EEPROM chip.  (These chips are around $.65 each.)  The only other thing that you need is an old DB25 printer cable.  I had a male through hole connector sitting near my desk, but you could just as easily cut off the end of the cable and attach the wires individually to save money.)   I also wrote a python script to do all the programming.  If you look in burnflash.bat you can see the commands to burn the Test PROM and the game PROM.  The python script is based off the 2.7 branch of python and you need pySerial to talk to the parallel port.

All said and done, it probably cost me around $10 EPROM burner and a flash chip to put in the pinball machine.  Took me a couple hours to write/test the code, but now it is done.  Hopefully someone else will find this useful.

The open pinball project is in a subversion repository in Google code.  The easiest way to grab it is to grab a copy of tortoiseSVN (a free windows GUI client for subversion.)  Install that program, and then create a folder where you want to have the open pinball project files stored.   Right click on the folder, choose SVN Checkout… from the menu.  This will bring up a window, and the address of the repository is  The EEPROM burner files are under the Kicad/EPROM-burner directory.  It should have everything that you need.

I’ve also tossed a newer version of the virtual pinball table which will also be grabbed when you get the directory.  I don’t even remember the updates, but there is definitely scoring, a couple different multi-ball modes, etc.  I haven’t implemented much of the stuff yet, but it is pretty easy since I have the basic framework down.  The earthquake mode should be pretty easy to implement and I have some leads on a “tilting” playfield that might work well.  The virtual pinball users have been really good about answering questions quickly.  Thanks to them.

That’s all for now.  As work gets less hectic, I should be able to work more on some things.  The new Laser product at work will use the same processor as the open pinball project, so I should be able to do some co-development there.   Nice part was I could steal all the work I did on the open pinball project and grab it for work.