On this page
Gyroscope Test
Live X, Y and Z rotation rate in rad/s and deg/s, a scrolling activity graph, a guided three-axis test and a five-second zero-motion check.
- Available — Live on this site right now.
- Browser Tool — Runs in the browser you are reading this in.
- No Install — Nothing to download, no extension, no account.
- Client-Side — Runs entirely on your device. No test data is uploaded.
- Requires Permission — Asks your browser for access before it can run.
- Mobile — Built for phone and tablet hardware.
This page explains the tool. The tool itself is one click away and needs no sign-in.
Open Gyroscope TestWhat is this tool?
The Gyroscope Test reads your device's angular rate sensor and shows how fast the phone is rotating about each of its three axes, right now, as you move it. It is a rate sensor, not a position sensor: hold the phone perfectly still at any angle and every axis correctly reads near zero.
Two APIs can supply the data. Where the Generic Sensor API is available the engine uses it; otherwise it listens to DeviceMotionEvent and takes rotationRate, whose beta, gamma and alpha fields become X, Y and Z. Those arrive in degrees per second and are converted to radians by multiplying by π and dividing by 180, so both units are shown from the same reading.
Around the live numbers sit a scrolling graph of the last 150 samples, a guided test that asks you to exercise each axis in turn, a five-second stability check for sensor noise, a 3D phone visualiser and a raw data table sampled roughly every hundred milliseconds.
How to use it
- Press Start Gyroscope TestThe button exists because iOS requires a user gesture before it will even ask about motion access. On iPhone and iPad a permission prompt appears at this point; accept it, or the axes stay at zero forever.
- Rotate the phone slowly and watch the numbersTurn it about one axis at a time. Values should rise smoothly while you move and fall back toward zero the instant you stop. Numbers that stay pinned at zero while you rotate, or that jump erratically, are the two failure signatures worth noting.
- Run the three-axis guided testTest X, Test Y and Test Z each wait for deliberate motion about that axis. The engine marks an axis as detected once it sees at least 0.35 rad/s — roughly 20 degrees per second — so a gentle wobble will not falsely pass it, and all three passing means no single axis is dead.
- Run the five-second stability testPut the phone on a flat table, do not touch it, and press Start Stability Test. For five seconds the engine records every sample and then reports the average and peak noise on each axis, declaring the sensor stable only when the peak on all three axes stays below 0.35 rad/s.
- Watch the graph for the shape of the faultThe graph makes intermittent behaviour visible in a way single numbers cannot: a trace that flatlines mid-motion, spikes without movement, or lags behind your hand tells you more than any peak value.
- Open the raw data tableShow Raw Data lists the most recent fifty timestamped samples of X, Y and Z. It is the part to copy into a support ticket, because it is the actual sensor output rather than a summary of it.
What the results mean
X, Y and Z in rad/s
Angular rate about each axis. X is pitch, tipping the top of the phone toward or away from you; Y is roll, tilting it left or right in your hand; Z is yaw, spinning it flat like a steering wheel. Radians per second is the SI unit the sensor specification uses, which is why it leads.
The same values in deg/s
Degrees per second is easier to picture: one full turn per second is 360 deg/s, or about 6.28 rad/s. Both columns come from one reading — no separate measurement is taken.
Activity level
Low below 1.0 rad/s, Medium up to 3.0 rad/s, and High above that. Resting on a table should read Low on all three; a brisk deliberate turn should reach High.
Sensor responsiveness
Event count, average interval between samples in milliseconds and the resulting rate in hertz, computed from a rolling window of the last sixty intervals. Phones commonly land near 60 Hz; a much lower or wildly variable figure means the browser is throttling delivery.
Peak and average rotation
The largest absolute value seen on each axis since the test started, and a rolling average of recent magnitude. Peaks are useful for proving an axis can register motion; averages describe how much the device has been moving overall.
Stability test verdict
Average and peak noise per axis over five stationary seconds, with a stable verdict only when the peak on X, Y and Z all stay under 0.35 rad/s. Small non-zero numbers at rest are normal sensor noise, not a defect.
What it can detect
- Whether a gyroscope exists and is reachable by the browser at all, and which API is supplying the data
- A completely dead axis — one that never rises above the 0.35 rad/s threshold in the guided test while the other two do
- Excessive noise or drift at rest, quantified as average and peak values over a controlled five-second window
- Erratic spikes or dropouts during motion, visible as discontinuities in the 150-sample graph
- A throttled or unusually slow event rate, from the average interval and hertz readout
- Whether motion access requires an explicit permission grant on this device, and whether that grant was refused
- Whether the page is running in an insecure context, which blocks sensor access before any permission question arises
Limits worth knowing
A browser can only report what the platform gives it. These are the honest boundaries of this page, so a result is never read as more than it is.
- It cannot calibrate your gyroscope. Calibration happens in the OS sensor stack, and no web page can write to it — the page's own “Can this test recalibrate my phone's gyroscope?” FAQ says exactly that.
- It cannot read the sensor's part number, manufacturer, sample rate configuration or internal temperature. The browser hands over three numbers and a timestamp; everything else about the chip is invisible.
- The reported rate in hertz is how often the browser delivered an event to this page, not the sensor's true internal sampling rate. Browsers throttle motion events for battery and privacy reasons, so treat it as a delivery rate.
- It cannot separate gyroscope drift from a genuine slow rotation. A phone resting on a slightly vibrating surface produces real readings, which is why the stability test insists the device sits still and untouched.
- It cannot diagnose why an axis is dead. A drop, a swollen battery pressing on the board, water damage and a firmware fault all present identically as one axis that never registers.
- Sensor access requires a secure HTTPS context, and on iPhone and iPad an explicit permission grant triggered by your tap. Without both, the engine reports the reason rather than showing zeros without explanation.
- Nothing is transmitted. Samples, graph history and the raw table exist only in the page and are discarded when you leave.
Tips
- Rotate about one axis at a time when hunting a dead axis. Combined motion lights up all three at once and hides the very fault you are trying to find, which is why the guided test isolates them.
- Run the stability test on a table, not in your hand. A hand cannot hold still to 0.35 rad/s, so an in-hand run will report interference that does not exist.
- Compare against a second phone if you can. Sensor noise floors vary enough between models that a slightly noisy reading only means something next to a known-good reference.
Troubleshooting
It says permission required and nothing happens.
On iPhone and iPad, motion access must be requested from a tap and served over HTTPS. Press Start Gyroscope Test itself — not a reload — and accept the prompt. If you dismissed it before, clear this site's settings in Safari and try once more.
My desktop says gyroscope not available.
Correct. Desktops and most laptops have no angular rate sensor, so there is nothing to read. Open the page on a phone or tablet, or use one of the display tests instead.
One axis stays at zero.
Run the guided test for that axis alone and rotate deliberately — the threshold is 0.35 rad/s, so slow movement may not register. If it still never triggers while the other two do, that is a genuine single-axis fault worth reporting with the raw data.
Values are not exactly zero when the phone is still.
That is normal. MEMS gyroscopes always have a small noise floor and a slight bias. The stability test exists to quantify it: peaks under 0.35 rad/s on all three axes count as stable.
The graph looks frozen.
The sensor is not delivering events. Either the test is not running, permission was not granted, the page lost focus in a background tab, or the browser is throttling motion events. Press Start again with the page in the foreground.
Ready to run it?
Live X, Y and Z rotation rate in rad/s and deg/s, a scrolling activity graph, a guided three-axis test and a five-second zero-motion check. Nothing to install, and it opens in this browser.