Tuesday, July 21, 2015

Firepower playfield visualisation

 

Toolflow

There are still several playfield part to be designed, but I also like to start designing the playfield to check placement and sizing. Sadly I don’t have a powerful 3d cad program like Solidworks to import all the 3d models in. For the model design I am using Openscad, but that is not usable when working with graphics, or rounded shapes using splines. I tried Freecad, but that is not stable enough. So how to do this?

I came across this website https://code.google.com/p/how-to-build-a-pinball/ and https://www.flickr.com/photos/felipesanches by Felipe Sanches. He was designing a pinball based on a DOS game, but don’t think he ever finished it. But his approach is quite nice: an Inktscape and Openscad combination. He even designed ramps using splines in Openscad.  But for the Firepower playfield I don’t need ramps, that is for the next pinball. I adapted his approach for my purpose.

The tool flow I used is as follows:

  1. Using Inktscape draw the locations of all playfield elements, and possible also draw the playfield graphics themself. Saved in a SVG file.
  2. A conversion tool and some script files extract the elements out of the the SVG file and create multiple .scad files containing the elements positions and sizes.
  3. Openscad is used to view the playfield. A scad file uses the locations files and all playfield element designs to draw up the playfield. Now you can viewed it from all directions.

As entry tool I use Inktscape. This is a free vector edit program. This tool is aimed at image editing, and is less suited for cad applications. As lowest layer I load a crappy scan of a firepower playfield. Sadly I never been able to find a good Firepower scan. On other layers the various playfield elements are drawn. For example there are separate layers for targets, lights, pins, bumpers, flippers etc. Each layer is named. The positions are drawn using circles and lines.

The extract program written in C++ reads and parses the SVG file that is formatted in a XML into memory.  It uses the XML library PUGI to read and parse the SVG file to create a DOME tree. Using the PUGI API the SVG is parsed to find the <g> Layer entries.  If the correct layers is found, the <circle>, <ellipse> and <path> are extracted. Sadly Inktscape does not use <line> and instead stores lines into <path>. The path contents need to parsed again to extract the line information.  In will write a separate blog with more details about the parser. Finally it writes the circles and line out as scad files, using arrays to hold all the extracted coordinates. This works all quite well. Except for one issue that I not have solved yet: I was trying to use the start and end co-ordinates of a line to obtain the rotation of the line. Sadly Inktscape is too smart and sorts the coordinates in a line and ignoring start and end as you draw it. If you extract the angle of the it only goes 0 to 180 degree. If it is more as 180 degree, it just swaps start and end. Bugger!

Openscad is used to view the model. A scad file includes all the created scad files by the extraction program. It and includes all the 3d models of the playfield. Then it uses the extracted coordinates to draw up all the elements. It also creates a playfield with all the holes.

For example there is a layer in the Inktscape hold all the inserts drawn using various sized circles. The extract program extracts the circle coordinates and size. The Openscad file use the circle position and size and down the following: It makes a hole in the playfield of the correct size. It draws the insert model in the playfield. It also draws the below playfield led holder. A small issue is that you can not set the rotation of the below playfield led holder angle.

Inktscape

OK enough text. Some examples:

The Inktscape design. This shows all the layers active:

path5752-07-9

Not all layers are in the Openscad yet. The rounded ball guide shapes are not handled yet. You can also see why the scan is crappy: There is also part of the scan missing, that i filled up with some similar shapes. Worse, the right side is not straight!

This is the same picture, without the background firepower scan.

playfield_pic2

Here are all the playfield elements better visible. The lines and circles are drawn on different layers, depending on the function. There are circles for round inserts, bumpers , pins and lights. Lines are for flipper, slingshot, eject holes , arrow inserts, line guides , targets and switches.

 

Openscad

After conversion this is the result in Openscad.

table2

Shows are pin, switches target and lot of playfield parts are shown. Still a lot of playfield elements are missing at this stage. Slingshots, bumpers,ball guides, trough ,playfield plastics etc. are not designed yet.  In you look careful you can see that the left set of 3 targets is facing the wrong way due to the Inktscape – extraction issue listed above.

