# Phone Sensor Test

> Test your phone's accelerometer, gyroscope, compass, GPS accuracy and vibration in the browser, with a bubble level and real sample rate. No app, no upload.

- URL: https://bytescope.dev/en/phone-sensor-test/
- Locale: en · Also: [ja](https://bytescope.dev/ja/phone-sensor-test.md) · [zh-Hant](https://bytescope.dev/zh-Hant/phone-sensor-test.md)
- Runs: Readings and location stay in this tab — nothing is sent anywhere.
- Requires: Phone browsers that expose motion and location events: Chrome and Samsung Internet on Android, Safari on iPhone (motion needs a tap on Allow; no vibration API). Each browser is marked untested on the page until checked on a real phone. Desktops usually have no motion sensors, and the page says so.
- Updated: 2026-09-08

## What it does

Every modern phone carries an accelerometer, a gyroscope, a magnetometer and a GPS receiver, and the browser can read all four through standard web APIs — `DeviceMotionEvent`, `DeviceOrientationEvent` and `watchPosition`. This page turns those readings into a phone sensor test you can run without installing anything — whether you came for a gyroscope test online, an accelerometer test, a compass test, a GPS accuracy test, a vibration test or a bubble level online: one card per sensor, each with its own Start button, live numbers in monospace with units, a small chart of the last few seconds, and the sample rate the browser is actually handing to the page. It is meant for the moments when a map keeps pointing the wrong way, a racing game drifts on its own, navigation jumps around, or you are checking a second-hand phone before paying for it. The whole thing runs on the phone: no coordinates, no readings and no report ever leave the browser.

### What each card measures

The accelerometer card shows x, y and z both with and without gravity, plus the `interval` the browser reports. Lying still on a table, the length of the gravity vector should sit close to 9.81 m/s²; a deviation beyond the reference threshold is flagged as “worth checking”, never as “broken”. The bubble level uses the same gravity vector to compute pitch and roll, with a “zero at current position” button so you can level against a surface you trust. The gyroscope card shows the three rotation rates and a “lay flat for 5 seconds” measurement that reports the resting offset (bias) and noise — a large bias is what makes AR and games drift when the phone is not moving. The compass card shows the magnetic heading on a compass rose, compensated for screen rotation, with the accuracy where the platform reports one, and a static figure-8 calibration diagram. The GPS card shows latitude and longitude, horizontal accuracy in metres, altitude, speed, heading, time to first fix and an accuracy-over-time chart. The vibration card fires a few preset patterns and anything you type in. A small screen-orientation card completes the set.

### The five-second still test and its four verdicts

Both the accelerometer and the gyroscope have a short measurement where you put the phone down and wait. The result is one of four verdicts. “OK” means the average sat within the reference threshold. “Check” means the resting value is off — a gravity reading far from 9.81 m/s², or a gyroscope bias above 1 °/s — and the sensor may want calibrating. “Moving” means the readings varied too much to judge, almost always because the phone was picked up or the table was bumped; just run it again. “Not enough samples” means the browser delivered fewer than ten readings in the window, which happens when a tab is throttled or a permission was granted late. The thresholds (±0.5 m/s² for gravity, 1 °/s for gyroscope bias) are reference values chosen conservatively, not manufacturer specifications.

### What this page cannot tell you

The sample rate shown is the rate the browser gives to a web page, which is often lower than what the sensor itself can do, so it describes your browser, not your hardware. A compass is a magnetometer, and it is thrown off by magnets in phone cases and car mounts, by nearby metal and by speakers; a wrong heading usually means interference, not a faulty sensor. The compass shows magnetic north, which differs from true north by the local declination. GPS accuracy indoors or between tall buildings is poor on every phone, and the browser may fall back to Wi-Fi or cell-tower positioning — the accuracy field will reflect that with a much larger number. iPhones have no vibration API in any browser, so that card cannot run there. And the verdicts above are simple readings against reference thresholds: this page does not diagnose hardware faults and will not tell you that a part has failed.

### On a desktop

Most laptops and desktops have no motion sensors, so if you open this page on a computer it shows the page URL and a QR code to scan with your phone; the cards stay below so you can still read what each one does. GPS may still work on a laptop through Wi-Fi positioning, usually with an accuracy of tens to hundreds of metres.

### Your location stays on your phone

There is no map, because drawing one would send your coordinates to a tile server. Coordinates are shown to three decimal places by default — roughly 100 m — and you tap a button to see six. The report produced by the Copy button contains the verdicts, sample rates, fix count, time to first fix and accuracy figures only; it never includes latitude, longitude, altitude, speed or heading, and nothing is sent anywhere. Analytics record which cards were started, never a value.

## Limits

Does not diagnose hardware faults, does not draw a map or send your coordinates anywhere, and does not read sensors the browser does not expose (no Generic Sensor API, no light sensor). It shows what the browser gives the page, which is often a lower rate than the sensor's own.

## FAQ

### Why does my iPhone ask me to allow motion sensors?

Since iOS 13, Safari only exposes motion and orientation data after the page asks with `DeviceMotionEvent.requestPermission()`, and that call is only allowed inside a tap. That is why the accelerometer, level, gyroscope and compass cards show an “Allow motion sensors” button first; one tap covers all four. If you tapped “Don't Allow”, close the tab and open the page again. If Safari still refuses, check the Settings app under Safari for the motion and orientation access switch — the exact location varies by iOS version.

### Why can't my iPhone run the vibration test?

Because Safari on iOS does not implement the Vibration API (`navigator.vibrate`), and other iPhone browsers do not offer it either. The card tells you this instead of pretending to vibrate, so a silent phone here does not mean the motor is broken. Android browsers generally support it, though the browser can refuse while the page is in the background or when vibration is turned off in system settings.

### My compass is wrong. How do I calibrate it?

First remove the likely cause: take the phone out of any case with a magnetic flap or ring, step away from speakers, laptops and car mounts, and move away from large metal objects. Then move the phone in a figure-8 pattern a few times, rotating it through all axes — the card shows a static diagram of the motion. Watch the reported accuracy improve. Remember the heading is magnetic north, not true north, so a steady offset of a few degrees from a map is the local declination, not an error.

### Does this page record my location?

No. Your coordinates stay inside the page and are never sent anywhere — there is no map, no tile requests and no logging. Coordinates display at three decimal places (about 100 m) until you choose to show full precision. The copied report deliberately leaves out latitude, longitude, altitude, speed and heading and only carries accuracy numbers, fix count and timing. Analytics record only that the GPS card was started, never a value.

### How is this different from the Web ADB sensors page?

The Web ADB sensors tool reads an Android phone's sensors from a computer over a USB cable and ADB, which needs developer mode and gives you the full sensor list the system sees. This page reads the sensors inside the phone's own browser through web APIs, so it works on iPhone as well as Android, needs no cable and no developer mode, but only sees what the browser exposes. Use that page for a deep look at an Android device; use this one when you simply want to test the phone in your hand.

### Why is the sample rate lower than my phone's sensor specification?

Because the browser decides how often to deliver `devicemotion` events to a page, and that rate is often lower than the rate the sensor itself can run at. Browsers also lower it when the tab is in the background or the phone is saving power. The number on each card is therefore a measurement of what web pages get on this browser, which is useful if you are building a web app, but it is not a hardware specification.

### Can I use this on a laptop or desktop?

You can open it, and the page will offer a QR code so you can continue on your phone, but most computers have no accelerometer, gyroscope or compass, so those cards will report that the device gave no readings. GPS may still return a position through Wi-Fi positioning with a large accuracy radius, and the vibration card will show that the browser has no vibration API.

## Related tools

- [Touch Test](https://bytescope.dev/en/touch-test.md) — Multi-touch, touch sample rate and dead spots on the screen →
- [My Computer Specs](https://bytescope.dev/en/my-computer-specs.md) — GPU, CPU, memory and OS of the device you're on →
- [Keep Screen Awake](https://bytescope.dev/en/keep-screen-awake.md) — Keep the screen on for long GPS runs or presentations →
