Bi-directional dshot - testers wanted

Great! I have found that BDS300 is still a problem on the KakuteF7Mini at low rates, but fine at 1.6Khz, I have been unable to make it any better than this and its looks like for the most part this is working well for you.

:+1:
[more char char]

@andyp1per I would like to test bdshot with another 3 inch copter with revo-mini.

I made a dir “revo-mini-bdshot” with a “hwdef.dat”:

include …/revo-mini/hwdef.dat

undef PB0 PB1 PA3 PB4

PB0 TIM3_CH3 TIM3 PWM(1) GPIO(50)
PB1 TIM3_CH4 TIM3 PWM(2) GPIO(51) BIDIR
PA3 TIM2_CH4 TIM2 PWM(3) GPIO(52) BIDIR

Taken from omnibusf4pro-bdshot.

It build but if I set SERVO_BLH_BDMASK=15 I have only two motor working.
For sure I am doing something wrong.

Are you using my branch? What does the PB4 definition look like?

I am using master with your PR pr-matekh743-bdshot

from revo-mini hwdef.dat

Did anything not get a DMA channel in hwdef.h?

Sorry I am not able to answer, anyway here is the hwdef.h generated:

Moreover with the copter with MatekH743 Mini I see problems I didn’t see in the test I did on 28 March (PR is changed in the meantime). Now DShot150 don’t work and DShot300 sometimes start with 3 motors, 600 and 1200 OK.

The hwdef looks right. On your matek what SERVO_DSHOT_RATE do you have?
Are you powering up the FC and ESCs at the same time?

Tested 0, 1 and 2

Yes

To be more precise (ESC BLHeli32 with FW 32.8):

SCHED_LOOP_RATE = 800
SERVO_DSHOT_RATE = 0, 1, 2
MOT_PWM_TYPE = 4 always fail
MOT_PWM_TYPE = 5 rarely fail [Edit: when fail 3 motors works]
MOT_PWM_TYPE = 6 always OK
MOT_PWM_TYPE = 7 always OK

What happens with SERVO_DSHOT_RATE = 3?

Same problem, only with MOT_PWM_TYPE = 4

Urrgg, why is this stuff so fragile! It doesn’t help that BLHeli32 is closed source so no way of inspecting what is going on.

So it would help if I could ask you to try some things to see if they help

OK ask w/o problems, but I think I will do other test tomorrow.

Actually NVM - I can reproduce the dshot150 problem. Very strange.

I have fixed the dshot150 problem - can you try again?

For now I tested only bdshot150, loop rate 800, servo rate 0, 1, 2, 3 on bench and it seems all OK.

Tomorrow I will do more test.

Now also revo-mini works with this hwdef:

Excellent! Please do a PR!

Thanks, I use a modified configuration for revo-mini that gives me two serial port and one ext I2C (not present on original) but RCIN is on a different pin on RC Input port.

This commit is for revo-mini with I2C:

And this is to have bdshot:

I have to verify that the second works also for the revo-mini on master before to do a PR or I can do a PR for a “new” revo-mini-i2c and another PR for revo-mini-bdshot + revo-mini-i2c-bdshot.

I don’t know if I’ve made myself clear.