Pinball Machine

TL;DR -> Download and play everything here.


I have wanted to build my own pinball machine since first playing Cue Ball Wizard at our local Buzztime/NTN establishment we frequented when I was in junior high. I even had a bet with a friend to see who could build one first. I won, because my dad bought me three pinball-sized ball bearings and I bought a huge plank of plywood and drilled a few holes in it.

Now that I think about it, this project is probably what got me really interested in digital electronics back in junior high. I thought about how the scoring would work electronically, and learned enough to wire up a 7490 Binary-Coded-Decimal IC, hooked up to a 7 segment display. It’s amusing to look back now, and realizing what I didn’t know then…it would have taken a lot more than that. But hey, we all start somewhere.

End Goal

As I type this in August of 2021, my end goal is to create a full sized table, implementing the design shown at the top of this page. I plan to make regular updates to this page documenting my progress.

4 Jul 2021: Playfield layout and Game Logic Design

I started by researching online forums for other folks that were into custom pinball game design. I stumbled onto and quickly found a couple different avenues to begin design.

There were a ton of downloadable games (both commercial reproductions, and custom designs) using Virtual Pinball designer/simulator, so that’s the tool I chose. I looked at several designs, saw what I liked, what I didn’t like. I also spent a few hours watching Youtube videos about game design, what to consider, etc.

Visual Pinball enabled me to come up with a quick initial design, play test, refine, and play test more. It has a built in emulator with a pretty good physics engine. Pinball events are scripted using VBScript. You can implement all the game logic you can come up with (various modes, bonuses, etc) and even play audio. A good portion of my design time has been spent ripping audio from the real Beerfest movie, which is an amusing aspect of game play. I fully understand I probably won’t be able to sell this game without obtaining some kind of legal right to do so – but for now I am just creating this for me and friends to be played inside my home.

23 Aug 2021: Download and Play Simulation

Note: Downloading and installing Visual Pinball X will install VPX, but also VP 8 and 9. Use 9 to play my tables (specifically, VPinball992.exe – and run in administrator mode!) I’ve only developed/tested with 9, because VPX runs too slowly in my Win10 virtual machine.

Get Visual Pinball, the standard Beerfest table, and a “wimpy” version that has blockers on the out lanes and a blocker between flippers (so it’s easier to test and play all the game modes without dying!)

Download from Google Drive here


  1. Install VPX. This will also install VP 9.
  2. Browse to the install directory (c:\Program Files (x86)\Visual Pinball).
  3. Right click on VPinball992.exe -> Run as Administrator.
  4. Click File->Open to open the Beerfest table of your choosing.
  5. Play and (hopefully) enjoy!

23 Aug 2021: Game Rules

Main Goal: Complete the 5 Beer Games to unlock DAS BOOT for massive points! Hit “Game” kicker to enter these modes.

  • Long Pour (Shoot the ball up the ramps)
  • Quarters (hit the shot glasses/quarters)
  • Strike Out (hit the drop targets)
  • Volume Chug (hit all targets for points)
  • Trojan Keg (hit the Trojan Keg target)

Multiball: Lock 3 balls by hitting them up either edge ramp and drop it into one of three beer pong cups that are rotating below the beer glass platform. In this virtual pinball game, the rotating cups are simulated by a lid appearing over the cup in regular intervals. In the full game, I plan to have 3 cups rotating below. This was too hard to simulate so I faked it…

Spell B-E-E-R K-E-G by playing Plinko (or Drinko?) in the upper level to increase end-of-life bonus.

Hitting the tavern alley on the left will increase an end-of-life bonus.

Hitting Chance target in a round will increase score multiplier (2x – 7x).

What’s hidden in the upper playfield: There are two “Quarters” targets behind the rotating beer cup object. There’s also another kicker hidden behind the two ramps to the right – whenever you hear “You play rim rules?” – you’ve got it!

28 Aug 2021: Blender Modeling

Began modeling the pinball machine in Blender a few days ago. I’ll be able to model and 3D print many of the playfield devices on my own. Learned a lot about using curves! Here’s some screenshots of my progress:

