Vibrator in Mobile Devices: Principles, Types and Structure

Author: IT Sectr Published: 2026-03-24 Reading time: 8 min

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

  • Vibrator (vibration motor) is a device for creating mechanical oscillations in smartphones, used for notifications and haptic feedback.
  • There are two main types of vibration motors: ERM (eccentric rotating mass) and LRA (linear resonant actuators), differing in operating principle and characteristics.
  • ERM motors rotate an unbalanced mass, creating centrifugal vibration, but have a slow response time of 20–50 ms.
  • LRA actuators move a magnet linearly and provide more precise haptic sensations with a response time of 5–15 ms.
  • Vibration motor control is done via the Vibrator API on Android and UIFeedbackGenerator on iOS with support for custom vibration patterns.

What Is a Vibration Motor in a Smartphone?

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.

Purpose and Application

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.

Types of Vibration Motors for Mobile Devices

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 Motors

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 Actuators

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.

ParameterERMLRA
PrincipleRotation of unbalanced massLinear magnet movement
Response time20–50 ms5–15 ms
Aftereffect10–20 ms1–3 ms
PrecisionLowHigh
CostLowMedium

ERM and LRA: Comparison of Characteristics

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.

How Does a Vibration Motor Work in a Phone

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.

Using Vibration in Mobile Applications

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.

Programmatic Vibration Control on Android

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.

kotlin
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

What types of vibration motors are used in smartphones?

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.

What is the difference between ERM and LRA vibration motors?

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.

Can vibration be turned off on a smartphone?

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.

How to check if the vibration motor is working in a phone?

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.

Can vibration parameters be changed for different applications?

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

  • Vibrator (vibration motor) is a key component of the haptic feedback system in smartphones, providing vibration transmission to the user.
  • Two main types of vibration motors — ERM and LRA — differ in operating principle, response time, control precision and cost.
  • ERM motors are used in budget devices due to low cost and simple control, but have slow response.
  • LRA actuators are used in premium smartphones (iPhone, Galaxy S, Pixel) for precise and fast haptic feedback.
  • Programmatic vibration control on Android is done via the Vibrator API and VibrationEffect, on iOS via Core Haptics and UIFeedbackGenerator.
  • Modern Qualcomm and MediaTek chipsets have built-in vibration control blocks that support custom haptic patterns without a separate driver.
  • The choice of vibration motor type affects the cost and premium perception of the device but has little impact on power consumption during typical use.

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.

Discuss the project

Read also