Bi-directional dshot support

This a new design so could be the issue, I’ll put my tried and tested board on it to eliminate. But there is so little on this design it’s unlikely but you never know.

Found the issue was user error on my part, having SERVO_BLH_DEBUG 2 causes timing issues, So at least on my craft i can happily report its working fine :slight_smile:

malc

I’ve benchtested Copter-4.1-beta3 and it works fine so far, no motor stuttering this time and the copter stays disarmed without motors randomly firing up. I also see fewer spikes in the rpm readings. I’ll test fly it tomorrow (weather permitting). Thanks for the quick fix!

2 Likes

3 successful flights! no issues with the ESC and the rpm readings look good with some spikes showing up still. I wonder if we can get other telemetry data besides rpm.

sure, you get voltage and current

1 Like

You can run with bi-dir dshot for high rate RPM telemetry and then use a UART to get low rate telemetry about other things. You cannot get anything other than RPM from the bi-dir bit.

1 Like

Thanks for correcting me @andyp1per.
Do you have some time to test the BLHeli CRC patch from me?

Hi, after a long winter I’m now back testing bi-dir dshot on BLheli_s. Have tested 4.1 beta3 and master but I can’t get any to work on my Matek405 CTR. I see a similar behavior to the first version I got in December, When BDMASK is set to anything > 3 the output falls back to PWM. Have tested with dshot 150, 300 and 600. I’m getting the same result.
I’m running the motortest from QGroundControl and none of these version get the motors moving when BDMASK is anything but 0.
Anyone having an idea?
Skärmavbild 2021-06-08 kl. 20.52.28

Have now also tested with 4.1 master 2021-05-01 and that works

What do you have MOT_PWM_TYPE set to?

dshot600

Have now tested more version an master 2021-05-13 is the last version that works for me

Can you tell me the commit that works?

I have walked through the pre build versions and this is the last one that I found working
https://firmware.ardupilot.org/Copter/2021-05/2021-05-13-01:05/MatekF405/

commit d0b9f6ced6584f5a067ceeabb2d25617de3b6645
Author: Leonard Hall leonardthall@gmail.com
Date: Thu May 13 10:30:44 2021 +0900

Working might be a strong word but the motors run in motor test and I see a entity in MAVLink inspector window that says ESC_TELEMTRY_1_TO_4 but the values are all zero except the Message Cont that increases

Ok, I can’t see anything obviously wrong. I would probably need to get hold of this board to dig in more.

Ok, any more test I can do to help?
Is the version from late December available somewhere, never got it in the air, but I know that it worked. The link to Dropbox seems to be broken. Just wanted to compare if I have something else going on

Did some more tests now with mavproxy:

  • Nightly build of dev gives no telemetry
  • Release 2021-05-01 sends ESC data on motor 1 and 2 zero on 3 and 4, data is coming after triggering motortest and stops a few seconds after the motor have stopped. All motors are running as expected when tested with motortest.
  • Release 2021-05-13 sends ESC data continously without activating any motors. Could not get any motor to move with the motortest command, when sending motortest command fc sounds like its activating the output but nothing moves

This is a pretty common board - I’m going to get one

2 Likes

Brainfart on my part I am afraid, this should fix -

1 Like

Do you have a test build of this and I can give it a try?
I have for a long time thought of setting up a build evironment, I think this is the trigger :slight_smile:
I will report back my progress

arducopter.zip (622.4 KB)

1 Like

Thank you VERY much! Seems to work perfect!
One question, is it supposed to continously report RPM when debug is set to 2?
The December release was only reporting RPM when a motor was active and a few seconds after