28 Aug 2021
29 Aug 2021

3 Sept 2021: Blender Dev (Pong Table)

I decided to modify the “beer pong table” rotator (seen above) that held 3 cups into a table with 2 cups – looks a lot more like a beer pong table now. In Visual Pinball, I had coded multiball based on the rotator/3 cups. Now that I’m down to 2 cups on the table, I can use one of the kicker targets to activate multiball, of course after the player has successfully dropped two pinballs into the cups. I also modified the cups after taking screenshots of the modeling to make them more realistic, and also printed them in multiple colors. Mostly final version is shown below.

There’s a pinball-sized hole at the bottom of each cup, and extends through the top of the table. A hinged trap door, held up by a solenoid’s actuator arm, prevents the ball from falling. When the solenoid is activated, the actuator is pulled toward the solenoid, which then allows the trap door to fall down due to the weight of the pinball. I plan to rotate the table using a servo motor mounted below the playfield (hence the 20mm shaft you see at the center of the table). I think this is a much better design than the circular rotator in my original design – it will add to playfield randomness nicely.

6 Sept 2021: Ramps Modeled

Once I had the Pong Table modeled, I could fine tune the modeling of the ramps. There are two ramps leading up to the pong table, a ramp that loops around the center of the playfield, and the ball launch ramp. I also figured out how to animate the Pong Table in blender, to make sure there is enough clearance between it and the loop ramp. Also, it’s awesome to watch.

Here’s the first version of the left ramp printed in two pieces, attached by screws.

26 Sept 2021: Full Size table modeling in Blender

I started buying parts a few weeks ago. I now have two flipper assemblies, two slingshots, some posts, a plunger, and some playfield inserts. That enabled me to precisely model objects in Blender, and so I’ve made some revisions. Here’s its current state:

I still have the ramps and pong table, but I’m focusing on the lower third right now. Specifically, I decided to tackle the ball trough/ball eject functionality (shown in the bottom right). I looked over a few different designs, and I settled on an above-playfield one. I could have bought a trough/eject mechanism, but I’ve spent a good deal of money lately on all the other parts, and so I decided to implement my own design using 3D printing.

In this design, when the ball is drained, it rolls to the bottom, where I will have a ball sensor. The solenoid to the left will fire, which sends the ball through an elevated-in-the-middle guide, where it will be collected along with the other balls on a descending slope trough. The other solenoid to the right, when commanded, will launch the ball through a second guide which places the ball on top of the plunger, ready to be launched for play. While I initially thought this design would be easy to implement, it has proved challenging – I’ve adjusted the height of curved ramp several times to get it just right. My first revision had the height too high – the left solenoid was not powerful enough to get the ball to the other side (it’s only a 12V/2A solenoid). I also had issues with the slope of the right side of that curved trough not being steep enough – sometimes with only 1 ball, there was not enough slope for it to start rolling down on it’s own. That seemed to be a limitation due to 3D printing. Because the slope was not that great, there were flat spots, and the ball could rest on one of those. Sanding helped, but it wasn’t perfect. I’m currently printing my latest revision which I hope will solve all of those issues.

I also recently bought some MDF and starting prototyping the playfield in real life, so I could work out bugs like the ball trough. Here’s the latest with that:

I also recently purchased two power supplies (48V and 12/5V) and all the solenoid/switch/LED control circuitry I think I’ll need. I decided to go with the P3-ROC system, which has plenty of online support from tinkerers like me. This system has a primary CPU board with USB that can be connected to something like a Raspberry Pi. The Pi will implement the game logic, sound, and video/LED matrix. When various lights need to be lit, solenoids fired, or switches read, the Pi will communicate with the P3-ROC, and it then handles all the low-level functionality, like driving the high-powered solenoids or lighting banks of LEDs. Here’s its current state:

I’ve got the Power Supply Units mounted to a board, and cables connected, but that’s about it. Once I get the ball trough/eject mechanism finalized, and the two flipper mounted, I’ll work on getting a rough software framework implemented, and I just might have enough working to get absolutely minimal game play up and running! I’m very excited for that…

