CSV Log Columns Reference¶
Complete reference for all columns in OnSpeed SD card log files. Data is logged at 50 Hz by default (configurable to 1, 2, 10, 25, 50, 200, or 416 Hz via the web interface). 416 Hz logs every IMU sample; lower rates downsample.
Columns are written in groups, in this order: (1) base core columns (timeStamp through Decel), (2) optional raw IMU companion columns (only when logging at the 416 Hz IMU rate, VerticalG_raw through Decel_raw), (3) optional Boom columns (when Boom is enabled), (4) optional EFIS columns (when an EFIS is configured), (5) derived core columns (EarthVerticalG through CoeffP), (6) EKFQ diagnostic columns, (7) tail-optional flapsRawADC. Parse by column name from the header line — index positions shift when optional blocks are enabled.
Plain name = smoothed, _raw = raw IMU
The motion channels (VerticalG, LateralG, ForwardG, RollRate, PitchRate, YawRate, Sideslip) carry the AHRS-smoothed value — bias-corrected and tau-smoothed — following the industry convention used by Garmin and Dynon. When the log runs at the 416 Hz IMU rate, a matching _raw companion column carries the raw, un-rotated IMU body-frame value for each. At any lower (downsampled) rate the raw sample would be aliased noise, so the _raw columns are omitted.
Core Columns — Base¶
| Column | Units | Description |
|---|---|---|
timeStamp |
ms | Milliseconds since power-on |
timeStampUs |
µs | Microseconds since power-on (co-located with timeStamp) |
Pfwd |
counts | Pitot pressure, bias subtracted (14-bit ADC) |
PfwdSmoothed |
counts | Pitot pressure after median + running-average smoothing |
P45 |
counts | AOA pressure, bias subtracted (14-bit ADC) |
P45Smoothed |
counts | AOA pressure after median + running-average smoothing |
PStatic |
mbar | Static (barometric) pressure |
Palt |
ft | Pressure altitude (ISA 1013.25 hPa reference; no Kollsman/QNH correction). Computed each row from PStatic. |
IAS |
knots | Indicated airspeed |
AngleofAttack |
degrees | Computed AOA from pressure polynomial |
flapsPos |
degrees | Detected flap position (snapped to the nearest configured detent) |
DataMark |
0–99 | Pilot data annotation (wraps at 100) |
OAT |
°C | Outside air temperature |
TAS |
knots | True airspeed |
imuTemp |
°C | IMU330 sensor temperature |
VerticalG |
G | Vertical acceleration (body Z-axis), AHRS-smoothed |
LateralG |
G | Lateral acceleration (body Y-axis), AHRS-smoothed |
ForwardG |
G | Forward acceleration (body X-axis), AHRS-smoothed |
RollRate |
deg/s | Roll angular rate (gyro), AHRS-smoothed |
PitchRate |
deg/s | Pitch angular rate (gyro), AHRS-smoothed |
YawRate |
deg/s | Yaw angular rate (gyro), AHRS-smoothed |
Pitch |
degrees | Pitch angle (AHRS output, smoothed) |
Roll |
degrees | Roll angle (AHRS output, smoothed) |
Sideslip |
degrees | Sideslip angle β (kinematic, AHRS-smoothed) |
Decel |
kt/s | IAS deceleration rate, smoothed (SmoothChannel::DecelKtPerSec output). Negative = decelerating. Same value the box ships on the display wire. |
Raw IMU Columns (416 Hz logging only)¶
Present only when the log runs at the 416 Hz IMU rate. Each carries the raw, un-rotated IMU body-frame value for the matching smoothed channel above (see the note at the top of this page).
| Column | Units | Description |
|---|---|---|
VerticalG_raw |
G | Raw vertical acceleration (body Z-axis) |
LateralG_raw |
G | Raw lateral acceleration (body Y-axis) |
ForwardG_raw |
G | Raw forward acceleration (body X-axis) |
RollRate_raw |
deg/s | Raw roll angular rate (gyro) |
PitchRate_raw |
deg/s | Raw pitch angular rate (gyro) |
YawRate_raw |
deg/s | Raw yaw angular rate (gyro) |
Sideslip_raw |
degrees | Raw kinematic sideslip angle β |
Decel_raw |
kt/s | Raw IAS deceleration rate — the SavGol(15) IAS-derivative output before DecelKtPerSec smoothing. The un-smoothed companion to Decel, for offline filter tuning. |
Core Columns — Derived¶
Appended after any optional Boom/EFIS columns.
| Column | Units | Description |
|---|---|---|
EarthVerticalG |
G | Vertical acceleration in Earth frame |
FlightPath |
degrees | Flight path angle = arcsin(VSI/TAS) |
VSI |
fpm | Vertical speed, smoothed by the active AHRS algorithm's vertical channel |
Altitude |
ft | Pressure altitude, smoothed by the active AHRS algorithm's vertical channel. Same quantity as Palt, smoothed with vertical accel. Not MSL — ISA reference, no Kollsman/QNH correction. |
DerivedAOA |
degrees | SmoothedPitch − FlightPath |
CoeffP |
— | Pressure coefficient (P45/Pfwd) |
EKFQ Diagnostic Columns¶
Always present. The values are finite when the AHRS algorithm is EKFQ (the default), which estimates these states, and written as nan under Madgwick, which does not.
| Column | Units | Description |
|---|---|---|
ekfBpDps |
deg/s | Roll-rate gyro bias |
ekfBqDps |
deg/s | Pitch-rate gyro bias |
ekfBrDps |
deg/s | Yaw-rate gyro bias |
ekfBAzMps2 |
m/s² | Earth-frame vertical-acceleration bias |
ekfBetaDeg |
degrees | Sideslip angle β (EKFQ state) |
ekfYawDeg |
degrees | Yaw angle |
Boom Probe Columns (When Boom Enabled)¶
| Column | Units | Description |
|---|---|---|
boomStatic |
counts¹ | Static pressure from boom |
boomDynamic |
counts¹ | Dynamic (pitot) pressure from boom |
boomAlpha |
counts¹ | Angle of attack from boom |
boomBeta |
counts¹ | Sideslip angle from boom |
boomIAS |
knots | Indicated airspeed from boom |
boomAge |
ms | Time since last boom data packet |
¹ Raw ADC counts by default. When BOOMCONVERTDATA=true the firmware applies the polynomial calibration curves in onspeed_core/BoomConvert.h and writes physical units (PSI for boomStatic / boomDynamic, degrees for boomAlpha / boomBeta). BOOMCONVERTDATA defaults to false.
EFIS Columns — Dynon/Garmin/MGL¶
When EFIS type is ADVANCED, DYNOND10, GARMING5, GARMING3X, or MGL:
| Column | Units | Description |
|---|---|---|
efisIAS |
knots | IAS from EFIS |
efisPitch |
degrees | Pitch angle from EFIS |
efisRoll |
degrees | Roll angle from EFIS |
efisLateralG |
G | Lateral acceleration from EFIS |
efisVerticalG |
G | Vertical acceleration from EFIS |
efisPercentLift |
% | Percent lift / AOA (0–99%) |
efisPalt |
ft | Pressure altitude from EFIS |
efisVSI |
fpm | Vertical speed from EFIS |
efisTAS |
knots | True airspeed from EFIS |
efisOAT |
°C | Outside air temperature from EFIS |
efisFuelRemaining |
gal | Fuel remaining |
efisFuelFlow |
gph | Fuel flow rate |
efisMAP |
inHg | Manifold absolute pressure |
efisRPM |
rpm | Engine RPM |
efisPercentPower |
% | Computed percent power |
efisMagHeading |
degrees | Magnetic heading |
efisAge |
ms | Time since last valid EFIS packet |
efisTime |
ms | Timestamp from EFIS |
EFIS Columns — VectorNav VN-300¶
When EFIS type is VN-300:
| Column | Units | Description |
|---|---|---|
vnAngularRateRoll |
rad/s | Roll rate |
vnAngularRatePitch |
rad/s | Pitch rate |
vnAngularRateYaw |
rad/s | Yaw rate |
vnVelNedNorth |
m/s | North velocity (NED frame) |
vnVelNedEast |
m/s | East velocity (NED frame) |
vnVelNedDown |
m/s | Down velocity (NED frame) |
vnAccelFwd |
m/s² | Forward acceleration |
vnAccelLat |
m/s² | Lateral acceleration |
vnAccelVert |
m/s² | Vertical acceleration |
vnYaw |
degrees | Yaw angle |
vnPitch |
degrees | Pitch angle |
vnRoll |
degrees | Roll angle |
vnLinAccFwd |
m/s² | Linear forward acceleration |
vnLinAccLat |
m/s² | Linear lateral acceleration |
vnLinAccVert |
m/s² | Linear vertical acceleration |
vnYawSigma |
rad | Yaw uncertainty |
vnRollSigma |
rad | Roll uncertainty |
vnPitchSigma |
rad | Pitch uncertainty |
vnGnssVelNedNorth |
m/s | GPS north velocity |
vnGnssVelNedEast |
m/s | GPS east velocity |
vnGnssVelNedDown |
m/s | GPS down velocity |
vnWindSpd |
kt | Horizontal wind speed (derived; empty when below 30 KIAS or no GPS fix) |
vnWindDir |
degrees | Wind "from" direction in [0, 360), same frame as vnYaw (true if VN-300 has WMM declination configured, magnetic otherwise) |
vnWindVertical |
kt | Vertical wind component, positive = updraft |
vnGnssLat |
degrees | GPS latitude |
vnGnssLon |
degrees | GPS longitude |
vnEstAltFt |
feet | INS-estimated altitude from Common.Position (sensor-fused GPS+IMU) — filter on vnGPSFix |
vnGPSFix |
enum | GPS fix quality |
vnDataAge |
ms | Time since last VN-300 packet |
vnTimeStartupNs |
ns | Per-sample timestamp from the VN-300 Common group: nanoseconds since VN-300 boot (TXCO ±20 ppm). Always advancing, no GPS dependency. At 400 Hz output, consecutive rows differ by ~2,500,000 ns. |
vnTimeGpsNs |
ns | Per-sample timestamp: nanoseconds since GPS epoch (1980-01-06 UTC, minus accumulated GPS leap seconds — currently 18 s ahead of UTC). Valid only when vnTimeStatus & 0x02 (dateOk) is set. |
vnTimeStatus |
bit flags | VN-300 TimeStatus byte (UM005 §5.5.10). bit0 = timeOk (GpsTow valid), bit1 = dateOk (vnTimeGpsNs valid — GPS week resolved), bit2 = utcTimeValid. |
Tail-Optional Columns¶
Appended at the very end of every row, after the EKFQ diagnostic columns. Emitted only when the session captures the raw flap-pot ADC. Parsers must look up by name from the header line rather than by fixed position.
| Column | Units | Description |
|---|---|---|
flapsRawADC |
counts | Raw flap-lever pot ADC reading (uint16, typically 0–4095 on the 12-bit ADC). Lets replay and analysis tools reproduce the L/Dmax pip slide across detent transitions; consumers interpolate the pip lever-end-to-end using this value against the configured <FLAPPOTPOSITIONS> boundaries. |