Possible to set a combination of Dshot and PWM for ESCs?


we want to use 2 BLHeli_32 ESCs and 2 other esc.
It would be great to drive the BL_heli ones with Dshot (and telemetry on separate cable, BDshot is a bit too much to start with) while having the other 2 esc on conventional PWM.

I only found MOT_PWM_TYPE that probably changes all motors.

Is there another way? Or an easy fix in the source code for this? (We compile ourselves anyways)
I already know that the Dshot pins have to be in one separate Pin-group, that would be possible.


Or is there another way to get telemetry from BLheli32 with PWM?

You can still get telemetry from a BLHeli32 ESC over the separate telemetry wire when using PWM to control it. See BLHeli32 and BLHeli_S ESCs β€” Plane documentation

You should be able to set MOT_PWM_TYPE to 0 (see PWM, OneShot and OneShot125 ESCs β€” Plane documentation for tuning the PWM ESC parameters), then set SERVO_BLH_MASK to your two BLHeli_32 ESCs, then set SERVO_BLH_OTYPE to the appropriate Dshot speed for those two.

This is described at DShot ESCs β€” Plane documentation as follows:

On Plane, all other motors use Normal (PWM) protocol. However, in Plane, any motor, like the traditional fixed wing’s main motor or Dual Motor Tailsitters (SERVOx_FUNCTION = 70 throttle, 73 throttle left and / or 74 throttle right), can be changed to a protocol other than PWM using the SERVO_BLH_MASK parameter to specify the output number of the motor together with the SERVO_BLH_OTYPE parameter to select the protocol of these motors independently of that selected for the copter function motors.

See also the docs on mixing ESCs: DShot ESCs β€” Plane documentation

1 Like

Thanks a lot!

Servo_blh_mask seems to be perfect. No idea how i missed that. But i mainly looked in the Dshot section not in the standard output documentation. I’m currently building up a small teststand. I will then test this and report back.