Cannot Calibrate ESCs and Spin Motors Using Transmitter or MP

You still haven’t provided the fm name. Regardless, here are some considerations.

Mismatch for BDShot: If you are trying to use the Pixhawk 6X-bdshot firmware, but the ESCs are not flashed with BDShot-compatible firmware (like BlueJay or specific BLHeli_32 versions) or are not configured for BDShot, then the FC will send BDShot signals that the ESCs don’t understand, resulting in no motor spin.

Incorrect ArduPilot Parameter Configuration: This is the most frequent and firmware-related issue. ArduPilot needs to be explicitly told what kind of signal to send (PWM, DShot150, DShot300, DShot600, BDShot, etc.) on its motor outputs. If this parameter doesn’t match what the ESCs are expecting, they won’t respond correctly.

Recommendation
1 Reflash confirming you have correct firmware.
2 After re-flashing and connecting, go to Config/Tuning > Full Parameter List.

Identify your ESC Protocol:

For DShot/BDShot (Most Likely for 4-in-1s):

Search for SERVO_BLH_OTYPE. Set this to match your ESC’s DShot capability (e.g., 4 for DShot600 is a good starting point if unsure, as many modern ESCs default to this). If you are specifically trying to use BDShot with the pixhawk6x-bdshot firmware, ensure this is set to a BDShot option (6 or 7).

Search for SERVO_BLH_MASK. For a standard quad using Main Out 1-4, set this to 15 (binary 0b00001111).

For PWM (Less Common for 4-in-1s):

Search for MOT_PWM_TYPE. Set to 0 (Normal PWM).

Search for SERVO_OUTPUT_RATE. Set to 400 (for standard 400Hz PWM) or 50 (for 50Hz PWM).

Click “Write Params” to save these changes.

Go through the MP calibration procedure again. Then perform Motor Test.

1 Like