Overview
The 1027 is a flat "coin" vibration motor — 10 mm across, under 3 mm thick — the same class of part that buzzes in phones and smartwatches. Feed it around 3V and its internal eccentric weight spins up to produce silent, tactile vibration for notifications, alarms, haptic feedback on buttons, and wearables where an LED or beeper won't do.
It is a two-wire brushed motor with tiny lead wires, and it should be driven through a small transistor with a flyback diode rather than straight off a GPIO pin. PWM lets you shape intensity: short pulses read as taps, ramps feel like modern phone haptics. The circuit and code below give you both.
At a Glance
Rated Voltage
3V DC
Current
~60-90 mA
Speed
~9,000-12,000 RPM
Size
10 x 2.7 mm
Type
Flat coin (ERM)
Connection
2 lead wires
Specifications
| Parameter | Value |
| Model | 1027 flat coin vibration motor (ERM type) |
| Rated Voltage | 3.0V DC (typical operating window ~2.5-3.5V) |
| Rated Current | ~60-90 mA (startup surge higher) |
| Start Voltage | ~2.3V or lower |
| Rated Speed | ~9,000-12,000 RPM |
| Dimensions | 10 mm diameter x 2.7 mm thick |
| Mounting | Adhesive pad or clamp — vibration transfers best when pressed against the enclosure |
| Lead Wires | Fine gauge — strain-relieve them; they do not survive repeated flexing |
| Load Type | Inductive brushed motor — flyback diode required |
Wiring & Driving Guide
Drive it with any small NPN transistor (2N2222, S8050) or logic-level MOSFET (2N7000, AO3400):
| Connection | Goes To |
|---|---|
| Motor lead 1 | +3.3V rail (ideal) or 3V battery |
| Motor lead 2 | Transistor collector / MOSFET drain |
| Emitter / source | GND, shared with the microcontroller |
| Base via 1k / gate via 220R | PWM-capable GPIO (D9 Arduino, GP15 Pico) |
| Flyback diode (1N4148/1N4001) | Across motor leads, cathode (stripe) to + |
| Optional 0.1 µF ceramic cap | Across motor leads — tames brush noise |
Warning: This is a 3V motor. On a 5V Arduino, don't feed it 5V continuously — power it from the 3.3V pin, or if you must switch 5V, cap the PWM duty around 60% so the average stays near 3V. And never drive it from a GPIO directly; the current and inductive kick exceed pin limits.
Tip: Haptics are about contact, not power. Taped firmly to a case wall or wristband, a 50% pulse feels stronger than a free-floating motor at 100%. Mount it rigid, leads slack.
Code Examples
Arduino: notification buzz patterns
haptic_patterns.ino
// 1027 coin motor through a transistor on D9 (PWM).
// Motor powered from 3.3V; duty values here assume that rail.
const int MOTOR_PIN = 9;
void buzz(int strength, int ms) { // strength 0-255
analogWrite(MOTOR_PIN, strength);
delay(ms);
analogWrite(MOTOR_PIN, 0);
}
void setup() {
pinMode(MOTOR_PIN, OUTPUT);
}
void loop() {
// Single tap
buzz(255, 80);
delay(1000);
// Double tap
buzz(255, 60); delay(100); buzz(255, 60);
delay(1000);
// Soft ramp (phone-style)
for (int p = 60; p <= 255; p += 15) {
analogWrite(MOTOR_PIN, p);
delay(30);
}
analogWrite(MOTOR_PIN, 0);
delay(2000);
}
Pico (MicroPython): intensity control
haptic_pico.py
# Coin motor via transistor on GP15, motor powered from 3V3.
from machine import Pin, PWM
import time
motor = PWM(Pin(15))
motor.freq(1000)
def vibe(percent, ms):
motor.duty_u16(int(65535 * percent / 100))
time.sleep_ms(ms)
motor.duty_u16(0)
while True:
vibe(100, 80) # tap
time.sleep(1)
vibe(60, 300) # soft buzz
time.sleep(1)
for p in range(30, 101, 10): # rising alert
motor.duty_u16(int(65535 * p / 100))
time.sleep_ms(40)
motor.duty_u16(0)
time.sleep(2)
Frequently Asked Questions
Can I connect it directly to a GPIO pin since it's only ~75 mA?
No — 75 mA steady (plus startup surge and inductive kickback) is beyond the 20-40 mA pin ratings of Arduino, ESP32, and Pico alike. A one-cent transistor and a diode keep your board safe.
Does polarity matter?
Functionally no — reversed leads just spin the weight the other way and it vibrates the same. Follow the red-to-positive convention anyway so your wiring stays readable.
Why does my motor stall at low PWM values?
ERM motors need a kick to overcome static friction — below ~30-40% duty they may not start, though they'll keep running if already spinning. Start at full duty for 20-50 ms, then drop to the level you want.
How do I make the vibration feel stronger without more voltage?
Mounting is everything: fix the motor rigidly to the surface the user touches, put mass behind it, and use crisp on/off patterns instead of long buzzes. A firmly taped motor at 3V beats a dangling one at 4V.
Is brief 5V operation going to kill it?
Short PWM-limited bursts on a 5V rail are common in hobby builds and generally tolerated; continuous 5V DC overheats the coil and wears brushes fast. If you want maximum lifespan, stay at 3-3.3V.
What's the difference between this ERM motor and an LRA?
ERM (this part) spins a weight — simple, cheap, driven with plain DC/PWM. LRAs resonate at a specific frequency and need an AC drive (often a DRV2605 driver) but give sharper, quieter haptics. For DIY notification buzz, ERM is the practical choice.