Things that Go Bump in the Night¶
Pop bumpers are one of the main targeted play pieces in a pinball machine. Their intended function is to give the player points when hit, and to launch the ball quickly away from it, hopefully making the ball hit other pop bumpers along the way. The pop bumpers are usually grouped next to each other to increase the likelihood that the ball will keep bouncing in them.
Final files
All the files are build around the DIY solenoid I made. Especially the solenoid hanger.
- Bumper hat (.stl) (Fusion archive)
- Bumper pillar (.stl) (Fusion archive)
- Bumper striker (.stl) (Fusion archive in pillar)
- Attachment ring (.stl) (Fusion archive)
- Solenoid hanger (.stl) (Fusion archive in pillar)
- Vinyl cuttable copper plates for surface (.svg)
- Vinyl cuttable copper plates for pillar (.svg)
- Solenoid hole for board (.svg)
Links¶
https://fluxwood.org/front/electronics/printing/2018/04/07/Pinball-Machine.html
Version 1¶
Modeling¶
Modeled the object with Autodesk Fusion.
Created variables.
Drew three circles: the outer rim for the bumperHat (and the striker), the circumference of the central pillar, and the clearance between the central pillar ant the striker.
Drew rectangles for legs, constrained to midpoint to construction line, and set the distance from origin to (pillarDiameter /2) - (legWidth / 2)
.
Now I had the pillar and the striker ready.
Added more variables for attaching the pillar. There included things like holeRadius, boardThickness, attachmentLength, attachmentWidth and attachmentThickness.
Added to more rectangles to the pillar, similarly to the legs, but this time using different measurement and with 90 degree separation between them and the legs. These were meant as the attachment points for the pillar, which is meant to be attached from below the board.
Extruded the pillar to two direction, upwards equal to bumperUnderhatHeight
and below equal to boardThickness + attachmentThickness
.
Extruded the attachment points and joined them to the pillar, using start with offset. The offset was set to the same boardThickness + attachmentThickness
as pillar downward extrusion.
Extruded the striker as new object. above the same bumperUnderhatHeight
.
I had trouble creating the striker. Extrusion would not allow for large enough taper angles to make it, and I couldn’t figure out how the loft operation should work.
After playing around a bit, I remembered the draft command that I had used previously for exactly this kind of purpose. So I used that.
To attach the striker to the solenoid:
- Variables for solenoid dimension
- Reset variable for legLength
Added slots to the bottom of the striker so I could push a piece through it that could attach the striker to the solenoid with a nail. I did not design the attachment myself - or make it a part of the striker - order to keep the leg assembly as a separate printable object. If the attaching component was part of the striker, the striker would be constrained both from top and bottom, and as such it would need to be printed with the pillar. This made testing and prototyping easier.
I will probably end up with just putting a nail through that hole when the whole bumper is finished. It really depends on the type of connection that the solenoid will have.
Files at this point
The First Test Print¶
Printed the piece.
The body was okay.
The striker had a few problems. First, I had not taken into account the fact that the pushing solenoid needs to fit between the striker’s legs. Second, I had not taken into account the solenoids shaft, which protrudes from behind it. And third, the slot which were meant to attach to the solenoid were too small. This could have been mitigated by shaping the piece that is attached to the solenoid more bulbous, but widening the legs should also work.
The striker part also did not fit through the body. To fix this, I increased the inner ring size from pillarDiameter + clearance
to pillarRadius + 2*clearance
. This makes it so that the clearance is accounted on all sides of the pillar. I really hate it how both Autodesk Fusion and Inkscape default to giving measurements in diameters instead of in radii. Though I would expect same kind of problems to happen, if the value would be given as a radius.
Changed pillar diameter to solenoidCaseThickness + clearance
.
Increased the height of the striker part. The first attempt looked a bit too flimsy. Added two millimeters of thickness to it.
Version 2¶
After I decided to make my own pulling solenoid, I needed to redesign the bumper to them. The new ones also were pulling solenoids, so I needed to take that into account as well.
Remodeling¶
Most of the changes happened just by changing the parameters. The leg length for example was reduced to just BumperUnderHatHeight + attachmentThickness + hookLength
.
I also changed how the pillar attaches to the surface. Before it was just two small outcroppings, but I replaced them with a circular shape at the same height, with diameter of attachmentDiameter
. I set the attachmentDiameter = 40mm
to match the diameter of the solenoid.
Attaching the Solenoid¶
The solenoid required a way to attach it to the bumper. I created a small attachment for it. I started by editing the solenoid file in Fusion, created a new sketch and a couple of new variables.
Variable | Description | Value |
---|---|---|
attachmentWallThickness | Thickness of all the walls in the attachment. | 3mm |
solenoidCoilClearance | How much bigger than outerDiameter the radius of the hole for the solenoid should be. | 6mm |
attachmentLipHeight | How much should the walls rise over the place where the solenoid is hanging. | 3 mm |
attachmentLength | How far should the solenoid hand from where the attachment is attached to. | 30 mm |
attachmentHatDistance | How wide is the lip that is used to attach the attachment to the surface. | 10 mm |
Drew a lot of concentric circles:
- One with diameter of
outerDiameter + 2*clearance
- One with diameter of
outerDiameter + 2*clearance + 2*solenoidCoilClearance
. - One with diameter of
outerDiameter + 4*clearance + 2*bottomLipDistance
- One with diameter of
outerDiameter + 4*clearance + 2*bottomLipDistance + attachmentWallThickness
- One with diameter of
outerDiameter + 4*clearance + 2*bottomLipDistance + attachmentWallThickness + 2*attachmentHatDistance
Then I added two rectangles, both of which I constrained their top edge with midPoint to origin. The measurements of these rectangles were:
outerDiameter + 2*clearance + 2*solenoidCoilClearance
xouterDiameter/2 + clearance + bottomLipDistance + attachmentWallThickness
outerDiameter + 4*clearance + 2*bottomLipDistance
x200
(an arbitrarily large value)
I was lazy, I should have made variables for all of these measurements, as they all relate to each other, but I didn’t. Naming all of them clearly would also have been a challenge.
I then extruded them with proper distances.
The gaping hole on the side for easier installation was done by not selecting those portions when selecting what to extrude.
The slot for inserting the solenoid was done by extruding with cut and offset set to attachmentLipHeight
.
Testing¶
Printed one without supports. I was surprised how well it did print without supports. It was completely unusable piece of spaghetti, but if I had no other choice, it would be serviceable. Especially the overhang was good as it was.
At this point I had two possibilities. Either I could completely abandon the slot idea and go with solid tube to which I drop the solenoid from top. Or I could built some sort of support structure to the slot, and just increase its height a bit.
attachmentLipHeight from wallThickness
to wallThickness * 2
.
Fixed the wallThickness by changing the diameter of the outer wall circle to outerDiameter + 2 * bottomLipOverhang + 4 * clearance + 2 * attachmentWallThickness
.
Ball Detection¶
During input week, I tested multiple ways to detect an approaching ball.
I settled with a system where the steel ball just shorts two copper surfaces together. From the point of view of the micro controller, this will function just like a button, because they will default to open, and the circuit will be closed when the ball hits it. The code for bumpers expect the copper plates to be connected to ground and pulled up input pin.
This decision might be the cause for the later woes, where the activating one solenoid also activates all the other bumpers. The large copper plates might act as antennas, which react to the quick change of the magnetic field, sending a signal to the micro controller even when there is no ball to short them.
Attaching to the Board¶
The idea that I would need to glue the bumper pillar to the bottom of the surface did not seem enticing to me. Especially for testing purposes, where I probably would need to swap out pillar with different measurements when I changed the dimensions of other pieces. So I tried to fix it by coming up with an attachment method, which could hold both the bumper pillar (with the striker) and the solenoid hanger.
At first, I tried to add screws. Created new holes for 3mm hex nuts with 6mm head diameter and 3mm head thickness. To do this, I needed to adjust the thickness of the base.
I also needed to shorten the design, as at this point I had decided to laser cut the board from plywood instead of milling it from proper proper wood. Thus the board material thickness was 3mm instead of the originally anticipated 10mm. Probably, if and when I finish the pinball machine properly (in a couple of years), I will mill the board, to make it sturdier and less prone to bending. Plywood is notorious for not being straight.
After testing them a bit, I abandoned the screws. Instead added a twist connector, which was glued to the bottom of the base, and to which the bumper pillar and the solenoid hanger could be attached.
After testing the strength of the bumper, I came to the conclusion that the solenoid creates more strength the farther it needs to travel. Thus I increased the length of the solenoid hanger by 10mm. The increased length also enables me to use longer springs. Longer springs are good because they are weaker, thus resisting the solenoid less. I did not need to increase the length of the striker’s legs, as the increased depth was created to hang the solenoid lower. I just needed a longer spring, to keep the solenoid anchor higher.
Test strikers
The new length seemed okay, and indeed increased the strength somewhat. It still a bit too weak, but I think that now the most useful thing is to try to figure out the optimal angle for the striker. I tested a couple different angles, one 60 degree angle, two 45 degree angle striker, with different thicknesses of the striking bit (and thus the amount of flat, non-angled bits).
In the end, I decided to go with the thick 45 degree one, because it had the best results in the tests. This is most likely because it had the least amount of flat area next the pillar, and it was wide enough to hit the ball properly. 45 degrees might have also been the best at redirecting vertical motion to horizontal force.
Hat¶
All pinball bumpers have a hat that covers the mechanics under it. This is mostly done, because the mechanisms are ugly, and the hat allows the manufacturer to add fancy graphics on top of it. I did not do any fancy graphics for it, but since I had made a hole in the bumper pillar to accommodate the magnet, I might as well make a hat the can be inserted in that hole.
The best way to do this would have probably been something similar to the twist mechanism I made to the bottom the the board. But I was lazy, and this was a last minute addition, so I just made a short round tap that could be inserted loosely into the magnet’s hole. Then in Autodesk Fusion I lofted between to surfaces, one which had a octagonal shape, and one which had a circular shape.
Wiring¶
Wiring was somewhat tricky. I followed the original plan that I tested during input week, but there were still a couple of problems left to solve. Namely, how to get wires from below the surface to the copper plates on the top of the surface, without disturbing the playing area.
The idea was to use copper tape to detect the ball, and have the tape go continuously from the top to the bottom of the playing surface. With the grounded playing surface tape, the solution was to add an additional length of tape in the internal hole, and wrap it around the surface, as pictured.
The pillar would have two T-shaped copper pieces on each side of the striker, wrapping around the base to the bottom of the pillar.
There were only two problems:
- The copper from the playing surface did not reach outside the solenoid holder
- The tape attached to the bumper pillar could only move along the surface of the pillar without ripping or flipping.
I tried a couple of tricks to solve these issues. The surface one was easy. The only way to solve that was to make the strip longer, so I just taped a longer strip to the end of the previous one, and soldered them together.
All fixing attempts with the pillar started with the same setup with the copper tape, and are presented in the diagram on top. The first attempt was to just tape another strip of copper to the bottom of the surface, and have the coppers touch each other. The problem with that solution was that the gravity pulls things down. This meant that the pillar, which was not glued to the bottom, often hang low enough not to touch the tape on the bottom. I even tried different methods of making the tape thicker, like multiple layers of tape, or adding a small mount of solder on the tape, but none were reliable.
The second attempt was me trying to copy the solution from the surface tape, and copy that solution directly to the pillar. I taped another strip of copper tape at the bottom of the base of the pillar, and wired it to the outside of the solenoid hanger. The problem with this solution was that the tape needed to be reinserted every time I removed the bumper for any reason, either to test new assembly, or because I inserted something wrong. But the bigger problem was that this needed to be wired somehow through the twist-ring attachment, which meant that the tape would often tear when constructing bumper.
The third and last attempt was using a wire that I soldered to the base of the pillar, where the copper tapes ended, and guided that wire through a hole that I drilled to the solenoid hanger to the outside. Then I could attach the bumper PCB to the new wire easily.
Assembling the Bumper¶
At this point, the bumper was mostly ready. The only thing left was to assemble it.
Above is a blow-up image of the bumper, with all it’s parts laid out in the order that they slot nicely to each other.
The parts were designed to go together nicely, so the construction was quite easy. The most finicky part was to get the solenoid anchor attached to the striker, while at the same time keeping the anchor inside the solenoid and it’s hanger.
Testing¶
Once the bumper was constructed, it was time to test it. The electrical mechanism seems to work okay. The bumper activates most of the time when the ball is near the bumper, especially if it hits it fast. Sometimes, but rarely the ball gets stuck into the bumpers magnet, while not activating the solenoid. The detection mechanism scratches and oxidizes easily, making the ball detection unreliable at times.
The striker seems to function well, and moves the ball every time, with considerable force. The force could probably be stronger, but it is good enough for now.
Oh, and the hat keeps popping out. It probably needs some way to attach it to the pillar.
Future Work¶
I’m quite happy with how the bumpers came out. The design takes a bit too much space below the board, which means that the bumpers can’t be as close together as I would like. I could try to make to solenoid hanger and the twist lock a bit thinner to make it happen, or redesign the whole thing.
The bumper also seems to get stuck sometimes, and not move the striker even though the solenoid activates. Similarly the large copper plates seem to act as antennas, and activate randomly even when the ball is not nearby. They seem to activate when some other solenoid activates.