Pixhawk 4, BLHELI_S rev16 ESCs, ArduCopter V3.6.4 - Failure to Calibrate ESCs, Motors will not spin

First, I apologize if this is in the wrong section, I did not see a section under hardware for the Pixhawk 4 or specifically for ESC issues.

I am trying to get to my first flight but am having difficulty calibrating the ESCs. My setup is as follows:

Everything calibrates without issue except the ESCs. In Mission Planner, I can see that the output to the ESCs is correct when I apply throttle on the transmitter. When I try to use the ESC calibration feature, nothing happens. No beeping from the ESCs at all.

I was successful in manual calibration on 3 of the 4 ESCs when I connected them directly to the receiver, bypassing the Pixhawk 4. I believe the 4th is defective and am getting it replaced under warranty. Since manual calibration seems to be working, I think I have some issue happening with the Pixhawk 4. Wiring is as follows (also see images of my setup below):
Pixhawk 4 “FMU PWM Out” --> Power Management Board “FMU-PWM-in” --> Power Management Board “FMU-PWM-out” --> ESC connectors



Any input would be appreciated. I have been struggling with this same issue for the past 2 days now and am nearly out of ideas.

You might need to disable the safety switch, or press it.

I have no issue getting everything to arm. The safety switch is working and I do press it to start the ESC calibration. It goes solid red when I press it and then nothing happens. Also, when I do arm the system (solid green LED, “Armed” showing on MP HUD), none of the motors spin when I apply throttle.

Should I still try to disable the safety switch for calibration? If so, is BRD_SAFETYENABLE the correct parameter to use?

Don’t you use the I/O PWM Out on the FC to the I/O PWM In on the Power board for Pixhawk 4? FMU I/O are the Aux outputs. If it’s like a standard Pixhawk and you want to use the Aux outputs, which is done when using Dshot, you have to assign the motors to those Aux outputs. I don’t have one just looking at the manual…

If you’re using DShot, you need to use the Aux outputs as Dave indicated, and also you don’t need to calibrate.

What esc protocol are you trying to use?



Thank you. I have felt like I was missing something throughout this whole issue diagnosing process. Your comment made me go back to square 1 and reread the manual. I found that I have it connected all wrong. The Pixhawk 4 came with breakouts for the I/O PWM OUT port which I missed when I was unboxing it. As a result, I thought there was nowhere to plug in the ESC connectors if using the I/O. I am going to redo everything now and see how it goes. I will report back with pictures and results.

The ESCs were also giving me issues. They would not connect to any of the BLHELI software, probably because they were connected completely incorrectly. I think once I get it hooked up right my problems will be fixed.

Thank you both for the help.

If you mean via passthrough it should work but you have to set a parameter(s). Check the Wiki here:

To James point you have to decide if you are going to use Dshot or PWM. If Dshot then you need to use those FMU outputs and configure your motor outputs on channels 9-12. If PWM then the I/O outputs will be fine with default channel config. I wonder if those ESC’s are flashed for Dshot though. The HK website says “can be flashed” so it might not work. Worth trying though.

Hello everybody,
I’m in the process of building my first hexa copter. All calibration worked fine but when the engines are powered the problems occurred. They spin normally and the ground station tells me that the copter is armed. No problem so far. Whenever I try to raise my throttle speed several motors stop and others are running at a reduced or higher speed depending on the attempt. My first idea was the esc calibration. However this procedure is not working for me. After starting up with throttle max and power on / off and on again the APM should report me that the esc are in calibration mode. This does not happen. I have a pixhawk 4 and multirotor arducopter soft 3.6.4 running downloaded via QGround control. I was able to perform a first flight in the past but it seems after downloading the default values in the pixhawk and downloading the latest arducopter software that the problems started. I have simonk 30A esc and 2312 920KV brushless engines. The reciever is a X8R connected via SBUS to the pixhawk. The engines are connected to the main 1 till 6 outputs. Radio calibration, accelerometer and compass calibration have been performed without any problem. I have retrieved the full parameter list out of my pixhawk and I think that something is wrong there. Can someone help me? Thanks Peter Belgiumparameter list.param (14.1 KB)

Do you actually have a + type Hexa as your parameter file shows? That’s uncommon, X is typical. FRAME_TYPE parameter.

Dave, I have engine 1 on the top and its labeled with the yellow tag. Left you have then engine 5 and right 4 etc…See pictures in word document

I am likely going to go with DShot, assuming I can get passthrough to work properly.

After all of the diagnosing and then finding my issue here, I have found that one of my ESCs is bad. 3 calibrate without issue, 1 refuses to calibrate (even when I try to do it manually by plugging it directly into the receiver).

So once HobbyKing gets the replacement to me I should be up and running.

Also, when running DShot, is there anything special I need to do setup wise aside from connecting my ESCs to the FMU-PWM-out on the Power Management board?

Peter-OK, then you have it right for a Hex +. Not sure what your problem is.

You need to re-assign the motor outputs to SERVO9_FUNCTION (33) thru SERVO12_FUNCTION (36). Defaults are on 1-4 using the main outs.
Then set MOT_PWM_TYPE to Dshot150 (4)

Not sure what you are talking about. Are these settings in mission planner or were can I set these servo settings. I have 6 main outputs so i think servo9 till 14? I have another idea that popped up last night. I had no problem with my drone before I have bounded my X8R in another way. At first I had my sbus and 8 channels. These 8 channels are the sbus channels. If I would love to use the channels on the X8R for my gimball I have rebounded it with 2 switches, I think you wil know the procedure. After that I had 16 channels were 8 could be used on the X8R itself. My gimball worked fine. After this I haven’t armed my drone anymore and when I did it didn’t work anymore. Do you know if this has something to do with my problem.
Calibrating the ESC should result in a max PWM to the ESC. Do you know the relation between channel 3 ( were the throttle is) and the main outputs on my pixhawk. I think if I will measure with a scope on my PWM outputs they will not change. Is this done via the servo - fucntion? Thanks in advance for your help.

They’re in missionplanner. You also need to set brd_pwm_count to 6, and set relay_pin and relay_pin2 to -1.
Aux 5 & 6 default to being relay pins not motor outputs.

Peter-There are 2 topics going in this thread since you introduced yours and I was responding to Jesse in regards to the Servo outputs.

With the X8R you will get 16 chanells from Sbus (assuming that’s what you selected in hardware setup) and also channels 1-8 on the PWM outputs. This is with no jumpers on Bind. A more tpyical configuration is to have chanells 9-16 on the PWM outputs which is enabled by jumping the signal pins of Chan 1&2 and Chan 3&4 then bind. Refer to your X8R manual for this.

Thanks Dave. I have not yet switched to DShot. I really wanted to get it working before trying to make changes to ESC settings.

I am almost ready for my first flight, but need to switch the direction of two of my motors. I want to do that via changing ESC parameters.

Unfortunately, I cannot get the ESCs to be read by the BLHELI computer software. I have SERVO_BLH_AUTO set to 1, but when I click “read setup” I get an error that says unable to connect to ESC #1.

I also tried using the google chrome blheli-configurator app and when I click “read setup” there, it just says “finished” but nothing else happens and the read, write, and other buttons stay greyed out.

Any ideas on what could be causing that issue?

Which outputs are you on now? This shouldn’t really matter as the “auto” parameter should map them all but just curious. Using BLHelisuite 16 not 32 and you have battery power to the ESC before selecting read setup?

I am on the I/O outputs (1 through 4). I am using “BLHeliSuite” and I do have the battery connected before clicking read setup.