Category Archives: Restoration

Pinball machines currently being restored.

11/30/2014, Playfield Locations Completed

Stitching the scans together is completed.  I was originally going to stitch everything by hand which is a pain, but at Joe’s suggestion, I ended up using the Microsoft ICE program.  First the rows of the playfield are stitched together.  Then all the the rows are stitched together to form the whole playfield.  Make sure that the camera motion is set to Planar Motion 1.  If ICE is allowed to automatically select the camera motion, it seems to default to Rotating motion where it warps the center of the image.  You can still see issues in the image, but it seems pretty good.  Here’s a quick low-res picture of the stitched together playfield:

FullPlayfieldLowRes

The real image is around 250 MPixels.  I then took this image, and imported it into GIMP.  I started by reducing the scan from 600 DPI to 150 DPI.  600 DPI might be necessary for reproducing the artwork, but as mention before, I’m going to replace all the artwork.  150 DPI is sufficient to locate all of the features.

In GIMP, first create another layer the same size as the playfield artwork.  Then I started overlaying circles and rectangles.  With the new layer selected, use Tools->Selection Tools->Ellipse Select or Rectangle Select.  Create a rectangle or circle that matches the size of the feature.  I created a rectangle or circle covering the pop bumpers, inserts, holes for post screws, holes for GI light bulbs, slits for inlane, etc.  After creating a circle or rectangle, choose Select->Border and make a one pixel wide border.  Next fill the border with black by choosing Edit->Fill with FG color.  Finally fill it in with a hash pattern using Tools->Paint Tools->Bucket Fill inside of the outline.  After a few short hours, I had the following picture:

PlayfieldLocations

Here are a few quick pictures with the plastics still on it.  I grabbed these right before the teardown of the playfield.  I will eventually scan the plastics to get their sizes for making new ones with new art.

GE GE GE

Notice my swank flipper buttons at the bottom.  Oh the things that you can do with an electrical junction box.

There is still a free T-shirt available.  Not really know why I’m bothering to mention it except I’m sick of carrying the two sizes of T-shirts in the glove box of my car.

Next up will be finishing the wiring of the feature lights and sanding fun.  (I can put finish feature lights wiring for another two or 3 months until I get around to doing it.  For some reason, I’m not very excited about it.)  I’m getting bored of doing mechanical work, so I might start working on the pinball framework again.

10/28/2014, hp 4600 scanjet on Windows 8, “I’m not quite dead”

Pinball is made up of people trying to bring machines that, by all rights, have outlived their planned longevity, back to life.  I’m doubting that people who built the first solid state machines would expect their machines to still be running after 40 years, and people still finding parts to keep them running, or coming up with creative ideas to use newer parts to replace the parts that can’t be found anymore.

Here is a story about a scanner that is a fine scanner, but the last operating system that supported it has reached its end of life.  That being said, this post is dedicated to bringing that scanner back to life, and having it fully functional.

In 2003, HP made a scanner called the HP 4600 scanjet, that wasn’t particularly exciting except for the fact that it was a “see-through flatbed scanner”  While this has no value in normal applications such as scanning a single sheet of paper, if you are a pinball geek (ummm, aficionado), it is gold.  You can use the HP 4600 scanner to scan a whole playfield in pieces, and then put those images together using a photo editor.  Since it is a see through scanner, it can easily be positioned so the images overlap, and the images aren’t angled.  It would be very difficult to place a pinball playfield on a normal flatbed scanner and position each scan accurately.

Two weeks ago, I knew about the HP 4600 scanner and imagined I would get something similar when necessary.  I had tried to piece multiple digital photos together to form a large high resolution image.  Each digital image from a camera has spherical aberrations which are caused by the lens focusing the image onto the CCD or CMOS image chip.  The only real way to take large images is through a flatbed scanner that doesn’t have spherical aberrations.  For some reason, Joe feels he wants to buy me a scanner.  Fantastic!  One less thing I need to think about.  The only problem is it is the HP 4600 scanjet where the last supported driver was written for Vista.  (Vista?  That was the last failed Microsoft operating system that I am proud to say that I have never installed, supported, or used.  I completely avoided that cluster.)  HP 4600 scanjets are cheap right now because they are so old.  I think that Joe got it off ebay for about $40 plus shipping.  (I told him I wanted it to be less than $60, but he never responded with how much he paid…actually he just sent me that it was $35 including shipping).

