Rover 4.1.0-beta3 - DSHOT not working

Hi,

with Rover 4.1.0-beta3 DSHOT seems not to work any more.
The final beep in the startup tones is not audible.

  • Matek H743 (MINI)
  • DSHOT 600 (also tried 300)
  • ESC: Wraith 32

Was working with 4.1.0-beta1

My param file:20210524-Traktor.H743-410b3.param (18.3 KB)

24.05.2021 19:42:30 : u-blox 1 HW: 00190000 SW: EXT CORE 1.00 (f10c36)
24.05.2021 19:42:18 : IMU0: fast sampling enabled 8.0kHz/2.0kHz
24.05.2021 19:42:18 : RCOut: DS600:1-2 PWM:3-12 NeoP:13
24.05.2021 19:42:18 : MatekH743 004D0023 30305106 33303739
24.05.2021 19:42:18 : ChibiOS: 08877972
24.05.2021 19:42:18 : ArduRover V4.1.0-beta3 (c02be7ba)

@RainFly,

Thanks for the report.

@andyp1per can I leave this one to you?

Hi @RainFly I notice a few issues in your config

MOT_PWM_TYPE,7
SERVO_BLH_3DMASK,1
SERVO_BLH_DEBUG,0
SERVO_BLH_MASK,1
SERVO_BLH_OTYPE,0

This means the motors are generally running dshot1200 (7) except motor 1 which is running motor 1 with PWM in 3D mode (which is not supported). I’m guessing this is not what you want - can you tell me what channels you expect to be running what?

1 Like

Hi @andyp1per

I want to run Dshot 600 on Motor 1, which is SERVO1.
It is a rover, so motor goes forward and backward (3D)

MOT_PWM_TYPE “7” is DSHOT600, isnt’t it?
Mission Planner:
grafik

Is the documentation wrong?
“4” is BrushedBiPolar, not Dshot150??

Sorry maybe this is a rover thing, on copter dshot600 is definitely 6.

How many motors do you have? Try setting OTYPE to the same as MOT_PWM_TYPE

I have only 1 motor.
Will try it later, need to go to work now.

If I select the rover 4.1.0-beta3 version in the documentation it also says:

OTYPE “6” seems to work.
Will try later more detailed.

If you only have one motor and its 3d then you can probably just set MOT_PWM_TYPE to 0 and do it all through BLH settings. Note that the type in BLH follows the copter setup.

@andyp1per … OK … DShot600 now works as you suggested.
Thank you again!

MOT_PWM_TYPE 0
SERVO_BLH_OTYPE 6
SERVO_BLH_3DMASK 1
SERVO_BLH_MASK 1

If I follow the documentation https://ardupilot.org/rover/docs/common-dshot.html, which suggests to set MOT_PWM_TYPE, in combination with the differences in rover/copter for MOT_PWM_TYPE, I get the configuration I had first.

btw …
I also gave BDSot a try. But no success. (Matek H743 and ESC Wraith-32)
After boot the final BLHeli beep is missing. After a while the ESC beeps and the motor is spinning uncontrollable, even if disarmed.

Ok great! I’ll discuss with @rmackay9 what we want to do here as I can’t really see how setting MOT_PWM_TYPE on rover will currently lead to the right outcome.

bdshot - you used the bdshot firmware presumably? Can you post your parameters?

I’m struggling to see how you ended up with your config - the docs say to set MASK and OTYPE - you only set the first one. Can you point me at the bit you mean?

https://ardupilot.org/rover/docs/common-dshot.html
In the screenshot below I understand, that MOT_PWM_TYPE is the main parameter to select DShot.
Optionally I “can” overwride with SERVO_BLH_MASK AND SERVO_BLH_OTYPE … so you are right.
Maybe I set BLH_MASK some time ago, because if I set BLH_MASK = 0 it complains:
“DSHOT needs SERVO_BLH_AUTO or _MASK”
But in MP there is no parameter SERVO_BLH_AUTO (at least not for Rover).

So maybe it is just my problem of understanding 3 parameter which do somehow the same but do not work in some combination and work different in Rover and Copter and were working until rover-4.1.0-beta1 :slight_smile:

Apropos BDShot …

RCOut: DS600:1-2 PWM:3-12 NeoP:13
MatekH743-bds 004D0023 30305106 3330373
ChibiOS: 08877972
ArduRover V4.1.0-beta3 (c02be7ba)

yes, I was using “MatekH743-bdshot” with this parameter: 20210524-Traktor.H743-410b3-BDShot.param (18.2 KB)

Ok, the lack of auto is the problem here. bdshot will not work without auto and rover does not have that (it should because auto controls other things). I’ll have a think about what the right solution is here.

As I already wrote in the rover 4.1.0-beta-4 discussion …
BDshot is now working with Matek H743. I get the RPM reading in esc1_rpm.
I had to activate DShot for all outputs (S1+S2) of the timer group, even if only one ESC is connected.
grafik

Yeah unless you lower BRD_PWM_COUNT you must mark all channels in a timer group with the right output otherwise MOT_PWM_TYPE will take effect on the channels you have not marked

Somehow this should get into the documentation. Several posts now where people have said they have to set _BLH_MASK and _BLH_OTYPE when it’s generally not required.

1 Like

Yes, we’ve definitely got to improve the DShot and BLHeli setup wiki pages… they’re really not easy to follow I think.