4+1 VTOL Crash analysis in Q mode (VTOL motors quit)

Thank you for your point. What config do you recommend regarding the DShot protocol (150-300-600) and what for the loop rate?

Battery power was not lost yes, but i have extra separate XT90 connectors after the voltage/current measuring devices in order to be able to disconnect the ESC if i want.

I think it’s worth to spend some time and effort into ground testing after you’ve repaired the VTOL.

You can monitor ESC temperature in real time and also observe the connectors.

Maybe you can put a simple wired thermometer at critical points, so you can safely observe the test run.

XT90 at 50A continuously is operating at its upper limit. Unlikely to be the fault as stated above by dave but a common point of failure.

dshot 600 with loop rate that results 1khz+ output, there are rumors that am32 does not like low rate less than 1khz.

1 Like

Thank you Mike for your mention. I saw that i already had written:

SERVO_DSHOT_RATE = 2 (double rate) which results at 1.8kHz if i am not mistaken and,

Q_M_PWM_TYPE = 6 (DShot600)

Afaik that it’s double loop rate that you have currently at 300, so it’s 600hz effective.

if SCHED_LOOP_RATE is at 300, then @mike_tk is right, you want to bump up the SERVO_DSHOT_RATE to at least 4. That would give you 1.2khz.

Maybe @tridge can help to demistify minimal SERVO_DSHOT_RATE, is there any limits in protocol or implementation and why it’s important?

Alright. I get it wrong by assuming i had SCHED_LOOP_RATE=0.4 and added the 1kHz DShot data pulse on top reading this article:

DShot Update Rates

The frequency at which DShot pulses are sent can be configured through SERVO_DSHOT_RATE. By default ArduPilot will output a DShot data pulse every time a new IMU sample is ready and at a fixed 1Khz interval. On a copter with the standard 400Hz scheduler loop rate this works out at about 1.4Khz. However, the output is quite irregular - in order to get more regular output SERVO_DSHOT_RATE can be configured to send pulses at multiples of the scheduler loop rate. Thus if set to 2 the pulses will be sent at 800Hz, set to 3 at 1.2Khz and so on. The difference being very, very even output which can benefit copters needing tighter motor control (for instance smaller racers). It is not recommended to send pulses at less than 1Khz due to reports of BLHeli32 occasionally missing frames on some autopilots, similarly sending at higher rates can result in increased reliability and faster recovery from missed pulses where needed at the cost of some CPU. Very high rates can only be used for faster DShot speeds since otherwise pulses might overlap - for instance the fastest rate that DShot150 can theoretically support is 4Khz.

My SCHED_LOOP_RATE is 0.3kHz. Should i bump SERVO_DSHOT_RATE to 4 ?

Do you have any further links refering to this behaviour? The Wiki mentions BLHeli32 missing frames, not AM32. As this is a bigger verhicle, wouldn’t it be better to reduce DSHOT rate to 150 which is still fast enough but more reliable because of the lower baudrate?

If you’re using AM32, yes.

Dshot rate multiples will send dshot frames at multiples of the loop rate. Since rate requests are only updated at the loop rate the mutiples will be send the same data. The advantage is twofold - one is that because the motor lines are inherently noisy there is a greater probability that the ESC will read the correct data (the CRC is quite weak) and even if it doesn’t it will be corrected quickly; the other is that you get telemetry back more quickly, if your motors are all on the same timer then the DMA channel is rotated between these outputs meaning that the telemetry rate could be dshot rate/4 thus if you set the dshot rate at 4x the loop rate you will get telemetry updates for all motors every loop (which improves the filtering performance). The only downside is CPU load, although the DMA output and input requires no CPU the setup and decoding does (decoding particularly) so you may be burning more CPU than you want at high dshot rates. Note that there is a physical limit to the rate because of the pulse width, dshot 150 with a much higher pulse width can only be sent at a lower rate.

2 Likes

Hello Kush. May i ask you what kind of ESC’s did you choose?

I went for 4 Hobbywing XRotor Pro 40A ESCs which worked well

Thank you Kush. Did you placed them enclosed inside the wing or inside the carbon fiber tube as the picture of the manufacturer shows, or did you placed them outside in the VTOL arms in the open down-wash stream of the propellers for cooling?

I had them on a mount outside the carbon VTOL arms in the down-wash of the props which helped a lot

Thank you once again Kush. Do you have BDShot capability with these ESCS?

I don’t think so with these specific ones, but there should be other ESCs you can get now with BDShot capability