Hep Svadja
Shake, Rattle, and
I
attended the Oculus event at GDC this year,
where I first heard Pinball FX2 VR was in the
works. I tried the game and after 5 minutes I
knew I wanted to build a VR interface for it!
VR solves my biggest gripe with traditional
“virtual” pinball games — you can’t move your head
around to get a better read on shots or the ball.
Well, now you can. And with my PinSim cabinet
you can actually feel the game in your hands too.
I’m sharing the SketchUp files, dimension renders,
wiring diagram, and Arduino code so that anyone
can make one. You can order my custom PCB or
just use an ordinary breadboard.
The VR pinball cabinet is essentially the first 8
inches of a real pinball table. My original cabinet
was made from foamcore but wood will provide a
more lasting frame. Just make sure to consider the
width of your material in cutting the sides of the
cabinet. My drawings show the exterior dimensions
and button hole placements, but the diameter
of the drill holes will depend on the buttons you
choose to use.
The joystick is used to conveniently navigate
the game menus. And an accelerometer is used
to simulate nudging the table, which can help you
guide the ball or can backfire (“Tilt!”) just like the
real game, if you overdo it.
MY FIRST BUILD
One week before the Oculus release date I made
a trip to Walgreens and picked up two sheets of
Written by Jeremy Williams
Hep Svadja, Pinball FX2 VR by Zen Studios
makezine.com/virtually-real
makezine.com 33
JEREMY
WILLIAMS
is a team member
at Tested. He grew
up on an Atari 2600
and IBM PCjr. Since
graduating from
Kenyon College,
he has managed a
LAN gaming center,
started a video
company, been an
editor at PC Gamer
magazine, and
helped engineer Qore
on the PlayStation
Network. Now living
in San Francisco, he’s
interested in Arduino
and “making” stuff.
He also loves pinball.
And his kids.
BUILD THE “PINSIM” CABINET CONTROLLER
AND PLAY VR PINBALL WITH REAL FLIPPER
BUTTONS AND AN ACCELEROMETER-BASED
NUDGE SYSTEM!
MATERIALS
» Teensy LC
microcontroller board,
with pins $15 from
pjrc.com. Mount it on
a breadboard or on my
custom PCB.
» Micro USB cable
FOR PCB BUILD:
»PinSim printed circuit
board (PCB) oshpark.
com/shared_projects/
ngC13rwO
»Female headers, 1×14
(2) such as Amazon
#B00899WQ6U
»PCB screw terminals,
2 pole, 3.5mm pitch
(12) such as Uxcell
#a14122500ux0169,
Amazon #B00W93KCDQ
FOR BREADBOARD
BUILD:
» Solderless breadboard
Adafruit #239
» Jumper wires Adafruit
#1957
» 10 screw terminal block,
breadboard plug-in
type such as eBay
#400546234141
» Foamcore board or
plywood I used two
22"×28" sheets of
foamcore. Anthony in
the Make: Labs used ½"
plywood, about 2'×4'
total.
» Arcade buttons, 30mm
(2) Adafruit Industries
part #473, adafruit.com,
for flippers
» Arcade joystick, small
Adafruit #480
» Accelerometer, triple
axis, ADXL345 Adafruit
#1231
» Hookup wire, black and
red Adafruit #290 and
3068. Any 2-conductor
speaker wire also works
fine.
» “Start” button Williams-
Bally #20-9663-1, Pinball
Life #956, pinballife.com
» “Launch Ball” button
Williams-Bally #20-
9663-B-4, Pinball Life
#919
» Pinball legs (4) Pinball
Life #140. Browse the site
for more color options!
» Leg bolts (8) Pinball Life
#1792
» Leg brackets (4) Pinball
Life #144
» Leg levelers (4) Pinball
Life #921
» Cabinet leg protectors
(4) (optional) Pinball Life
#1403
» Wood screws and/or
hot glue
FOR OPTIONAL
UPGRADES:
» Xbox rumble motors (2)
about $10/pair on eBay
» Transistors, 2N222 (2)
for rumble motors
» LEDs, white (2) to
replace lamps in Start
and Launch buttons
» Resistors, 22Ω (2) for
LEDs
» Pinball shooter
assembly Pinball Life
#pbl_B-12445-6
» Shooter mounting plate
Pinball Life #535-5027-
00
» Shooter spring, brown
(low tension) Marco
Specialties #10-148-6,
marcospec.com
» Machine screws, #10-32
× , pan head with
lock washer (3) Marco
Specialties #4010-
01006-10
» Analog distance sensor
Sharp GP2Y0A51SK0F,
Pololu #2450, pololu.com
» JST ZH-style cable,
3-pin female Pololu
#2411
TOOLS
» Saw or hobby knife
depending if you’re using
plywood or foamcore
» Drill
» Soldering iron
» Screwdrivers and
wrenches
» Sandpaper or sander
» Computer with free
software: Teensy Loader
application (pjrc.com/
teensy/loader.html) and
PinSim project code
(github.com/jerware/
pinsim). The GitHub
page also links to the
Arduino libraries you
need. You won’t even
need the Arduino IDE (or
Teensyduino extension)
unless you intend to edit
the project code.
» 3D printer (optional)
M52_032-6_SSpinball_F1.indd 33 6/14/16 3:20 PM

Get Make: Volume 52 now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.