Hex Crash with 3.3.3 - Odd motor shutdown logic


Working on discovering why one of our hexcopters dropped out the sky from 30m (not too much damage :slight_smile: ) Was basically in Alt Hold mode, with gentle moving around, in fairly windy conditions. Without warning, all motors stopped and the Taranis reported ‘crash’ even before it hit the ground.

Note: This Hex had been flown the previous day, with no problems at all for over 45 mins including gentle and aggressive flight inputs, so clearly no issues at that point.

So, looking at the Pixhawk bin/log, we see that the barometer reading was reading approx 30m then no further records except for Crash entry

Reading the docs, this looks like a brown out. We’ll address that (if that is the case) with a backup BEC to the servo 5v rail.

However, the interesting thing is this: To test the brown out theory, we took the props off, added a good 5v supply from a bench power supply to servo rail then tested with various throttle settings and rolling the copter around by hand. We replicated the motor shutdown on each test (we were in stabalised mode and armed the motors from transmitter with Pixhawk light going from flashing blue to blue on motor arm)

To take out the existing BEC supply/brown out issues, we disconnected the ESCs and all other non essentially connectors from the Pixhawk (GPS, Telemetry etc) and ran the tests again just from the bench 5v supply. Same problem.

With a bit of refinement, we discovered that motors always turned off when the pitch or roll was +/- 30 degrees for a second or so. We tested another drone (quad, with Pixhawk running 3.3.3) and same thing happened.

Further investigation showed that if we applied say back elevator on the Taranis, we could go past 30 degrees no problem, presumably because the Pixhawk is expecting that nose up command.

So my guess is it looks like that when the Pixhawk detected un-commanded pitch or roll past 30 degrees, it assumes that the copter is not responding by way of thrust in the opposite direction and perhaps assuming a failed motor or prop off situation, then shuts down into crash mode.

Could someone please verify this is expected behaviour - if so, I’m wondering if the hex crashed because of a strong gust pushing the roll briefly past the 30 degree point. Shutting down the motors at this point seems a bit drastic if that is by design.

Hopefully we’ve just missed something simple.

Many thanks

OK, looks like I jumped the gun here. Just checked the source code:

(I have to say, the ArduCopter code base looks very clean and structured - good to see)

crash_check.cpp shows:

// Code to detect a crash main ArduCopter code
#define CRASH_CHECK_TRIGGER_SEC         2       // 2 seconds inverted indicates a crash
#define CRASH_CHECK_ANGLE_DEVIATION_DEG 30.0f   // 30 degrees beyond angle max is signal we are inverted
#define CRASH_CHECK_ACCEL_MAX           3.0f    // vehicle must be accelerating less than 3m/s/s to be considered crashed

So, my 30 degrees over 2 secs is probably causing crash detection in the workshop as it’s not moving at > 3m/s/s (doesn’t apply to Acro or Flip modes)

In conclusion, the original crash must have been a brown out, which gives me some confidence again :slight_smile:

Don’t know if this thread is useful to keep or not.


Sorry because my english isnt so good

Did you have power the pixhawk also from rail with zener diode or only with a power module?

“Reading the docs, this looks like a brown out. We’ll address that (if that is the case) with a backup BEC to the servo 5v rail.”

Hi @cookmangr

During the crash, we had the standard Power Module with BEC (which powered all the 5v circuits).

We have now added the zener diode and an extra UBEC (5v, 3A) to the servo side of the Pixhawk. This seems to have solved the problem.


Thank you for your awnser

I have did the same with zener diode and extra power to rails from the start of my build

I have see at mission planner when i fly that the power from power module drops to 4.85volts and then back to 5.12volts
All the time the same situation

But at the rails the power is always at 5.2 to 5.23

I think i must change my power module with one from mauch electronics