Diagnostics

Vibration Test

Check your phone's vibration motor with preset patterns or your own custom sequence. Runs directly in your browser using the Web Vibration API.

  • Runs locally
  • Works offline
  • No uploads

Vibration patterns

Fire the vibration motor

Vibration API: Checking...

Preset patterns

Custom pattern

Runs entirely on your device. Nothing is uploaded.

About this tool

This tool uses the Web Vibration API to trigger your device's haptic motor directly from your browser. No app download needed, and nothing is sent to any server.

Use it to confirm your vibration motor is working, test specific durations and rhythms, or demo haptic feedback patterns for development purposes.

What is the Vibration API?

  • navigator.vibrate(): the browser method that triggers hardware vibration. It accepts a duration in ms or an array alternating between vibration and pause durations.
  • Pattern arrays: values at odd indexes (0, 2, 4...) are vibration durations; values at even indexes (1, 3, 5...) are pause durations between buzzes.
  • Stop command: calling navigator.vibrate(0) cancels any ongoing vibration immediately.
  • Support: available on Android Chrome, Firefox, and Edge. Not available on iOS Safari or most desktop browsers.

Tips

  • If your device vibrates on notification but not here, check that your browser has not been denied vibration permission by a battery-saver mode.
  • Very short durations (under 20ms) may not be perceptible on all devices; hardware minimum limits vary by model.
  • The SOS pattern demonstrates Morse code: three short pulses, three long pulses, three short pulses.
  • Paste any comma-separated list of numbers into the custom field and hit Vibrate to test any sequence you need.

About the Vibration Test Tool

Your Android phone has a small eccentric rotating mass (ERM) or linear resonant actuator (LRA) motor that produces the buzz you feel for notifications and alerts. This tool fires that motor directly through your browser using the Web Vibration API, so you can confirm it is working without downloading any diagnostics app.

How vibration patterns work

The Vibration API accepts either a single number or an array of numbers. A single number triggers one burst of that duration in milliseconds. An array alternates between on and off: the first value is how long to vibrate, the second is how long to pause, the third is how long to vibrate again, and so on. For example, [100, 50, 200] buzzes for 100ms, pauses 50ms, then buzzes for 200ms.

Why your device might not respond

The Vibration API is intentionally disabled in iOS Safari and all browsers on iOS. Desktop browsers (Chrome, Firefox, Safari on Mac or Windows) also block it, since desktops do not have vibration hardware. On Android, Do Not Disturb or battery-saver modes may suppress vibration even if the API call succeeds silently. If the badge above shows "Vibration supported" but you feel nothing, check your device's sound and vibration settings.

Frequently asked questions

Why does the tool show "not supported" on my phone?

The most common reason is iOS: Apple does not expose the Vibration API in Safari or any other browser on iPhone and iPad, regardless of the browser brand. On Android, make sure you are using Chrome, Firefox, or Edge. Some lightweight browser wrappers also disable it.

Can this tool break my vibration motor?

No. The Web Vibration API uses the same hardware path as normal notification vibrations. Running test patterns for a few seconds is no different from receiving a message. Extended continuous vibration (many minutes) generates heat in any motor, but normal testing produces no measurable wear.

How long can a custom pattern be?

The spec sets no hard limit on array length, but browsers may clamp total duration. In practice, patterns of dozens of steps work fine. If you enter a very long sequence, the total duration shown in the tool gives you a sense of how long it will run.

What is the difference between ERM and LRA motors?

ERM (eccentric rotating mass) motors spin an off-balance weight and take a moment to spin up, producing a buzzy rumble. LRA (linear resonant actuator) motors move a mass back and forth at a resonant frequency, responding faster and producing a crisper, more precise click. Flagship Android phones have used LRA since around 2017.