Hi,
Thank you for writing. I´d recommend you to use our software technique "AutoZero calibration". As you may know, the offset error can be caused by the following:
- device to device variations
- mechanical stress from packaging and mounting
- shifts due to temperature and aging
If you are repeatedly using AutoZero (i.e: during initialization), to compensate for offset drift, you won’t require offset calibration, hence the accuracy of the device would be highly improved (including repeatability).
As for Zero-g offset, it is necessary to do a calibration to exactly know what the offset is. Please look at the following documentation that could be really useful to implement the auto-zero and the offset calibrations and our recommendations for tilt sensing applications using three-axis accelerometers:
+ AN4069, “Offset Calibration of the MMA8451, 2, 3Q”:
https://www.nxp.com/docs/en/application-note/AN4069.pdf
+ AN3447, “Implementing Auto-Zero Calibration Technique for Accelerometers”: https://www.nxp.com/docs/en/application-note/AN3447.pdf
*AN3447 was written for the MMA73xxL accelerometer family, but the principle is the same, hence you can apply the same technique to the MMA845x
+ AN4399, “High Precision Calibration of a three-axis Accelerometer”: https://www.nxp.com/docs/en/application-note/AN4399.pdf
I’m not sure which accelerometer are you using or planning to use, but for this application I would like to recommend you the MMA8451Q accelerometer: https://www.nxp.com/docs/en/data-sheet/MMA8451Q.pdf
Regards,
Jose
NXP Semiconductors