2/28/2015, Lights, Camera, Action

In the last three weeks, some major pieces of work have been completed and a lot of little things.

I was having some issues reliably communicating with the incandescent cards.  My original interface card between the parallel port and the incandescent boards used simple FETs to convert from 3.3V to 5V.  When I sent the interface card to Cactus Jack, I made him an interface card using a 3.3V to 5V driver chip.  The problem with using the straight FETs is that the slew rate is very fast, and I was getting a lot of reflections on the signal lines.  I had a couple of extra driver interface chips around and built up a card.  As soon as I installed that card, the light bulbs immediately started working reliably.  I’ll eventually create a Kicad version of the card that will also be combined with the RS232 interface card.

Spent a good amount of time finishing up mounting the playfield in the correct position, making a plate to mount the shooter rod, etc.  After remounting the lockdown bar to the correct position, the playfield now easily falls into position, and the shooter bar now lines up properly.  One more mechanical fear removed.

All the incandescent bulbs have now been replaced with LED bulbs.  The warm white three LED bulbs from Pinball Life seem yellow to me.  I was expecting a slightly different color, but I’ve grown used to the color.

Spent some time just at the end of the week starting to work on the rules.  Nothing big happening yet, but just starting to write the code.  The code for the coin drop was ripped out because the machine will be on free play.  I’m expecting to only have the eleven modes completed.  I don’t think that I’m going to be able to get multi-ball to work by Pintastic.  The main problem is that I don’t know how to hook up a second switch, so I can detect when both balls are in the drain.

So I’m officially declaring it four months until Pintastic New England.  (Pintastic is actually on the 11th of July, but close enough.)  I only calculated it this week, and was completely surprised that it is only four months, and not six months until July.  Doh!  I better get crack-a-lackin.  The one nice part is that all of the electronic hardware is tested.  That means most of the stuff is coding, and adding artwork.  It is going to be a lot of work, but it looks like it is possible to make it.

Because of time constraints, I’m starting to drop out unnecessary nice to haves.  I was planning on doing new plastics, but since the plastics are in good shape, I’m expecting to re-use the existing ones.

I’m declaring that the machine will hopefully as good as a NIB Stern machine.  As everyone knows, Stern typically tosses out machines with far from finished code.  By July I’m hoping to have SS3 playing well enough to have fun for the casual player, but won’t have the depth of rules that I’m currently expecting in the end.  A lot of time has to be spent on getting the physical outside of the machine and playfield ready, and that is going to have to take precedence over having a set of rules that you can spend months trying to master.

Here is a quick video of the current progress:

2/9/2015 – GenPyCode and PinballFramework

The Frankenstein Sharpe Shooter 3 machine is slowly coming alive.  Stealing parts from multiple types and multiple brands of machines is starting to make things difficult for me.  The lockdown bar didn’t quite fit properly, so I needed to modify it a little bit.  That has been completed, but then adding the shooter rod, it seems that Gameplan used a different length of shooter rod than Williams.  (Why???).  I mounted the lockdown bar a little too low in the cabinet, so now I’m going to have to remount it about 1/4 inch higher.  (The good part of that is that I can now mount the flipper buttons, and stop using an electrical junction box to press the flippers).

I stole most of the “rules” running in the game from Joe’s Blue October demo I did over a year ago.  That uses coin drops and presses of the start button to start a game.  Ooop, I don’t have either of those switches hooked up, so I can’t start the game at this point.  Little things like that keep popping up like moles and you just have to keep knocking them down.

A lot of time has been put into GenPyCode the last few weeks. For that one person that is actually reading this and has not been following, the GenPyCode Python program takes a rules file and converts it into Python classes that are then run using the PinballFramework. It takes much of the grunt work out of creating the necessary classes to run the individual pinball machine rules.

I’ll eventually write up a document on the rules file, but a lot of it is self explanatory.  The solenoid section describes how many solenoid cards are in the system and their configurations.  The input cards (switch inputs) section describes the number of switch input cards and their configurations.

GenPyCode is now passed a parameter with the output directory to put the generated files.  In my case, the command line used is:

python GenPyCode.py -rulesFile=ss3rules.txt -outDir=SS3

This uses the ss3rules.txt input file and stores the output in the SS3 directory.  Previously, the generator always used the same output directory and input file name, but it is useful to be able to work on rules for multiple machines at the same time.

The files in the SS3 directory are then moved into the PinballFramework directory to be run by the pinball machine.  The pinball framework has been modified to support multiple rulesets.  Here is my current command line for the pinball framework and SS3:

