Hello ArduPilot community & developers,
Over the last few weeks, I have been building a hybrid diagnostic engine designed to automatically analyze ArduPilot .BIN flight logs and help identify the root cause of crashes faster. I’m sharing it here to get your feedback on its accuracy and to see if this approach could be useful for triage.
What the Tool Does
Analyzing a .BIN file after a crash takes deep expertise. My goal is to partially automate this by combining ArduPilot’s known safety thresholds (Rule Engine) with a calibrated XGBoost model trained on historical crash telemetry.
Currently, the engine evaluates over 150 features and diagnoses 9 different failure classes (e.g., motor_imbalance, compass_interference, ekf_failure, vibration_high, etc.). It outputs a confidence percentage along with the exact numerical telemetry evidence that triggered the diagnosis.
Proving it on 34 Unlabeled Forum Logs
To test how well the tool works on wild data, I took 34 crash logs scattered across ArduPilot Discuss (logs where the thread title simply said “Oscillation Crash”, “Flyaway”, or “Failsafe”) and ran them completely blind through the hybrid engine.
The most interesting finding: The symptom in the thread title is rarely the physical root cause. (e.g. 7 out of 8 “oscillation_crash” logs were diagnosed as compass or motor issues).
I have numbered the 34 engine results below, along with the links to the original posts.
Calling all Log Analysis Experts!
Could you please take a close look at these 34 results and tell me if the engine’s diagnosis might be correct? It would be incredibly helpful if you could reply with something like: “For log #14*, the engine is right/wrong because of X.”*
Oscillation Crashes (Engine found Compass or Motor issues)
1. Oscillation In Roll And Pitch Resulting In Crash — log_0048_oscillation_crash
Engine:
compass_interference(85%) | Evidence:mag_field_range=433.05
2. Quadcopter Crash Log Analysis Request — log_0049_oscillation_crash
Engine:
compass_interference(85%) | Evidence:mag_field_range=526.61
3. Quadcopter Crash Log Analysis Request — log_0050_oscillation_crash
Engine: crash_unknown (0%) | Reason: Log too short, no features triggered.
4. Crash When Switching From Rtl To Loiter — log_0056_oscillation_crash
Engine:
compass_interference(85%) | Evidence:mag_field_range=510.73
5. Crash When Switching From Rtl To Loiter — log_0057_oscillation_crash
Engine:
compass_interference(83%) | Evidence: Rule + ML agreement.
6. Tuning Issues With Plane — log_0052_oscillation_crash
Engine:
compass_interference(55% / Weak) | Evidence:mag_field_range=276.18
7. Tuning Issues With Plane — log_0053_oscillation_crash
Engine:
motor_imbalance(81%) | Evidence:motor_spread_max=963.00
8. Tuning Issues With Plane — log_0054_oscillation_crash
Engine:
motor_imbalance(81%) | Evidence:motor_spread_max=963.00
9. Tuning Issues With Plane — log_0055_oscillation_crash
Engine:
motor_imbalance(81%) | Evidence:motor_spread_max=963.00
Flyaways (Engine found Motor Imbalance or EKF Failures)
10. Multiple Flyaways In Guided — log_0058_flyaway
Engine:
motor_imbalance(47% / Weak) | Evidence:motor_spread_max=810.00
11. Something Is Wrong With My Copter Build — log_0059_flyaway
Engine:
motor_imbalance(55% / Weak) | Evidence:motor_spread_max=507.00
12. Something Is Wrong With My Copter Build — log_0060_flyaway
Engine:
motor_imbalance(47% / Weak) | Evidence:motor_spread_max=521.00
13. Multiple Flyaways In Loiter And Auto — log_0061_flyaway
Engine:
ekf_failure(85%) | Evidence:ekf_vel_var_max=7.13,ekf_pos_var_max=1.69
14. Quad Flyaway Need Analysis — log_0062_flyaway
Engine:
motor_imbalance(85%) | Evidence:motor_spread_max=1000.00
15. Possibly A Fly Away Please Take A Look — log_0063_flyaway
Engine:
motor_imbalance(93%) | Evidence:motor_spread_max=916.00
16. Rtl Flyaway Bad Pos Among Others — log_0064_flyaway
Engine:
compass_interference(85%) | Evidence:mag_field_range=912.49
17. Radio Failsafe During Operation — log_0065_flyaway
Engine:
compass_interference(85%) | Evidence:mag_field_range=510.73
18. Radio Failsafe During Operation — log_0066_flyaway
Engine:
motor_imbalance(81%) | Evidence:motor_spread_max=950.00
19. Solo Flyaway And Crash During Auto Mission — log_0067_flyaway
Engine:
compass_interference(81%) | Evidence:mag_field_range=411.68
Failsafes / Miscellaneous
20. Rtl Does Not Return To Launch — log_0028_battery_failsafe
Engine:
motor_imbalance(81%) | Evidence:motor_spread_max=838.00
21. Pixhawk Clone Motors Not Running Same Speed — log_0029_battery_failsafe
Engine:
gps_quality_poor(85%) | Evidence:gps_hdop_mean=99.99
22. Copter 3.5.5-rc1 Beta Testing — log_0030_battery_failsafe
Engine: rc_failsafe (76%) | Evidence:
evt_rc_failsafe_counttriggered
23. Quadcopter Gives Radio Failsafe And Climbs — log_0069_radio_failsafe
Engine:
compass_interference(58% / Weak) | Evidence:mag_field_range=3136.32
24. Failsafe Sbus Not Working — log_0070_radio_failsafe
Engine:
motor_imbalance(81%) | Evidence:motor_spread_max=900.00
25. Failsafe Sbus Not Working — log_0071_radio_failsafe
Engine:
gps_quality_poor(85%) | Evidence:gps_hdop_mean=99.99,gps_fix_pct=0.00
26. Failure To Launch — log_0032_hardware_failure
Engine:
compass_interference(76%) | Evidence:mag_field_range=422.83
27. Copter Unexpected Rapid Climb After Arming — log_0068_uncontrolled_descent
Engine:
compass_interference(85%) | Evidence:mag_field_rangealert
Additional Generic Forum Logs
28. Vibration and Notch Filter Help — 00000058.BIN
Engine:
compass_interference(85%)
29. Crash at Takeoff Investigation Help — 00000060.BIN
Engine:
compass_interference(55% / Weak)
30. Sending Unknown Message 44 — 2016-09-18_08-44.bin
Engine:
compass_interference(47% / Weak)
31. Prearm Crashdump Data Detected — 2016-09-18_16-01.bin
Engine:
compass_interference(47% / Weak)
32. Getting Firmware Version from BIN File — 2018-09-21_18-26.bin
Engine:
motor_imbalance(47% / Weak)
33. A Tail Servo and RC Reversed Settings — 40.BIN
Engine:
compass_interference(49% / Weak)
34. flash.bin — Skipped (firmware bootloader artifact, not a flight log)
Next Steps
Every log this engine uses to learn is rigorously mapped back to its original thread. The engine was already trained on over 100+ other structured flights from this forum, and the 34 you see above are completely new, untrained “wild” logs.
Thank you so much to any experts who have the time to help me verify if the engine is on the right track!
edit:- i dont want you to check again,i want your answer that if inference that i got is good enogh for you to work with or not working like (simply i am on right path or not OR my path is too broken that not even worth moving).
Best regards,
Agastya