AutoTune Copter 4.1.2 on 3" Quad [Squirtv2.1] : Roll tuning failed with AUTOTUNE_REACHED_LIMIT

Hello,

I recently built this 3" Quad based on :

  • 2.9" Whoop Frame Squirt V2.1 with TPU Duct
  • T-Motor Ultra F55A 4in1 Mini ESC / BHeli32 firmware
  • 4x T-Motor F1507 KV3800
  • FC : Matek H743 Mini / Arducopter 4.2.1 with Bidir-Dshot
  • GPS & COMPASS : MATEK M8Q-5883
  • 4S LIPO Tattu 850mAh 95C

The Quad flies well (in every mode: Stab, Loiter, AltHold) and is quiet responsive to pilot command.

I decided to follow the AutoTune Guide, and started this morning a flight dedicated to the AutoTune in AltHold mode, which failed on the Roll Axis. The wind was very calm, under 2m/s. The quad was facing to the wind direction during the roll autotune process. No abnormal vibration. IMU filtering is based on Throttle on notch filtering .

Here is the logs : https://drive.google.com/file/d/18pfTTWo3Rnyom-jNfYdGO0natcpC5IP_/view?usp=sharing

Some Param before this Autotune flight:

  • AUTOTUNE_AGGR=1
  • ATC_RAT_RLL_P=0.060000
  • ATC_RAT_RLL_D=0.001800
  • ATC_RAT_RLL_I=0.060000
  • AUTOTUNE_MIN_D=0.001000
2021-12-24 10:40:18.082 AutoTune: Twitch
2021-12-24 10:40:18.892 AutoTune: (R) Angle P Up
2021-12-24 10:40:18.892 AutoTune: Leveling (Angle(R)  2.5 >  2.5)
2021-12-24 10:40:18.892 AutoTune: p=17.64058 accel=170000.0
2021-12-24 10:40:18.892 AutoTune: success 0/4
2021-12-24 10:40:19.139 AutoTune: Twitch
2021-12-24 10:40:20.892 AutoTune: (R) Angle P Up
2021-12-24 10:40:20.892 AutoTune: Leveling (Angle(Y)  2.5 >  2.5)
2021-12-24 10:40:20.892 AutoTune: p=18.52261 accel=170000.0
2021-12-24 10:40:20.892 AutoTune: success 0/4
2021-12-24 10:40:22.214 AutoTune: Twitch
2021-12-24 10:40:22.892 AutoTune: (R) Angle P Up
2021-12-24 10:40:22.892 AutoTune: Leveling (Rate(P)  5.6 >  5.0)
2021-12-24 10:40:22.892 AutoTune: p=19.44874 accel=170000.0
2021-12-24 10:40:22.892 AutoTune: success 0/4
2021-12-24 10:40:24.217 AutoTune: Twitch
2021-12-24 10:40:24.575 Event: DATA_AUTOTUNE_REACHED_LIMIT

The Roll AutoTune process failed in AC_AutoTune::updating_angle_p_up() because tune_p > AUTOTUNE_SP_MAX =20.
Is this upper limit AUTOTUNE_SP_MAX=20 revelent for 3" Quad with AUW=380g ?

Any idea what could lead to this aborded AutoTune process ? Should i switch to Notch filtering based on ESC BDIR DSHOT telemetry.

@rmackay9 Should i try the V4.1.3-RC1, which fixes some issues in AutoTune mode ?

On a copter this size you should anyway - you will find the performance a lot better

Thanks, I will switch to Notch filtering based on ESC BDIR DSHOT telemetry, and share my results.

If you look at the ESC[n].RPM there is some weird value equal to 0 RPM, those are isolated points, which seems to be abnormal/noise, so I guess something is wrong with dshot telemetry… I hope arducopter will ignore those values…

They will be ignored. On that MCU you can run at a higher loop rate (800 say) and run the notch at the loop rate. You can also afford to raise FLTD when you are using ESC telemetry notch. These are my whoop settings if it helps:

Tadpole-4.1-Tuned.param (23.5 KB)

Interesting, was there much manual tuning or adjusting of some of those filter values? Or was it mostly Autotune?
The other interesting thing I’ve noticed over time is so much holds true for tuning a whoop through to tuning a heavy-lift multirotor.

Filter values not set by autotune, but I generally find the smaller you go higher is better until you hit the noise wall.

I did have trouble autotuning my whoop - they are so light that any kind of breeze takes them out of level. You need a really still day and a really large space - it took me several goes to get a tune.

Thanks for sharing your params.

You can also afford to raise FLTD when you are using ESC telemetry notch

You mean the ATC_RAT_PIT_FLTD=90 & ATC_RAT_RLL_FLTD=90 params ? my values are set at 50.

I also see huge difference on ATC_ACCEL_X_MAX between our 2 whoop quad :
Your TadPole :

  • ATC_ACCEL_P_MAX 411104.8
  • ATC_ACCEL_R_MAX 411104.8

My Squirt :

  • ATC_ACCEL_P_MAX 170000
  • ATC_ACCEL_R_MAX 170000

Should I increase my ATC_ACCEL_P/R_MAX values ?

Regarding ATC_ANG_RLL_P, your TadPole reach the value 18, which is very near to the upper limit AUTOTUNE_SP_MAX=20 from the source code. Could it be possible that my Squirt Quad requires a value between 20 and 30 ? that will not be reachable using the actual code, and it will cause a AutoTune failure.

These are all set by autotune when successful

I finaly caught a clam day yesterday to process again autotune (Roll axis only), and it has succeed !

Here is the Bin LOG : https://drive.google.com/file/d/1Ps3oeAUFpxD3hlv4_PjWqpHdhlxvon50/view?usp=sharing

And the new tuning values for this 3 inch quad :

ATC_ANG_RLL_P=11.847305
ATC_ACCEL_R_MAX=338330,100

ATC_RAT_RLL_P=0.136492
ATC_RAT_RLL_I=0.136492
ATC_RAT_RLL_D=0.002010

ATC_RAT_RLL_IMAX=0.500000

BTYW, one thing to be improved on AC : reduce the AUTOTUNE message prefix length, so that we can follow the autotune using yaapu script on a 128x64 screen (Jumper T-lite) ! Some improovement has just been made on yaapu on this area (Taranis on 128x64 : Msg length is limited to 16/23 char / Unable to follow AutoTune Messages · Issue #136 · yaapu/FrskyTelemetryScript · GitHub) .

Maybe changing the prefix to "ATune: " instead of "AutoTune: " would be enought since very few char were missing on the display.

1 Like