One of the first issues pooping up, what that the eject hole mechanism, was colliding with screw holes for pins and lights. So I had to go back designing different types of eject mechanisms that use less area , and are in front of  the eject hole. See the eject hole page for more details.

The Openscad also creates a dxf file with all the holes in the playfield. This is used for the CNC mill or laser cutter that cuts the playfield.

table shooter and inserts top

Picture is not the latest version and missing several holes. But you get the idea. The single red cylinder the front just indicates the center line of the playfield. It is not actually present in the real machine.

Some views of the shooter elements.

shooter

Red is the shooter lane insert, gray is the pinball and shooter rod. light green the shooter tip, and dark green the shooter guide.Black the playfield wooden rails.

shooter2

Dark green the shooterlane cover.

Friday, July 10, 2015

Spinners

 

Spinner are targets on the playfield that spin when the ball hits them. They will slow the ball down slightly, but will not stop them.

The rotation is detected with a switch. For older games leaf switches and new games micro switches. The switch can be either located below the playfield, and actuated with a connecting rod. Or the micro switch is on top of the playfield, and actuated direct from the spinner axel.

The spinners are normally made from metal, to give them more mass. They can then easier create the force needed to actuate the switch multiple times.

DSCN9341
Spinner with a switch below the playfield.
The axel in the spinner is bended in this way, so it is centered in the bracket. The metal wire is welded a bit off-center in the spinner, so it only needs one bent on each side.
The spinner is held vertically by the weight of the wire.
DSCN2393 - crop
This is a similar spinner mounted on a playfield. The rod to the below playfield switch on the left always must be protected against direct hits by the pinball.
30
Spinners have normally two different pictures on them that will show some kind of animation during rotation.
This spinner uses a micro switch mounted to the left of the spinner above the playfield.
The spinner is held vertically by the force of the microswitch on the arm of the spinner.

 

Design

The rotation detected with an contactless sensor. Because the sensor is contactless, the spinner can be lighter. The spinner will be made from plastic.

There are several options for the rotation sensor:

  • The sensor can be a hall sensor what detects the magnet mounted to the spinner. Nice approach only needed one small part, and creates a digital pulse.
  • It can also be optical. A tab on the spinner interrupts a beam.
  • Sensors like metal induction sensing, capacitive, magnet and coil, etc

It would be nice if the sensor only detects when the spinner rotates at least 180 degree. Also a long pulse would be nice to not miss the pulse. The HALL sensor will likely only create a short pulse. The length of pulse by the optical sensor depends on the shape of the beam interrupter tab.

I choose a optical sensor in the form of an U shaped detector. It is interrupted with a half circle shaped tab mounted on the spinner.

The spinner need to be heaver on one side, so the spinner hangs almost vertical. The playfield is angled about 6 degree, so normally the spinner would be hanging this amount of square compared to the playfield. Due to the weight of the interrupter tab this compensates for the playfield angle.

spinner1

The front of the spinner. The axel is made with a 2mm stainless steel rod. This allows the spinner to rotate with very little resistance. The axel hole is printed and not drilled.  The steel rod is held in place by the 2 m4 screw nuts that hold the bracket in place. 

The spinner is a bit longer on the lower side to keep it vertical in rest.

spinner2

The rear of the spinner. The red part is the optical U shaped interrupter. It is hold in place using the wires of the sensor. The hole of the side of the spinner frame is for the sensor wire.

 

3D Print

 

 

 tn_IMAG1863

In the photo is the spinner upside down, and not in the rest position. This can be seen that the length of the spinner on top is longer then on bottom.

The plastic is transparent, and did not block the light to well. So the interrupter tab is painted black.

The spinner rotates quite a nice number of times after being hit with a pinball. The approach using a plastic spinner and contactless sensor works quite well.

Issues and improvements

The interrupter tab is printed as part of the spinner. Because it sticks up and is thus is printed on the the short side: this does create a much less strong version then when it is printed on the longer side. Alternate this could be split into two parts, and glued together.