python PinballFramework.py -port=COM1 -simWidth=854 -debug -rulesDir=SS3

-port=xxxxx Lists the serial port used by the solenoid/input cards.  If this parameter is blank or does not exist, the framework will disable serial communications.  This is very useful since I’m not sitting at the pinball machine most of the time when I’m writing the rules.  Instead, I’m simply simulating the switch inputs, etc.

-simWidth=854 Simulation width of the screen.  The pinball machine runs in full screen mode, which makes it nearly impossible to develop.  Using the simWidth parameter, the LCD screen is scaled down, and a menubar is added so that it can easily be moved around.

-debug Creates the debug window which contains all of the solenoids, input switches and LEDs.  By pressing buttons in the debug window, switch inputs and solenoid inputs can be simulated.  The one problem with the debug window is that it does not have a scrollbar on the side.  SS3 has 2 solenoid cards, 2 switch input cards and 6 LED driver boards.  The debug window is too tall, and the bottom LED boards can’t be seen.  That’s probably going to be the next thing that I fix.

-rulesDir=yyyyy Directory location of the GenPyCode generated files.  It also contains the rulesFunc.py which fills out the logic for the game.  (The generator creates an empty shell for this file called rulesFunc.py.gen).

Joe gave me a bunch of great LCD screenshots which have been integrated into the attract mode on the backpanel.  In attract mode it cycles through the images which is really the first time “rules” are being run on the machine.

Lightbulbs are now brighter than I was expecting.  I’m guessing that I was shorting a 5V to ground through the rotisserie.  (There were a bunch of bulb sockets that were very close to the angle aluminum of the rotisserie.  I thought I threw enough non-conductive foam in there to isolate it, but it seems like I didn’t).  I put the playfield into the cabinet and lit it up using incandescent bulbs and it looks spectacular (in an early 80s sort of a way).  I now believe my calculations that 5VDC on incandescent bulbs are brighter than 6.3VAC on the bulbs which is what the math says.  The LED bulbs are still going to be great in the inserts to make those really pop.  (The mode inserts are a really dark purplish color which is going to mask a lot of the light).

There is a flipper issue when double flippering.  It is drawing too much currrent and shutting down one of the power supplies.  I believe that I have a fix, but don’t have the parts to make it happen.  I need to make a mouser order and get the stuff needed to fix that.

Next up is working on the getting all the lights firing as expected.  That will make the attract mode that much more exciting.  The LED functions also need to have better support for multiple cards.  (Right now they support only four cards, but since SS3 has six LED cards in it, the passed parameters need to move from a single parameter to passing in lists.)

1/19/2015, Backboxes, Playfields and Screens, oh, my!

A couple weekends ago, I finished populating the playfield.  While not a Herculean task, it was a little bit annoying since I filled all post holes because they were almost all pulling out and not holding properly.   After the clearcoat, I used a nail to punch the center of the bamboo skewer, than a small drill bit to drill the pilot hole.  It went surprisingly well, and I’m now happy to report that the playfield is probably in better shape than it has been for 15 years.  Here is a quick picture of the populated playfield.


I decided I wasn’t going to fire up the playfield again until I got the backbox in better shape.  A couple weeks back I installed the power supplies, and the MaxPower card that creates my 48V.  (On a side note, Joe just bought a 48V power supply for dirt cheap (around $20 or $25 with shipping).  Maybe the time of creating your own power supply from multiple PC power supplies is over.  That being said, I will not miss it.  Doing it that way requires a lot of extra wires which most of them are unused.)  The four PC power supplies take up the top 1/5 of the backbox.  The MaxPower board takes up a small amount of space just below them.

I was handed back a small form factor PC (mini-ITX based card) that was no longer wanted.  I had that sitting on the side running windows XP, but it was cumbersome to move that around with all its extra stuff.  I decided to rip that apart and also mount that stuff in the backbox.  That includes another PC power supply, the mini-ITX motherboard, and a hard disk drive.  All of that stuff will be removed and replaced with a single Raspberry Pi eventually.

I mounted a speaker panel which also allows the bottom half of the monitor to show through.  The top half of the monitor is going to be behind the backglass and will have a transparent window in the backglass so that I can display images.

I’m having troubles mounting the monitor, but I’m trying to spend a good amount of time to get it right, so that it can easily be removed for “servicing.”  That involves building a bracket of some sort out of metal.  I have the metal left over from the ground that was in the back of the backbox.  Plenty of metal, but I need to make clean 90 degree bends with a good degree of accuracy.  I don’t own a metal brake, so I’m being very cautious.  Here are a couple of pictures of backbox, and backbox without the monitor.


