ESC telemetry (RPM) dropout

Hello everyone,
I am using ESC 50 amp (BLheli32) running 32.9 BLHeli32 version. Matek H743 FC
I am getting this ESC telemetry RPM log drop outs (image attached below). Each dropout is of 20 ms occurring randomly on all ESCs. I tried using Dshot 300 and 600 as well. I also tried setting serial5_protocol=0 (instead of ESC telemetry) to check interference due to UART line.
I tried various ESC settings (changing motor timing, demag compensation, increasing PWM minimum frequency). Nothing has worked yet.

I came across a following thread about same issue - Dshot telemetry dropouts · Issue #16735 · PX4/PX4-Autopilot · GitHub
There they have mentioned that the issue was solved from firmware side of ESC.
Can someone please help here!

How many motors and what do you have SERVO_BLH_TRATE set to? This is a reason to use bdshot as there are constraints on the amount of data you can get through the uart

@andyp1per I have 4 motors. SERVO_BLH_TRATE=5.
I found one thing just now. I am getting these dropouts when I am setting SERVO_DSHOT_RATE= 2 or 3. When I set it to 1 (i.e. equal to loop rate). I am not getting any dropouts,

So you are almost certainly saturating the UART. The rate at which data is collected will be motors * trate * dshot_rate * loop rate

@andyp1per What can be done. I should not leave dshot_rate=loop rate right?

@andyp1per If I turn SERVO_BLH_TRATE=0 then also ESC RPM data gets logged. What is the other way in which this data is getting logged?
Also if I keep Scheduled loop rate to 800 Hz and Dshot rate same as loop rate. Is this setting okay? Since this is the only dshot rate in which I am not getting these drop outs.

Are you using bdshot?

1 Like

@andyp1per Yes, dshot600

So TRATE only controls the UART rate, you will still be getting data via bdshot

@andyp1per also can you please comment on dshot rate and scheduled loop rate I have set.

I find it strange that you get dropouts with loop rate = 400 and dshot rate = 2 but not with loop rate = 800 and dshot rate = 1, they should be identical

1 Like

I did not try with loop rate 400 and dshot rate 2. I will try it.
But is it advisable to run dshot rate same as loop rate.

Shouldn’t matter, but faster loop rate will consume more CPU

1 Like

@andyp1per
i did two tests again,
loop rate=400 and dshot rate=2
loop rate=800 and dshot rate=1
Both gave similar results with no dropouts.
Even in loop rate=800 dshot rate=1, CPU load is around 66% is it worrysome? Can I keep this settings?
Also is there anyway I can see in log at what frequency motor is receiving commands from ESC?

Do you get dropouts if you increase dshot rate while keeping TRATE at 0?

1 Like

@andyp1per yes I get dropouts even then