3. Static gravity-based axis verification

Before any dynamic test, spectral analysis, or field calibration, an accelerometer's mounting orientation must be verified against a reference that cannot drift: Earth's gravity vector. A static gravity test is the cheapest and most trustworthy orientation check available, because the input stimulus is a known constant (approximately 9.80665 m/s² at sea level, directed toward the geodetic vertical) and the only unknowns are the sensor's own alignment and the fixture's geometry. This section explains how to use that constant to identify and quantify axis orientation errors, and how to convert raw readings into actionable misalignment numbers.

Reference Convention and Sign Definition

All calculations in this chapter use a right-handed sensor body frame with axes X, Y, Z fixed to the package. Gravity is treated as an acceleration of magnitude g pointing downward in the Earth frame. A stationary accelerometer measures the specific force required to support it, so an axis pointing straight up reads +1 g and an axis pointing straight down reads −1 g. This sign convention must be stated once and held consistently; mixing "up is positive" and "down is positive" between the fixture drawing and the analysis script is the single most common source of sign errors in orientation reports.

For a perfectly aligned sensor resting on a level surface with Z up, the expected output is:

a_x = 0.000 g
a_y = 0.000 g
a_z = +1.000 g

Any deviation from this pattern is either a real tilt of the sensor relative to gravity or a sensor-level offset. Separating the two is the core of static verification.

The Six-Face Static Test

The standard method places the sensor in six known orientations—each body axis pointing alternately up and down—and records the mean output on all three axes at each position. Averaging over several seconds suppresses noise and vibration; a 2–5 s window at 100 Hz is usually sufficient for a low-noise MEMS device.

Let the six measured vectors be Ux, Dx, Uy, Dy, Uz, Dz, where U/D denote the axis pointing up/down. Two quantities fall out immediately:

  • Bias per axis: bi = (Ui + Di) / 2. For an ideal sensor this is zero; a nonzero value is the zero-g offset.
  • Scale per axis: si = (Ui − Di) / 2. For an ideal sensor this equals 1 g; deviations indicate sensitivity error.

After removing bias, the corrected up-reading on each axis should be +1 g and the down-reading −1 g. The residual cross-axis components in each position reveal misalignment: when X is nominally up, a nonzero Y or Z reading means the sensor's X axis is tilted away from vertical.

Quantifying Tilt from a Single Static Reading

For a sensor held in an arbitrary but stationary attitude, the gravity vector's direction in the body frame is recovered by normalizing the measured vector:

g_hat = (a_x, a_y, a_z) / sqrt(a_x² + a_y² + a_z²)

The tilt of each axis from the gravity direction is then the arccosine of the corresponding component:

θ_x = acos(g_hat_x)
θ_y = acos(g_hat_y)
θ_z = acos(g_hat_z)

For a nominally level sensor, θz should be near 0° and θx, θy near 90°. A Z-axis reading of 0.998 g with X = 0.045 g and Y = −0.030 g, for example, gives a total tilt of about 3.1° from vertical—well outside the ±0.5° typically required for a reference-grade mount. This single-reading method is fast but conflates bias with tilt; it is best used as a screening check, with the six-face test reserved for quantification.

Practical note: A 1° tilt produces a cross-axis component of sin(1°) ≈ 0.0175 g, or about 17.5 mg. On a sensor with 5 mg noise, that is easily resolved; on a noisy device, average longer rather than trusting a single sample.

Separating Mounting Error from Sensor Error

The six-face test measures the combined misalignment of sensor plus fixture. To isolate the mounting contribution, repeat the test with the sensor rotated 180° about its Z axis within the same fixture. If the apparent tilt reverses sign, the error is in the sensor-to-fixture interface; if it stays fixed in the fixture frame, the fixture itself is tilted relative to gravity. This rotation test is the practical way to attribute error before adjusting hardware.

Six-Face Static Gravity Test — Data Path +X up a_x = +1.00 g a_y = 0.02 g a_z = −0.03 g (example) −X up a_x = −0.98 g a_y = 0.02 g a_z = −0.03 g (example) ±Y, ±Z up four more positions recorded the same way (example) Extract per axis bias b = (U + D) / 2 scale s = (U − D) / 2 Example results: b_x = +0.010 g s_x = 0.990 g b_y = +0.020 g s_y = 0.985 g b_z = −0.030 g s_z = 0.995 g bias removed → corrected up-readings should be +1 g Quantify tilt g_hat = a / |a| θ_i = acos(g_hat_i) Example (Z nominally up): a = (0.045, −0.030, 0.998) g |a| = 0.9996 g θ_z ≈ 3.1° from vertical θ_x ≈ 87.4° θ_y ≈ 91.7° 3.1° > 0.5° tolerance → mount requires correction gravity reference: 9.80665 m/s², downward

Worked Example: From Raw Readings to a Correction Decision

Consider a triaxial MEMS accelerometer mounted on a machined bracket, with the bracket nominally level. The six-face test returns the values shown in the figure. Bias extraction gives bx = +0.010 g, by = +0.020 g, bz = −0.030 g, and scale factors of 0.990, 0.985, and 0.995 g respectively. After subtracting bias, the Z-up reading becomes (0.045, −0.030, 0.998) g, which normalizes to a Z-axis tilt of approximately 3.1° from vertical.

Because the tolerance for this bracket is ±0.5°, the result is a fail. The next step is attribution: rotate the sensor 180° about Z and repeat. If the tilt vector rotates with the sensor, the bracket face is tilted; if it stays fixed, the sensor package or its mounting screws are the culprit. In this example, the tilt reversed with the sensor, indicating a bracket-face error—correctable by shimming or re-machining the mounting surface, not by replacing the sensor.

Common pitfall: Do not apply a tilt correction derived from a single static reading without first removing bias. A 30 mg bias on the Z axis alone produces an apparent tilt of about 1.4°, which can be mistaken for a real mounting error and lead to unnecessary mechanical rework.

Acceptance Criteria and Reporting

A complete static verification record should capture, for each of the six positions, the mean and standard deviation of all three axes, the derived bias and scale per axis, the corrected tilt angles, and the pass/fail decision against the stated tolerance. The tolerance itself must be justified by the application: a ±0.5° mount is adequate for tilt sensing but insufficient for navigation-grade dead reckoning, where ±0.05° may be required and a precision leveling fixture becomes mandatory.

Static gravity verification does not replace dynamic or thermal testing, but it establishes a trustworthy baseline. If the static tilt is within tolerance and the bias is stable across repeated six-face runs, subsequent anomalies can be attributed to dynamic effects rather than to a misaligned mount—which is exactly the diagnostic separation this test is designed to provide.