There are several issues with the current design that can be improved in the next iteration:

  1. The tab on the spinner that interrupts the beam is to long and fragile: the ball can hit it and break it.
  2. The U sensor opening is a bit to small to allow strong tabs and still allow enough tolerances. Better to use a separate ir led and photodiode and a horizontal instead of a vertical tab.
  3. Possible I drop the optical approach and use a HALL sensor approach. This allows a less cluttered spinner bracket. Drawback is a much shorter rotation pulse.

So again back to the drawing board.

Thursday, July 9, 2015

Share design or not?

 

I did receive several request to publish my design, but have not made up my mind if i do that and how. In any case if i publish the files, it will be after I finished building a playfield with the 3d printed parts and testing all of them on reliability. If it does not work, it is a bit useless to share the design, except to show how it should not be done.

I have published some designs on thingiverse. There is a lot of interest in some of them. For example an extruder puller design has been viewed 4000 times, and downloaded 700 times. But it is all very very one-way flow. Of these 800 downloaded designs, possible 10% is printed so maybe  70 of them are now in the wild. From these 70 printed , I only receive from 2! a thanks for the design, and only one took the effort to show his print. This is not really satisfying, and does not give a good incentive to publish more designs.

So I have to find a way to get more satisfaction if I publish them.

Tuesday, July 7, 2015

Ball ejects

 

Also known as ball locks or saucers. These are parts of the playfield, where the ball falls in a hole. The ball stays there till the ball is pushed back up onto the playfield by a electro magnet. The electro magnet is under control of the computer, and will release the locked ball depending on certain game rules.

Some parts of the pinball machine all look the same , but  ball locks are present in several implementation styles. The end result is the same: some pin will push the ball out of the hole.

There is always  a ball detection switch present that informs the controller that a ball is present in the lock. The sensor is normally either a micro switch in newer games, or a leaf switch for the older ones.

$_57 (1)
Horizontal variant. Need very little vertical height, but needs a large space on the playfield.
5H5A6358 - crop
60? degree version with a bell-plunger and a (red) eject shield.
The micro switch indicating ball present is also visible.
ballejectshield
Eject shield. This is the part where the ball rest on.
515-7309-01_3 Typical shape of a bell plunger
473226_557675907606294_864192683_o - Copy
Vertical version with a lever made from metal.
DSCN8648[3]
The metal lever is build of two parts connected with a spring. I think the spring is used to reduce the speed of the ejected ball.
eject_crop2
Vertical version with a lever made in plastic.

 

Design

The ball sensor is done with a contactless induction sensor. They are easier to use then micro switches. Micro switches always need some special formed metal wire or metal tab to detect the ball. A contactless sensor only need to be close to the ball, but only need a hole and something the clock the sensor nut against.

I tried out several styles of eject hole. They all share that they use a relative large hole in the playfield. The insert sticks completely through the playfield, and will protect the wood from damage. The plastic can get ball wear, but is easy swapped out.

I have designed several variants, but still not fully happy with the design, and they need more tuning. The types are:

  • 45 degree angled could, with a bell plunger sticking through it.
    • A wide version: this was taking to much space and is not used.
    • A smaller version. Much better, but still the footprint is too large, and cannot be used in all places.
  • A 90 degree inline direct version also using a bell plunger. Uses very little playfield space, but is very long. It sticks 180mm out from the playfield
  • A 90 degree variant that uses a lever. In this variant the coil is in that place of the playfield where normally the ball rolls over, and where the playfield is not used. Design is ok, but has extra moving parts.
  • Still to design: a 60 degree variant like the 45degree variant, with the bell-plunger sticking through the coil. Only the coil is mounted on a smaller area, using less area of the playfield.

The following sections show each of these designs.

 

The 45 degree design

Need to create some drawing pics.

 

tn_IMAG1664

The complete ball eject viewed from the bottom. The contactless sensor is on the front in tis nut bracket.

The spring that returns the plunger back is missing in this picture.

 

tn_IMAG1641