I started my research and it was pretty clear it wouldn’t work on Windows 8.  I did more research, and found a Linux driver, but it simply replayed recorded USB commands.  That means, the resolution couldn’t be changed, the output file format couldn’t be changed, etc.  That was not an acceptable solution.  I am running a 64 bit XP machine, but I could not get the scanner to work with it, and what happens when that 10 year old computer stops working?  I needed to get the scanner working on Windows 8 (or 8.1).

Here are the detailed steps on getting this to happen.  This will hopefully replace some of the bad information out on the internet about how to get these scanners to work.  All the pieces of software are free/open source except for the XP license.  If you need an XP license, go to any electronics recycling and grab an XP professional sticker off any of the dead PCs.  Always remove the XP license sticker before recycling a PC (and smash the hard drive if you don’t remove it).  You never know when you need it (the sticker, not the smashed hard drive of course).


 Download software

  1. Download Virtual Box platform package and the Oracle VM Virtual Box Extension Pack.  The current link is here.  The current version at the time of this writing is 4.3.18.  Note:  You need to download both the normal virtual box installer, and the extension pack.  The extension pack is necessary to talk directly to the USB port and the HP 4600 scanner.
  2. Acquire an XP installation disk and license.  I used Windows XP Professional 32 bit installation.  I know the 32 bit XP works.  Anything else and you are on your own.  If you have a license, and don’t have an install disk (i.e. removed an XP sticker from one of your PCs before you recycled it), you can try and find yourself a version of Tiny XP rev 11.  It is a version of the XP install disk iso with a lot of the fluff removed from it.  It is probably only legal to use Tiny XP if you have a valid license.   Beware if you download the iso from an unknown source since it may contain malware, viruses, etc.
  3. Download the HP 4600 scanjet drivers/software.  One is listed under Drivers as HP Photo and Imaging Software, and the second one is listed under Update as Windows color table driver update.  Here is the current link.

Install Virtual Box/Create Machine

  1. Install VirtualBox.  Double click on the Virtual Box installer to install it.  Choose all the defaults.
  2. Run the Application.  Run Oracle VM VirtualBox.
  3. Create a virtual machine.  Choose Machine->New to create a new virtual machine.
  4. Fill out virtual machine parameters.  Name:  XPPro, Type:  Microsoft Windows, Version:  Windows XP (32 bit), press the Next button.
  5. Set up processor RAM.  Set the RAM to 512 MB, press Next.
  6. Create virtual hard drive.  Select Create a virtual hard drive now, press Create
  7. Select hard drive style.  Select VDI (VirtualBox Disk Image), press Next
  8. More virtual hard drive dynamic to save real hard drive space.  Select Dynamically allocated, press Next
  9. Choose hard drive size.  The default size is 10.00 GB which is good, press Create.  A new machine name XPPro, in the Powered Off state should show up in the VirtualBox Manager window.
  10. Configure virtual machine.  Highlight the XPPro machine, and choose Machine->Settings
  11. Disable booting from the virtual floppy drive.  In the System group, Motherboard Tab, Boot Order, uncheck the floppy drive so it doesn’t try to boot from floppy.  (The CD/DVD and Hard Disk should still be checked).
  12. Put XP installation disk/iso in virtual/real drive.  In the Storage group, highlight the Empty CD/DVD in the Storage Tree box, and in Attributes press the disk icon to choose the disk which is installed in the CD/DVD drive.  Either choose the physical drive that contains the XP installation disk, or the iso image of an installation disk.  The icon in storage tree should now list something other than Empty.  Press the OK button.

