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: https://review.px4.io/plot_app?log=262aa631-7a18-4da9-8b94-0ac80fc24c3b

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: https://review.px4.io/plot_app?log=87a53b8c-e640-486f-baa0-b00f7927488b

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.