Last thing that I spent a good amount of time on these last few weeks is adding to the pinball framework or more specifically to the GenPyCode program.  That takes the rules.txt and generates Python files that are used by the pinball framework.  The generation of all the files except one is complete at this point.  For details look at the Subversion repository check-in.  Within the next week or two, I should have that completed and should be back to being able to start working on the actual rules of the machine.

I have not finished wiring the GI, and it is simply a couple hours of work that I need to do.  Since the lights were so dim, I didn’t feel like bothering, but now with the LED bulbs, I’m hoping to get back to that.  I need to start working on putting the playfield in the cabinet, but that is only after all the wiring is done.

It’s been a busy couple of weeks, but things are moving quickly.  It’s amazing how quickly two weeks goes by, and that deadline of the beginning of July is looming ever closer.

1/6/2015 Backbox, Cabinet, etc

It’s been a busy couple of weeks here at the OPP.   This entry is going to be pretty scattered and I apologize.  Changes are happening to the playfield, cabinet, backbox, and pinball framework.

I’m working on the backbox during the time that I have to wait for the playfield to cure.  Last layer of polyurethane was on 12/27/2014.  Final top coats are normally supposed to be cure for 3 months, but since the playfield is going to be covered again, I’m hoping waiting 3 or 4 weeks is sufficient.

I picked up a backbox on Monday (12/29/2014).  After taking some measurements, I am much more excited.  Right now, if you look at previous pictures of the power supplies, they are all mounted on a piece of plywood.  That isn’t a good long term solution.  After turning on the supplies to see which direction the fan blows and taking some measurements, I’ve found I can mount them at the top of the backbox.  That will exhaust the heat out of the top of the back box as efficiently as possible.  The remaining 2/3 towards the bottom can mount the speakers, amplifier, main controller (aka Raspberry Pi, or mini-ITX board), Max Power board, monitor, etc.  I’m still thinking about how I’m going to mount the LCD screen, but my current thoughts are to use the EMI shielding metal from the original backbox and form some metal brackets that flare out larger than the monitor for easy access.

On the amplifier and speakers, I’ve decided I’m way too lazy to figure out anything for myself.  Because of that, I ended up just following Joe’s lead.  For Christmas, Santa brought me a Lepai amplifier (LP-2020A+) and Lanzai speakers (MX53). The amplifier can be powered using a 12V supply, so that will be connected to the Max Power board which can provide 12V.  Sweet. One less thing that needs to be plugged into AC power.  The controller can also turn the amplifier on/off by enabling/disabling the PC power supply voltages.

Finished my big order to pinball life last week.  It includes all the LED bulbs.  The bulbs cost $57.  The playfield was only $75.  Hmmmm.   I would not have guessed that I would be spending that much money on bulbs, but if it achieves the look that I’m hoping, it will be well worth the price of admission.  The order also contained all the little annoying parts that I was missing:  new posts since many of them are broken or chipped, leg levelers, leg brackets (cabinet didn’t have any brackets on the front), and plastic channel for the playfield glass.  I tried a couple of places to find cheaper parts, and pinball life definitely seemed to have best price/selection.  This is my first order from them, so we will see how they do.  I was hoping this would be the last major order, and the day after ordering, I realize that I don’t have a start button.  That is easy enough to dummy up, but I’m annoyed I didn’t notice it earlier.

Joe is sending me a lockdown bar and a couple other random cabinet parts, so that I can install the playfield into the cabinet.  That’s a pretty big step for the project.

Started re-installing the top playfield parts.  The only annoying thing is that they all have to  be stripped off again to install the final artwork on the playfield.  Of course there is no playfield artwork, but somebody has offered to help.  It is going to be a heck of a lot better than anything that I can do.  I worked two or three days on some cabinet artwork, and in an hour, he threw something at me that was significantly better than what I did.  It once again proves how crappy I am at artwork.

The pinball machine has been entered in a contest.  This gives me a hard end date (7/10/2015- 7/11/2015), and forces me to hopefully get something fully working by early July.  The machine is entered in the Restoration Throwdown Contest (RTC) at the Pintastic New England show.  Here’s the link.  This is the first New England pinball show for quite a  few years and I’m very happy to see somebody getting a show up and running so close to home.  It will be interesting if people consider the Sharpe Shooter III a restoration, or something else.