INSTALL XP/SOFTWARE

  1. Start the virtual XP machine and install XP.  With XPPro machine highlighted, choose Machine->Start.  Choose Unattended Install (2).  Install Full XP (1).  Enter to install, Enter to install NTFS on partition.  Everything else should complete automatically.  If normal installation, it will end up restarting a good number of times.
  2. Take out XP installation CD/iso, and install VirtualBox guest additions CD.  In the new XP virtual machine, choose Devices->CD/DVD Devices->Remove disk from virtual drive to uninstall the XP installation disk.  Choose Devices->Insert Guest Additions CD image…
  3. Install the guest additions.  On the XP machine, press Start->All Programs->Accessories->Windows Explorer.  Double click to run  D:\VBoxWindowsAdditions-x86.exe.  Use all of the defaults.  Press Finish to reboot the virtual XP computer.
  4. Remove the guest additions from the virtual drive.  In the XP virtual machine window, choose Devices->CD/DVD Devices->Remove disk from virtual drive.
  5. Shutdown the machine by choosing Start->Turn Off Computer, Turn Off.
  6. Install virtual box extensions (downloaded during the first steps).  Double click on the file called Oracle_VM_VirtualBox_Extension_Pack-4.3.18-96516.vbox-extpack that was downloaded earlier.
  7. Restart the XPPro virtual PC by highlighting it in the VirtualBox Manager, and choosing Machine->Start.
  8. Create a share folder.  In  XP virtual machine window, choose Devices->Shared Folders Settings.  Press the ‘+’ to add a shared folder, browse to the folder to share, and select the Make Permanent checkbox.  Press the OK button to create the share.  Press the OK button to close the window.
  9. Copy the two driver files that were downloaded from HP to the shared folder on the host machine (not the virtual XP machine).  The driver files/application files were named col6904mu1.exe, and col5691.exe.

Install Software

  1. Map shared network drive.  On the XP machine, press Start->All Programs->Accessories->Windows Explorer.  In explorer select Tools->Map Network Drive.  Set the Folder to \\VBOXSVR\share.  Insure the reconnect at logon is checked, and press the Finish button.  The explorer window should now show the two driver/application files.
  2. Install the HP tools by double clicking on the col6904mu1.exe file.  It will automatically unzip and run the installation.    Choose all the defaults.
  3. Plug the scanner power in, and plug in the USB port to the host computer.
  4. Create a USB filter.  In the VirtualBox Manager, select the XPPro machine and choose Machine->Settings, and choose the USB category.  Press the ‘+’ on the right hand side, and select the hp scanjet.  Double click the newly created USB filter, and clear out entries for Revision, Manufacturer, Product, and Serial No.  Press OK to save the settings.
  5. Rerun USB detection.  Unplug the USB of the scanjet and replug it in.  The virtual XP box should now be controlling the scanner.
  6. Install newer HP scanjet drivers.  Double click on the newer driver file col5691.exe which should also be located in that shared directory.  If the virtual XP machine is the sole controller of the hp 4600 scanjet, the new version of the driver will be installed, and in the VirtualBox Manager Devices->USB Devices, hp scanjet should show a check mark indicating it is the sole owner.

Ready for First Scan

  1.  Open the application and choose source, set destination folder.  Double click on the HP Photo & Imaging program that is on the Virtual XP desktop.  On the left side, choose Z:\, so the scan will be stored on the shared drive.  Press the Scan button at the top left.  Pick the hp scanjet 4600 series TWAIN 1.0  (32-32) as the source.
  2. Increase resolution to 600 DPI.  In the hp scanning window that just opened up, expand the Resolution category and choose 600.  (Yes, I know that the choice box looks like crap.)
  3. Start the scan.  Press the Accept button and the scan should occur.
  4. The scan will output a tif format picture.

For information on using the scanner outputs/resolutions, and general great discussions on restoring backglasses and playfields check out Ed Cheung’s site on his Space Shuttle Playfield restoration.  The page on restoring a mirrored Space Shuttle backglass is also fantastic (one  of the first links on the page).

Pinball magic talks about how to install a mylar overlay and clear coat it.

Status 10/27/2013

