Crash on the first takeoff - copter doesn't seem to level itself

Greets everyone!

I am building a drone based on Pixhawk 2.4.8 for more than a half a year now, but only recently had a chance to set first flight tests. The problem is that it can’t even take off, but flips over, while standing on two legs out of four. Moreover, I can find a stable state, when it inclines so that only two of these legs are standing, but increasing throttle more would result in it flipping over again.
Even more interesting is that it does not count this as a crash (despite flipping twice and damaging all propellers sometimes) - I have to use Motor Emergency Stop feature (which I conveniently configured to one of my switches at TX) and then disarm it manually.

I have uploaded three logs and current parameters here.

These demonstrate typical crash, however I’ve performed more than twenty tests in different flightmodes (stabilize, althold) with or without GPS attached, tried to enable only one IMU, calibrated IMU and compasses with different fitness values. Still, drone’s behavior was the same: it tilts on two legs, then flips and does crazy movements so I have to use emergency stop and disarm it.

From a first glance, the only thing that I find strange is the oscillation of desired yaw.

It is worth noting that the slight tilt on two legs might well be a normal thing, because I have a heavy battery, but from my previous experience with betaflight-based drones, after successful takeoff, it would just level itself in the air. My case is different, because drone continues to tilt and could be stable standing in this tilted position.

From the hardware perspective, I’ve tested the same Pixhawk 2.4.8 FC on two builds:

  1. JMT X4 560mm frame with Skystars Slim 40A dshot ESCs, 360kV motors and 6S LiPo battery. I select X frame type.

  2. F450 frame with TTS 30A BLHeli ESC’s (in PWM mode), 935kV motors and 3S LiPo battery. I select + frame type.

GPS + external compass is uBloxNEO-M8N on a high stand.

Also tried different propellers, from 2-blade 1045 to 4-blade 5". Different throttle levels but result is the same.

In fact, these setups were flight-tested before, but with different FCs and betaflight/librepilot, so probably I am missing something in Ardupilot configuration.

Common checks that I’ve done:

  • Motors direction and numbering is correct.

  • PWM-controlled ESCs are calibrated.

  • I did not forget to change output modes when changing between two builds.

  • All ESCs have exactly the same settings.

  • Signals from TX are interpreted correctly: in fact, when throttle is low and drone sits on the floor, it responds correctly to the sticks movement.

Any ideas what else could I miss?

Motor order and direction are not correct. The correct order is a b c d . Not 1 2 3 4

1 Like

Probably not. Use Mission Planners Motor Test function to determine if the order and direction is correct. And as @amilcarlucas says be sure you understand what order the test is run in. There is a link on the screen you can click for reference.

A hint. If a craft was configured for Betaflight previously, which I realize can’t be the case with that Flight Controller, selecting BetaflightX as the FRAME_CLASS will usually work without changing anything else.

1 Like

Ah, no, I’m really really confused with motor ordering after reading the docs. Just because I’ve noticed the difference between ABCD and 1234, but understood it as that first is the main pattern and even computed inverse permutation from my SERVOx channels with Motor[1234] function to do so.

Well, at least it it now taking off - that’s great milestone for me. However, it does not hover over the floor, instead it is traveling forward as if my pitch channel was not neutral (but it is).
I think I need to re-calibrate all sensors and test it again. I’ve checked my RC trims, but they are all centered, I know I should not use them.

Thank you everyone!

If a craft was configured for Betaflight previously, which I realize can’t be the case with that Flight Controller, selecting BetaflightX as the FRAME_CLASS will usually work without changing anything else.

Oh, no, these setups (frames, motors and ESCs) were previously used with other FCs flashed with Betaflight, but betaflight does not provide the features and maturity level as Ardupilot does. Moreover, these setups were previously used for racing-like drones, whereas now I need bigger “cinematic” drone. So I’ve got myself Pixhawk 2.4.8 to start with. Unlike smaller FCs from previous setup, I had to rotate Pix 45 degrees to match the mount holes, so instead of X frame it turned to be + one.