Quadcopter Crash Analysis

Hi everyone,

I’d really appreciate some help analyzing a crash that happened with my drone setup today. Here are the details of the build:

  • Motors: Tarot 4008 330KV
  • Frame: 51cm x 51cm (700-class series)
  • Battery: Tattu 16000mAh LiPo 15C
  • ESC: 40A 4-in-1 ESC (DShot600)
  • Flight Controller: Orange Cube
  • Propellers: 17-inch
  • Total Weight: 3.5 kg

The drone was flying perfectly for almost 17 minutes, including extended periods at 121 meters altitude. However, it suddenly fell from a height of around 60 meters and crashed. There were no apparent signs of instability or issues before the fall.

After hours of analyzing the log, I couldn’t pinpoint a clear reason for the crash due to my limited expertise. I suspect it might have been an ESC desync issue, but I’m not sure.

I’ve attached the log file below. If anyone could help me analyze it and figure out what caused this sudden and catastrophic failure, I’d be extremely grateful.

Thank you in advance!

Number 4 motor/esc/prop failed. No ESC telemetry so it’s hard to dig too much deeper.

2 Likes

thanks allister for your time , you are absolutely right found out later after running motor test , motor 4 was not working and found out coil burned , strange because esc is working fine but i think might their was no lubracation between shaft and outrunner or some manufacturing defect, image attached below

That motor was actually hitting minimum output quite a lot, so it was the motor with the least load and least likely to burn out - so carefully check the rest, it’s a wonder they didnt all burn out.

I believe the underlying issue is oscillations.
When you get it going again, fly for only a minute or so then land and check the motor temperatures. Reduce the ATC_RAT_PIT_D and ATC_RAT_RLL_D by about 10% until the heating goes away.
As soon as possible move on to actual tuning, possibly by running the VTOL Quicktune script if your OK with getting that organised, or come back for more information when you get the copter working again. Do not do long flights without checking the logs for oscillations and checking the motor temperatures.

The DSHOT is not working as expected (although the 4in1 ESC is likely doing what it should). You will need to set these at least:

BRD_IO_DSHOT,1
SERVO_BLH_AUTO,1
SERVO_BLH_POLES,24
SERVO_DSHOT_ESC,1

and check in messages for something similar to this:
RCOut: DS600:1-4 PWM:5-14

2 Likes

Hi Shawk,

Thank you for your reply. I will strictly follow the steps you mentioned.

I have a few clarifications:

