add framed binary telemetry transport
This commit is contained in:
@@ -31,6 +31,11 @@ coefficients:
|
||||
| Y | -4.400892 | 259.825135 | 3.848742 |
|
||||
| Z | +11.776132 | 245.755573 | 4.069084 |
|
||||
|
||||
The retained digits make the firmware calculation reproducible; they are not a
|
||||
claim of sub-count measurement accuracy. Independent face selection changed the
|
||||
derived values by up to about 0.03 counts, and repositioning changed a face mean
|
||||
by about one count.
|
||||
|
||||
Firmware converts a mapped raw value to integer milligravity with:
|
||||
|
||||
```text
|
||||
@@ -52,14 +57,25 @@ The central five thousand samples of the flat stationary interval produced:
|
||||
| Z | -7.0238 | 10.4259 |
|
||||
|
||||
The instructed positive motion was top/USB-edge lift for +X, left-edge lift for
|
||||
+Y, and counterclockwise rotation viewed from the cover for +Z. Every outward
|
||||
stroke was positive on its intended gyro channel, and every return stroke was
|
||||
negative. Axis assignment and polarity are therefore confirmed.
|
||||
+Y, and counterclockwise rotation viewed from the cover for +Z. Accelerometer
|
||||
tilt kinematics independently confirmed X and Y polarity. Rotation around Z while
|
||||
flat is rotation around gravity, so the accelerometer cannot independently check
|
||||
that sign. Z polarity follows from the right-handed enclosure frame, the
|
||||
right-handed L3G4200D frame, the identity gyro mapping, and the verified X/Y
|
||||
polarities. Axis assignment and polarity are therefore confirmed.
|
||||
|
||||
Firmware subtracts the measured zero-rate bias and converts with the nominal
|
||||
L3G4200D +/-500 dps scale of 17.5 mdps/LSB. Gyro scale itself was not measured
|
||||
because no controlled angular-rate reference was available.
|
||||
|
||||
The compile-time bias is only an initial correction. Twelve quiet stretches in
|
||||
this session showed real zero-rate wander of roughly 50 mdps on X/Z and 72 mdps
|
||||
on Y; the separate smoke capture differed by up to 63 mdps. That is enough to
|
||||
accumulate several degrees per minute if integrated. Runtime re-zeroing during a
|
||||
verified stationary interval is required before fusion, heading integration, or
|
||||
turn counting. Raw gyro counts therefore remain authoritative in the binary
|
||||
record.
|
||||
|
||||
## Freshness under motion
|
||||
|
||||
Using gyro magnitude greater than 500 counts from stationary bias as a
|
||||
@@ -86,4 +102,10 @@ and checked with a 3,814-record flat smoke capture:
|
||||
- Mean bias-corrected gyro: (+25.4, -62.9, -54.8) mdps
|
||||
|
||||
The small residual horizontal acceleration is consistent with the enclosure not
|
||||
being perfectly level. The largest residual gyro mean is 0.063 dps.
|
||||
being perfectly level. The largest residual gyro mean is 0.063 dps, which is
|
||||
evidence of the fixed-bias limitation described above rather than a long-term
|
||||
heading guarantee.
|
||||
|
||||
The two floating-point startup metadata lines were subsequently observed after a
|
||||
live device reset. They rendered the intended float32 calibration values before
|
||||
the binary stream began.
|
||||
|
||||
Reference in New Issue
Block a user