hi all, this is a small browser-based tool I’ve been working on that converts ArduPilot .bin logs into plain-English, readable text exports. It’s still very much a beta — I’ve recently done a significant refactor — so expect rough edges.
What it does:
Loads any Copter .bin log directly in your browser (nothing to install, no data leaves your machine)
Displays flight data on an interactive timeline (Plotly)
Lets you zoom/trim to the section you care about
Exports the trimmed data as organized, human-readable text
Shows arming status, pre-arm errors, and basic tune data detection at a glance
Prop-size aware analysis
this is Copter-focused
It’s not a replacement for Mission Planner’s log review or the full MAVExplorer — just a quick way to get a readable summary
critics welcome. happy to hear what goes wrong so they can be fixed.
cheers.
Try it here: ArduPilot Log Converter
Source: GitHub - elliotsnd/Ardupilot-Log-Converter: Browser-based ArduPilot .bin log converter. Trims to armed flight, exports human-readable diagnostics, and recovers unsaved AutoTune/QuickTune PID gains. No installs, no uploads — runs 100% client-side.
txt file should output like this
ARDUPILOT FLIGHT LOG DIAGNOSTIC EXPORT
Source File: 00000015.BIN
Vehicle Config: 5-inch props (user-specified)
Trim Range: 0.00s - 862.51s (duration: 862.51s)
Export Date: 2026-02-17
Data Messages: 2933415
================================================================================
SESSION STATUS: VEHICLE ARMED — CRITICAL ISSUES DETECTED
Armed 3 time(s). Last armed at t=668.29s. Disarmed at t=664.39s
████████████████████████████████████████████████████████████████████████████████
██ ![]()
![]()
FLIGHT SAFETY ASSESSMENT: 3 ISSUE(S) — CRITICAL ![]()
![]()
██
████████████████████████████████████████████████████████████████████████████████
CRITICAL: 1
HIGH: 2
[HIGH] EKF YAW RESET — heading reference changed
→ EKF yaw estimate was reset mid-flight. Heading-dependent modes temporarily disrupted.
[HIGH] EKF YAW RESET — heading reference changed
→ EKF yaw estimate was reset mid-flight. Heading-dependent modes temporarily disrupted.
[CRITICAL] EXTREME ATTITUDE ERROR — Roll: 45.4° Pitch: 71.2°
→ Vehicle NOT following commands. Possible motor failure, prop loss, or mechanical failure.
────────────────────────────────────────────────────────────────────────
DO NOT FLY until all CRITICAL issues above are investigated and resolved.
Review the ERR messages, mode changes, and sensor data below for details.
────────────────────────────────────────────────────────────────────────
================================================================================
TUNE DATA DETECTED — RECOVERED GAINS
GAINS WERE SAVED — SavedGains event or “Tuning: saved” message detected.
The values below were saved to the vehicle during this session.
They should already be active on your vehicle.
────────────────────────────────────────────────────────────────────────────────
AUTOTUNE FINAL VALUES
────────────────────────────────────────────────────────────────────────────────
AutoTune determines optimal PID gains by commanding twitches and measuring response.
ATUN fields: RP = Rate P, RD = Rate D, SP = Stabilize/Angle P
AutoTune also sets Rate I = Rate P for Roll/Pitch axes.
── Completed Axis Results (from AutoTune summary messages) ──
Yaw Axis — COMPLETED:
Rate P = 0.141
Rate I = 0.014
Rate D = 0
Angle P = 6.046
Roll Axis — COMPLETED:
Rate P = 0.049
Rate I = 0.049
Rate D = 0.0008
Angle P = 19.499
── ATUN probe data (last logged values per axis) ──
NOTE: ATUN values are mid-probe snapshots. The Completed Axis Results above
are more accurate — they come from AutoTune’s own summary after validation.
Roll Axis — Status: AngleP_Up (probe data — see Completed Results above for final values)
ATC_RAT_RLL_P = 0.0498988 (startup value: 0.0498988)
ATC_RAT_RLL_D = 0.000848554 (startup value: 0.000848554)
ATC_RAT_RLL_I = 0.0498988 (startup value: 0.0498988) (AutoTune sets I = P)
ATC_ANG_RLL_P = 27.3663 (startup value: 19.4985)
Yaw Axis — Status: AngleP_Up (probe data — see Completed Results above for final values)
ATC_RAT_YAW_P = 0.141328 (startup value: 0.141328)
ATC_RAT_YAW_D = 2.844 (startup value: 0.01)
ATC_RAT_YAW_I = 0.141328 (startup value: 0.0141328) (AutoTune sets I = P)
ATC_ANG_YAW_P = 8.48542 (startup value: 6.04586)
┌──────────────────────────────────────────────────────────┐
│ COPY-PASTE READY — Enter these values in your GCS: │
└──────────────────────────────────────────────────────────┘
ATC_RAT_RLL_P,0.049
ATC_RAT_RLL_D,0.0008
ATC_RAT_RLL_I,0.049
ATC_ANG_RLL_P,19.499
ATC_RAT_YAW_P,0.141
ATC_RAT_YAW_D,0
ATC_RAT_YAW_I,0.014
ATC_ANG_YAW_P,6.046
Tune Events During Session:
• AutoTune_Initialised
• AutoTune_Off
• AutoTune_Restart
• AutoTune_Reached_Limit
• AutoTune_Success
• AutoTune_SavedGains
• AutoTune_Off
• AutoTune_Initialised
• AutoTune_Success
• AutoTune_SavedGains
• AutoTune_Off
Tune-Related Log Messages:
• AutoTune: Started
• AutoTune: Stopped
• AutoTune: Yaw(E) complete
• AutoTune: Yaw(E) Rate: P:0.141, I:0.014, D:0.0000
• AutoTune: Yaw(E) Angle P:6.046, Max Accel:63638
• AutoTune: Success
• AutoTune: Saved gains for Yaw(E)
• AutoTune: Roll complete
• AutoTune: Roll Rate: P:0.049, I:0.049, D:0.0008
• AutoTune: Roll Angle P:19.499, Max Accel:521799
• AutoTune: Saved gains for Roll
================================================================================
FIRMWARE & VEHICLE INFO
ArduCopter V4.7.0-dev (2d99a5ea) (x7)
ChibiOS: 4f34e217 (x7)
[VER] BT=10 BST=65535 Maj=4 Min=7 Pat=0 FWT=0 GH=765044202 FWS=ArduCopter V4.7.0-dev (2d99a5ea) APJ=1013 BU=2 FV=3 IMI=0 ICI=0
MatekH743-bdshot 001D002F 32335116 37393639 (x7)
Param space used: 2550/5376
RC Protocol: None
RCOut: DS600:1-4 PWM:6-13 (x7)
New mission
New rally
New fence
Frame: QUAD/X (x7)
GPS 1: specified as MSP
EKF3 IMU1 origin set
EKF3 IMU0 origin set
Field Elevation Set: 111m
EKF3 IMU1 is using GPS
EKF3 IMU0 is using GPS
EKF3 IMU0 MAG0 in-flight yaw alignment complete (x2)
EKF3 IMU1 MAG0 in-flight yaw alignment complete (x2)
GCS:Mission Planner 0.0 (x6)
IMU0: fast sampling 2.0kHz/2.0kHz (x6)
IMU1: normal sampling 1.0kHz/1.0kHz (x6)
================================================================================
MODE CHANGES
t=14.51s Stabilize (0) Reason=RC_Command
t=85.39s Stabilize (0) Reason=RC_Command
t=92.29s Stabilize (0) Reason=RC_Command
t=100.27s PosHold (16) Reason=RC_Command
t=101.14s Loiter (5) Reason=RC_Command
t=103.39s AutoTune (15) Reason=Aux_Function
t=114.90s PosHold (16) Reason=RC_Command
t=121.43s Loiter (5) Reason=RC_Command
t=130.59s AutoTune (15) Reason=Aux_Function
t=330.09s Loiter (5) Reason=RC_Command
t=330.74s Stabilize (0) Reason=RC_Command
t=662.69s Stabilize (0) Reason=RC_Command
t=668.29s Stabilize (0) Reason=RC_Command
t=675.67s PosHold (16) Reason=RC_Command
t=676.74s Loiter (5) Reason=RC_Command
t=682.49s AutoTune (15) Reason=Aux_Function
================================================================================
EVENTS & ERRORS
t=15.15s [EV] Set_Home (Id=25)
t=87.29s [ARM] DISARMED (Method=AuxSwitch)
t=87.29s [EV] Disarmed (Id=11)
t=92.29s [ARM] ARMED (Method=AuxSwitch)
t=92.29s [EV] Armed (Id=10)
t=94.29s [EV] Motors_Interlock_Enabled (Id=57)
t=96.85s [EV] Auto_Armed (Id=15)
t=97.13s [EV] Not_Landed (Id=28)
t=103.39s [EV] AutoTune_Initialised (Id=30)
t=114.90s [EV] AutoTune_Off (Id=31)
t=130.59s [EV] AutoTune_Restart (Id=32)
t=183.98s [EV] AutoTune_Reached_Limit (Id=35)
t=227.05s [EV] EKF_Yaw_Reset (Id=62)
t=304.89s [EV] AutoTune_Success (Id=33)
t=327.81s [EV] Land_Complete_Maybe (Id=17)
t=328.49s [ARM] DISARMED (Method=AuxSwitch)
t=328.49s [EV] Disarmed (Id=11)
t=328.49s [EV] Land_Complete (Id=18)
t=328.49s [EV] AutoTune_SavedGains (Id=37)
t=328.49s [EV] Motors_Interlock_Disabled (Id=56)
t=330.09s [EV] AutoTune_Off (Id=31)
t=662.69s [ARM] ARMED (Method=AuxSwitch)
t=662.69s [EV] Armed (Id=10)
t=664.39s [ARM] DISARMED (Method=AuxSwitch)
t=664.39s [EV] Disarmed (Id=11)
t=668.29s [ARM] ARMED (Method=AuxSwitch)
t=668.29s [EV] Armed (Id=10)
t=670.29s [EV] Motors_Interlock_Enabled (Id=57)
t=671.33s [EV] Auto_Armed (Id=15)
t=671.64s [EV] Not_Landed (Id=28)
t=676.15s [EV] EKF_Yaw_Reset (Id=62)
t=682.49s [EV] AutoTune_Initialised (Id=30)
t=846.49s [EV] AutoTune_Success (Id=33)
================================================================================
ARMING MESSAGES (PreArm checks, arm failures, warnings)
t=30.09s PreArm: Need Position Estimate
t=33.59s Arm: Need Position Estimate
t=330.09s PreArm: Battery 1 below minimum arming voltage
t=333.69s Arm: Battery 1 below minimum arming voltage
t=340.39s Arm: Battery 1 below minimum arming voltage
t=361.09s PreArm: Gyros inconsistent
t=361.09s PreArm: Battery 1 below minimum arming voltage
t=391.09s PreArm: Battery 1 below minimum arming voltage
t=422.09s PreArm: Battery 1 below minimum arming voltage
t=453.09s PreArm: Battery 1 below minimum arming voltage
t=481.09s Arm: Gyros inconsistent
t=481.09s Arm: Battery 1 below minimum arming voltage
t=483.09s PreArm: Gyros inconsistent
t=483.09s PreArm: Battery 1 below minimum arming voltage
t=492.19s Arm: Battery 1 below minimum arming voltage
t=514.09s PreArm: Battery 1 below minimum arming voltage
t=540.39s Arm: Battery 1 below minimum arming voltage
t=544.09s PreArm: Battery 1 below minimum arming voltage
t=575.09s PreArm: Battery 1 below minimum arming voltage
t=606.09s PreArm: Battery 1 below minimum arming voltage
t=637.09s PreArm: Battery 1 below minimum arming voltage
t=659.99s Arm: Throttle too high
================================================================================
PRE-COMPUTED DIAGNOSTIC SUMMARY
NOTE: All statistics below are computed over the selected trim range.
RMS = Root Mean Square, StdDev = Standard Deviation, Cnt = sample count
────────────────────────────────────────────────────────────────────────────────
PID CONTROLLER PERFORMANCE
────────────────────────────────────────────────────────────────────────────────
Fields: Tar=Desired value, Act=Achieved value, Err=Error between target and achieved, P=Proportional part of PID, I=Integral part of PID, D=Derivative part of PID, FF=Controller feed-forward portion …, DFF=Controller derivative feed-forwa…, Dmod=Scaler applied to D gain to redu…, SRate=Slew rate used in slew limiter, Flags=Bitmask of PID state flags
Roll (PIDR): (238814 samples)
Tar → mean=-0.0385 stddev=0.5868
Act → mean=-0.0055 stddev=0.5357
Err → mean=-0.033 stddev=0.487 RMS=0.4881 max|Err|=7.3829
P → mean=-0.0026 stddev=0.0337
I → mean=0.0022 stddev=0.0027
D → mean=0 stddev=0.0319
FF → mean=-0.0031 stddev=0.0253
DFF → mean=0 stddev=0
Dmod → mean=1
SRate → mean=10.0294 max=77.2864 stddev=16.4053
SRate max (77.2864) > SMAX (50) → oscillation detected on this axis!
QuickTune would reduce gain by 60% (gain margin). Consider reducing P and D.
Limit saturation → 21.2% of samples had output clipped
Pitch (PIDP): (238814 samples)
Tar → mean=-0.0313 stddev=0.2919
Act → mean=-0.0014 stddev=0.1566
Err → mean=-0.0299 stddev=0.3178 RMS=0.3192 max|Err|=5.6102
P → mean=-0.006 stddev=0.0633
I → mean=-0.007 stddev=0.0114
D → mean=0 stddev=0.0093
FF → mean=-0.0016 stddev=0.0146
DFF → mean=0 stddev=0
Dmod → mean=1
SRate → mean=3.1539 max=22.8071 stddev=2.764
SRate max (22.8071) well below SMAX (50)
Limit saturation → 21.2% of samples had output clipped
Yaw (PIDY): (238814 samples)
Tar → mean=0.0012 stddev=0.4354
Act → mean=0.0038 stddev=0.4062
Err → mean=-0.0027 stddev=0.1936 RMS=0.1937 max|Err|=4.0991
P → mean=0.0007 stddev=0.0548
I → mean=-0.0049 stddev=0.0043
D → mean=0 stddev=0.0136
FF → mean=0 stddev=0
DFF → mean=0 stddev=0
Dmod → mean=1
SRate → mean=1.7841 max=9.832 stddev=1.9971
SRate max (9.832) well below SMAX (50)
Limit saturation → 21.2% of samples had output clipped
Accel (PIDA): (218173 samples)
Tar → mean=0.0238 stddev=0.3837
Act → mean=0.0039 stddev=0.2309
Err → mean=0.0197 stddev=0.3995 RMS=0.4 max|Err|=12.4249
P → mean=0.0004 stddev=0.008
I → mean=0.0227 stddev=0.0609
D → mean=0 stddev=0
FF → mean=0 stddev=0
DFF → mean=0 stddev=0
Dmod → mean=0.9144
SRate → mean=0.4552 max=7.0629 stddev=0.5692
Limit saturation → 15.5% of samples had output clipped
────────────────────────────────────────────────────────────────────────────────
RATE CONTROLLER (target vs actual rates)
────────────────────────────────────────────────────────────────────────────────
Fields: RDes=Vehicle desired roll rate (deg/s), R=Achieved vehicle roll rate (deg/s), ROut=Normalized output for Roll, PDes=Vehicle desired pitch rate (deg/s), P=Vehicle pitch rate (deg/s), POut=Normalized output for Pitch, YDes=Vehicle desired yaw rate (deg/s), Y=Achieved vehicle yaw rate (deg/s), YOut=Normalized output for Yaw, ADes=Desired vehicle vertical acceler… (cm/s/s), A=Achieved vehicle vertical accele… (cm/s/s), AOut=Percentage of vertical thrust ou…
Samples: 238814
Roll:
Desired → mean=-2.2038 stddev=33.6656
Actual → mean=-0.3163 stddev=30.6927
Output → mean=-0.0035 stddev=0.0613
TrackErr → RMS=29.0528
Pitch:
Desired → mean=-1.7926 stddev=16.7243
Actual → mean=-0.0801 stddev=8.9739
Output → mean=-0.0145 stddev=0.0773
TrackErr → RMS=18.3827
Yaw:
Desired → mean=0.0703 stddev=24.9785
Actual → mean=0.2191 stddev=23.2762
Output → mean=-0.0042 stddev=0.0569
TrackErr → RMS=15.483
────────────────────────────────────────────────────────────────────────────────
ATTITUDE (desired vs actual angles)
────────────────────────────────────────────────────────────────────────────────
Fields: DesRoll=Vehicle desired roll (deg), Roll=Achieved vehicle roll (deg), DesPitch=Vehicle desired pitch (deg), Pitch=Achieved vehicle pitch (deg), DesYaw=Vehicle desired yaw (degheading), Yaw=Achieved vehicle yaw (degheading)
Samples: 5454
Roll:
Desired → mean=0.4184 stddev=4.7464
Actual → mean=0.9819 stddev=5.6072
AttErr → RMS=4.4054
Pitch:
Desired → mean=0.7639 stddev=1.9133
Actual → mean=1.2114 stddev=4.3743
AttErr → RMS=4.0888
Yaw:
Desired → mean=151.335 stddev=69.4081
Actual → mean=151.326 stddev=69.3714
AttErr → RMS=1.4614
────────────────────────────────────────────────────────────────────────────────
VIBRATION & IMU HEALTH
────────────────────────────────────────────────────────────────────────────────
Fields: VibeX=Primary accelerometer filtered v… (m/s/s), VibeY=Primary accelerometer filtered v… (m/s/s), VibeZ=Primary accelerometer filtered v… (m/s/s)
IMU: (436345 samples)
Gyro → X: stddev=0.4795 Y: stddev=0.1637 Z: stddev=0.3553
Accel → X: mean=0.064 min=-10.129 max=8.0357 Y: mean=-0.0028 min=-10.1526 max=7.034 Z: mean=-9.8548 min=-27.1898 max=-2.4336
RAW IMU RANGE VIOLATION: AccX out of ±3 range, AccY out of ±3 range, AccZ out of -15 to -5 range
VIBE message (filtered vibration levels): (10908 samples)
VibeX → mean=2.5123 max=7.8955 [
GOOD]
VibeY → mean=3.3624 max=9.865 [
GOOD]
VibeZ → mean=1.8434 max=6.7176 [
GOOD]
Clipping → Clip0=0 Clip1=0 Clip2=0 [
No clipping]
EKF ATTITUDE CONSISTENCY (“The Leans” check):
Max Roll difference between EKF instances: 2.39° [
OK]
Max Pitch difference between EKF instances: 3.34° [
MARGINAL]
────────────────────────────────────────────────────────────────────────────────
MOTOR OUTPUTS (RCOU)
────────────────────────────────────────────────────────────────────────────────
Fields: C1=Channel 1 output (us), C2=Channel 2 output (us), C3=Channel 3 output (us), C4=Channel 4 output (us), C5=Channel 5 output (us), C6=Channel 6 output (us), C7=Channel 7 output (us), C8=Channel 8 output (us)
Samples: 5454
Motors:
C1 → mean=1103.1 min=0 max=1682 stddev=562.6
C2 → mean=1105.6 min=0 max=1632 stddev=563.6
C3 → mean=1093.1 min=0 max=1640 stddev=557.3
C4 → mean=1109.6 min=0 max=1638 stddev=565.6
Motor Spread (max_mean - min_mean): 16.4
Average Motor Output: 1102.9
Aux/Servo channels:
C12 → mean=1500 min=1500 max=1500 stddev=0
────────────────────────────────────────────────────────────────────────────────
ESC TELEMETRY
────────────────────────────────────────────────────────────────────────────────
Fields: RPM=Reported motor rotation rate (rpm), RawRPM=Reported motor rotation rate wit… (rpm), Volt=Perceived input voltage for the ESC (V), Curr=Perceived current through the ESC (A), Temp=ESC temperature (degC), CTot=Current consumed total (mAh)
Motor 1: (17309 samples)
RPM → mean=13183 min=0 max=19565 stddev=2067
Volt → mean=1.94 min=0 max=2.03
Curr → mean=0 max=0A
Temp → mean=58.4°C max=64°C [
OK]
Motor 2: (17311 samples)
RPM → mean=13158 min=0 max=18759 stddev=2025
Volt → mean=1.94 min=1.87 max=2.03
Curr → mean=0 max=0A
Temp → mean=53.2°C max=182°C [
OK] (max appears to be telemetry spike)
Motor 3: (17310 samples)
RPM → mean=12797 min=0 max=17049 stddev=1988
Volt → mean=1.94 min=1.86 max=2.04
Curr → mean=0 max=0A
Temp → mean=52°C max=57°C [
OK]
Motor 4: (17309 samples)
RPM → mean=13349 min=0 max=19481 stddev=2019
Volt → mean=1.94 min=0 max=2.03
Curr → mean=0 max=0A
Temp → mean=56.1°C max=75°C [
OK]
RPM Spread: 552 RPM (4.2%) [
Balanced]
Average RPM: 13122
ESC telemetry RPM data detected — HNTCH_MODE=3 (ESC Telemetry) is recommended
for harmonic notch filter. This provides per-motor RPM tracking for best filtering.
────────────────────────────────────────────────────────────────────────────────
PILOT INPUTS (RCIN)
────────────────────────────────────────────────────────────────────────────────
Fields: C1=Channel 1 input (us), C2=Channel 2 input (us), C3=Channel 3 input (us), C4=Channel 4 input (us), C5=Channel 5 input (us), C6=Channel 6 input (us), C7=Channel 7 input (us), C8=Channel 8 input (us)
Samples: 5484
Roll (C1) → mean=1483.4 min=1350 max=1736 stddev=19.7
Pitch (C2) → mean=1502.9 min=1259 max=1598 stddev=15
Throttle (C3) → mean=1406.8 min=989 max=1862 stddev=206.7
Yaw (C4) → mean=1485.1 min=1158 max=1815 stddev=18
────────────────────────────────────────────────────────────────────────────────
BAROMETER / ALTITUDE
────────────────────────────────────────────────────────────────────────────────
Fields: Alt=Calculated altitude (m), Press=Measured atmospheric pressure ¶, Temp=Measured atmospheric temperature (degC), CRt=Derived climb rate from primary … (m/s), GndTemp=Temperature on ground (degC)
Samples: 5454
Alt → mean=3.49 min=-4.34 max=5.98
Press → mean=99757.21
Temp → mean=56.05
────────────────────────────────────────────────────────────────────────────────
GPS QUALITY
────────────────────────────────────────────────────────────────────────────────
Fields: Status=GPS Fix type: 0=NoGPS,1=NoFix,2=…, NSats=Number of satellites visible (satellites), HDop=Horizontal dilution of precision, Lat=Latitude (deglatitude), Lng=Longitude (deglongitude), Alt=Altitude (m), Spd=Ground speed (m/s), GCrs=Ground course (degheading), VZ=Vertical speed (m/s)
Samples: 2729
Satellites → mean=27.1 min=21 [
GOOD]
HDop → mean=0.56 max=0.64 [
GOOD]
Speed → mean=0.45 max=2.59
Fix Type → worst=3D Fix(3) best=3D Fix(3)
Fix Breakdown → 3D Fix:2729
────────────────────────────────────────────────────────────────────────────────
GPS ACCURACY (GPA)
────────────────────────────────────────────────────────────────────────────────
Fields: HAcc=Horizontal position accuracy (m), VAcc=Vertical position accuracy (m), SAcc=Speed accuracy (m/s), VDop=Vertical dilution of precision, YAcc=Yaw accuracy (deg)
Samples: 2729
Horizontal Acc → mean=1.18m max=1.8m [
GOOD]
Vertical Acc → mean=1.69m max=2.52m [
GOOD]
Speed Acc → mean=0.31m/s max=0.72m/s
VDop → mean=655.35 max=655.35 [
FIX LOST (max VDop=655.4)]
────────────────────────────────────────────────────────────────────────────────
BATTERY
────────────────────────────────────────────────────────────────────────────────
Fields: Volt=Measured voltage (V), Curr=Measured current (A), CurrTot=Consumed Ah, current × time (mAh), EnrgTot=Consumed Wh, energy this battery… (W.h), Temp=Measured temperature (degC), Res=Estimated battery resistance (Ohm)
Samples: 5449
Voltage → mean=19.49 min=18.49 max=20.76 (~5S) [
MODERATE (3.7V/cell)]
────────────────────────────────────────────────────────────────────────────────
ALTITUDE CONTROLLER (CTUN)
────────────────────────────────────────────────────────────────────────────────
Fields: ThI=Throttle input, ABst=Angle boost, ThO=Throttle output, ThH=Calculated hover throttle, DAlt=Desired altitude (m), Alt=Achieved altitude (m), BAlt=Barometric altitude (m), DSAlt=Desired rangefinder altitude (m), SAlt=Achieved rangefinder altitude (m), TAlt=Terrain altitude (m), DCRt=Desired climb rate (cm/s), CRt=Climb rate (cm/s)
Samples: 5454
Desired Alt → mean=1.41 stddev=0.94
Actual Alt → mean=1.32 stddev=1.06
Alt Err RMS → 0.2429
Throttle Out → mean=0.13 stddev=0.07
Desired SAlt → mean=2.19
Actual SAlt → mean=1.41
