Gyroscope Tester With Live Axes and Bubble Level

Tap Start, turn your phone and watch three rotation bars, a slab and a bubble level follow it.

This page reads nothing until you tap Start.

  1. Flat spin-
  2. Tip-
  3. Roll-
As reported by this browser

Rotation rate, deg/s

First bar-

Second bar-

Third bar-

The slab follows the angles and the bubble follows the tilt.

All the figures
Angles: alpha, beta, gamma
-
With gravity: x, y, z in m/s²
-
Without gravity: x, y, z
-
Events in the last second
-
Absolute flag
-
More options

Your last five runs

  1. No run yet.

Nothing from this test is stored unless you tick the box. Kept runs are numbers only and never leave this browser.

How this check works

Three turns: flat spin, tip and roll

Lay the phone flat and spin it a quarter turn like a compass needle. Then tip its top edge up towards you, then roll it onto one long side, coming back each time. Each turn should send one rotation bar well above the other two. The result names the bar that led each turn and its peak in deg/s.

Every figure is what this browser reported, which may be rounded to 0.1. The page never grades a sensor, and it reads nothing until you tap Start.

  • The page listens for the motion and orientation events of your browser, and only after you tap Start. Stop, leaving the check and closing the page all let go of them.
  • A turn counts once a rotation bar rises above 30 deg/s, a level you can change under More options, and ends when every bar is back under half of that. The result names the bar that led, never the letter it should have been.
  • The rest check keeps the lowest and highest figure of every field. The six poses report an axis and a size and never read the sign, because browsers do not agree on it.
  • If no reading arrives within 3 seconds, the page says the browser reported no motion sensor. A refused prompt is said to be a refusal, never a missing sensor.

Result

No reading yet. Tap Start, then allow motion sensors if your phone asks.

What this means

Motion events
-
In the last second
-
Declared interval
-
Rotation rate
-

All 24 checks

Motion checks, one at a time 5

  • Bubble level, then a half turn on the same spot Read the tilt, turn the phone 180 degrees flat on the same spot and read it again. Half the difference between the two readings is the slope of the surface. Half their sum is the phone's own offset, which a case or a camera bump is enough to cause. The page does both sums for beta and for gamma.
  • Flat on a table for 10 seconds Set the phone down screen up, take your hands away and wait. The result gives the lowest and highest rotation figure this browser reported across the three bars, and the size of gravity on the axis it lands on. It is worded as what the browser reported, which may be rounded, and never as the sensor's noise, drift or accuracy.
  • Gravity on six faces Hold the phone still in six poses: screen up, screen down, and standing on each of its four edges. Acceleration including gravity should put about 9.8 m/s² on one axis each time, z when flat and x or y on an edge, with the other two near zero. Browsers do not all handle the coordinates the same way, so the page reports the axis and the size and never judges the sign.
Show all 24 checks (21 more)

Motion checks, one at a time, continued

  • Live panel with slab and bubble level No task and no clock. A flat slab drawn from alpha, beta and gamma follows the phone, and a bubble slides away from centre as beta and gamma leave zero. Use it to watch one figure while you tilt slowly through a full circle, or to see that the slab stops when your hand stops.
  • Three turns: flat spin, tip and roll Lay the phone flat and spin it a quarter turn like a compass needle. Then tip its top edge up towards you, then roll it onto one long side, coming back each time. Each turn should send one rotation bar well above the other two. The result names the bar that led each turn and its peak in deg/s.

The six readouts on the panel 6

  • Absolute flag: true or false True means alpha is measured against the Earth, which takes a magnetometer as well, and alpha 0 then points north. False means the starting direction is arbitrary and alpha only shows change since the page began reading. For a compass heading the flag has to be true.
  • Acceleration including gravity in m/s² The accelerometer's reading on x (towards the right edge), y (towards the top edge) and z (out of the screen). On a still phone the three combine to about 9.8 m/s², the pull of the Earth. Standard gravity is defined as 9.80665 m/s², and the real figure is about 0.5 percent higher at the poles than the equator.
  • Acceleration with gravity taken out What is left once gravity has been subtracted: near 0 on all three axes while the phone lies still, a spike when you shake it. The specification notes that a device may be unable to supply it, for example for lack of a gyroscope. This readout then shows a dash while the one that includes gravity carries on.
  • Events per second and the declared interval How many motion events the browser delivered to this page in the last second, beside the interval in ms that the browser itself declares. An interval of 16 ms works out at 62.5 events a second. Both figures describe the browser's delivery rate. Neither is the sampling rate of the chip.
  • Orientation as alpha, beta and gamma Angles in degrees. Alpha is the turn about the axis that points out of the screen, from 0 up to 360. Beta is the front-to-back tip, from -180 to 180. Gamma is the left-to-right tilt, from -90 to 90. The phone works them out from the gyroscope and the accelerometer together.
  • Rotation rate in deg/s, three bars The gyroscope's own output: how fast the phone is turning, not which way it points. A phone gyroscope is a tiny vibrating structure, and turning it produces a Coriolis force that the chip reads as a rate. Held still at any angle it reads near 0. A quarter turn made in half a second averages 180 deg/s.