This shows the top of the eject in activated mode. The pin that pushes out the ball is fully extended.

 

tn_IMAG1646

Eject shown with a pinball. The ball is located off center to allow a ramp back up the playfield.

tn_IMAG1655

Here the metal parts that are needed for the eject.

From top to bottom:

  • On top a pinball and an unprocessed piece of rod.
  • The part with metal and plastic is the plunger for the ball eject. It is missing the bell top that holds the spring.
  • Just below it is a plunger without the plastic part. The end is reduced in size, so it  can be melted into the plastic part.
  • The short pieces are used as coil stops. They hold the coil in place, and also stop the plunger. Not used in the 45 degree ball eject.

Eval: this ball eject variant looks works very well. It uses only one moving part. The drawback is that it takes a lot of playfield area behind the eject hole. Depending on the playfield layout this space is not available in a lot of situations. In case of the Firepower, only the top ball eject can use this type of design.

 

The 90 degree inline design

This version the ball is pushed away with a pie of plastic angled 45 degree. The plunger is a bell type variant. To improve the easy movement, the purple part is printed in two parts, so that the printed layers are perpendicular to each other.

This type of design uses very little playfield area, but need a long vertical space below the playfield.

 

eject90_coil_in

The design is shown in rest position. Not shown are the coil windings and the spring coil. Red is coil holder. green is plunger bell end stopper. Blue is the plastic part of the plunger.  green is the ball shield holding the ball, and protecting the playfield

Another view showing the sensor and shield.

eject90_in

The part sticking out at a 45degree angle is the contactless sensor that detect the pinball. It is hold in place with the cyan sensor holder.

eject90_out

This a drawing of the coil in activated mode. The ball is pushed out on a 45 degree angle by the purple eject blade.

This design is not printed out yet, except for the ball shield and the eject part.

It looks to give the ball the correct direction.

Eval: Uses very little space of the playfield. the smallest of all designs. It looks like that ball eject direction is good. The sensor is close enough to detect the ball reliable.  After a redesign of the eject part, the shield and eject parts runs smooth along each other. It does not look to create problems when the eject part is pushed sideways during the ejecting. Biggest drawback is the length of the total construction, that need a lot of space below the playfield.

Possible options to reduce the space needed below the playfield:

  • No return spring , or us a expanding return spring connected to the eject part. Then the bottom part of the coil holder not needed. The (green) bell top can be removed, and plunger shortened.
  • The (purple) eject parts can be shaped differently, so it needs less space between the ball shield and coil.
  •  
 
The 90 degree lever design

This design uses a special shaped arm to push the ball away. It has a moon shaped hole on the end to avoid the use of an extra part of plastic, The plunger has direct contact with the arm. I hope the hole will not get too much wear by this construction.

Another thing that need to be tested weather the 4mm thick arm is strong enough to hold up with the force applied to it when ejecting the ball.

 

eject_vert2

The coil and plunger are not shown for clarity. The light green part is the ball shield. The dark green part is the plunger stopper. The transparent parts are the coil holders, which are hold on both sides with the yellow plastic parts. These absorb the force of the activated coil.

eject_vert1

Visible in this view is the contactless sensor in its cyan holder. The yellow parts have several reinforcing ribs to stop the part from bending during activation. Between the purple coil and yellow part is a metal string (not shown) to return the arm to its rest position.

eject-vert3

Shield shown from the top in rest. The ball can be captured.

eject_vert_5

This is the active mode. The ball will be ejected. The rounded of end of the lever aims the ball .

This design is printed, but did not make pictures of it.

eval: the footprint is good, but still could be reduced further. The feed of the coil can be smaller. The eject mechanism works good. It is ejecting the ball nicely. The strength of the arm must be evaluated, it it is thick enough. Also the wear on the arm must be checked. Possible the coil and plunder must be replaced with a 11.11mm plunder and standard coil sleeve, to deduce the scraping resistance between plunger and coil. But during test this did not seem to be an issue.  For some reason the moon shaped opening was misaligned with the plunger after printing. What the cause of that must be checked.