Been busy the last couple of weeks.  All last week/this weekend was spent cleaning the Taxi playfield.  It isn’t sexy, but it was just using a large amount of elbow grease.  Lot’s of time you need to take off some mylars.  Maybe two layers of mylar.  This playfield had three layers of mylar.  The whole bottom of the playfield was completely covered.  Removing the mylar using freeze spray always goes really well.  Removing the adhesive stinks.  Especially the adhesive on inserts is very nasty.  I tried to use flour and IPA (isopropyl alcohol) to remove the adhesive.  I believe it worked better than using just goo gone.  I ended up getting blisters on my fingers from rubbing the adhesive off.  I finally finished it this morning at about noon.  As soon as that was done, did some major cleanup on the rest of the playfield with a magic eraser.  The game now looks better than it probably has for 15 years.  I’m hoping to have it back up and running by Halloween.

So two or three weeks ago, I bought an older populated playfield.  I didn’t even know what game it was, but it doesn’t really matter since I’m just going to use it to prove out the driver and input cards.  Turns out the playfield is an old Camelot EM.  I took a couple pictures of the bottom of the playfield swapping over to the new driver card.  After I finish rewiring it, I’m going do a couple before and after pictures.  It should demonstrate how many less wires a distributed design uses instead of a centralized old school design.  I don’t have enough cards to drive everything, but I should have enough to make it play.

Since it is an old EM, I have to add diodes to all the solenoids.  I’ve already run the high voltage line which is basically a 48V wire to the high side of all the solenoids.  That meant removing all the individually run wires and the relays that were controlling the pop bumpers/slingshots, etc.

I bought a pair of crimpers which should make crimping the wires a lot easier.  It can be done with one of the “universal” crimpers that are 30 or 40 dollars, but they stink and do a poor job.  The molex crimpers are about $250 which is too rich for my blood.  I found another , KF2510 Dupont crimper on ebay which costs about $26 total.  Since each input can take up to 32 crimps, and the solenoid cards can take another 16 crimps, it is well worth it.  (I plan to cut these in half by running a common ground wire so you only need a single signal crimp for each input.)  As soon as Taxi is back together, I will finish up the rewiring.  (Still waiting for my new soldering iron to show up.)

The Disaster Java application has been getting some major work.  Most of the code for the compiler has been removed, and now the application takes the rules file and is generating Java code that can be compiled.  This is about 70% done, and I’m getting very close to the first generating working.  It is currently not checked in, but that will hopefully in the next week or two.  I’m not going to talk to much about that since it isn’t checked in.  It was definitely the right decision as suggested by a couple of different people who commented on this site.  Thanks again for those suggestions.

This week I tried to get in touch with the one graphic designer that I know.  She has mentioned that she is still interested, but is currently moving.  Hopefully she will be able to do some graphic magic.

Initial layout for display board

!!! Warning !!!:  The current version of the display driver board is untested.  While I think they will work, Mark and I will be reviewing them this week, and I would not try to build this project until we build the first version.  I’m hoping to send the boards out at the end of this week.   At that time, I should have a good idea of the final cost.  My estimates at this point are under $120 for a full replacement (4 player scores, and the master display) of a Williams system 3-6 display system.

The four player scores, and the master display all use the same board.  Since ordering 5×20 cm boards from ITeadStudio gives you five boards in an order this is perfect.  The player score boards do not populate the microprocessor, or the muxes.  The master display populates these components, but doesn’t populate one of the i2c register chips since the board has four instead of six displays on it.  This keeps the cost to a minimum, and only requires a little bit more programming in the microprocessor.

The code will constantly poll the strobe signals.  Since there are a lot of strobes (more than can be simply attached to pins in the processor), the strobes are muxed into two different groups.  When polling the strobe signals, it first looks at one group of strobes, then another group of strobes.  If it finds that a strobe signal is active, it polls that bank sixteen more times to makes sure that it isn’t a glitch.  At that point, it reads the two BCD nibbles.  We measured a strobe width of about 1 ms on Williams yellow PROMs.  The reading multiple times gives us a simple digital filter and reduces the need of filtering on these input pins.

