Bi-directional dshot - testers wanted

Yeah, looks like it. You can always run FFT at the same time and compare - that will tell you if you have it right.

So everything else works fine on your build? If so I think we could consider making this the default configuration as nothing is lost.

Yes, I tested only in stabilize and althold but I don’t think that the bidir dshot PR could affect negatively other flight mode.

One note:
motors run only with MOT_PWM_TYPE,5 (DShot300) but probably this is because I use Blheli_S ESC flashed this way:
http://www.multirotorguide.com/guide/how-to-flash-blheli_s-firmware-with-bidirectional-dshot-rpm-filtering/

I guess it’s down to what is implemented in the ESC firmware - but great that it works!

What UARTs do you typically use for RX and GPS on these boards?

RX on pad marked LED and GPS on UART6 as described in the wiki page:
https://ardupilot.org/copter/docs/common-omnibusnanov6.html

Thanks, the DMA allocation is the same in the bidir version so we can make this the default config.

:+1:
[20 chars 20 chars]

I tested your PR on a 4" with a KakuteF7Mini and it flew great. I set the Telemetry Rate to 0 before flying to see if the logged telemetry was actually reporting RPM and it was.

Can share the log if you like.

Dumb question, but what are the benefits of this? What extra info or data am I getting that I didn’t with telemetry

Most of the development was on a KakuteF7Mini - so I’m pretty sure it works!

It means the notch update rate can be higher reducing shot noise to the control loops. The maximum update rate you can with regular telemetry is 100Hz (too many errors after that) - with bidir you can go up to 500Hz on a KakuteF7Mini with two timers, 250Hz on some boards that have a single timer covering all channels. The notch update read rate is currently 200hz (for regular telemetry we slew between values) so enabling this will immediately give a benefit, we could push it up to the loop rate as well think. There is also the convenience factor - if you have separate ESCs you don’t need to wire in the telemetry channel.

In addition to what Andy said, another important thing (at least for me) is that the bidir dshot also works with the cheap Blheli_S ESC which do not have serial port telemetry.

Which BLHeli firmware did you use in the end?

I used one from here:

You have to choose the right hex for your ESC looking in the Blheli Configurator, es.

For my ESC:

I used this hex (G-H-15):

Thanks - note that the betaflight sites says to only use version 16.73 because of incompatibilities in later versions

Could you build a Pixracer version Andy? And what’s a better reference for the notch filter FFT or ESC RPM? I have been using FFT on a PixRacer craft with BLHeli_S ESC’s but they have been updated with the Jmav firmware.

1 Like

Will try 16.73 and let you know

Another thing a little bit OT:
Blheli pass trough doesn’t works in Ardupilot with Blheli_S ESC. To flash and confgure a Blheli_S ESC I have to flash Betaflight, flash and configure the ESC then re-flash Ardupilot.
I don’t understand why this is so since the sources for the Blheli pass trough in Ardupilot are derived from Betaflight:

Right, annoying. I use an old Naze32 board to flash them.