Bi-directional dshot - testers wanted

BlHeli32 version 32.7

Definitely wonā€™t try fly it until itā€™s stable on the bench, not to worry there.

I donā€™t have access to the craft right now, but if setting the ESC protocol to DSHOT 300 in the ESC tab in MP accomplishes setting MOT_PWM_TYPE to dshot, then yes. Initially I was getting conformation in the messages that I had DSHOT on outputs 1-4 and PWM on 5-8, it wasnā€™t until after setting BDMASK that the motors became ā€œunallocatedā€ in the messages tab per my above post.

Ok maybe difficult to diagnose without the hardware. I could do a debug build for you which might tell us more.

Iā€™ll try it if your willing to whip it up.

Without BDMASK = 15 itā€™s been stable, but given thatā€™s a param required for bdir itā€™s something worth looking into. How would the debug build work to show us the error?

It just means I can get an accurate line number for the watch-dog fault

Sounds good. Iā€™ll have some time this evening to test, let me know when you have something to test and I will happily flash and report back.

Ok, so my results are entirely consistent now on my branch. I have four ECS and four motors, two with BLHeli32 and two with BLHeli_S

DSHOT150: nothing works
DSHOT300: everything works at all dshot and loop rates
DSHOT600: everything works at all dshot and loop rates
DSHOT1200: only BLHeli32 ESCs work

Thanks for info. Now I start to think that my ESC is crap and I have to buy a better one.

Which value for SERVO_DSHOT_RATE in your test?

Ah ā€¦ OK you said all ā€œdshot and loop ratesā€

I tried, 0,1 and 2 - but Iā€™m beginning to think this is more of a random effect

I also verified that motors not turning is when we donā€™t get telemetry - so its quite a good check on a logic analyzer for works vs not-works

Ok, I have spent some time playing with this and its as good as I can get it I think. I get BLHeli32 working for me on all dshot bitrates. BLHeli_S only works on 300/600 - but I think thatā€™s true for betaflight as well. Let me know if this works for you.

It turns out bi-dir dshot in the ESCs is incredibly sensitive to the bitrate. I guess that makes some sense but was unexpected.

Hereā€™s a link to a debug build. Please load it up and send me the watchdog message you get.

I just loaded the provided debug build, and was able to set SERVO_BLH_BDMASK=15 without error. Checked back in the messages tab and found no watchdog errors. Ensured outputs were set to ds600, and attempted to send motor test command to motor A, which sent the board into bootloop. Flashed official, reset params to default, repeated the process with ds300, same results, except this time I got sent to bootloop directly upon writing SERVO_BLH_BDMASK=15

Ran test again with LOG_DISARMED=1 checked the messages of the log and again found no watchdog errors. Would it help if I was able to get a FC sent your way?

Yeah I think I am going to need the kit. If you are able to send one then that would be great. If not there are some other avenues I can explore.

I believe that one is headed your way in the near future from the manufacturer. Iā€™ll check back on here soon and will be pushing ahead with a different BL32 and Kakute Mini setup that I feel I will have more immediate success with as far as bdir is concerned. Thanks for all that you do, and I am quite excited to get it working with the Pix Racer Pro, eventually.

cheers.

1 Like

I tested your latest branch pr-matekh743-bdshot and it works for me but I continue to have problems with repeatability: some motors that donā€™t spin and that after reboot spin OK, or vice-versa.

I think I have a really low quality ESC, even if w/o bidir it works always OK.
I bought a new one, when it arrives I will test again.

Last question, whatā€™s in your latest small-copter-4.1 branch?

Thatā€™s good to know. I might have one last push at making BLHeli_S work for Dshot150 but I am not hopeful.

My small copter branch contains this and the generic harmonic notch stuff - I was going to try flying it tomorrow.

IMHO I donā€™t think it is so important, people with BLHeli_S (also me on other copters) will use Dshot300 or 600 and be happy.

What you could do is play with the prescaler - line 677 - 681 in RCOutput.cpp. I think this issues are to do with the frequency of the output, so it may be that increasing or decreasing by 1 might make a difference for your ESCs

1 Like

It turns out this only applies to JazzMaverick - regular 16.7 is fine with DShot150. Neither work at 1200 and this is the same for betaflight.

I am getting better results with pasthrough with this change as well