Monthly Archives: March 2013

Display boards populated

Mark decided to work on the Flash display drivers this weekend to finish populating the cards.  He is now done, and has tested the boards and they all display.  I know I like pictures so here are some.

Here is the board taped with the Kapton stencil.  The stencil reduced the amount of time to populate the boards significantly.  The second picture shows all of the boards populated.  That would be 4 player boards, and the master display board.

Kapton Stencil for surface mount parts

Kapton Stencil for surface mount parts

All displays now populated

All displays now populated

One thing to watch for is solder bridging especially around the dual channel FETs for driving the segments.  Here is a picture of two solder bridges that needed to be fixed.


Shorted pins on dual N channel FET

Shorted pins on dual N channel FET

The short is the small bit of solder between the bottom three pins.  This is a highly magnified picture and a little touch with some solder wick and a hot iron fixed this right up.  It was relatively easy to find these shorts because the LED segment would be fully on.  Here is a quote from Mark:  “Used solder mask for first time, easier to apply paste although the thinner cross section did not reflow as well leaving numerous shorting bridges. Fixed with scalpel under microscope and retouched each lead with soldering iron to reflow.”

Using the stencil is a lot faster, but there is still a learning curve.  Here is the final picture of one of the displays being powered by the Flash machine.

Initial power on of display board

Initial power on of display board

You can see some of the debug info built into the code.  At initialization, the master card discovers the displays on the i2c bus.  It then either prints the display number that it found, or prints a 0 to indicate the display is missing.  In this case, only display 1 is plugged in, while display 2, 3, and 4 are missing so they are reported as 0 on the master control board.

The cables haven’t been finished yet, but that should happen later this week.  Pinball night is moving to Wednesday because of scheduling conflicts, so maybe we can actually run a couple of games and be able to see how many credits, and which ball the game is on.

The displays are very bright, and I think that we are both pretty happy with how they are coming out.  I’m glad that I added a voltage regulator to allow the displays to be dimmed to the appropriate level.  The mounting holes are a little bit small, so these have to be drilled out a little bit to use the original mounting hardware on the Williams game.

Hopefully another post later in the week about it working, but more than likely it will take another day or two to debug the interface to the pinball machine itself.

If anyone owns a Williams Flash game and would be willing to take pictures of their backglass, please get in touch with me.  That is the one thing that is really messed up on this game, and I want to do a translite, but the more pictures that we have, the better the translite will be.  The backglass on this machine is completely trashed, so any pictures at all would be appreciated.


Williams Display replacement boards displaying characters

The display replacement boards are currently displaying test characters.  We used a single player board to verify the i2c communication for all the player boards.  A new version of the firmware is in the google code repository.  It is much more functional than the previous version of code.

Mark just needs to build up three more player display boards, and then testing in the Williams Flash pinball machine should be able to start.  That code is pretty simple, but I did add a software filter into the control signals, so there might be one or two more bugs there.  The current revision of the code is 00.00.03.  I will rev step the code to 01.00.00 when the integration with the physical pinball machine is done.

Since tonight is pinball night, it might be interesting to throw the single board onto the machine and see if we can get the credits/match to work for the first time.


Continuing work on Disaster compiler and display boards

Display replacement boards:  Did a good amount of work a couple weeks back, and the processor is up and running.  It is starting to display some test digits.  I’ve added discovery code to discover how many slave display boards are installed.  The initial code also displays which boards are installed to make troubleshooting easier.  This allows the board to only operate with a subset of the player display boards.

Disaster:  Working on the compiler for parsing the rules file.  I’ve spent a lot of time on this over the last couple of weeks, and I’m just now getting to the point that I can parse the whole file.  Unfortunately it doesn’t do anything with the information, but it is starting to fill out the data structures.  These data structures are going to be the ones that the java uses to run the rule set.  There has been a major update to the rules file.  I went back and forth trying to decide whether the file should look more like lisp, or more like C, and I ended up going with it should look more like C.  This means curly braces and parenthesis instead of all parenthesis.  This was more pleasing to me visually and more what I’m used to seeing.  It will probably continue to take me another couple weeks to finish this work off, and get something working.  I ended up not using pyparse because I could not figure out how to get it to output into my data structures.  I could have had it verify the syntax, but that is not the most difficult aspect of the project.

Restoration:  One of the local people who runs pinball machines in establishments has given Mark and I a POTC machine to fix up.  The last couple pinball nights have been spent fixing that machine.  It is amazing how easy it is compared to the early 80s machines that I have been restoring.  The machine seems to want to tell you what is wrong.  With the other pinball machines, it seems there is a lot of divining what is wrong with the machine.  The nice part about this, is in a night we can fix a lot of things that are wrong on the machine.  The machine’s ship was not working properly and had a lot of other issues including the slingshots not operating.  Fixing the ship was a lot of fun because it was completely mechanical and is a simply great toy on the playfield.  I particularly like when you have one more hit on the ship, and it starts floundering.  Very cool effect.  That machine should be restored in the next week or two, and we might get a chance to work on a few more machines that this guy has in the area.