#PID run-away on new drone with zero input - please help

1 messages · Page 1 of 1 (latest)

warm pivot
#

I have recently finished building my own custom designed drone after flying DJI FPV for more than a year. My first flight ended in catastrophic full-throttle crash inside my garage and I've spent the last couple of days trying to figure out why, but I'm now running out of places to look. Being new, I know it is going to be something silly so I hope the experts can quickly point out my error. Below is the steps I followed to setup my drone and the blackbox debugging I've done since.

It is a 6" drone using VTX/RX: DJI O3; ECS: Speedy Bee 55A BLHeli_S 4-in-1; FC: Speedy Bee F405V4.

I used BetaFlight Configurator to connect to the drone and went through the setup process verifying: sensor orientation; motor position and direction; receiver channels. I configured an AUX channel on my DJI remote for arming.

I powered up my drone and slightly increased throttle. It hovered beautifully for a couple of seconds and then very suddenly went full throttle and crashed very hard. I replaced the one broken arm and continued fault finding for the last couple of days.

I used black box with the drone on the bench with props disconnected and ran some basic tests.

I found that the drone would respond correctly when no stick inputs while I manually rotated it. It would correctly adjust the motors given the angular rate.

I also found the same when keeping the drone still and applying stick inputs.

The fun started as soon as I applied throttle. The PID I values started incrementing while the gyros and rcCommands are all zero. The motors just ran away and I have to disarm.

It seems that applying throttle results in some measurement, causing the PID to accumulate, and I get run-away.

Attached is my blackbox file showing this happening. I've cut throttle at 1:41. From that point on, rcCommands are zero and gyros are zero but the motors keep spinning up.

Why would this happen, and what do I need to fix it?

spiral whale
#

Show video of you holding the drone in front of Betaflight and move all 3 axis individually (roll, pitch and yaw). Have you checked the props-in/out setting on Motors tab??

twin beacon
#

Applying throttle above the airmode threshold enables I. Until then you have no I.
You can’t test a drone on the ground.
Usual causes are motors rotating the wrong way, props on wrong, incorrect gyro orientation
Never test indoors. Always over soft grass and ready to disarm immediately.

warm pivot
twin beacon
#

Because sensors are not zero, ever. And sticks are rarely exactly zero, unless you configure a deadband, which has its own drawbacks.
Hence iTerm will always build up unless the quad is free to move (ie is in the air)

#

You can’t do useful tests of the PID loop as you describe other than check motor direction, check sensor orientation, examine motors for bent shafts and so on. With airmode off you can see which motors will be driven when you move the sticks. But you’ll need to force I to zero. I is an integrator. It adds up error and responds progressively more strongly if the error doesn’t go away. Even a tiny error over time becomes a big motor increase if the motors cannot reduce the error.