HomeAll ToolsVibration

Phone Vibration Motor Test

Verify haptics on mobile devices via Vibration API.

Vibration test bench
Vibration API: Not supportednon-security context
Preset rhythm
pattern30
Rhythm/Intensity Generator (Somatosensory Contrast)
Rhythm
Speed(BPM)
120 BPM
number of beats
8 beat
Intensity (approximated by "pulse duration/interval")
Intensity 55 / 100 (pulse about 147ms, base interval about 121ms)
cycle
Cycle interval (ms)
generate pattern147, 353, 147, 353, 147, 353, 147, 353, 147, 353, 147, 353, 147, 353, 147About 3647ms
custom pattern
Note: Pattern consists of a series of milliseconds. The odd-numbered bits represent the "vibration duration" and the even-numbered bits represent the "interval duration". For example: 100,50,100
Reminder: Many browsers require a "user gesture" to trigger the vibration (just click a button). Some platforms (especially iOS/Safari) may not support the Vibration API at all; Android/Chrome support is more common.
Run log
User Agent-
suggestionIf it does not take effect: Change to Android/Chrome, confirm that it is not in power saving mode, and test under HTTPS.
No logs yet. Click the button on the left to trigger a vibration test.
You can use the same device to repeatedly compare the "somatosensory differences" under different rhythms/intensities (whether it is obvious, whether it is delayed, whether it is swallowed up by the system).

How to use this page to quickly locate problems

First click "Short Pulse/Medium Pulse" to confirm whether there is any vibration feedback; no feedback usually means that the browser/system does not support it or is restricted by policy.
Then use "SOS/Heartbeat/Three Consecutive Shocks" to test whether the "long and short rhythm distinction" is obvious: if there is only a "very weak one", it may be that the system swallowed up part of the vibration under the energy saving/do not disturb/silent policy.
Use the "Rhythm Generator" to compare different BPMs and intensity: Intensity is essentially an approximation of duration and duty cycle, not true amplitude control.
If you test on iPhone/Safari, the Vibration API is not available in most cases; it is recommended to use Android/Chrome for comparison.

Vibrate Guide

Test different patterns (Pulse, SOS) to check motor health.

Step 1

Confirm API availability

about 5 seconds

Look at "Vibration API: Supported/Not Supported" at the top of the page and run a short pulse first.

Click "Short Pulse (30ms)" or "Medium Pulse (80ms)"
If you don’t feel anything at all, change the device/browser for comparison (Android/Chrome is usually more likely to succeed)
If prompted for non-security context, it is recommended to access under https
Tip: Some browsers require "user gestures" to trigger vibration; simply clicking the button will suffice.
Step 2

Test different rhythms

about 20 seconds

Use "Preset Rhythm" and "Rhythm Generator" to compare the somatic differences in length, speed, and compound rhythms.

Run "double click / triple shock / SOS / heartbeat" to observe the resolution
Adjust BPM (tempo) and beat count, compare "steady beats vs doubles/triplets"
If the delay is obvious, it may be caused by system scheduling/power saving strategy (especially in background/lock screen scenes)
Step 3

Do "strength" comparisons (approximately)

about 15 seconds

The Vibration API does not have real amplitude control. "Strength" is approximated by pulse duration and interval duty cycle.

Set the intensity to 20/50/80 and run once each
Observe "whether it is more obvious/longer/more continuous" and whether "it only shakes once and then disappears"
Comparisons are more meaningful on the same device; don’t use them as absolute conclusions across devices

FAQ

Support differences, limitations, and troubleshooting suggestions for the Vibration API.

1.

What does this page verify?

It can confirm whether the current browser is exposed to `navigator.vibrate`, and trigger vibration through preset rhythm/custom pattern to help you do somatosensory comparison of "whether there is feedback, whether the rhythm is distinguishable, and whether there is obvious delay/vibration swallowing".

2.

Why does it say "Support" but I can't feel the vibration?

Common reasons include: the system is in power saving/do not disturb/mute or tactile feedback is turned off, the device hardware is not supported/the vibrator is weak, the browser has frequency/duration restrictions on vibration, or the current page is not in the foreground. It is recommended to click the button in the foreground to trigger and use a longer pattern (such as three consecutive earthquakes/SOS) for comparison.

3.

How is "strength" measured? Can the amplitude be controlled?

The Vibration API only has "duration/interval" and no real vibration amplitude parameters. The "intensity" on this page is a somatosensory approximation using longer pulses and shorter intervals (higher duty cycle) for easy comparison, but does not represent real amplitude control.

4.

Can it be used on iPhone / iOS Safari?

Not in most cases. iOS/Safari has very limited support for the Vibration API (many versions do not support it outright). If you need reliable vibration testing, it is recommended to use Android/Chrome as the main control environment.

5.

Why is HTTPS (security context) required?

Some browsers regard vibration as a "sensitive capability" and may be restricted in non-secure contexts (HTTP). Even though it's not a requirement, using https is generally more stable.

6.

Will any data be uploaded?

Won't. Pattern generation, triggering and logging are all done locally in your browser. This page will not upload device information or test data to the server.