Motion readings that need a second look 13

  • A game controller's gyro does not show here A web page reads a controller through the Gamepad interface, whose specification lists an id, buttons, axes, touch surfaces and a vibration actuator, and leaves motion sensing out of scope. No browser test can show a pad's gyro through it. Buttons, sticks, triggers and rumble are on the controller tester.
  • A steady figure other than 0 at rest A bar that sits at, say, 0.3 deg/s for the whole ten seconds has an offset. Reference works list offset error and sensitivity to temperature among the ordinary errors of inertial sensors. A web page cannot separate the chip from the software between it and the browser, so this page reports the figure and gives no verdict.
  • Acceleration arrives but rotation rate stays empty The browser has an accelerometer to read and was given no rotation rate, which is what a phone built without a gyroscope looks like from a web page. The rotation bars show a dash. The six-face check still works because it needs gravity alone, and the bubble level falls back to gravity too.
  • Alpha creeps while the phone lies still With the absolute flag false, alpha has nothing outside the phone to hold on to. Gravity gives beta and gamma a reference for tilt, while a heading needs a magnetometer, which a relative reading does not use. A slow change in alpha on a still phone is how a relative heading behaves, and the page reports it without judging the sensor.
  • Every figure moves in steps of 0.1 The specification tells browsers to limit precision to 0.1 deg/s for rotation, 0.1 m/s² for acceleration and 0.1 degrees for orientation, so that the quirks of one sensor cannot be used to recognise a phone. A still phone that reads exactly 0.0 may be reporting a smaller number that was rounded away.
  • The letters differ between two browsers For rotation rate the W3C specification returns alpha as the rate about the x axis, beta about y and gamma about z. MDN's reference page gives alpha as Z, beta as X and gamma as Y, and warns that two major browsers do not treat the coordinates alike. So this page tells you which bar led which turn, never which letter ought to have moved.
  • One rotation bar stays flat through all three turns First turn faster: a turn counts once a bar passes 30 deg/s, which is our default and can be changed. Then take the case off, reload and repeat, and try a second browser. If the same bar stays flat each time while the other two move, write down which one. The page reports it and leaves the verdict to a repairer.
  • Opened over http or from a saved file Motion and orientation events fire only in a secure context, which means an https address. A copy of this page saved to the phone, or one reached through an http link, gets no readings however good the sensor is. Open the page at its https address and tap Start again.
  • Permission was not given You refused the prompt or closed it, so the page read nothing. This says nothing about the sensor. Reload the page and tap Start to be asked again. How to get the prompt back differs by browser: in Chrome on Android, tap the icon to the left of the address, open Permissions and look for Motion sensors.
  • Readings freeze when you switch app or tab Browsers send motion events only while the page is visible. Locking the phone, switching app or opening another tab stops the counter, and a rest check interrupted that way is thrown out and started again. Keep the screen on and this page in front for the full ten seconds.
  • The same bar leads two different turns Nobody turns a phone about exactly one axis by hand, so every bar picks up a little of every turn, and a sloppy tip can pass for a roll. Repeat with larger, cleaner movements: the spin flat on a table, the tip and the roll with one edge resting on it. Three turns led by three different bars is the tidy result.
  • The slab turns the wrong way in landscape The axes belong to the phone, not to the picture on the screen. They are fixed to the device's standard position, which is portrait on most phones, so once the page has rotated to landscape a tip can look like a roll. Lock screen rotation, hold the phone upright and run the check again.
  • This browser reported no motion sensor No motion event arrived within 3 seconds of Start, which is our default wait, or every field came back empty. That is the normal answer on a desktop computer and on most laptops. The specification asks a browser that can never supply motion data to send an event with empty fields, and the page treats silence the same way.

