A vibration motor is just a small DC motor with an unbalanced weight attached to its shaft. When the motor spins, the off-center mass creates a wobble that you feel as vibration. You can make one in minutes using a standard hobby motor and a few household items for the weight.
What You Need
The core components are simple: a small DC motor (the kind found in toy cars or available at any electronics shop for a dollar or two), something to serve as an eccentric weight, a power source, and a way to attach the weight to the shaft. For power, a single AA battery or a coin cell works well for small motors. You’ll also want some adhesive, whether that’s hot glue, epoxy, or superglue, depending on your weight attachment method.
If you plan to control the motor with a microcontroller like an Arduino, you’ll also need a transistor, since these boards can’t supply enough current directly from their output pins to drive a motor.
How to Attach the Off-Center Weight
This is the key step. The weight needs to be firmly fixed to the motor shaft and distributed unevenly so one side is heavier than the other. There are several proven approaches depending on what you have on hand.
The simplest method is to press a pencil eraser or small piece of cork onto the shaft. The rubber grips the shaft tightly enough for light use, and the mass is naturally off-center. For something sturdier, push the motor shaft through one hole of a small button and secure it with a drop of glue. The button sits lopsided on the shaft and creates a reliable wobble.
If your motor already has a small plastic gear on the shaft, you can clamp an alligator clip onto the gear and then solder the clip’s two halves together. The heat melts the clip slightly into the plastic, locking it in place permanently. The clip itself provides plenty of unbalanced mass.
For more adjustable setups, clamp a small terminal strip to the shaft. The strip alone produces some vibration, but you can bolt small items like nuts or machine screws into the terminals to experiment with different weight distributions. Another option: drill a hole near the edge of a coin (a dime works well), slide it onto the shaft, and fix it with epoxy or a moldable adhesive like Sugru. This method is surprisingly durable.
You can also build up an uneven blob of epoxy or solder directly around the shaft, extending it to one side. This is less precise but effective for quick projects.
Wiring and Power
Solder a wire to each motor terminal. Connect one wire to the positive terminal of your battery and the other to the negative terminal. The motor spins, and if your weight is properly attached and off-center, you’ll feel vibration immediately. Reversing polarity just reverses the spin direction, which doesn’t matter for vibration.
For a quick test rig, wrap a rubber band lengthwise around a AA battery and tuck the bare wire ends under the band at each end. This gives you a tool-free on/off switch: pull a wire free to stop, tuck it back to start.
To vary the vibration intensity, change the voltage. Higher voltage means faster spinning, which increases vibration force. The relationship isn’t perfectly linear, though. Doubling the voltage won’t necessarily double the speed, and vibration amplitude actually scales exponentially with motor speed rather than in a straight line. A small voltage increase can produce a noticeably stronger buzz.
Getting the Strongest Vibration
Two things determine how much vibration you feel: the weight of the eccentric mass and how fast the motor spins. A heavier, more off-center weight at the same speed produces stronger vibration. But adding too much weight can stall a small motor or wear out its bearings quickly, so there’s a practical limit based on your motor’s torque.
Mounting matters just as much as the motor itself. If you’re building the motor into a device or enclosure, mount it so the motor body contacts the surface firmly. A snug pocket molded or carved into the housing works best because vibration energy transfers directly to the shell without being dampened by loose connections. Avoid leaving any gap between the motor and the surface, which causes rattling and wastes energy as noise instead of clean vibration.
Make sure the spinning weight has room to rotate freely. If any part of the eccentric mass touches the housing or gets taped over, the motor either stalls or produces a weak, inconsistent buzz. This is the most common mistake in bristlebot and wearable projects.
Matching Vibration to Human Perception
Your skin detects vibrations across a wide range, roughly 5 to 800 Hz, but sensitivity peaks between 150 and 300 Hz. That sweet spot is where vibrations feel strongest for the least energy input. For a spinning motor, frequency in Hz is simply the RPM divided by 60. So a motor spinning at 12,000 RPM produces a 200 Hz vibration, right in that peak sensitivity zone. A motor at 2,800 RPM produces about 47 Hz, which you’ll still feel but as a lower, rumbling sensation rather than a sharp buzz.
Small coin-type vibration motors and phone-style motors typically operate in the range that hits this perceptual sweet spot, which is why they feel so effective despite their tiny size. If you’re building with a larger hobby motor, aim for a running speed in the 9,000 to 18,000 RPM range for the most noticeable haptic feedback.
ERM vs. LRA: Two Types of Vibration Motor
The DIY approach described above creates what’s called an ERM, or eccentric rotating mass motor. It’s the simplest type: a DC motor with an unbalanced weight that spins. You control intensity by adjusting voltage. These are found in older phones, game controllers, and most hobbyist projects.
The other type is a linear resonant actuator, or LRA. Instead of spinning, it uses a magnetic mass on a spring that bounces up and down when driven by an alternating current signal. LRAs produce crisper, more precise vibration patterns and respond faster, which is why modern smartphones use them for those sharp tap sensations. They require an AC signal and a dedicated driver chip, making them harder to build from scratch but worth knowing about if you’re designing more sophisticated haptic feedback.
For most DIY purposes, an ERM built from a DC motor and a simple off-center weight does the job. It’s cheap, forgiving of imperfect construction, and easy to power from a basic battery.
A Quick Test Project: The Bristlebot
The classic way to test a homemade vibration motor is to build a bristlebot. Cut the head off a toothbrush. Hot glue a coin cell or AA battery on top. Tape your vibration motor to the battery with the weighted end hanging free. Connect the wires to the battery terminals, and the toothbrush head will skitter across a smooth surface as the vibration tilts the bristles forward in tiny pulses.
If it’s not moving, check two things: that the eccentric weight can spin without hitting anything, and that your wire connections are making solid contact with the battery. A rubber band wrapped around the battery makes it easy to press the wires firmly against the terminals without soldering.