6 Oct 2021: First Flipper Test

I’ve installed Mission Pinball Framework onto my development workstation, and have been working through the tutorials. MPF is an open source pinball machine framework designed to control everything pinball: switches, solenoid coils, custom devices, game logic, audio, and video. I’m developing everything on my dev workstation, but ultimately MPF will be running on something small that will be fit inside the machine, maybe a Raspberry Pi. For now, I can start developing all the actual game logic and test it out on actual hardware.

I’ve got my power supplies connected to the P3-ROC controller, a 16 port solenoid driver control board, and a 20 port switch controller. That’s enough to start developing actual game play on my prototype playfield!

Check out my first flipper test demo on Youtube here.

16 Oct 2021: Outer Playfield Walls Complete

I’ve spent the last several days modeling the playfield walls in Blender, and basically 3D printing nonstop. Once I get the plunger lane ramp complete, I’ll mount the plunger and actually be able to play a full round using all the mechanisms instead of dropping the ball with my hand! Here’s what the playfield looks like now:

24 Oct 2021: Fully Automated Game Play

It’s been a busy week! I designed and 3D printed the launch ramp, and mounted the plunger, a start button, and all opto sensors required for fully automated game play. After configuring MPF so it knows about all my additional switches, I can now start a game, play the ball, and when it drains, the system detects that, punches it into the trough, and launches a new ball into the plunger lane. It does this for 3 balls worth. MPF has a built in GUI display (in place of the eventual Dot Matrix Display).

See here for a demo!

30 Oct 2021: Playfield Redesign

I decided to redesign the upper third of the playfield. After playtesting the flippers and seeing the force the pinball can run into things, I was not comfortable allowing the pinball to smack into the pong table. It would take a beating. I also thought I was wasting a lot of real estate by placing it in the center, with two smaller paths to the upper playfield on either side of the rotating table. I also didn’t like the redundancy and wasted ramp space by having two ramps to get to the “Drinko” upper playfield. I could re-purpose the left ramp to something cooler. I decided to make it a ramp that splits into two possible downramps that are wireframes, that lead to either flipper lanes. I think that will provide a cooler playing experience. I can also add more targets in front of the pong table that both serve to protect the table, and add additional ways to score points.

Here’s the latest blender design:

I also now have the “Drinko” upper level designed. Since it looks like “Plinko” from “The Price Is Right”, and because we own this novelty bottle cap Plinko-like game called “Drinko”:

I decided to name the playfield by the same name. All rights not reserved. There will be sensors on each pathway that originally had the player spell B-E-E-R-K-E-G, instead I think I’ll have them spell D-R-I-N-K-O-!

Because of the redesign, I was able to better utilize the upper third of the playfield. I decided to add an additional pop bumper. That will make for some slick loud action when the ball is up there. I downloaded some free models of pop bumpers and modded them to the size of mine. Here’s a screenshot of the upper playfield, with the Drinko level hidden showing what that layout now looks like:

21 Nov 2021: Playfield Printing & Assembly

I’ve been busy the last few weeks printing a lot of walls, ramps, and assembling various playfield devices. I’ve installed both slingshots, the two pop bumpers in the upper playfield, a few targets, and most of the posts/rubbers. Here’s the current Blender design:

Screenshot with the “Drinko” upper level hidden

Here are some pics of the current playfield:

The underside mess of wires

All of the construction so far has been on MDF particle board…I wanted to make sure things would line up and to iron out any mounting issues. All I have left is the 3-target Drop Target mechanism, I’ll do that in the next couple days. I feel confident enough with all the major parts being mounted so far, so I ordered the “real” playfield wood (cabinet grade birch) last week. It should be arriving at Home Depot in a couple days, so I’m excited about that.

I had originally purchased just one solenoid driver board and one switch input board from Multimorphic, knowing that would not be enough. Well, I’m running out of switch inputs, so I ordered two more of those. The coil driver boards allow for two different voltages if you need them, but can only support 8 coils per voltage. I have 9 coils that require 48V, and 4 coils that require 12V :-(. So, I ordered another one of those…

%d bloggers like this: