Bi-directional dshot - testers wanted

I’m readying a PR to add the bdshot binaries to the regular build. I only want to do this with boards that have been tested. Currently this list is:

CubeOrange
Durandal
MatekF405
MatekH743
OmnibusNanoV6
Pixracer
mRoPixracerPro
omnibusf4pro

and KakuteF7Mini, BeastH7, BeastF7 only support bdshot anyway

I’m happy to do more if people are willing to test (preferably fly) - I don’t want to do boards that people can’t test. F4 and F7 are much harder and more time consuming, although easier for boards that have the same pin assignments. H7 is easy.

1 Like

Andy, just a question of performance that I think you have covered before. If we are using ESC telemetry now via a UART, at it’s configured rate (10Hz, whatever) the advantage of bdshot is the greatly increased RPM update rate for filter purposes?

Yes. Low filter rates yield shot noise - we avoid that a bit by slewing, but high rates mean you can target the motor noise really precisely.

Can you also add the CUAV X7, we would like to test that one.

Ok, I have added it to the PR

I assume the CUAV X7 and nora can control eight bidir-dshot ESCs.
But are there any other mid-priced FCs (with redundant IMUs) that can do that?
Looks like the cube* can not do it :frowning:

I only added 4, you need an extra DMA channel per timer taking away DMA channels for other things. So perhaps you can test with 4 and we can add the others if we need. The harmonic notch can only take advantage of at most 4 rpm signals anway at the moment.

Even if we use the serial 5 RX line as telemetry input, only the RPM of 4 motors are used by the dynamic notches?

Correct. We could change that, but dynamic notches have a cost and its not clear how much benefit you would get from 8 notches versus 4 all tracking RPM values.

I meant averaging the eight motors and using that as the center frequency for a single notch.
I did not know that we have 4 independent notches :slight_smile: Nice.

I’ve tried latest 4.1 beta build with Cube Black. Is the Dshot bidir telemetry implemented with this firmware/board?

If you look here (https://github.com/ArduPilot/ardupilot/tree/master/libraries/AP_HAL_ChibiOS/hwdef)
only the board with “-bdshot” appended to the name have bidir telemetry implemented.

CubeBlack will be really hard, I suspect we might not do it.

So technically, Bdshot should be better for dynamic filtering than telem over UART at a TRATE of 50-100?

Yes that’s correct.

More words

1 Like

@andyp1per As you suggested I gave the bi-dir Dshot firmware a try on the Matek H743-Mini to see if it solved the BLHeli_32 passthru problem. It didn’t but the results were different than the standard -dev version of firmware. After selecting Read Setup a dilog box said “failed to read flash” hit OK and get 3 more of those. Then it shows this. So it’s doing something but not right.

I did a test flight and while it flew OK (in my office) looking at the post filter FFT the motor RPM spike is back so the notch filter performance is different. With the standard -dev version and ESC reference the FFT response is flat. And in the FTN data you can see it’s not using ESC telemetry. The only parameter I set was the SERVO_BLH_BDMASK to 15. Did I miss something else?

what are your HNTCH settings?

this looks like the timing issues I have had on Durandal - so maybe H7 related

Unchanged from the standard Dev version.
INS_HNTCH_ATT,40
INS_HNTCH_BW,40
INS_HNTCH_ENABLE,1
INS_HNTCH_FREQ,80
INS_HNTCH_HMNCS,3
INS_HNTCH_MODE,3
INS_HNTCH_OPTS,2

INS_HNTCH_REF,1

Looks right - can you post a log?

What are your SERVO_BLH* settings?

Here you go.