Hey everyone,
As part of my preparation for GSoC 2026, I’ve been working on a new tool to help automate [.BIN](cci:7://file:///c:/log%20anyalysis/ardupilot-log-diagnosis/test_cascade.BIN:0:0-0:0) dataflash log triage. I know maintainers spend a huge amount of time pulling up MAVExplorer just to tell a pilot their crash was caused by vibration clipping or compass EMI, so I wanted to see if we could automate the initial root-cause analysis.
I’ve built a hybrid diagnostic engine at [BeastAyyG/ardupilot-log-diagnosis](GitHub - BeastAyyG/ardupilot-log-diagnosis · GitHub).
**How it works right now:**
- It parses the [.BIN](cci:7://file:///c:/log%20anyalysis/ardupilot-log-diagnosis/test_cascade.BIN:0:0-0:0) file and extracts about 60+ key telemetry features (vibration std dev, EKF variance, mag field ranges, etc.).
- It passes these through a normal deterministic rule engine first (checking against known ArduPilot default thresholds).
- It also passes them through an XGBoost model I trained on a mix of the BASiC dataset and expert labels mined from this forum (~140 logs total).
- A causal arbiter decides the root cause (e.g., if vibration spiked *before* the EKF lane switch, it flags vibration as the root cause, not navigation).
It outputs a confidence score and generates an interactive 3D Plotly replay of the trajectory so you can explicitly see where the anomalies occurred on the flight path. Right now it’s catching compass interference, high vibration, and standard RC/EKF failsafes pretty reliably.
I’m planning to formally submit this for GSoC to expand the training dataset and potentially port the inference engine to run on companion computers via MAVLink.
If anyone has time to throw a few weird [.BIN](cci:7://file:///c:/log%20anyalysis/ardupilot-log-diagnosis/test_cascade.BIN:0:0-0:0) files at the web UI or the CLI, I would really appreciate any feedback on the false-positive rate.
Thanks,
Agastya