accelerometer1.gif

The iPhone 5S motion sensors aren't that great. Some developers have investigated the problem and have finally figured out the root of the problem. It turns out, it's a hardware design issue that Apple either overlooked or ignored.

But don't worry. There's a fix coming. But it won't be from Apple.

According to developer RealityCap, the reason for the problem is that Apple switched hardware vendors for their phone's accelerometer.

In a blog post, CEO Eagle Jones points to the Chipworks teardown of the iPhone 5S guts, which reveals that while previous iPhones use STMicroelectronics accelerometers, the iPhone 5S uses a Bosch Sensortech part.

STMicroelectronics and Bosch Sensortech accelerometers don't have the same specs.

accelerometer2.jpg

The precision on these devices rely on two key measurements: Variance and Bias. Jones detailed this below:
Let's say we're just measuring the strength of gravity, which should be 9.81 m/s^2.

A low bias, but high variance sensor might output: 9.85 9.75 9.81 9.90 9.79 9.77

A high bias, low variance sensor might have output like: 9.60 9.61 9.59 9.60 9.62 9.58
According to RealityCap's measurements, the old ST component and the new Bosch part have similar variance, but their bias specification is way different:
This is where we find the problem: the typical bias for the ST part is +/- 20mg, while the Bosch part lists +/-95mg. This almost 5x greater offset range is confirmed by our measurements, and is absolutely consistent with the failures being reported by users and the media. Specifically, a +/- 20mg offset range would translate to around a +/-1 degree accuracy range in tilt detection, and a +/-95mg offset translates to +/-5 degrees in tilt.
This causes the overall equilibrium of the phone's measurements to be screwed off. It affects the level, to how even how you play some games on the phone.

But the fix can come, though not from Apple yet. App developers can compensate for the new accelerometer's spec change with additional calibration.
It is possible to work around the problem by incorporating a calibration procedure into apps. This procedure would ask the user to place the device in different orientations to determine the accelerometer bias. Apps can then subtract this measured bias from the data coming from the accelerometer to get a corrected reading
RealityCap is working on code for developers to create a quick fix for this. Apple is still silent on this matter. [RealityCap and Chipworks]