Doing some housework the other day I downloaded an app to my smartphone that included a level for measuring tilt. The app requires me to calibrate the level by first placing my phone on a perfectly straight surface. But why is this required?

I thought smartphones use MEMS sensors that measure the tilt angle with respect to gravity. This is what a traditional level does; it measures the angle so that when the surface is straight or at zero degrees it is perpendicular to the direction of gravity, and they do not need to be calibrated since the direction of gravity is the same always.

  • 1
    \$\begingroup\$ Yes, but not all phones are built the same. How should the app know how your sensor is oriented inside the phone? \$\endgroup\$ – Marcus Müller Aug 6 '18 at 17:28
  • \$\begingroup\$ Who says the MEMS device is perfectly parallel to the sides of your phone? \$\endgroup\$ – JRE Aug 6 '18 at 17:28
  • \$\begingroup\$ Who says that electronic circuitry who outputs position data has no offsets that need to be calibrated/zeroed out? \$\endgroup\$ – Ale..chenski Aug 6 '18 at 17:34
  • 1
    \$\begingroup\$ BTW, the words level and straight do not mean the same thing. \$\endgroup\$ – Elliot Alderson Aug 6 '18 at 17:50
  • \$\begingroup\$ @ElliotAlderson Where did I indicate that I believed so? That was not my intention. \$\endgroup\$ – S. Rotos Aug 6 '18 at 18:01

Two reasons:

Sensor bias, because there are no perfect amplifiers, they all have bias.

Why is there Sensor Bias?

The gyroscopes and accelerometers used in the MTi's are MEMS (Micro Electro Mechanical Systems) sensors. The physical properties of these sensors change over time which results in different characteristics over time. Depending on sensor usage and time the internal sensor biases will increase. Source: https://base.xsens.com/hc/en-us/articles/209611089-Understanding-Sensor-Bias-offset-

Second reason:

Because the mems sensor has a mechanical bias from the package, it isn't perfectly aligned with the axis of the phone. This effect isn't significant but still plays into error.


Not the answer you're looking for? Browse other questions tagged or ask your own question.