Unstable Behaviour after switching to Dshot

Hey all,
We recently switched to D-Shot instead of regular PWM to control our ESCs.
We did that to enable us to receive ESC telemetry (Serial 4).

Once we switched to D-shot (and it took a while until we noticed we should use Auxiliary instead of Main),
The PID tuning went really bad. We are still having problems trying to tune, without much success.
Looking at the logs, some times the vehicle ‘dances’ around the center point of Roll for example, even when the operator maintains the sticks dead center.

The flight controller is Cube Orange, ESCs are APD 40F3. Motors are T-motor U3 with 14" props.

Any one experienced this?

Attaching flight logs. Careful - it is heavy, since we tried to log vibrations, we thought it has something to with the issue.
Flight Logs - HEAVY
Parameters

INS_ACCEL_FILTER,3
INS_GYRO_FILTER,3
It’s a wonder it will fly at all. These will be filtering out actual desired movements, not to mention preventing detection and correction of undesired movements.

And while
SERVO_BLH_AUTO,0
dshot is not actually in use since there’s no other specific settings in place to tell AC where and when to use dshot. So really your APD ESCs are probably still being fed PWM and the issues are nothing to do with DSHOT.

Set these back to defaults
SERVO_BLH_TRATE,10
INS_ACCEL_FILTER,20
INS_GYRO_FILTER,20
and set this
SERVO_BLH_AUTO,1
then go to MissionPlanner, Setup, Mandatory…, Initial Parameters
Put in your prop size and battery cells/chemistry
Accept everything it offers including the Suggested parameters for battery and fence.

Your PIDs dont look very inspiring unfortunately and will be quite wrong if determined while the gyro and accel filters were wildly wrong. Use these as a starting point
ATC_ANG_RLL_P,6.0
ATC_ANG_PIT_P,6.0
ATC_RAT_RLL_P,0.12
ATC_RAT_RLL_I,0.12
ATC_RAT_RLL_D,0.0075
ATC_RAT_PIT_P,0.12
ATC_RAT_PIT_I,0.12
ATC_RAT_PIT_D,0.0075
And these set these too:
INS_LOG_BAT_MASK,7
INS_LOG_BAT_OPT,0

Before you fly again you also need to fix the Z axis vibrations, which could be prop wash over the flight controller or any number of the usual suspects.

You are doing the right thing using Stabilise mode, also you can try AltHold too. It’s a bit easier to control until hover throttle is properly learnt and saved.

1 Like

Once DSHOT is actually enabled and ready to be used, you will have a message like
{date} {time} : RCOut: PWM:1-8 DS600:9-12 PWM:13-14
or similar, indicating which outputs are DSHOT (or another protocol) and which are PWM

1 Like

Actually this is purely about passthrough. You can enable dshot without it (although slightly depends on what version of AC you are on).

1 Like

Appreciate your detailed response!
Another important note: our frame is quite flexible, with a ‘rotated H’ design, which means it has the front and aft left motors on the same arm (well, looks exactly like the letter H…). We did the research to determine we should use X frame type.

Can anyone explain what these filters do exactly? If set on 3, they filter disturbances under 3 Hz in accelerometer and/or gyro?

SERVO_BLH_TRATE,10 was determined together with APD’s support when we had troubles setting up the ESC telemetry.

About the filters set to 3: We tried the suggested values without success, with or without using the D shot settings. With the default \ suggested by the initial setup computation, the behavior was even worse.

SERVO_BLH_AUTO,0: We made sure that there’s D-shot signal on the lines using an oscilloscope, though there were numerous changes I’m still pretty sure there’s D-shot on the lines. Plus what @andyp1per said. Plus we are receiving ESC telemetry which is sent only upon request via D-shot.

I have nothing against trying the PID values you suggested.
But how come the tuning went so bad after it was flying pretty good after switching to D-shot?
The only physical changes: using other servo outputs (to enable D-shot), and adding telemetry wires from the ESC to a PDB (also APD), and from the PDB to the Cube.

P.S - how did you come up with the initial suggested PID values?

Yes, my bad - I was thinking of something else at the time :frowning:

@xfacta, we tried flying with the parameters you suggested without seeing improvements.
(we are working on the Z axis dampening).

We’re still wondering what changed, control-wise, when switching to Dshot.