Why Your Spirit Level Reading Is Wrong: Troubleshooting Guide
When a spirit level app reads wrong, the cause is nearly always one of four things. The sensor is not calibrated. The phone case is adding an offset. The surface is vibrating. Or the browser has blocked the phone's motion sensors. Each has a fast fix, and you can usually tell which one you are dealing with in a couple of minutes.
Key Takeaways
- Same error every time means uncalibrated sensor bias. Run the two-point calibration first.
- Jumpy readings usually mean vibration or hand tremor. Use Hold/Freeze to lock a stable reading.
- An uneven phone case tilts the phone by a fraction of a degree. Calibrate with the case in the state you plan to measure in.
- Brave and Samsung Internet block motion sensors by default. Spirit Level Pro detects this and shows the fix steps for your browser.
- Recalibrate after a major iOS or Android update. The update can shift the sensor baseline.
Issue 1: readings are off by the same amount every time
If the app always reads 0.8° where a physical level reads 0°, that is uncalibrated sensor bias. Every accelerometer leaves the factory with a small built-in offset, sometimes called zero-g offset. It is a property of the hardware, not a fault, and a cheaper phone is not necessarily worse. Calibration cancels it out.
How to diagnose it
Put a bubble level, or a glass of still water, on the same surface as your phone. If both read flat, you are fine. If the phone reads 0.6° on a surface the bubble level says is flat, that is bias. The giveaway is that it stays the same. Set the phone down a dozen times and you get 0.6° every time, give or take a hundredth.
How to fix it: run the two-point calibration
Put the phone on the flattest surface you have. Float glass, a countertop you have already checked, or a machinist's square all work. Tap Calibrate. Rotate the phone 180°, so the left and right edges swap. Do not flip it over. Tap Calibrate again. The app averages the two readings, which cancels the bias in both directions.
The whole thing takes under a minute. A phone that reads 0.7° before will read 0.0° after, and it holds. Redo it when you change your case, when readings drift after an OS update, or after the phone has been in hard heat or cold.
Issue 2: readings jump around and will not settle
Jumpy readings usually mean vibration is reaching the sensor. Air conditioning, a running appliance, a power tool on the same bench, even heavy traffic outside can shake a surface enough to swamp the accelerometer. A saw running on the same bench as the phone will make a steady reading impossible.
Find the vibration source
Hold the phone freehand for a moment, off the surface. If it settles, the vibration was coming through the surface. If it still jumps, it is either your hand shaking or vibration in the air around you. The usual suspects are fridges, air handlers on the same joist run, a washing machine mid-cycle, and any power tool running within a few feet.
Fix: use Hold/Freeze
Spirit Level Pro runs an exponential moving average over the sensor data. That smooths short spikes, but it cannot save you if the vibration never stops. So pause the power tools first, then use Hold/Freeze.
Tap the vial once to freeze the reading. An amber HOLD badge shows at the top of the vial. Now you can read the number at your own pace with no tremor or vibration moving it. Tap again to unfreeze. This also helps when you are at an awkward angle and cannot watch the screen while you hold something in place.
If you cannot stop the vibration, put the phone on a rubber mat or a folded cloth. That soaks up the high-frequency shake and gives the filter something cleaner to work with.
Issue 3: is your phone case adding error?
Cases cause more trouble here than people expect. A case with raised edges, an uneven back, or a lump on one side props the phone up at a slight wedge. The sensor sits at an angle to the surface even though the surface is flat. On a wide phone, a small height difference across the back is enough to show up as a fraction of a degree. Calibration handles it, but only if you calibrate and measure with the case in the same state.
Test for case error
Take a reading on a flat surface with the case on. Note the number. Take the case off and read again. If they differ by more than about 0.1°, the case is a factor. Thick rugged cases, and cases with a pop socket or card holder on the back, are the worst for this.
Fix: calibrate the way you will measure
You do not have to take the case off. Calibrate with it on and the offset zeroes out. The rule is to calibrate in the same setup you plan to measure in. Swap between case-on and case-off without recalibrating and the error comes straight back.
For fine finish work where a tenth of a degree matters, take the case off and calibrate bare. That gives you the cleanest baseline.
Issue 4: the app does not work at all
If the bubble will not move, the reading stays at 0.0° no matter how you tilt the phone, or you get a sensor error, the browser has almost certainly blocked access to the motion sensors. This happens a lot now. Brave blocks the sensor APIs by default. Samsung Internet needs a manual toggle. Opera and some Firefox setups do the same. It is a privacy default, and the browser rarely tells you it has done it.
What Spirit Level Pro does
If no sensor data arrives within two seconds of permission being granted, the app shows a sensor-blocked screen. It works out which browser you are on (Brave, Samsung Internet, Edge, Opera, Firefox, Chrome) and shows the steps for that browser to switch sensor access back on.
You do not have to guess which setting to change. Follow the steps, tap Retry, and the sensor usually starts responding within a few seconds.
Manual fix by browser
On most browsers, open Site Settings from the lock icon or the three-dot menu, find Motion Sensors or Device Orientation, and set it to Allow. On iOS, the system asks once the first time a web app requests sensor access. If you tapped Don't Allow, go to Settings, then Privacy and Security, then Motion and Fitness, and turn it back on for your browser.
Issue 5: surface mode and plumb mode read differently
That is normal, up to a point. Surface mode measures pitch (front to back) and roll (side to side) at the same time. Plumb mode measures pitch only. On a vertical surface they are measuring different things, so a difference between them is expected. What you should not see is the same axis reading differently in the two modes. If pitch reads 1.2° in Surface mode and 0.7° in Plumb mode on the same surface, one mode's calibration is off.
Fix: calibrate each mode on its own reference
Calibrate Surface mode with the phone flat on a horizontal reference. Calibrate Plumb mode with the phone held against a verified vertical surface, such as a door frame or a plumb line. Each mode keeps its own offset, so calibrate them separately on the right surface.
Issue 6: rotating the phone 180° changes the reading
It should not. A calibrated phone gives the same angle whether the top edge or the bottom edge points toward the slope. If turning the phone 180° along the measurement axis shifts the reading by more than 0.2°, the sensor has an error that a single calibration point cannot fully cancel.
The reversal test
This is the standard way to check for uneven accelerometer error. Put the phone on a stable surface and note the reading, R1. Rotate it 180° and note it again, R2. If R1 and R2 are equal and opposite, the sensor is fine and the surface is just slightly tilted. If they are not equal and opposite, the sensor has bias on that axis.
The two-point calibration in Spirit Level Pro is this test in software. It takes R1 and R2, finds the midpoint, and stores it as the zero offset, which cancels symmetric bias for you. If R1 and R2 still disagree by more than about 0.5° after that, the sensor is probably worn or damaged, and a physical level is the better tool for that job.
Issue 7: the app reads differently after an OS update
This is less common, but it happens. Both iOS and Android keep sensor calibration values in system firmware. A major update sometimes overwrites those values, which shifts the baseline of the accelerometer. The shift is small, usually well under a degree, but it is enough to matter on precise work.
The fix is to run the two-point calibration again after any major OS update. It takes half a minute. If you keep having to do it, check whether a browser update has also changed the default sensor permission for your browser.
When to stop trusting the phone and use a physical level
A phone accelerometer is rated for a working range. Most are specified for roughly -10°C to +45°C, and accuracy gets unreliable outside that. A hard drop can also shift the calibration for good, in a way no software routine will fully recover.
Switch to a physical level when
Reach for a real spirit level when the phone has been dropped recently, especially onto a hard floor. Or when it is very hot or very cold, outside that -10°C to 45°C range. Or when the phone is old and the sensor drifts in a way you cannot calibrate out. Or when the job needs better than 0.2° accuracy, such as machine tool setup or instrument installation. And if you have run calibration twice and still cannot agree with a reference level, trust the reference.
For everything else the calibrated phone is the right tool. Hanging a shelf, checking cabinets, setting posts, laying tile. It is always in your pocket, it can beep as you close in on level, and it keeps a record of what you measured.
Frequently Asked Questions
Why does my phone spirit level read differently on the same surface?
Usually it is hand tremor, so rest the phone flat on the surface instead of holding it. Or it is vibration from nearby machinery, so pause the tools and use Hold/Freeze. Or the accelerometer is warming up or cooling down. A phone that has sat in the sun or the cold needs a few minutes to settle before precise readings are reliable.
My phone level is off by exactly the same amount every time. What causes that?
A steady offset is almost always sensor bias, a small built-in error in the accelerometer. The fix is the two-point calibration. Put the phone on a flat surface, tap Calibrate, rotate it 180°, tap again. That cancels the bias in both directions and brings readings close to a physical level. Recalibrate after OS updates or case changes.
Why is my spirit level app not working after an OS update?
A major update can overwrite the sensor calibration values in firmware and shift the baseline slightly. Run the two-point calibration again. If the app has also lost its motion sensor permission, go to Settings and turn it back on for your browser. Spirit Level Pro shows the exact steps for your browser if the sensor stops responding.
When should I stop trusting the phone and use a physical spirit level?
Switch to a physical level when the phone has been dropped, when it is very hot or cold (outside -10°C to 45°C), when an older phone drifts no matter how you calibrate, or when the job needs better than 0.2° accuracy. For everyday DIY and trade work, a calibrated phone is reliable enough.
Try Spirit Level Pro free — no download, no account needed.
Open Spirit Level Pro