A vibrator (vibration motor) is an electromechanical device that creates vibration in mobile phones for haptic feedback and notifications. Modern smartphones use two main types of vibration motors: eccentric rotating mass (ERM) and linear resonant actuators (LRA). According to All About Circuits, 2024, LRA actuators provide 3 times faster response time compared to ERM.
Key Takeaways
Vibration motor (vibrator) is a miniature electromechanical device that converts electrical energy into mechanical oscillations to create vibration of the smartphone body. The main purpose of a vibration motor is tactile notification of incoming calls, messages and alerts without using an audio signal. In modern devices, the vibration motor is also used for haptic feedback when interacting with the touch screen.
The first vibration motor in a mobile phone appeared in 1992 in the Motorola Startac for silent call notification. Today, vibration is used not only for notifications but also for confirming user actions: key presses, swipes, touches. In modern smartphones, the vibration motor is part of the Haptic Feedback system along with Taptic Engine and piezoelectric actuators. Vibration quality directly affects device perception: accurate and fast vibration is associated with premium quality.
In the mobile industry, two main types of vibration motors are used: ERM (Eccentric Rotating Mass) with a rotating unbalanced mass and LRA (Linear Resonant Actuator) with linear magnet movement. The choice of type depends on the requirements for haptic feedback quality, cost and available space inside the smartphone body. Budget devices more often use ERM, while premium devices use LRA.
ERM (Eccentric Rotating Mass) is a classic vibration motor consisting of a DC motor with an unbalanced mass on the shaft. When voltage is applied, the rotor starts spinning, and the centrifugal force of the unbalanced mass is transmitted to the device body, creating vibration. Vibration amplitude is regulated by voltage (2–5 V), frequency by rotation speed. ERM motors are cheap to manufacture, but have inertia: acceleration time to operating speed is 20–50 ms, after stopping — another 10–20 ms of inertial aftereffect.
LRA (Linear Resonant Actuator) is a vibration motor in which a magnet moves along a single axis in the magnetic field of a coil. The magnet is suspended on spring elements that ensure return to the original position. LRA operates at a resonant frequency (usually 150–200 Hz), achieving maximum amplitude with minimal power consumption. LRA response time is 5–15 ms, making it significantly more responsive compared to ERM. LRA is more compact than ERM at comparable vibration strength, making it ideal for premium devices.
| Parameter | ERM | LRA |
|---|---|---|
| Principle | Rotation of unbalanced mass | Linear magnet movement |
| Response time | 20–50 ms | 5–15 ms |
| Aftereffect | 10–20 ms | 1–3 ms |
| Precision | Low | High |
| Cost | Low | Medium |
When choosing a vibration motor for a smartphone, manufacturers consider several key parameters: response time, amplitude control precision, power consumption and size. ERM motors win on cost and ease of control — they only need DC voltage to operate. LRA actuators require a more complex driver with generation of a resonant frequency AC signal, but provide 3–4 times more precise haptic sensations.
According to Precision Microdrives research, LRA actuators consume 40–50% less energy than ERM motors when creating perceptually comparable vibration. This is due to resonant mode operation: maximum amplitude is achieved at minimum input power. At the same time, ERM motors can operate in a wider frequency range, creating vibration of varying intensity simply by changing voltage.
Vibration motor in a smartphone is controlled via a driver that receives commands from the base processor or a dedicated haptic feedback controller. The driver converts digital commands into electrical signals: for ERM — DC voltage of a certain level, for LRA — an AC signal at resonant frequency with adjustable amplitude. The supply voltage for vibration motors is usually 2–5 V at 50–200 mA current.
Modern Snapdragon chipsets (Qualcomm) and Dimensity (MediaTek) have built-in vibration control blocks that support custom haptic patterns. The processor sends the driver a sequence of commands specifying amplitude, duration and waveform for each pulse. Based on a library of preset effects, the system can generate vibration for 10–30 different types of notifications with individual haptic sensation characteristics.
On iOS, vibration motor control is done via Core Haptics with support for complex patterns. On Android before version 8.0 (API 26), control was limited: developers could only turn vibration on and off with a fixed duration. Starting with Android 8.0, the VibrationEffect class appeared with support for composite waveforms, wave effects and adjustable amplitude.
Vibration in mobile applications is used for several scenarios: event notifications (calls, messages), tactile confirmation of actions (button presses, switch toggling), gaming haptic feedback and accessibility features for users with hearing impairments. Each scenario requires different vibration parameters: a short pulse for confirmation, prolonged vibration for notifications.
Properly configured vibration significantly improves user experience. A short tactile response when pressing a button creates a feeling of physical interaction and reduces cognitive load. In games, vibration is used for immersion: simulating gunshots, collisions, engine operation. According to Google Material Design, it is recommended to use vibration of 10–40 ms duration for tactile confirmation and 200–1000 ms for notifications, to avoid irritating the user.
For accessibility, vibration plays a key role: it allows users with visual impairments to receive tactile feedback about events on the screen. TalkBack on Android and VoiceOver on iOS send vibration signals when highlighting interface elements, confirming actions and receiving notifications. Adaptive vibration patterns help distinguish event types without visual control.
To work with the vibration motor on Android, the system service Vibrator is used, accessible via the getSystemService() method. Starting with Android 10 (API 29), VibratorManager was added — a unified API for managing vibration on devices with multiple vibration motors. For compatibility with older versions, developers use Vibrator directly with availability check of the createOneShot() method.
import android.os.VibrationEffect
import android.os.Vibrator
import android.os.VibratorManager
import android.content.Context
class VibrationHelper(private val context: Context) {
private val vibrator: Vibrator get() {
return if (Build.VERSION.SDK_INT >= 31) {
val manager = context.getSystemService(Context.VIBRATOR_MANAGER_SERVICE)
as VibratorManager
manager.getDefaultVibrator()
} else {
context.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
}
}
fun playShortClick() {
val effect = VibrationEffect.createOneShot(30L, VibrationEffect.DEFAULT_AMPLITUDE)
vibrator.vibrate(effect)
}
fun playWaveform() {
val timings = longArrayOf(0L, 50L, 100L, 50L)
val amplitudes = intArrayOf(128, 255, 64, 255)
val effect = VibrationEffect.createWaveform(timings, amplitudes, -1)
vibrator.vibrate(effect)
}
}
The VibrationEffect class supports two types of effects: createOneShot — a single pulse with specified duration and amplitude, and createWaveform — a composite waveform pattern with an array of timings and amplitudes. When using createWaveform, the timing array specifies the sequence of activations and pauses, while the amplitude array specifies the vibration level (0–255) for each segment. The repeat parameter indicates the index at which to start repeating the pattern (-1 for single playback).
Frequently Asked Questions
Modern smartphones use two main types of vibration motors: ERM (eccentric rotating mass) in budget devices and LRA (linear resonant actuators) in premium models. ERM is cheaper but slower and less precise, while LRA provides clear haptic sensations.
ERM creates vibration by rotating an unbalanced mass, has a response time of 20–50 ms and inertial aftereffect. LRA moves a magnet linearly in a coil's magnetic field with a response time of 5–15 ms and virtually no aftereffect. LRA provides more precise and varied haptic sensations.
Yes, the user can turn off vibration in the sound and haptic settings of the smartphone. On Android, this is done via “Sounds and vibration” → “Haptic feedback”, on iOS — “Sounds and haptics” → “System haptics”. Turning it off applies to all applications.
You can check the vibration motor via the engineering menu: dial *#0*# on Samsung or *#*#6484#*#* on Xiaomi and select the vibration test. On iPhone: Settings → Accessibility → Touch → Vibration and turn on “Vibration in ring mode”. If there is no vibration, the motor may be faulty.
On Android, you can configure vibration for individual apps via Settings → Notifications → App notification categories. On iOS, vibration is configured via “Sounds and haptics” → select notification type → “Haptics” with a choice of preset patterns.
Summary
We will develop a mobile application turnkey
IT Sectr creates iOS and Android applications for startups and businesses since 2017. We will advise you and propose the best solution.
Read also