Hexacopter Crash, seeking for root cause

Hello Community,

I crashed recently my ZD680 Hexcopter , and now I am asking for your help to identify possible root causes.
Log file: Link

Facts: ZD680 Hexacopter, 4.5kg, Arducopter 4.7.1, Pixhawk 6c, 6 motors Velox 3115-640, 6 x ESC Hobbywing Xrotor 40A, Props 12x5.5 Carbon, Walksnail Avatar (payload), Bat: Liion Ampace JP40 6S3P 12 Ah (3x4000mAh)

Drone has been flying all the time quite ok (already 20+ flights without major issues).Also in windy conditions.
The flight was actually to collect data for Notch Filter (FFT) and PID optimization

Windy conditions during crash flight, 4-5 bf
After ~15 min flight w/o issues so far , suddenly Vibrations and Current skyrocket, and the drone crashes because the battery lolder tin quits at ca100 Amp. Drone hits the ground from 120m height

Looking for your help to understand possible rootcauses of the disaster.

Thank you

Hi @eftat,

It looks like a power failure because the logs simply stop while the vehicle is fly at 50~60m.

Also we can see a sudden drop in the VCC power just before the end of the logs

The other possibility of course is a catastrophic software failure but in that case you should see a watchdog message on the next reboot.

Perhaps something was shaken loose. The vibration levels are very high. You would not have wanted to collect data for the Notch Filter configuration as you mention with that state.

Based on the log, it is difficult to conclude that the GPS/Compass warning was the direct cause of the crash.

Before the crash, high vibration and abnormal barometer altitude behavior were observed. This was followed by an EKF lane switch, activation of vibration compensation, and large throttle fluctuations.

During this period, current increased to around 130 A, while the 6S battery voltage dropped significantly to approximately 12–14 V. Near the end of the log, the flight controller was still commanding high motor outputs, but the measured current dropped close to 0 A and the battery voltage also fell sharply.

This may suggest the following sequence:

High vibration / barometer disturbance
→ EKF and altitude-control instability
→ Large throttle fluctuations and high current demand
→ Significant battery voltage drop
→ Possible power-system issue

However, the available log is not sufficient to confirm a single root cause or a specific failed component. Since ESC telemetry is not available, the motors and ESCs should also be checked, along with the battery, connectors, PDB, wiring, and solder joints.

All the mentioned topics seem to be symtoms, and rather not the cause.
Eventhough I havent seen any post crash dumps, can a software bug caused these anomalies? I have been flying similar trajectories in similar wind conditions with 4.7.0 and no major issues. Just couple of weeks ago I upgraded to 4.7.1 but with very few (and uncritical) flights since then.

I have added the FPV flight video with OSD data to the Link above

Hi @eftat,

Anything is possible I suppose but I do not think this is a software failure. If it was then we should see a crashdump file on the SD card and a watchdog warning on the next startup.

I am somewhat against the idea of a software bug. Everything, in my opinion, points to two factors: an extremely poor building quality, and a noticeably poor tuning.


For the build quality, the very first glaring issue is that vibrations are Really Bad.

This should not be allowed to fly over people. With vibrations routinely reaching 80 according to IMU1 and 100 according to IMU2 - which is 8g and 10g respectively (!!!) - one just cannot expect any reasonable performance.

What is more, this can also explain GPS glitches. A GPS antenna may be mounted differently than the flight controller, but this level of shakiness can reach the antenna too. And GPS chips have a legal duty to stop sending you signals when they detect high accelerations. Basically, I am quite sure that the GPS glitch that happened at 23:10 was because the chip started to think it was guiding a missile.

(My skills and tools to analyse GPS-related issues are currently limited, but I do see that there is a single GPS log record that is co-located with the “GPS or compass error” message and stands out by its timing: it got logged 20ms earlier than it should. It may be for different reasons, and I cannot diagnose this right now, but my primary suspects are the above and the EKF lane change, which got logged at the same moment)

These levels of vibrations are IMHO very probable to also cause all sorts of power connectivity issues.


Now to the crash initiation sequence, which is very likely to have nothing in common with GPS issues - because I see nothing extraordinary control-related in the logs in first second after the GPS event, so the flight controller reacts gracefully at least. This sequence, among other effects, raised the vibration levels to their extremes (10g and 12g depending on which IMU you look at).

I would not say that, based on what I see in the configuration and in the flight. For instance, the notch filter is misconfigured because INS_HNTCH_REF is zero. It does not filter anything except for few fixed frequencies - so it does not work.

