Bi-directional dshot support

Many more people are trying to use bi-directional dshot in 4.1 than I expected. This is a thread for diagnosing issues. Please note:

  • Bi-directional dshot (BDShot) is only supported on some boards, mostly ending in -bdshot
  • BDShot has only been tested on quads and on F4 and F7 is only safe to use on quads because of the fairly onerous requirements on DMA channel allocation
  • BDShot support involves fairly intrusive code changes in the rc output code path which is one reason why it is a compile time option - it has not had the same level of testing as regular firmware and some boards have had more testing than others please be careful
  • The harmonic notch filter only supports 4 notches currently, so supporting BDShot on > 4 motors will make little difference to performance - it should however work since motors 4-8 can still use regular dshot, but it has not been tested on copters with > 4 motors
  • BDShot is quite timing sensitive and is known to have issues on some boards at some speeds, for best results please use DShot600

Please make sure you have read https://ardupilot.org/copter/docs/common-dshot-blheli32-telemetry.html before posting here

6 Likes

Hi,

will there be support for BDShot on other boards in the future? I’m using Pixhawk 4 Mini, which I do not see with the bdshot option. Could it be supported in the future?

1 Like

It’s certainly possible - but it requires people be willing to test new configurations as the DMA allocation can be a little tricky.

Andy, it’s kind of circumvoluted, but bear with me :wink:
Back in the days before native FrSky support, I was using Teensy 3.0 boards to do the Mavlink-FrSky conversion for Taranis telemetry. Friend of mine that encountered them Teensies back then shot me a question regarding a 4.1 lately, and not exactly knowing where latest Teensy was at, I checked its specs and was impressed. 32 general-purpose DMA channels.
If I slap a couples of IMUs on one, will it make a nice BDShot FC !? :smiley:

I have no idea - sounds like a lot of work

I’ve heard on a Developer meeting call that an Ardupilot port to the Teensy boards already exists and mostly runs. So you do need to start from scratch, just join their team. And no, I do not have contact information nor any more information than this, sorry. You will need to find them yourself.

Excuse me if this is the wrong place to ask, but I’m trying to find out what are real life advantages of Bi-directional dshot compared to regular ESC telemetry. I know that the refresh rate is higher, and that for racers on betaflight it may make a difference, but if ESC telemetry works on my quad, will I gain anything by switching to bi-dir dshot for casual flying?

It really depends on how well tuned you want your aircraft. If you are happy with your tune - then great, if you want a way of getting a better tune then this is one way.

It also means less wires and you free up a UART for other things. Obviously for FC’s with integrated telemetry this is not such a big deal.

1 Like

Thanks. With a 4-in-1 ESC and an integrated FC (Kakute F7) it’s just a single wire, as far as the tune - it’s good enough for my flying skills, I mostly use GPS/stabilized modes anyway (leisure recon and filming rather than acro or racing). I guess we’ll get more real life testimonies as it becomes more popular.

Thanks Andy for the extra information. I can see that there is a CubeOrange-dbshot board target. Has it been thoroughly tested? What’s the ideal param setup on a quad? I’d like to give it a try on my CubeOrange.

A lot of the development was done on a CubeOrange so it will definitely work. That said, I’m not aware of anyone who has flown it on a CubeOrange as yet. The docs cover the setup https://ardupilot.org/copter/docs/common-dshot-blheli32-telemetry.html#bi-directional-dshot

You must use the AUX outputs

2 Likes

Good copy @andyp1per . Few more questions, would you like me to test the Master or the Copter-4.1-beta1? I wonder if there is any difference with the bdshot code. Also, can the CubeOrange handle Dshot600? Do I have to enable AUTO_TLM on the BLHeli_32 ESC?
Thanks!

master and beta are pretty much the same, bit no harm in trying master.

dshot600 will be fine, just avoid dshot1200

make sure you disable auto telemetry

1 Like

dshot1200 is now fixed in master - FYI @dkemxr

1 Like

I gave it a spin on the Matek H743-Mini, all good. Nice!

However on the Kakute F7 Mini there is something going on with RPM Telemetry. 2 outputs good, 2 not.

Does the KakuteF7 mini work with dshot600?

That”s what it was set at. I’ll do some more investigation.

Hmmn, pretty sure I have tried this really recently without issue.

It’s working for me at dshot600