The 60 degree design

No drawing yet.

Saturday, July 4, 2015

The shooter lane

 

The shooter lane consists several parts:

  • The lane itself with the groove to center the ball to keep it aligned with the shooter rod.
  • and the shooter lane cover, that stops the ball rolling back. It also has some scale to help the skill shots.
  • Sometimes the shooter lane also has a auto shooter, that can launch the ball without used intervention.
  • And the shooter rod itself
18560635306_b14832a71c_m img_4532 - crop
   

The amount of power the ball receives from the shooter rod depends on several factors:

  • Of course the amount the shooter rod is pulled out.
  • The strength of the shooter spring.
  • Less obvious is the distance between the ball and the tip of the shooter rod.

You can see in the two picture above that this distance varies. In the left picture the shooter tip protrudes the cover, when on the right it is below the shooter cover ball stop. The playfield in left picture can only be lifted, after the shooter rod is pulled back.

Firepower

I recently played for the first time on a real Firepower pinball. I also took some measurements of the shooter lane dimensions.

The wooden side rails are 14x30mm.  The space between them = width of the shooter lane is 35mm.

The out- lanes are 30mm wide.

Design

Shooter lane

To simplify the creation of the shooter lane groove, I created an special insert for it. The original idea came from here: Swinks design http://www.thingiverse.com/thing:608164 for a shooter lane insert. The design seems to be no longer available on thingiverse. This design was on the top face of the playfield.

The shooter lane insert I designed protrudes through the whole playfield. It is mounded on the back of the playfield with multiple screws. The drawback is that the playfield looses a lot of strength, due to the large hole needed to place the insert. Part of the lost strength is taken over by the insert itself. Let us hope the lost strength is not causing issues.

shooterlane

Top view. The holes for the screw have some extra clearance to allow for a little bulging of the playfield wood, then a screw in screwed in. The top is rounded off, to allow it to be make using a 25mm wood drill.

The bottom of the insert contains holes for both the contactless ball sensor and RGS leds. The Leds allow some animation to be shown during game.

shooterlane_bottom

The left hole is for the contactless sensor, and the other ones are for the LEDs. The sensor hole is quite deep, so the sensor is very close to the pin-ball. The LED holes have a conical shape, both to allow simple 3d printing as well as to spread the LED’s light around.

Shooter cover

The shooter cover has two main functions:

  • Stop the ball from rolling back, when the shooter is pulled.
  • Scale to indicate how far shooter is pulled back.

The shooter covers are normally make from metal, but i designed it in plastic. The risk using plastic is that when the ball falls back that it could crashes quite hard back, and then possible break the plastic. The metal one is better, because that just bends and releases the energy back. So the plastic cover has to be quite strong at the ball side.

For the rest it looks the same as the metal version.

cover_t[4]

Possible I going to change the round woodscrew holes to oval ones, to allow a bit of adjustment relative to the rubber tip of the shooter rod. The shape is designed to it can be printed with a 3D printer. The shape is designed to it can be printed without support, when standing on the ball side.

 

cover_b

The front where the ball can be hit is made quite thick. Also shown the extra support at the side to absorb the forces better.

 

Assembly views

Some views how the shooter and cover are aligned together.

both1

The shooter lane insert is mounted below the playfield, and the cover above it.

cover

The ball is positioned at the end of the shooter lane insert, and rest against the shooter cover.

Bottom view

both_b

Here is the shooter lane insert and cover projected to the playfield.

shooter2

 

Other view without the cover.

shooter

 

The full view of the playfield.

table2

In a later blog will go into more details how this picture is created. This view is still missing lot of parts, like all the ball guides , pop bumper , slingshots and ball trough. These are still in development.

 

Result

I only have printed the insert at the moment.

Here the top view of the insert.

tn_IMAG1880

 

tn_IMAG1879

The bottom view. On the left the inductive ball sensor holder. The 3 screw pairs on the right are to hold the small WS2812 RGB LED PCB’s. You can see the honeycomb fill pattern used during 3D printing.