Motors spin slowly after Flight Termination

I have a hexarotor and used flight termination along with attitude failure detection for my test flights. A slight problem I always had with this, is that after flight termination, the motors kept spinning at a very low speed, even below the set minimum level (see video below). I have the following PWM values for my motors:

  • Disarmed: 1000
  • Minimum: 1100
  • Maximum: 1900

So far I tried a few things, like different failsafe values for the motors. But even values of 900, 0 or even -1 (so disabled) don’t resolve the problem. Has anybody experienced similar behavior or knows how to resolve it?

Link to the video: Flight Termination.mp4 - Google Drive

Can you share a logfile from boot to shutdown (using SDLOG_MODE).

Here is a logfile of a test flight, where I just moved it by hand like last time:

All motors have -1 as failsafe value (so disabled). I use OneShot for all of them .

It looks like the motor values just “get stuck” at some value:

I wonder if this is a Oneshot specific problem, or general. Have you tried with PWM? If it works correctly with PWM, then we have to have a closer look at the oneshot driver. And is this on FMU or IO ports?

I haven’t ried with PWM yet, but I will do so as soon as I can.
Motors are connected to the I/O ports, because I’m using some of the Aux passthrough channels from the FMU.

@JulianOes I just had some time to do a test with PWM 400 Hz. The motors fully stopped as I’d expect them to. Surprisingly, to me, the motor outputs in flight review don’t go to zero as well:

Flight Log:

Another thing I observed during previous tests, which might be useful, is that if I activate the kill switch and attitude failure triggers after that, the motors spin like in the video. So the failsafe overrides the kill switch in that case.

Oh, that’s interesting, and scary.

Is this with Oneshot or PWM?

That’s with OneShot. I didn’t test this behaviour for PWM, but since normal flight term seems to behave properly with it, I expect it to also work in that case.

@bkueng it sounds like the oneshot driver doesn’t implement the termination behavior correctly. Any hints where this is implemented (incorrectly)?

It’s the same driver (and code) as for PWM, just the output signal is scaled.
Is it on the MAIN or AUX outputs?
I would measure the signal.

@bkueng They are connected to the MAIN outputs 1-6.

Can you check if you get the same behavior using the AUX outputs?

I juest tested the AUX (FMU) outputs and the motors fully stop for all modes (tested PWM 400 Hz, OneShot and DShot150). So this problem seems to only occur with OneShot on the Main (I/O) outputs.