I was going to hold the post off for a few pictures, but I can add more photos next update.  Seems like there is enough info, and I hate when the information gets too stale.

12/27/2014, Clearcoated playfield

The days before Christmas, I took time to fill in most of the post holes. Many of the holes could not hold the post studs anymore because they were stripped. The holes for the guides were also too large. Sometimes larger screws were used instead of the original screws. I’m going to change the studs back to the correct size, so that involved filling the playfield holes.  Some of the holes were so stripped they required two skewers to fill the hole.  I will end up drilling a pilot for each filled post hole to make sure that the post is at the correct position.

I ended up picking the bamboo skewers and glue method. I took a bamboo skewer, dipped it in some wood glue, then jammed it in the hole. After the glue dried, I used dikes (diagonal pliers) to cut off the extra skewer. Next, I used an exacto knife to make it flush with the playfield and get it ready for sanding.  Here’s a quick picture of the acupuncture playfield.


The days around Christmas gave me some time to work on the playfield.  You may remember in the last few pictures that the playfield had the old art. I spent a couple quality hours with the orbital sander to remove the old art and create the “white wood”.  I ended up using 180 grit sandpaper to remove the artwork, and moving up to 220 grit sandpaper for the final smooth coat.  I purchased some 600 grit sandpaper, but since this is a a sublayer under the eventual mylar, it didn’t seem worth it.

After finishing the sanding, I used masking tape to mask off all the holes/light sockets in the playfield.  Polyurethane isn’t conductive, so it will destroy all the lamp sockets that it coats.  After masking off all the holes in the playfield, I wiped the playfield down with a rag, then wiped it down with some mineral spirits.  Let that dry and did a second wipe down.

The weather outside was over 50 degrees, so I could spray polyurethane outside and avoid the fumes.  I used four coats.  The first coat soaked into the wood as expected, the second coat soaked in a little bit, in a few areas, but most of it provided good coverage.  The third and fourth coats provided perfect good smooth coats.  The playfield stayed outside for a few hours to out gas.  Here’s a quick picture of the current playfield.


I started looking for a backbox.  Sarah had some but they were too expensive for what I needed.  I just got in contact with K’s Arcade, and they think they might have some good candidates.  Hopefully I can also pick up the few remaining parts that I need.  That includes stuff like a lockdown bar, the plate that the lockdown bar locks into, a couple of flipper buttons, etc.  Mostly little bits that I haven’t picked up yet.

Next up will be putting the playfield back together.  Making a big order from Pinball Life for LED bulbs and some other random playfield parts that are broken and the parts I can’t scrounge from somewhere else.  I’m hoping to get the playfield into the cabinet by the end of January, but end of February is more realistic.

To finish the art, the top playfield parts will need to be removed again, and mylar added, and recoated with clearcoat, but that is many months away.  I still do not have any idea how I’m going to create the art on the playfield.   I have a couple ideas for art on the cabinet and backbox.

After the playfield is back together, and in the cabinet, I can start programming the rules.  That will involve finishing the framework, and hand coding all of the functions.  I’m not going to take the time to have the auto-generator to create the function code.  While that is a cool idea, I’m not sure how many people would use it, or if people would simply hand code the rules so they have more control of the machine.

12/14/2014, Video of Light Show

Finished some wiring today, and dragged an old computer down to run the lights.  I wanted to be able to have the old computer sitting down there so it didn’t need to set it up and torn down each time.

I wired in a PC power supply, and grabbed the 5V to power the lights.  It also uses the 12V for turning the FETs on and off.  There were a couple of light bulbs out, but since the whole thing is going to use LEDs, I didn’t feel like spending the time to change the bad bulbs.  Strangely, when I look back at my last post, I was pretty certain that I wasn’t going to work on the wiring.  Turned out it was low hanging fruit that needed to be done, and I had bought more crimps, so it made it pretty simple.  Here is a link to the video.  The blinking lights are slowed using a 100 ms sleep so the lights don’t blink too quickly.  I turned the basement lights off which is why the video is grainy.

The 5V from the power supply definitely doesn’t have enough ummph to run the mixture of 44 and 47 bulbs.  The playfield has about 50 bulbs, and when trying to run all of them, the bulbs get really dim.  Looking back at the bulb measurements I did, a 44 is 220 mA, a 47 is 136 mA, while a 4 SMD LED bulb is about 30 mA.

The test worked well enough, that I’m probably just going to tear down the setup and start working on the top side of the playfield and the cabinet.  Both need to be sanded down so art can be applied.

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:


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:


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.


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.