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.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s