I have 4x BLHeli_32 ESCs on my quadcopter. They work fine with “Normal” PWM servo output. Each ESC just has its ground and signal connections wired up (telemetry is NOT connected). These servo connectors go to Pixhawk “MAIN” outputs 1-4.
So far so good.
I would like to configure these so I downloaded the BLHeli32 software.
I set MOT_PWM_TYPE to DShot150
I set SERVO_BLH_AUTO to 1
I moved one of the servo connectors that was on “MAIN” 1 to “AUX” 1.
I rebooted the Pixhawk. I ran the BLHeli32 software and it says:
“Rebooting flight controller”
then
“Connection to Flightcontroller failed! Please chek usb/serial Port- und power-connections to the Interface!”
Anyone have any ideas what I am doing wrong? Thank you.
@arduouspilot You have to connect the ESCs to the AUX OUT 1-4 in order to use DSHOT. The Pixhawk Main ports are not DSHOT compatible.
Moreover you have to set the following parameters to get DSHOT and passthrough work on the Pixhawk hardware:
MOT_PWM_TYPE - 4 (DSHOT 150)
SERVO_BLH_OTYPE - 4 (DSHOT 150)
SERVO_BLH_MASK - 3840 (Bit 9,10,11,12 maps aux out 1,2,3,4)
SERVO_BLH_AUTO - 1 (enable blheli pass through)
(SERIAL5_PROTOCOL - 16 (enable esc telemetry))
(BATT2_MONITOR - 9 (read voltage and current from esc telemetry))
SERVO1_FUNCTION - 0 (Disable motor mapping to main ports)
SERVO2_FUNCTION - 0 (Disable)
SERVO3_FUNCTION - 0 (Disable)
SERVO4_FUNCTION - 0 (Disable)
This mapping may be wrong in you setup. It means front right is connected to Servo9 AKA AUX OUT1. You can remap the motors by reconnecting or by changing this numbers. On my Copter it is like this:
You don’t typically need the mask if this is all you are trying to accomplish. If MOT_PWM_TYPE is set to a Dshot protocol on the Pixhawk the Aux outputs will be configured for Dshot.
And the existing Wiki has a decent explanation of the IOMCU and Dshot I think.
I think the problem here as I posted in the other thread is if you don’t have motors assigned to the Aux outputs the Banner message will read all 12 are PWM. So some have set the MOT_PWM_TYPE to Dshot, not assigned a motor to an Aux channel and see the message and think it’s not working. In my test I assigned only one motor to SERVO9 and that’s all it took.
I have similar issue: pass-through not working (ESC not detects), BUT motor test from Mission Planer and BLHeliSuite32 can spin motors.
I’m using PixHawk Lite (FMUv2). RCOut 9-12 is DS150, Ardupilot version is 4.0.7, BLHeli is 32.8 (I may reach ESC and update firmware via Arduino nano).
SERVO*_FUNCTION, MOT_PWM_TYPE SERVO_BLH_AUTO configured like you said.
SERVO_BLH_MASK and SERVO_BLH_OTYPE is no affect.
@Arne-W , @dkemxr ,
I have checked several times that the Passthrough works only if I set SERVO_BLH_MASK to 3840… But the problem is I can not get Telemetry data from each esc. I have tried using SERIAL2_PROTOCOL :16, then connect my Pixhawk4 using USB to PC, and it worked, I got complete Telemetry data from each esc, and also from Batt2_monitor: 9. However when I use radio connection from FC to my notebook, I only get Batt2_Monitor data (total Voltage and total current), But no Telemetry data from ESC !!
Anybody can help?? Tks…