Trying to understand an accelerometer data sheet

I have read through the datasheet of the ADXL343 several times and Googled this question, but I'm still confused. I'm trying to figure out how to understand the resolution of an accelerometer when used as a tiltmeter, in particular to the nearest fraction of a degree. I'm looking at the ADXL343.

I understand accelerometers only work as tilt meters when they are sitting still, otherwise I need a gyroscope. I also understand that they don't tell you tilt, but rather force, when sitting still from gravity, and that you get decimals of g as you rotate it. The ADXL343 has different ranges, from 1g to 16 g, and I think that means that if I set it to the 16g range rotate it 90 degrees I'll get a reading of 8g, is that correct?

Then there is the number of bits, which I think means the resolution across the selected range. So if I use the 2g range and 4096 bits I can get a reading to the nearest ~0.000489g, is that right?

Then, once I know that, how can I figure out how to relate g to degrees (or radians) so I can know the nearest part of a degree I can read?


The noise in the accelerometer limits the accuracy and precision of the readings. With consumer electronics you can rarely expect accuracy better that about 1% of full scale reading, so don't expect accuracy to be better than about 0.02g, and that will require averaging of many readings.

Furthermore, for accurate readings, or to be of any use as a tilt meter, the accelerometer needs to be calibrated, with an offset and scale factor for each axis. Follow this tutorial to do so.

Thanks! That is very helpful and I'll be revisiting that when I write the code. But I still don't understand how to estimate the theoretical resolution of the device in measuring tilt.

The ADXL343 data sheet states:

Its high resolution (3.9 mg/LSB) enables measurement of inclination changes less than 1.0°.

The best you could EVER do is +/- 1 LSB, or atan(0.0039) or about +/- 0.22 degrees.

However, the typical zero offsets (+/- 35 mg) and scale factor errors (5-10 LSB/g) are much larger than that resolution and depend on temperature, bandwidth, circuit board properties, etc. Add to that the nonlinearity error of 0.5% of full scale.

So, once you have carefully calibrated the accelerometer, measure the noise. Take a bunch of measurements with the sensor still, average them and compute the standard deviation. That will give you an idea of how much variation to expect around an averaged change of 1 LSB.