Overall, the copter is barely tuned, and it is a sheer luck that the default PIDs are not catastrophically off for this particular machine. The default D term value is a huge red flag, for instance.

And here is another mandatory safety rant, because

one does not fly over unrelated people and buildings when doing basic tuning, period. This is non-negotiable.

Out of the tuning issues, the most contributing issue to the crash, in my opinion, is the position controller. The Initial Tuning guidelines tell to set PSC_D_ACC_P to be 0.1 of the throttle hover, and PSC_D_ACC_I to 0.2 of the throttle hover. The defaults (untouched!) assume that throttle hover is 0.5. This machine has 0.13. As a result, we have quite strong altitude controller oscillations throughout the flight:

One can see these with a naked eye in plots for motor outputs, where all motors “jump” synchronously. This reduces control margins, and this definitely contributed to the initial loss of control:

Here, in the moments leading to the instability, we are flying fast forward and start descending quite quickly. One can see the altitude control oscillations here both in the peak (when the machine was commanded to ascend for a bit) and as motors came close to their minimum output. The copter might have worked through this request nicely if not for the altitude controller oscillations. Once the motors get cropped by MOT_SPIN_MIN, the machine has to decide whether to keep altitude (e.g. the descent rate) or to keep attitude (e.g. the angles), and with quite a high horizontal speed giving up on either is dangerous.


TL;DR in my opinion: a very poorly built, poorly tuned overpowered drone. (“Overpowered” by itself is very manageable, but it does not play well with the other two characteristics). And a very low safety culture atop of that.

@eftat,

Sorry, there was a typo in my last reply. I do not think this is a software issue.

I agree with everything mentioned previously: high vibrations, not correct notch setup, poor PIDs tuning and PSC controller oscillations. But IMO the reason of crash is just depleted (or unbalanced) battery - last recorded voltage is 5.9v.

Ah well. This obviously did not initiate the sequence, and the voltage corresponding to minimum output of about 5 amps was still not totally fatal (about 21 volts), but it definitely browned out when the current raised to 130 amps in the last few culprits…

At least it’s now less likely that the immediate cause was 12g pulling out the connector.

Yes the copter was not tuned, agreed, but the vibrations escalated after about 10 minutes of flight.

The copter was detected under a tree with a broken arm of motor #2 (270 deg) and the motor mount shifted by 18mm inwards (!) but still not movable byhand. My initial assumption was this break was caused by hitting the tree and then the ground. Althought, at that moment the propellers were not rotating any more.

However I have also consulted the AI (both Google and CHat GPT). Feeding them with all the graphs they asked for. They came independently to the conclusion a structural damage during the flight after minute 9 was the cause. With high probability that this could be the broken arm (motor#2). which was damaged during the flight and finally broke. During this time it must have been wildly rotating, which explains also the shift of the motor mount. The screws are still tight and cannot be shifted with manual force, and there is no any dust from the ground sticking on it.
Some pictures of the broken arm and shifted motor mount are here. (It is a 16mm laminated carbon tube).

Opinions ?

AI of the modern form is of no authority to me, I have never seen a single case when any LLM produced even a remotely reasonable analysis of a crash. They hallucinate themselves a reason, stick to it and invent reasons why they are correct. I guess they picked these from some people on forums…


A thing that evaded me for some reason is that the copter is a hexa.

I have looked at possible signs of increasing yaw imbalance, which is usually what happens when a motor mount shifts because of getting loose. I used a poor man’s proxy, the sum of CCW servo outputs minus the sum of CW servo outputs, but if this is slowly drifting, then it can be the sign.

And it was pretty much the same pretty much all the flight:


which I think excludes mount shifting in-flight, and not as a consequence of an impact. Of course this will not change much also if the mount shifts, but the vertical alignment stays the same - which to me is very unlikely.

The mechanical component of the disaster may take place, but it appears to be of a different shape. I might be seeing things, but a large amount of noise, especially VibeZ, can be predicted by RCOU.C3 negated (the smaller Motor 3 output, the bigger the vibes - in some range, of course):

and some of specific VibeY step changes match those from RCOU.C6, again negated:

There will be no clear picture in such situations, because the effective transition functions that tell how much vibration of which frequency goes from the motor to the other end of the arm are complicated. But based on how smooth the apparent dependencies are, this does not seem to be a single-frequency resonance, more like a physical low-pass filter in the system (soft-mounted arms?). The assembly might have been getting more and more loose over the course of the flight, but it was too bad initially anyway.