1. Preface

I first started thinking about building a virtual pinball machine at least a couple of years before I actually did anything about it. I was on the fence for so long because I thought it was one of those ideas that sounds better than it really is. I also thought I might get bored of it quickly. I loved the idea of a life-sized pinball simulator, but I didn't think the real thing could live up to my mental image of it. It didn't help that Visual Pinball always seemed a little disappointing on my desktop PC. I thought a cabinet would just make the video game's limitations more obvious by putting it on a bigger screen. You've probably heard it said that the great thing about a virtual cab is that it's like having 1,000 pinball machines packed into the space of just one, but surely the variety is only of secondary importance: if it weren't fun to play one virtual table, why would you want 1,000 of them?
But I kept coming back to the idea. I'd check in on the forums from time to time to see what was new. At some point, people started talking about putting "feedback toys" in their cabs1. That's when I finally decided I had to build one. "Toys" are physical devices that create special effects in sync with the on-screen action. The thing that grabbed my attention most was the idea of using solenoids for a tactile thunk when a flipper or bumper fires. The ability to feel the game action struck me as a whole new dimension that you can't get in mere video pinball.
It's probably needless to say that all of my early reservations were turned around once I started building my cab.
If you're reading this guide, you're probably at least curious about building your own cab. In case you're still undecided, like I was, let me offer this nudge: I think a cab really is a different experience from playing pinball simulations on a desktop PC. It's not just the same thing in a different box. The real controls and the full-scale physical setup are more than just decorations; they're transformative.
I should temper that by adding that a virtual cab won't trick you into thinking you're playing a real pinball machine. It's not that realistic. But it's not just desktop video pinball in a fancy box, either. "Virtual" and "real" pinball each have their own advantages, and they're each fun to play in their own way. I'm fortunate to have a small collection of real pinball machines at home, and while I'd never consider the virtual cab to be a replacement for any of those, it is a great addition to the lineup, adding its own unique play style.
Pin cabs aren't just fun to play; they're fun to build. They make great DIY projects. As much as I enjoy playing games on my cab, I also really enjoyed building it, and I'm still coming up with ways to improve it. Most of that work is on the software side these days, although I still tinker with the hardware, too. One of the great things about this hobby is that most of the software involved is open source, so if there's something you don't like, you can change it. That's one of my motivations for sharing the Pinscape Controller project: I wanted to bring the benefits of open source to the hardware side. When I started my cab, most of the hardware options were proprietary devices designed more with video arcade projects in mind, so I'm glad that I've been able to add some more pinball-oriented designs into the mix.
This is a great time to be building a DIY pin cab, thanks to a confluence of trends. One is that real pinball continues to thrive among collectors, which is good for us because it keeps an active market going for the specialized pinball-machine parts we need for our projects. Another helpful trend is the popularity of hobby robotics, which has made lots of advanced electronics accessible to DIYers. A third is the growing interest in virtual pinball itself, which has attracted a talented group of people who work on the open-source software that makes virtual cabs possible. Virtual cabs will keep getting better as long as people are actively working on the software.

The Pinscape Controller

This guide has grown into a pretty comprehensive set of instructions for building a pin cab, from the woodworking and trim hardware to the electronics and the software. It started out with a much smaller scope, of serving as the user manual for my Pinscape Controller project, and that remains a significant part of the book. The Pinscape Controller is an open-source hardware and software project that can act as the central hub for connecting most of the specialized input and output electronics unique to virtual pin cabs: buttons, sensors, and feedback devices like solenoids and lights. The controller can handle nearly all of the special I/O functions in a pin cab, including:
  • Connecting flipper buttons and other pinball-style buttons to the PC and using them to control the game
  • Connecting a physical pinball plunger to the software, via a position sensor that detects its position and motion, so that you can launch the ball the traditional way, with precise control for tricky skill shots
  • Using an accelerometer to sense the motion of the cabinet, so that you can nudge the cabinet and get a realistic, proportional response in the simulated game
  • Connecting feedback devices to the PC, so that the pinball software can create lighting effects and tactile effects cued to the game action
Physically, the core of the Pinscape project is the Freescale FRDM-KL25Z, a tiny, self-contained computing device about the size of a credit card. It costs about $15 and comes fully assembled and ready to use. You don't need to know anything about electronics to set it up; you just plug in a USB cable and load some software.
The KL25Z by itself does a lot of the heavy lifting. It has a built-in accelerometer (a good one), which nicely handles nudge sensing. You can connect buttons (like the flipper buttons) directly to the KL25Z, with no more work than running some wires.
Beyond buttons and nudging, the electronics work gets a little more complicated. If you want to hook up a plunger sensor or connect feedback devices (lights, motors, solenoids), you have to buy some electronic components, and do some additional wiring and electronic assembly work. That's all laid out in detail in this guide, and it's very scalable - you can do as much or as little of this as you want, according to your interests and comfort level working with electronics. And you can add new features over time; it's all pretty modular. I've tried to make all of the projects approachable even if you don't already know much about electronics.
For the plunger, several options of varying difficulty are available. The easiest option only requires buying a particular kind of potentiometer (about $6) and connecting three wires. A more complex but more precise option is what I'd call an "intermediate level" DIY electronics project. All options are documented in detail in this guide with step-by-step instructions.
If you want to connect feedback devices to the KL25Z, that also requires some additional electronics work. There are some simple options involving pre-built circuit boards that you can buy on eBay or Amazon. The more advanced and more full-featured options involve the "Expansion Boards", a set of circuit board plans that you can build yourself. Again, this is all documented in this guide.
The Pinscape Controller is an entirely "open source" project, meaning that all of the software is free to use, all of the source code and hardware designs are published, and you're free to change and customize them in any way. I'm always happy to integrate any customizations that are generally useful back into the official version so that everyone can benefit from them, but you're also free to make private changes for your own use if you prefer.

Cabinet build guide

Beyond the Pinscape-specific material, this guide includes a lot of information about building virtual pin cabs in general. The goal is to provide a complete instruction manual for the DIY pin cab builder. The guide even includes information on the various commercial products that can fill the same roles as the Pinscape project, for people who aren't interested in DIY for those aspects and prefer something that comes ready-made.
I'm including the general virtual cab building material because I would have really liked something like this when I started on my own cabinet. There's a lot of information on building these machines on the Web, mostly in forums and blogs, but it's really scattered and hard to find and navigate. There is one other full build guide out there that I'm aware of, though: Major Frenchy's Mame in a Box, which offers a big library of video tutorials on pin cab building. If your learning style favors video presentations, or you just want another resource to add to this one, check it out.
I can't quite boil things down to a ready-made kit with a master parts list and easy assembly instructions. There are too many possibilities and variations for that. Every cab is unique, which is exactly as it should be for a DIY enterprise like this. So I'll try to go into as much detail as I can, but in many areas the information is more like advice than outright instructions.
1In the vernacular of the Web forums, a virtual pinball machine is called a pin cab, short for "pinball cabinet", and most often shortened further still to simply cab. If you're new to the forums, the name might seem weirdly generic. But it makes sense in the context of the forums, because the "cab" groups are only a small part of a broader community that's interested in computer pinball simulation in general. Everyone in the broader community plays computer-simulated pinball, but mostly using ordinary desktop PCs or video game consoles. The thing that distinguishes the "cab" crowd is that we embed our pinball PCs in these elaborate housings based on the real machines.