The player displays use sixteen bit i2c registers for driving the LCDs.  Each sixteen bit register controls two digits on the display.  That means there are three register chips on the player scores, while only two on the master display since there are only credits and ball count.  That gives a total of fourteen register chips for a whole set of boards.  The register chip addresses are chosen using jumpers on each of the boards.  There is also a jumper to pick if it is a player score display or the master display.

Once a new BCD digit is read, it compares it to the current value that it is displaying.   If there is a change, the processor sends the new value across the i2c bus and updates the correct display.  The processor does the conversion from BCD to the register outputs.

The only other part of the design is using a low dropout voltage regulator to control the brightness of the displays.  This is done once for all of the displays with the master display board generating the voltage for all the cards.

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, there are also versions for linux/Mac)  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 https://open-pinball-project.googlecode.com/svn/trunk.  The display driver files are under the Kicad/1008-DispDrv directory.  It should have everything that you need.

Mark and I will review the schematic this week and hopefully send it out to get built.  This should be a very good solution if you need to replace all your Williams display boards.

Using single PROM to replace all Williams PROMs (system 3-6)

So reading back to old posts, you may know that Mark has a Williams Flash pinball machine.  There is a lot of info on the machine in previous posts, but it is an old version of the machine and was running really old code.   (Yellow flipper PROMs).  One issue is that it sometimes takes up to 1/2 second to register points.  We believe this is because it is using the old version of the code.  The other issue is that nobody has images of the old PROMs (yellow).  Because of this, you can’t just replace a bad Flipper ROM or game ROM.  Pinside has a great post on the differences.

Since we wanted to update the PROMs to the newer version, why not combine all the PROMs into a single chip?  The cheapest PROM chips that I can get are the 39SF010 which are $2/qty 1.  This EEPROM chip has more than enough space for the Flipper and GameROMs.  It even has enough space to put an image of the testROM code.  The modification to the board needed to be easily switched back to the original configuration if necessary.  Looking at the schematics, I found a way to do the modification so that it would not modify the MPU board at all except for adding a socket!  No cuts and no adds to the board, so the MPU board should remain pristine.  Read all directions and make sure you understand them before attempting to do this.  If you have any questions, send me an email.  If you don’t know how to solder, or don’t know what solder wick is, don’t attempt this!  Here is how to do it:

1.  Remove IC15 and replace it with a socket.  (This is a 16 pin PDIP chip which is a 74LS139.)  It is used as the address decoder for the PROM chips.

2.  Put IC15 into the socket.  Test your machine.  Your machine should now work exactly as it worked before doing the modification.  If not, you may have destroyed the chip when you desoldered it from the board.

3.  Program the 39SF010 chip with the PROM images.  In my case the GAMEROM is at 0x1e000, GREEN1 is at 0x1f000, and GREEN2 is at 0x1f800, and the testrom is at 0x1b000.

4.  Remove all ROMs/FPROMs/etc.  This should be IC21, IC22, IC14, IC26, IC17 and IC20.  Your pinball machine will have a subset of these installed.  Make sure that you mark their locations so you can put them back if necessary.

5.  The 39SF010 chip will be installed in position IC20.  The old IC20 has 24 pins, while the 39SF010 chip has 32 pins.  I built and interface board, but if you are careful, you can do this without the interface board.  Attach pin1 to pin 2 to pin3 to pin 28 to pin 30 to pin 31 to pin 32 on the 39SF010 chip.  Put a piece of wire across the top of the pins and solder where they come out of the chip so that you can still plug the chip into the socket.  This connects power (VCC or 5V) to the unused address lines and the write enable signal to disable writes to the flash chip.  I put a jumper so I can swap between the testROM code and the game code.  This involves using a 3 pin header with pin 1 attached to 39SF010 pin 28, pin 2 attached to 39SF010 pin 29, and pin 3 attached to 39SF010 pin 16.  This allows you using a jumper to switch address line 14 (A14) to either VCC or VSS (power or ground).  If you don’t want this ability, simply attach 39SF010 pin 29 to VCC.  (VCC is the wire that you added above to all the unused address lines).  Bend pin 25 of the 39SF010 so it doesn’t go into the system 6 PROM socket.  (You can either bend this straight out, or straight up.  Be careful to not break the pin off the part).  Put the 39SF010 into the IC20 socket.  Pin 5 of the 39SF010 should be in Pin 1 of IC20.  This means eight pins (4 pins on each side will overhang the socket).

6.  Remove IC15 from the socket.  Make a jumper wire and connect IC15 socket pin 1 (push the wire into the socket) to IC15 socket pin 6.  Make another jumper wire and attach IC15 socket pin 2 and solder to the 39SF010 pin 25.  (This is the pin that was bent so it didn’t go into the original socket).  Make the last jumper wire and attach IC15 socket pin 3 to 39SF010 pin 4.

That’s it.  It may look like a difficult mod, but once you read and understand the instructions, it should take you less than an hour to do it.  The most difficult part is removing IC15 and installing a socket.  The mod can  also be used on the original Firepower to combine all of the different PROM chips using the FPCOMBO IC14 chip.  Information on burning the EEPROM chips and making your own burner can be found in previous posts.

To switch between your old PROMs and the new ones, pull out the jumper wires from the IC15 socket, reinstall IC15, uninstall the 39SF010, and plug in all the old PROMs.  Easy as pie.

Purchased another pinball

It’s like a bad addiction, but you troll craigslist long enough, you might actually find a good deal.  A couple weekends back I found a guy trying to get rid of a Williams Strato Flite.  It’s an old EM machine, but the price was so low that I was convinced it was in terrible state.  First problem was that the machine was in south eastern NH.  That is about 3.5 hours drive, so seemed like it would be doable after work some night.  The guy gave me a call the next night, described the machine and even sent some pictures.  He said it didn’t work at all.  The backglass was perfect.  The playfield was excellent.  He said everything was there, and when he turned it on, I could hear the motor unit rotating.  Well that is probably the most expensive piece, so this might just be an excellent deal.

Last Tuesday we drove over after work (it is pinball night anyway), pulled the machine apart, threw it in the car, and left there in under 20 minutes.  Usually I inspect the machine more carefully, but at this price, I didn’t feel right about even trying to talk him down.  It was already way below far market price.  (One bad thing was we missed the earthquake by 15 minutes.  If we would have spent less time at the brewery we could have been at his house during the earthquake where the noise was so loud, he thought his furnace blew up.)  Got home around midnight.

Next morning did the two pinball machine mega move before going to work.  Olympic hockey to the basement, Strato Flite to the living room so I can work on it at night after kids go to bed.  That night I did a quick once over, found a couple small things but nothing major.  Nothing was working on the machine, no lights, relays on motor had no electricity, no resetting scores, etc.  It was just dead.  Went to bed without the big aha moment.  Next night looked at it again and realized the guy swapped the backglass connectors with the playfield connectors.  No wonder nothing was working.  Swapped them, and general illumination immediately started working.  Couldn’t get a game to start, and spent a good amount of time looking at the bridge rectifier.  It currently doesn’t have any AC voltage going to it.  Very likely it could have gotten damaged with the connector swap.  Tropic Fun had a blown rectifier, so I wouldn’t be surprised.  I should have some time on Sunday to work on it again.  I see this machine as a way to get more money into the pinball cashbox to move up to a newer machine.  I gotta start selling some of my working machines.

Did a lot of research into the Flash upgrade to multiball project.  The closest info I can find is this link.  It lists and describes Williams system 7 architecture.  This is one generation newer, but I’m going to have to assume it has many similarities.  Looks like there is going to be looking through a lot of disassembly.  I sent an email in hopes that he might have some info on system 6.  Just having the info he has already given let’s me jump ahead in getting this task done.  Hopefully more on that next week also.

The display project is also a go at this point.  We are going to dummy up a board to make sure that all the pieces work before jumping right into the project.  I also started working on the Disaster main controller code.

 

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 https://open-pinball-project.googlecode.com/svn/trunk.  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.