61. Shaker motors
The shaker motor is one of my favorite feedback toys. It does what
the name suggests: it shakes the cabinet when activated. When done
properly, the effect is a deep rumble that reverberates
through the floor like an earthquake. Appropriately, the first arcade
pinball that featured a shaker motor (as far as I know) was
the earthquake-themed Earthshaker (Williams, 1989).
Stern has enthusiastically embraced shakers in recent years, offering
them as optional equipment in nearly all of their titles since 2010.
Shakers were rare in the arcade before that, appearing only in a few
titles where there was some kind of thematic connection, such as
Earthshaker (for obvious reasons) and Red and Ted's Road
Show (for the demolition theme). I think Stern realized that the
tactile effect is a lot of fun for its own sake, even when it doesn't
particularly tie in to the theme, which is exactly why shakers are
popular in virtual cabs. You can profitably work it into pretty much
any game, even older games that didn't have shakers in their original
arcade versions. The DOF Config Tool database takes this to heart,
liberally adding shaker effects to lots of older tables - as of this
writing, the DOF database uses the shaker in 237 (!) games. Of
course, DOF also faithfully reproduces the authentic usage in games
like Earthshaker that actually did have shakers originally. If
you include a shaker, it will get plenty of use.
Theory of operation
A shaker is simply a motor with an unbalanced weight attached to the
shaft. It's like a washing machine a big heavy load on spin cycle.
Off-the-shelf pinball shakers
You can buy ready-to-use pinball shaker units from the pinball parts
vendors, including Marco Specialties and Pinball Life.
Off-the-shelf kits sell for $100 to $200, depending on the target
machine type.
The different kits currently available all use exactly the same shaker
mechanism (as far as I can tell). The only reason there are so many
different kits is that each comes with an interface board that works
with a particular type of Stern machine. For a virtual cab, you
actually don't need an interface board at all, because your DOF output
controller will perform that function instead. So any of the Stern
kits should work, and I'd just buy the cheapest one you can find,
currently around $100. When the kit arrives, just throw away the
Stern interface board, and plug the motor directly into your feedback
device controller; see
Wiring below.
Off-the-shelf vibration motors
There's another off-the-shelf option that's less expensive than the
Stern shaker kits: replacement "vibration motors" for massage chairs and
similar appliances. Some people on the forums have tried these
and reported generally positive results.
You can find these on Amazon, eBay, and Aliexpress. Some are as
little as $20. They're all no-brand parts from third-party sellers
that come and go overnight, so I can't give you any specific model
numbers or product links, but you can find options by searching the
retail sites for vibration motor. Look for devices that have
two counterweights and a speed of 4500 RPM or less. Lower speeds are
better - higher speeds will feel too much like buzzing.
Be aware that there are smaller and larger versions of these motors.
The smaller ones are more like cell phone buzzers, so skip those. You
want one of the larger ones, sold for applications like massage
chairs.
Even the largest vibration motors I've found still use smaller
counterweights than the Stern units, so they'll produce a weaker
shaking effect. I've seen a couple of negative comments about this
from virtual cab builders. But stronger isn't necessarily better;
there's an element of taste to this, plus, a less powerful unit might
be more suitable if your cab is smaller and lighter than a full-sized
pinball machine.
DIY designs
Shakers are simple enough that you can build one yourself for about
$50 to $100 in parts. That's not much of a cost savings compared to
buying one of the ready-made Stern kits, and it's actually more
expensive than buying an OEM vibration motor, but some people might
want to build their own just for the enjoyment of the project. A DIY
shaker also gives you more control to tweak the effect to your liking, by
adjusting the amount of weight and the geometry.
Hare are some detailed DIY plans you can find online:
The two Pinside plans closely replicate the mechanical design of the
Williams and Stern shaker units (which are themselves nearly
identical), so they yield nicely professional-looking results, but
they're challenging to build because they require cutting, drilling,
and thread-tapping steel bar stock. They also require some
sheet-metal work. You need some specialized tools for all of that
metal working, and the steel bar stock itself is rather expensive.
Darkfall's design is easier to build because it doesn't require any
metal fabrication, and it doesn't require any especially exotic parts.
The first shaker I built was based roughly on Darkfall's design, and
it works nicely. My only criticism is that its method for attaching
the weights to the motor shaft is a bit jury-rigged and seems
precarious - although, to be fair, the one I built has held together
for many years now. My own design is an attempt at a more elegant and
robust way to attach the weights, while still being easy and
inexpensive to build. Almost all of the parts required in my plan are
common hardware store items, and the only things you have to fabricate
yourself are some simple plywood pieces.
Designing your own shaker
If you prefer to develop your own DIY plan, here are some parameters
you can use as a starting point, based on what seems to work in
practice for the commercial units and the DIY designs:
- Around 3000 RPM for the spin rate
- About 350 gram-centimeters (5 ounce-inches) of off-balance weight
The "gram-centimeters" figure refers to the result of multiplying the
total weight of the counterweights by the distance from the shaft to
the center of mass of the counterweights. It's the product of these
two numbers that matters, so you should get the same effect from a 100
gram weight at 3.5cm or a 350 gram weight at 1cm, for example.
For reference, the counterweights in most of the commercial shakers
are steel bar stock, 3/4" wide x 3/4" thick x 2" long, weighing 140g
each. The shaft is placed 1/2" from the center of the long dimension
(2").
Selecting a motor for a DIY unit
The motor is the hardest part to find when building a DIY shaker unit.
There are hundreds (maybe thousands) of types of small electric
motors available online, but most are unsuitable for one reason
or another - they're too big, too small, use too much
power, etc. It's especially hard to find all of the right properties
in a dual-shaft configuration, since there just aren't that many
dual-shaft motors available. A dual-shaft motor isn't an absolute
requirement, but all of the DIY designs call for one, because it's
easier on the motor's bearings to divide the weight into two smaller
chunks than to have a single large counterweight.
The easiest way to source a suitable motor, by far, is to buy one that's
marketed specifically as a replacement motor for a pinball shaker
unit. Those are more expensive than comparable generic motors
from eBay or Aliexpress, but you can be confident that they're
suitable for the task, and you won't have to comb through hundreds of
listings looking for the right specs. The pinball parts vendors
currently (2022) stock several such motors:
If you want something less expensive, or you just enjoy the hunt,
here are the properties to look for in a generic motor:
Parameter | Range | Comments |
Configuration |
Dual-shaft (also called double-shaft) |
This means the rotating shaft sticks out at both ends of the motor,
allowing you to attach a weight at each end.
|
Voltage |
12VDC |
Most DC motors will run on a wide range of voltages (e.g., 6V-24V),
so just make sure that the power supply you plan to use is within
the voltage range listed for the motor. 12VDC is usually the most convenient
power source in a pin cab.
|
Power |
20W-50W |
The power rating gives you an idea of the mechanical force that the
motor can muster, and the load it places on the power supply. A motor
rated for 20-50W should have enough mechanical power for strong shaking,
with a power draw at 12V of 4A or less. That's in the range
that most ATX power supplies and high-power DOF controllers
can safely handle. Motors with higher wattage ratings might
overload your power or control systems.
|
Speed (no load) |
3000-4500 RPM |
Higher speeds might feel more like buzzing than rumbling.
|
Shaft diameter |
4mm-6mm or 1/4" |
This won't affect the feel of the effect, but smaller shafts
might bend under the force of the shaking.
|
For reference, here are some specific motors that virtual cab builders
have used successfully in the past. It's probably impossible to find
anything on this list that's more than a couple of years old - the
manufacturers generally seem to do a single large production run for
each model, and once that's sold out, they're gone. But it might
still be worth checking, since you can sometimes the older models as
remnants and used items on eBay.
- Generic 775 12V/24V 50W dual-shaft motor (available on
Amazon
and Aliexpress as of June 2022;
note that the "775" is not a model number or brand, but is simply a standard designation for the motor's dimensions;
many other "775" motors are available that look similar but
which have very different electromechanical characteristics)
- Pittman 9414H255-R2 (last seen around 2015)
- Buehler 480-0211-01 (last seen around 2015)
If you know of any other specific motor models that I should add to the
list, please let me know.
Historical note: The motor in the original Williams shakers was
labeled Johnson HC970. Unfortunately, that's not very helpful for
finding replacement parts, because Johnson Electric apparently used this
designation for a number of different OEM parts that they
custom-manufactured for different customers. I've seen a couple of
reports on the forums from people who found Johnson HC970 motors
on eBay that turned out to be unsuitable.
Converting a regular motor to dual-shaft
Most shaker unit designs call for dual-shaft motors. But dual-shaft
motors are relatively rare. This is the main thing that makes it so
difficult to source a motor for a DIY shaker unit. One way around
this to buy a regular motor, and convert it to a dual-shaft
configuration.
This isn't exactly an easy solution. It requires taking the motor
apart, modifying its inner workings, and putting it back together in
working order. You'd have to be comfortable doing major repair work
on mechanical appliances to contemplate this, and you should only
consider it if you can tolerate the risk that you'll destroy the motor
in the process. Most small DC motors are not at all designed to be
taken apart by the end user. Attempt this only with a cheap motor that
you don't mind replacing if you end up breaking it.
The basic idea is to disassemble the motor and replace its original
shaft with a longer one - long enough to stick out from both ends of
the motor body. The full procedure is beyond what I can document
here, especially because motors aren't all exactly the same on the
inside. There are some Youtube videos on the subject that you might
find helpful - try searching for convert motor to dual shaft.
Here's just a rough outline of the process:
Enclosure
A shaker needs a sturdy cover that will contain the weights in case
they ever come loose. A detached weight could become a high-speed
projectile that could cause a lot of damage if not contained.
The off-the-shelf pinball shaker units all come complete with their
own plastic enclosures, so that's another point in their favor. If
you build a DIY plan, or buy one of the generic vibration motors
mentioned earlier, you'll need to provide your own enclosure. I'd
suggest a simple hand-built plywood box. (A clear acrylic cover is a
nice enhancement if you build your own box, since it lets you safely
observe the shaker in operation whenever you want to check that it's
working properly.) You could also re-purpose a plastic food container
or storage box, if it's strong enough to contain an ejected weight.
Where to mount
On the real machines that have shakers, the units are installed
somewhere near the front of the cabinet, but the exact location varies
by title. I think it's just a matter of what's convenient in that
machine's cabinet layout. Most of the recent Stern machines place
the shaker in one of the front corners, alongside the coin box. In
other machines, the shaker is behind the coin box, either centered
left-to-right or off to one side.
I don't think there's much difference in effect from the different
placement options, so put it wherever you have room. The only
imperative, I think, is that it's better to keep the shaker close
to the front of the cabinet, since that's where the player is.
In every commercial pinball setup I've seen, the motor shaft is
oriented parallel to the long axis of the cabinet. I think this
orientation does matter, since it creates a side-to-side shaking
motion. That's probably the best direction for maximizing motion
transfer, given the cabinet's proportions.
Interaction with nudge devices
Some people have trouble with the nudge device picking up
accelerations from the shaker. The nudge device is an accelerometer
whose whole purpose is to detect cabinet motion, so it necessarily
detects the motion that the shaker causes the same way that it detects
motion from the player's nudges.
The shaker's motion shouldn't interfere with game action, even though
it registers on the accelerometer. The motion from the shaker is
different from nudges in that it's symmetrical, it's faster, and it's
lower amplitude. The back-and-forth shaking motion should essentially
cancel out on the time scale of manual nudging. Player nudges, in
contrast, tend to be bigger and in one direction, and they happen on a
longer time scale.
If you're having a problem with your nudge device going crazy when
your shaker is on, there are two ways to address it:
- Turn down the intensity of the shaker
- Turn down the sensitivity of the nudge device
Before taking either action, you should ask yourself: What would a
real pinball machine do? In other words, would that same exact shaker
motor affect the ball on a real pinball machine the way it's affecting
your virtual game? If the answer is yes, then the shaking effect is
probably too intense, and the solution is to reduce the shaker
motor speed. Shakers on the real machines don't send the ball flying
around. If your shaker is at a level where it wouldn't affect the
ball on a real machine, but it's affecting the virtual game to a
troublesome degree, then the problem is in your nudge sensor
calibration: you've turned up the sensitivity to unrealistic levels.
I'd always start by adjusting the shaker to produce a tactile effect
you like, ignoring its effect on your nudge sensor. The easiest way
to adjust the shaking intensity is to adjust the speed of the motor,
either by adjusting the voltage or by adjusting the DOF PWM
parameters; see "Speed adjustment" below. If you built a DIY shaker,
you might also be able to change the shaking intensity by increasing
or decreasing the amount of weight in the counterweights.
If the shaker is still causing excessive nudge interference after
you've adjusted the intensity of the tactile effect to your liking,
the next step is to adjust the sensitivity of your nudge device. You
might balk at this suggestion, but go back to that question about real
machines: does the ball fly around wildly on a real machine when the
shaker is on? No, it doesn't. The thing is, most virtual cab
builders initially set their nudge devices to be far too sensitive.
This is natural - you want to see an immediate and obvious effect from
the new toy. But it's easy to overdo this. I always urge new cab
builders to go find a physical pinball machine and play around with it
for a while, to see how the ball reacts in reality. If you mostly
play virtual pinball, you'll probably be surprised by how "dead" a
real machine feels when you nudge it. On a real machine, a ball trapped
on the flipper will not fly up off the flipper when you give
the machine a little push, the way many people think it's supposed to
work in Visual Pinball. If you want the shaker to coexist peacefully
with your nudge device, you'll have to adjust your nudge device
sensitivity so that it's closer to the subdued response a real
ball would show.
One more thing: please don't use "dead zones" in your accelerometer
setup. Dead zones are terrible. They make erratic behavior even more
erratic because they create a non-linear "cliff" where there's no
response at all at one level, and suddenly a huge response just a hair
above that. It's better to stick with purely linear settings, like the
"Gain" settings in Visual Pinball.
Speed adjustment
The amount of shaking you get out of your motor is a function of
the weights, the distance they are off-axis, and the speed of the
motor. It also depends on factors that aren't related to the
motor itself, like where it's mounted in the cabinet, the overall
weight of your cabinet, the stiffness of the legs, and the
construction of the floor the machine is sitting on. The same shaker
motor will produce somewhat different effects in different cabinets.
Of all of these factors, there's one that we can easily change: the
speed of the motor. Once you have everything set up, you can
fine-tune the effect by adjusting the motor speed up or down.
There are two ways to control the motor speed: adjusting the voltage
of the power supply, and adjusting the power in software via PWM
control (Pulse Width Modulation - a method of varying the power level
in a digital circuit by rapidly switching the power on and off).
Adjusting the voltage: Most DC motors will work with a range of
power supply voltages, spinning faster at higher voltages and slower
at lower voltages. You can take advantage of this to adjust the
motor's speed by varying the power supply voltage.
The best way to control the voltage is to connect an adjustable
voltage regulator between the motor's power input and the 12V supply,
as shown in the diagram below. Look for a "DC-to-DC step down
converter" on eBay, and find one that has a dial or set-screw that
sets the output voltage. This will let you adjust the voltage to
anywhere between 0V and 12V, so that you can fine-tune the motor speed
to your liking.
Select a regulator that has an amperage rating high enough for the
motor (equal to or higher than the amperage the motor draws).
Note that a motor always has a minimum voltage level, below which it
won't have enough torque to start spinning. The exact minimum is
something you have to determine experimentally, since it depends upon
the amount of load the motor is driving. If you try a low voltage and
the motor stalls, don't leave the power on very long, as a stalled
motor can quickly overheat. When experimenting to find the right
voltage, it's safest to start with the dial turned up to the high end
(12V), and gradually reduce the voltage until the speed is to your
liking.
Typical wiring for a shaker motor with a DC-to-DC step-down
voltage regulator to adjust the voltage supplied to the
motor. Check your converter for the correct input/output
terminals (don't rely on the illustration - your converter
might have a different terminal arrangement). Note that
the converter's (-) input and output terminals are both
connected to the power supply ground.
Adjusting with PWM: The DOF Config Tool lets you set the power
range for the shaker motor. Go to the Port Assignments page, and look
for the "Shaker Motor" section on the right side of the page. This
will let you set a maximum intensity, on a 1-48 scale. The default
is level 48, to run the motor at full speed. Lower settings should
slow down the motor; you can try different settings until you find
a speed you like.
Most motors have a minimum power level they need to operate at all, so
there will probably be some minimum PWM value below which your motor
won't start. Don't leave the power on to the motor if it's stalled,
as that can overheat it. When experimenting to find the right PWM
level, it's safest to start at the maximum (48) and work down from
there until the speed is to your liking.
Note that the PWM control only works if you're using a PWM-capable
output controller, such as an LedWiz or Pinscape Power Board. PWM
won't work with a relay-based controller such as a Sainsmart. You'll
have to use the voltage adjustment approach with those.
Wiring
Follow the general wiring plan for any output device
(
Feedback Device Wiring). Connect one terminal of the shaker
motor to the positive (+) power supply voltage (usually 12V). Connect
the other terminal to an available port on your output controller.
A diode is required, to protect your output controller and other
electronics from interference from the motor's magnetic field. See
Coil Diodes. If you're using a pre-built shaker assembly, it
might or might not already have a diode installed; if you don't see
one, assume there isn't one and add your own.
If you're using one of the off-the-shelf Stern shaker kits, and it
came with an interface board for a real pinball machine (for example,
a Stern SAM connector or a SPIKE connector), you won't need that
interface board to use the motor in your virtual cab. Those boards
are designed to interface to the specific electronics found in the
various Stern machines, so they're not relevant to a virtual cab. We
just need the motor itself.
If you're using the Pinscape expansion boards, you can connect the
shaker directly to any MOSFET Power Board port. If you're using an
LedWiz, don't connect the motor directly, as it will draw too much
power for an LedWiz port; you'll need some kind of booster or
amplifier circuit. See "Power limits and boosters" in
LedWiz Setup.
H-bridges: If you read through old posts on the forums, you
might see people say that you need an "H-bridge" to control a shaker
motors. You don't. The idea got embedded at some point in the
group consciousness because someone read about it on an Arduino forum
and it got repeated a lot. H-bridges are useful if you need to
control a motor bidirectionally, which is something that Arduino
robotics hobbyists often want, but isn't necessary with a shaker
motor. A shaker motor just needs to run in one direction, so you can
connect a shaker directly to any feedback device controller port that can
handle the motor's power level. If you're using the Pinscape
expansion boards, you can run a shaker motor directly from any Power
Board port. If you're using an LedWiz, you'll need a power booster
circuit, the same as you'd use for any other type of high-power
device like a solenoid or coil.
LedWiz hacks: You might also see old posts with some really
scary LedWiz modifications involving soldering wires to IC pins on the
LedWiz board. Ignore those. They're based on that old
H-bridge notion. If you're using an LedWiz, you will need some kind
of booster circuit, but that's something you can add on externally.
There's no need to modify the LedWiz in any way. You just need
the same sort of booster circuit you'd need for any other high-power
device, as described in
Power
limits and boosters in
LedWiz Setup.
Electrical interference
Motors produce a lot of electrical noise, which can feed back into the
power supply wiring and propagate into your system's logic circuits, such as the
feedback controller and even the PC motherboard.
Diodes are a must, as already mentioned, because they help suppress
the high-voltage transients that motors produce.
For some motors, diodes might not be enough. If you start seeing
noticeable glitches when the motor is running, such as USB disconnects
or random keyboard input, you might need some additional filter
components.
The typical noise filtering for a motor is to add a pair of "chokes"
(a type of inductor), in series with the wiring to the motor. Add one on
the power input to the motor and one on the connection to the feedback
controller.
Try a 4.7 µH inductor, with an amperage rating equal to or
higher than your motor's operating current. Here's an example
part from Mouser that should work well:
Coilcraft DR0608-472L 4.7µH, 5.8A radial inductor -
at Mouser
>
Inductors aren't polarized, meaning they don't have a special
orientation when you install them. It doesn't matter which lead
connects to the "+" side and which connects to the "-" side.
(The diode, in contrast, has to be installed with its striped
side going to the "+" voltage, as shown in the diagram.)
The inductors shouldn't be necessary on most virtual cabs. I haven't
had a need for this with any motors on my machine. But it's something
to try if you experience interference problems that seem to
coincide with shaker activation. You can also add inductor
filtering to any other motor-based devices that cause interference,
such as gear motors, fans, and beacons.
Note that you should always keep the diode in place even when adding
inductor filters. The inductors provide a different type of filtering
and aren't a substitute for the diodes.
DOF Setup
In the
DOF Config Tool, go to the
Port Assignments page. Find the port number where you wired the
shaker motor. Assign it to "Shaker".
At the right side of the page, you'll also find a section labeled
"Shaker Motor" that lets you set the intensity range. If you're using
a PWM-capable controller (e.g., an LedWiz or a Pinscape power board),
this lets you set the range of power that DOF uses when the shaker
runs. The intensity values are on a 1-48 scale, where 48 is the
highest power. The default settings use the full available range. If
you find that the shaking effect is too powerful when DOF activates it
during game play, you can reduce the maximum intensity setting to slow
down the motor. Similarly, if the motor seems too weak some of the
time, or doesn't have enough power to start spinning in some cases,
you can raise the minimum setting.
Note that the intensity adjustment won't work unless you're using a
PWM-capable output controller. If the motor is connected through any
kind of relay, such as a Sainsmart board, the DOF PWM adjustment won't
work and you'll have to adjust the speed some other way, such as with
a varying voltage supply (see "Speed adjustment" above).