Introduction: Desktop Pinball Controller

About: I have a lot of free time on my hands. I have chronic Lyme disease, so I can't work anymore. Every once in a while, I'll get to work in my shop. Not too often, but when I do, I really enjoy it. I try to use as…

Free pinball emulators,like Visual Pinball and Future Pinball, are a lot of fun, but they're tough to play with a pc keyboard. I decided to make the experience a little more authentic by building a desktop (or laptop) pinball controller. Now I can play all the pinball games I want right from the comfort of my sofa. 

I built this using pieces and parts I had lying around (with the exception of the I-PAC VE). You may not be a hoarder, but I am, so I can usually find what I need in my attic or basement. This makes my projects much cheaper, but life much more messy!

I've now added DIY nudge sensors to the build in Step 4

Step 1: Stuff You Need

1 - A box of an appropriate size (I found an old drawer that I modified) or you can build your own.

2 - Keyboard Encoder - I used an I-PAC VE from It's perfect if you don't mind waiting a while for the free shipping option. If you need it quicker, go for the non-VE version and pay for shipping. There are other keyboard and gamepad encoders that will also work for this project. Look into different options that will work best for you.

3 - Arcade Buttons (minimum of 2. I used 9) - I had a few old arcade buttons from a machine I stripped several years ago. The leaf switches give an authentic pinball feel, whereas the standard microswitch pushbuttons click when you press them. You can get authentic arcade leaf switches and pushbuttons from several different sources. Google is your friend here.

4 - Springs (one larger one for the plunger, one smaller one for the plunger recoil, and one tiny one for the plunger microswitch)

5 - long bolt, washers, nuts

6 - Microswitch for the plunger

7 - Wire, crimp connectors (or solder)

8 - misc. screws and hardware to put everything together

9 - Scrap wood for plunger switch mount

10 - Drill, bits, screw driver(s), and any other tools that are appropriate for the job

 ---UPDATE--- Nudge sensor build parts:

11 - 3 Ball bearings - 1/2"

12 - 5 Paper clips - large (have several spares on hand)

13 - 6-Position European-Style Mini Terminal Strip (or whatever you have available)

14 - Rocker switch (or any on/off switch to turn the sensor on or off)

You will also want to have Visual Pinball and/or Future Pinball installed on your PC with your favorite tables. These emulators and tables can be found at, among other places on the net. Visual Pinball can be tricky to get set up, but once it is, there's nothing else like it. There are some great tutorials over at VPForums, so check it out and have a blast! This software is free, by the way.

A front end is also a nice addition to the setup. I use PinballX, which works great for my needs. A front end is basically just a pinball game launcher that makes the whole experience a little more fun, but it is not needed to play these games. With the front end running, all navigation and controls can be done from the pinball controller. All inputs are assigned to my buttons. No need to have the keyboard out if you just want to play pinball. I use the the flippers to scroll through the games and the Start button to select. This program is also free.

Step 2: Lay Out the Controller

The first thing you want to do is figure out how many buttons you want on your controller. You can get away with 2 buttons if you want to use your keyboard for credits and start. I have 9 buttons on my controller for the following controls...
1 - Add Credit
2 - Start
3 - Left Flipper
4 - Right Flipper
5 - Left MagnaSave
6 - Right MagnaSave
7 - Left Nudge
8 - Right Nudge
9 - Front Nudge

The plunger is wired to a microswitch which activates the 'Enter' key

The I-PAC also uses 'Shift Keys', which allow for more functions. For example, hold 'start' and press 'right nudge' to exit the game, and 'Start' and 'right MagnaSave' looks at the backboard in Future Pinball,

Once the buttons are all laid out, you can start drilling the box, mounting the buttons, and wiring them up. The encoder I used shares a common ground, so wiring is very easy. All buttons should be wired Normally Open.

Step 3: Plunger

For the plunger, I found a long bolt, some springs, washers, and a plastic 'nut' to strike the microswitch.
I have 2 - 5/16 tee-nuts inserted in the face and inside of the controller that act as a sleeve for the plunger. This gives a much smoother feel and is sturdier than having the bolt travel through the wood alone.
I then made the microswitch mount using scrap wood, a guitar pick, and a small spring. I cut and drilled the nylon guitar pick to form a washer for the switch to pivot on. I also drilled a small hole into the top of the switch for a screw to retain the spring. This small spring sits in a hole in a piece of scrap wood that is mounted above the switch. This configuration should let the switch last longer than having a rigid mount. 

Note: This microswitch is wired Normally Closed, whereas all other switches and buttons are Normally Open. This is because the plunger microswitch is always active until the plunger is pulled. This closes the circuit to activate the 'Enter' key on the I-PAC VE.

Step 4: Nudge Sensor

I just came across a terminal strip that I thought I might be able to put to good use. I have several 1/2" steel balls that fit quite well on cages made from paper clips and wire. The contact is another piece of paper clip that the ball strikes. The cages are all wired to ground and the contacts are wired to the appropriate inputs of the encoder.

To make the cages, I straightened out some paper clips and bent them into shape using my fingers and a small cylinder (a pen works). For the left and right, just bend them in the middle to form a U shape. Then fold U over the cylinder to form the cage. The ball fits nicely inside and won't fall out. Play around until you get a nice fit. The front cage was a little different. I used a longer piece of steel wire to make this shape. Same idea, except that the whole piece is turned on it's side so that the original U is on the right side of the unit and hooks in to hold the ball, and the ends are both mounted on the left side. I can't really explain it, so look at the pictures. These get mounted to the terminal strip as follows;
3 - front cage top
4 - left nudge cage (mounted on right)
5 - right nudge cage (mounted on left)
6 - left nudge cage (mounted on right)
7 - right nudge cage and front cage bottom (mounted on left)

Once the cages are done and the balls inside, it's time to make some contacts. You want the contact to sit inside the cage so that the ball hits it when it's nudged. For this, just bend some paper clips into shape and insert them into their terminals. Again, see the pictures for a better idea.
2 - front
10 - left nudge (on right)
11 - right nudge (on left)

Now we wire it all up. We need 4 wires for this. The ground wire can be split through a switch to disable the nudge sensor, if needed. 
1 - Front nudge
8 - Ground
9 - Left nudge
12 - Right nudge

This harness is wired into the I-PAC VE in parallel with the existing arcade buttons. This way they can be used together, or the sensor disabled, while the buttons remain active.

Install a switch on the ground wire of the new harness if you want to disable the nudge sensor while still using the buttons. I mounted it on the back of the controller.

Step 5: Keyboard Encoder (or Gamepad Encoder)

Now that everything is in place, it's time to wire it all up to your keyboard encoder. 
I have the following connections on my board...
Right Flipper - 1DOWN (Down Arrow)
Left Flipper - 1SW4 (L Shift)
Right MagnaSave - 1RIGHT (Right Arrow)
Left MagnaSave - 2SW1 (A)
Right Nudge - 2STRT (2)
Left Nudge - 1SW5 (Z)
Front Nudge - 1SW3 (Space)
Plunger - 1B (Enter)
Credit - 1COIN (5)
Start - 1STRT (1)

I then configured these inputs in Visual Pinball and Future Pinball to match the controller.

Step 6: Play Pinball

Load up some credits and press start on your favorite tables.

Here I am playing The Addams Family (quite poorly, I might add). 

Have fun playing pinball!