How this list was compiled: Table written for this page. Every page named here was read on 2026-09-19. That motion events are available only in secure contexts (HTTPS), that acceleration is given in m/s² on the x, y and z axes, rotation rate in degrees per second and the interval in milliseconds, and the warning that Firefox and Chrome treat the coordinates differently, are from https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent (page last modified 4 August 2026). That requestPermission() needs transient activation such as a button click and resolves to granted or denied is from https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent/requestPermission_static. The ranges of alpha (0 to 360), beta (-180 to 180) and gamma (-90 to 90) and the absolute flag are from https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent. The device axes (x towards the right, y towards the top, z out of the screen, fixed to the standard position of the screen, which is portrait on most devices) are from https://developer.mozilla.org/en-US/docs/Web/API/Device_orientation_events/Orientation_and_motion_data_explained. MDN's listing of rotation rate alpha as the Z axis, beta as X and gamma as Y is from https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEventRotationRate (last modified 15 December 2023). From the W3C Device Orientation and Motion specification at https://w3c.github.io/deviceorientation/ (Editor's Draft dated 12 February 2025): the rotation rate getters return alpha as the x axis rate, beta as the y axis rate and gamma as the z axis rate; precision is limited to 0.1 degrees, 0.1 deg/s and 0.1 m/s² to mitigate passive fingerprinting; events fire only while the document is visible and only in a secure context; users must give express permission; the interval between motion events is implementation-defined and a cap on sampling frequency is still being studied; a device lying flat screen up has zero acceleration and an acceleration including gravity of z 9.8, and one with the screen vertical and the top uppermost has y 9.8; linear acceleration may be unavailable, for example for lack of a gyroscope; fields that cannot be supplied are null; relative orientation comes from an accelerometer and a gyroscope, and absolute orientation adds a magnetometer; access to raw sensor data is out of scope. Browser support was read from https://github.com/mdn/browser-compat-data, file api/DeviceMotionEvent.json: api.DeviceMotionEvent (Chrome 31, Firefox 6, Safari on iOS 4.2) and api.DeviceMotionEvent.requestPermission_static (Safari on iOS 14.5, Chrome 152, not in Firefox, not in Safari on a computer). The attributes of the Gamepad interface (id, index, connected, timestamp, mapping, axes, buttons, touches, vibrationActuator) and its scope, which leaves out devices that do motion sensing, are from https://w3c.github.io/gamepad/. Standard gravity of 9.80665 m/s², and gravity being about 0.5 percent higher at the poles than the equator, are from https://en.wikipedia.org/wiki/Standard_gravity. Offset error and sensitivity to thermal gradients as ordinary errors of inertial sensors, and the magnetometer as a heading reference, are from https://en.wikipedia.org/wiki/Inertial_measurement_unit. That the MEMS gyroscopes in smartphones are vibrating structures that find the rate of rotation from the Coriolis effect is from https://en.wikipedia.org/wiki/Vibrating_structure_gyroscope. The Motion sensors site permission of Chrome on Android, and the way to it (View site information to the left of the address bar, then Permissions), are described at https://support.google.com/chrome/answer/114662 (Android tab, read 2026-09-19). Those steps are given for that browser by name because no source was found that holds for every browser. The arithmetic (90 degrees in 0.5 s is 180 deg/s; 1,000 ms divided by 16 ms is 62.5; the half sum and half difference of two level readings) is computed. The 30 deg/s turn threshold, the 3-second wait for a first event and the 10-second rest are this page's defaults and are worded as such. No reading on this page is a verdict on a sensor: the rest check reports what the browser reported, which may be rounded, and never the sensor's noise, drift or accuracy. Licence: own work

How it works

This gyroscope tester shows what the browser reads from your phone's motion sensors: rotation in deg/s on three bars, three tilt angles and acceleration in m/s². Some browsers ask permission when you tap Start. The page reads nothing before that.

Read the full guide

Turn it three ways

Start with Three turns: flat spin, tip and roll: spin the phone a quarter turn flat on a table, tip its top edge up, then roll it onto one long side. A quarter turn in one second averages 90 deg/s, well past our 30 deg/s threshold. The result names the bar that led each turn and its peak.

Leave it flat for ten seconds

Flat on a table for 10 seconds gives the lowest and highest rotation figure across the three bars, and gravity's size on the axis it lands on, about 9.8 m/s² on z whatever its sign. The standard tells browsers to round these figures to 0.1, so the result is what this browser reported, never the sensor's noise, drift or accuracy.

  • On a desktop the page says This browser reported no motion sensor. That is the normal answer, not a fault.
  • Lock screen rotation first. The axes stay fixed to portrait, so in landscape a tip can look like a roll.
  • The bubble level check reads the tilt twice, with a half turn between. Half the difference is the surface's slope.

Questions and answers

Why does my phone ask for permission when I tap Start?

Motion readings can help recognise a device, so the standard wants express permission, asked for from a tap. MDN's tables list the request in Safari on iPhone and iPad and, from version 152, in Chrome. Refuse, and the page says Permission was not given.

Can it test the gyro in a game controller?

No. A web page reads a pad through the Gamepad interface, whose specification covers buttons, axes, touch surfaces and vibration and leaves motion sensing out of scope. The controller tester reads buttons, sticks, triggers and rumble.

Does it show whether my gyroscope is accurate?

No. The standard keeps raw sensor data out of scope, browsers may round every figure to 0.1, and events per second is the browser's delivery rate, not the chip's. You can see whether each axis answers a turn and whether the figures settle at rest.