1. In the situation you described, oscillations can be caused either by vibrations or by incorrect PID tuning. Based on the VIBE graphs, do the vibration levels look acceptable to you? (I understand that typically vibrations below 30 m/s² are considered acceptable for ArduPilot.or it was just pid .

2. Regarding DSHOT — I had already set DSHOT600 through the ESC Calibration page, and also set the PWM Type to DSHOT. Of course, I understand that a 4-in-1 ESC usually does not require manual ESC calibration. However, if DSHOT was not functioning correctly, which other protocol would it have likely fallen back to? (PWM, Oneshot125, Multishot?)

3. For autotuning, are you referring to the documentation here:

I just want to confirm before proceeding.

Also, if there are any other important points or checks I might be missing at this stage (especially related to PID tuning, vibration isolation, ESC configuration, or safe testing procedures), I would appreciate your advice.

Thanks again for your support!

  1. you vibrations are acceptable for a Cube Orange+
  2. DSHOT requires a few more setting than just selecting it in MOT_PWM_TYPE escpecially for a Cube Orange using the Main outputs (IO MCU). The fallback is PWM.
  3. Autotune is certainly the aim. There are a few steps prior to ensure Autotune gives a good result, such as setting up the harmonic notch filter. There’s more documentation and many more steps, but wait…

QAUTOTUNE for Planes is not what you want, it’s VTOL Quicktune:

The VTOL QuickTune takes a little bit to set up, however you might not need it though. Get everything working and do a short hover flight to check motors.
Set these before that flight too:

BATT_FS_CRT_ACT,1
BATT_FS_LOW_ACT,2
LOG_BITMASK,180222
INS_LOG_BAT_MASK,1
INS_LOG_BAT_OPT,4

Now let’s see the .bin log from that flight and go from there.

If possible set your transmitter throttle stick to be self centering and set PILOT_THR_BHV,7 but it’s not critical.

2 Likes

thanks shawn for your time and answering doubts , will definitley follow procedure you mentioned and will soon post the results after flight , ordered a few new motors , will fly as arrived
thanks for support

Hi @xfacta,

I just completed a flight and would like to share my observations and get your advice on a few issues.


1. DShot600 Setup Issue

I tried to set up DShot600 on my build but couldn’t get it to work. I followed all your suggestions from previous posts and also tried other configurations mentioned in related discussions.

  • Hardware: Orange Cube Mini with Mini Carrier Board
  • Firmware: Latest ArduPilot release
  • Issue: DShot doesn’t seem to work when ESCs are connected to the MAIN outputs

I’ve attached my parameter file below — if I’m missing any required setting, please let me know.

Question:
Does DShot only work with AUX outputs on this setup? Should I move the ESC signal wires to AUX pins to get DShot working properly?


2. Oscillations, Motor Heat & Flip During QuickTune

I reduced ATC_RAT_PIT_D and ATC_RAT_RLL_D by 10%. This led to a clear reduction in oscillations, both in the logs and live dashboard, but the motors were still running hot. I reduced the D terms by another 10%.

Then I attempted a proper VTOL QuickTune test, following the official documentation and scripting method. The tune script was triggered correctly by holding the assigned switch high.

Critical Issue:
As soon as the QuickTune script started, the drone flipped upside down and crashed from about 3 meters altitude. Fortunately, there was no major damage, but I’m not sure what caused this.

Questions:

  • What might have caused the flip when the QuickTune script activated?
  • Are the current oscillation levels acceptable?
  • Why are motors still getting hot despite lower D gains?
  • Would enabling ESC telemetry provide better thermal insight?
  • Should I reduce D values further?

3. Frame Considerations

I’m using a custom-made frame built from carbon fiber and 3D printed components. The drone is generally stable in flight.

Question:
Could frame resonance or uneven weight distribution be contributing to residual oscillations or excess motor heat?


4. Logs & Comparison

Attached below are the parameter file and two log files:

:small_blue_diamond: Log 36 – Current flight (with reduced D gains and QuickTune crash)
:small_blue_diamond: Log 21 – Original flight (baseline for comparison)

These logs should help illustrate performance before and after tuning changes.


Looking forward to your feedback on the DShot setup and the QuickTune issue. Thanks again for your continued help!

arducopter.param (18.0 KB)

I suspect the cause of the crash Motor1. The FC had to ramp up Motor1 output to maximum as pitch and roll started to diverge from desired. Motor2 output was reduced to minimum to compensate for loss of thrust from Motor1.
Probably the X/Y vibrations and slightly poor compass calibration played a role too - the cause of the IMU lane changes and compass/GPS glitch warning.

Looking at the harmonic notch filter data collected it looks like there are serious X and Y axis prop or motor balance problems. Actually Y axis mostly. Try to find what’s causing this and get it fixed before flying again. This is a physical issue of some sort. Check that some wires are not pulled too tight where they connect to the carrier board, or connectors and things are not flapping around in the breeze.
I know this is not obviously reflected in the vibration data, but the noise that is there is serious enough to get past the Gyro filter and would probably have an adverse effect.

Apply all the parameters below and use MissionPlanner motor test extensively to find where all the vibrations are coming from, and run the motors for a long time to see if any heat up. Obviously use very low RPM and stay safe. The trick is to move all the props around 1 position and flip them over - they push the copter down.

Try these PIDs as a starting point, I derived them from what QuickTune was doing, plus what is typical for these sorts of copters.

ATC_INPUT_TC,0.20
ATC_ANG_PIT_P,6.0
ATC_ANG_RLL_P,6.0
ATC_RAT_PIT_D,0.0025
ATC_RAT_PIT_I,0.11
ATC_RAT_PIT_P,0.11
ATC_RAT_RLL_D,0.0025
ATC_RAT_RLL_I,0.11
ATC_RAT_RLL_P,0.11
BATT_FS_CRT_ACT,1
BATT_FS_LOW_ACT,2
MOT_SPIN_ARM,0.08
MOT_SPIN_MIN,0.12
PSC_ACCZ_I,0.50
PSC_ACCZ_P,0.25
TKOFF_RPM_MIN,300

I think the I/O MCU (main outs) DSHOT feature only supports DHSOT300, so make this setting and I think that will work now. Look for the result in Messages. I must have missed this before, but it’s not a big deal, the differences between DSHOT or PWM didn’t cause the crash.

MOT_PWM_TYPE,5
SERVO_BLH_OTYPE,0  <- not needed, dont set it

This should get DHSOT going to the ESC, now you want the data coming back. Connect the ESC Telem wire to the GPS2 RX pin. This is really Serial4. Set these params:

SERIAL4_BAUD,115
SERIAL4_OPTIONS,16
SERIAL4_PROTOCOL,16

and you should get all the ESC RPM, voltage and temperature data appearing in the MissionPlanner Data/Status tab, and in logs when armed. Just use the MissionPlanner motor test to check this.
I’m using DSHOT in exactly the same configuration on a Cube Orange with eight motors.
Keep your AUX pins spare for relays, camera triggers and similar. It’s been a great step forward to use the Main outputs with DSHOT.

Set these for the harmonic notch filter, it should be good enough to leave in place with maybe only minor adjustments.

INS_HNTCH_ENABLE,1  <- write then refresh params to see the rest
INS_HNTCH_BW,7
INS_HNTCH_FM_RAT,1
INS_HNTCH_FREQ,30
INS_HNTCH_HMNCS,1
INS_HNTCH_MODE,3
INS_HNTCH_OPTS,2
INS_HNTCH_REF,1

Set these compass values for a slightly better calibration, but there’s more to be done here once the copter flies better.

COMPASS_OFS_X,87.05296
COMPASS_OFS_Y,-952.6507
COMPASS_OFS_Z,-16.953522
COMPASS_DIA_X,1
COMPASS_DIA_Y,1
COMPASS_DIA_Z,1
COMPASS_ODI_X,0
COMPASS_ODI_Y,0
COMPASS_ODI_Z,0
COMPASS_MOT_X,0
COMPASS_MOT_Y,0
COMPASS_MOT_Z,0
COMPASS_SCALE,1
COMPASS_ORIENT,0
COMPASS_OFS2_X,26.589178
COMPASS_OFS2_Y,23.837593
COMPASS_OFS2_Z,20.15472
COMPASS_DIA2_X,1
COMPASS_DIA2_Y,1
COMPASS_DIA2_Z,1
COMPASS_ODI2_X,0
COMPASS_ODI2_Y,0
COMPASS_ODI2_Z,0
COMPASS_MOT2_X,0
COMPASS_MOT2_Y,0
COMPASS_MOT2_Z,0
COMPASS_SCALE2,1
COMPASS_ORIENT2,0
COMPASS_MOTCT,0

There’s a lot there to test and go through. Take your time and get all that vibration stuff sorted completely.
If you want to log any of the motor tests set LOG_DISARMED,1 and set it back to 0 later.

When you do get to a test flight stage, just do a short flight first, a minute or so, land and check motor temperatures. If all OK do a flight with some gentle pitch, roll, yaw and include ascent/descent if everything seems OK.
This will be enough for us to progress.

1 Like

@xfacta thanks for spending valuable time and knowledge , will follow as you mentioned .