4+1 VTOL: NO hover, NO increase in VTOL RPM above 50% of throttle stick

Hello to the community,

I have the following setup in a VTOL 4+1 plane with takeoff mass of 7.5 kg.

4 VTOL motors: Sunnysky 3515S 400KV with EOLO 16X6 props.

1 pusher motor: Sunnysky V4006 320KV with folding 17X7 prop

VTOL ESC: T-motor F55A PROII 4in1

Battery: LiPo 16000mAh 6S 15C

Flight controller: The cube orange with Plane 4.6.3 official (with q parameters enabled)

GCS: Mission planner 1.3.83 build 1.3.9384.38258

Remote controller: Herelink v1.1

VTOL motors are set to ArduPlane positions (9,10,11,12) and physically connected to the cube orange pins (aux1, aux2, aux3, aux4).

I am in the phase of performing an initial hovering test but I face the following problem:

· When I have Q_M_PWM_TYPE set to 0 (Normal) the (vtol) motor test under Setup → Optional Hardware, it seems to performing well with 5% throttle. All motors are starting and moving slowly for 2 seconds at the correct direction. When I try to perform the hover test with QSTABILIZE in an outdoors environment with all preflight procedures successful, the vehicle can ARM naturally by placing Herelink throttle stick to the lower and right position. As I move the throttle up to 50% of its available distance (up to its middle neutral position in other words) the motors increase their rpm. In this state the thrust is not even close to perform a hover. When I try to increase the throttle in the region of 50% to 100%, nothing changes. There is no increase in rpm in the 50% to 100% throttle region. I also noticed that the vehicle can not DISARM by placing the throttle stick in the down and left position. I have to DISARM it manually from the PC’s mission planner.

I thought it was a T-motor F55A PROII 4in1 ESC calibration error so I tried to move from Q_M_PWM_TYPE 0 (normal) to Q_M_PWM_TYPE 4,5&6 which are DShot150, DShot300, & DShot600 modes respectively in order to eliminate the PWM type 0 possible calibration issue.

· With Q_M_PWM_TYPE set to 4 or 5 or 6 (DShot) there is a strange behavior in the (vtol) motor test under Setup → Optional Hardware. Regardless which motor button I press (Test motor A, Test motor B, Test motor C, Test motor D), ALL four motors are spinning simultaneously! Despite this fact, I tried without props in an indoor environment with FORCE ARM to test the motors rpm under QSTABILIZE. The same result. Above to 50% throttle region there is no change in rpm.

Finally a fact that caught my attention and I have to mention is T-motor’s F55A PROII 4in1 LED bulb. This 4in1 ESC has a led in the middle. I have never seen this LED emitting any light! I do not know if this is normal or it is indicating a fault, but I mention it here. Maybe a user of a same type of ESC can tell what this mysterious LED wants to tell by not lighting up. This ESC has never flown before; it is brand new. By the way in this ESC I have isolated (not connected anywhere) the following 4 out of 10 total pins: Bat+, +10V, CURR, TELEM. So, I have connected only the two GND pins and the four (ESC1, ESC2, ESC3, ESC4) pins to the cube orange FC.

param.param (22.6 KB)

I attach you the .param file of my FC.

Thank you for your any contribution in this matter!

Continue with motor test incrementally from 5% to 100% in steps and determine if the RPM is increasing each step.

For Dshot or Bdshot there are several parameters that must be set beyond Q_M_PWM_TYPE. Do you have the Bdshot version of firmware flashed ot the flight controller? Required if you want to use that protocol.

Q_M_THST_HOVER the current value is significantly low for a vehicle with a 7.5 kg takeoff mass. to allow the system to respond across a wider throttle range, you should manually increase this value to .50 (%50) thrust and retest

if continuing with pwm mode, the esc calibration must be performed from scratch using the Q_ESC_CAL parameter, a lack of response above 50% throttle is the most common symptom of an uncalibrated esc

Thank you dkemxr.

The results are:

ESC Protocol: Q_M_PWM_TYPE = 0 (NORMAL):

Behavior: All Correct orientation (CW-CCW), each motor spins individually as it should

RPM: Spin start: 4% , RPM increase stop: 24%

ESC Protocol: Q_M_PWM_TYPE = 4 (DShot150):

Behavior: Not correct orientation on some motors, all four motors spin simultaneously with the press of any one button (A or B or C or D)

RPM: Spin start: 1% , RPM increase stop: 14%

Please can you guide me on what are the other parameters to set Dshot?

Additionally, how to know if I have the Bdshot version of firmware?

Thank you

Provide a link to a .bin flight log.

Hello and thank you for your suggestions.

I tried to re calibrate the T-motor F55A PROII 4in1 ESC with the procedure described with the Q_ESC_CAL = 1 method several times. There is no change in throttle response. I will try the Q_ESC_CAL = 2 today.

I then enabled DSHOT300 in Cube orange by setting:

BRD_IO_DSHOT=1 (DshotFW)

Q_M_PWM_TYPE=5 (DSHOT300)

SERVO_BLH_AUTO=1 (enabled)

SERVO_DSHOT_ESC=1 (BLHeli32/Kiss/AM32) I confirmed my ESC has AM32 firmware AM32 T-Motor G701 2.13

I also set Q_M_THST_HOVER = 0.5 (As suggested)

I now have in Messages: RCOut: PWM:1-8 DS300:9-12 PWM:13-14

My pwm values found to be:

Servo low 1240

Servo high 2166

Servo neutral 1502

I mention that all my other equipment (missionplanner – Herelink) is set to have 1100-1900 pwm values

By enabling DSHOT the max RPM of the vehicle seemed to unlocked to its full potential both in QSTAB mode and in MOTOR TEST.

The problem that persists is that with DHSOT enabled in the motor test the four motors are still spinning simultaneously no matter which button (A,B,C,D) I press. They also spin in wrong directions.

A(1)-> CCW

B(4)-> CW

C(2)-> CW

D(3)-> CW

The same rotation is observed AND in QSTAB mode.

Additionally, in motor test with DSHOT enabled:

· When pressing “TEST ALL MOTORS” ->All motor spin simultaneously-> A “Command was denied by the autopilot appears”-> I hit “OK”-> All motor spin simultaneously-> A “Command was denied by the autopilot appears”-> I hit “OK”-> The procedure stops

· When pressing “Test all in sequence” → All motor spin simultaneously for 2X4=8sec with changes in sound every 2 seconds.

· When hitting “Set motor spin Arm” I receive “Param MOT_SPIN_ARM missing-> Motor test tab freezes in mission planner and the software needs restart for the motor test tab to work again

· When hitting “Set motor spin min” I receive “Param MOT_SPIN_MIN missing-> Motor test tab freezes in mission planner and the software needs restart for the motor test tab to work again

Indeed, MOT_SPIN_ARM and MOT_SPIN_MIN are missing in full parameter list maybe because I have Q enabled. Instead of those variables though, I have the following

Q_M_SPIN_ARM = 0.1 (LOW)

Q_M_SPIN_MIN = 0.15 (DEFAULT)

Q_M_SPIN_MAX = 0.95 (DEFAULT)

Is there a way for the motor test to work correctly with DSHOT or I have to find a way to unleash full RPM in PWM mode?

Dear dkemxr, i pdovide you a log i recorded using DSHOT protocol.

2026-01-20 20-19-04.bin

It includes the following procedures:

Throttle increasing and decreasing in QSTAB.

Motor tests A,B,C,D.

I do not think it is normal for the VTOL motors to spin simultaneously when using DSHOT. Maybe it is a bug?

Set these parameters:
Q_M_PWM_TYPE,6
SERVO_BLH_MASK,3840
SERVO_DSHOT_RATE,2

Have you connected to the ESC Configurator for AM32 and set the motor kV?

Dear, dkemxr

I set:

Q_M_PWM_TYPE,6

SERVO_BLH_MASK,3840

SERVO_DSHOT_RATE,2

Also, I rechecked AM32. It already has KV=380 (Actually it is 400 but I can’t set it precisely due to the nature of the sliding bar which has increments of 40 I think)

Same result.

I can unleash full RPM in QHOVER with DShot.

Motor test spins all motors simultaneously regardless of the button pressed. Also, in motor test full RPM is encountered when setting 100%.

Motor direction with DShot is corrected. Previous reports of incorrect motor direction with Dshot, were due to a false connection on motor cables.

Is it safe to fly with motor test spinning all motors simultaneously?

Should I report it somewhere as a bug or should I find a way to correct this?

Thank you sir for your help

I enabled SERVO_BLH_DEBUG to perform a test.

Using SERVO_BLH_TEST I got the following messages:

MOTOR 1

22/1/2026 5:24:41 μμ : ESC: Test FAILED

22/1/2026 5:24:41 μμ : ESC: short read

22/1/2026 5:24:41 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:24:41 μμ : ESC: BL_ConnectEx 0/4 at 8

22/1/2026 5:24:41 μμ : ESC: short read

22/1/2026 5:24:41 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:24:41 μμ : ESC: BL_ConnectEx 0/4 at 8

22/1/2026 5:24:41 μμ : ESC: short read

22/1/2026 5:24:41 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:24:41 μμ : ESC: BL_ConnectEx 0/4 at 8

22/1/2026 5:24:41 μμ : ESC: short read

22/1/2026 5:24:41 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:24:41 μμ : ESC: BL_ConnectEx 0/4 at 8

22/1/2026 5:24:41 μμ : ESC: short read

22/1/2026 5:24:41 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:24:41 μμ : ESC: BL_ConnectEx 0/4 at 8

22/1/2026 5:24:41 μμ : ESC: Running test on channel 0

MOTOR2

22/1/2026 5:28:22 μμ : ESC: Test FAILED

22/1/2026 5:28:22 μμ : ESC: short read

22/1/2026 5:28:22 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:28:22 μμ : ESC: BL_ConnectEx 1/4 at 9

22/1/2026 5:28:22 μμ : ESC: short read

22/1/2026 5:28:22 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:28:22 μμ : ESC: BL_ConnectEx 1/4 at 9

22/1/2026 5:28:22 μμ : ESC: short read

22/1/2026 5:28:22 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:28:22 μμ : ESC: BL_ConnectEx 1/4 at 9

22/1/2026 5:28:22 μμ : ESC: short read

22/1/2026 5:28:22 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:28:22 μμ : ESC: BL_ConnectEx 1/4 at 9

22/1/2026 5:28:22 μμ : ESC: short read

22/1/2026 5:28:22 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:28:22 μμ : ESC: BL_ConnectEx 1/4 at 9

22/1/2026 5:28:22 μμ : ESC: Running test on channel 1

MOTOR3

22/1/2026 5:29:58 μμ : ESC: Test FAILED

22/1/2026 5:29:58 μμ : ESC: short read

22/1/2026 5:29:58 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:29:58 μμ : ESC: BL_ConnectEx 2/4 at 10

22/1/2026 5:29:58 μμ : ESC: short read

22/1/2026 5:29:58 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:29:58 μμ : ESC: BL_ConnectEx 2/4 at 10

22/1/2026 5:29:58 μμ : ESC: short read

22/1/2026 5:29:58 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:29:58 μμ : ESC: BL_ConnectEx 2/4 at 10

22/1/2026 5:29:58 μμ : ESC: short read

22/1/2026 5:29:58 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:29:58 μμ : ESC: BL_ConnectEx 2/4 at 10

22/1/2026 5:29:58 μμ : ESC: short read

22/1/2026 5:29:58 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:29:58 μμ : ESC: BL_ConnectEx 2/4 at 10

22/1/2026 5:29:58 μμ : ESC: Running test on channel 2

MOTOR4

22/1/2026 5:31:00 μμ : ESC: Test FAILED

22/1/2026 5:31:00 μμ : ESC: short read

22/1/2026 5:31:00 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:31:00 μμ : ESC: BL_ConnectEx 3/4 at 11

22/1/2026 5:31:00 μμ : ESC: short read

22/1/2026 5:31:00 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:31:00 μμ : ESC: BL_ConnectEx 3/4 at 11

22/1/2026 5:31:00 μμ : ESC: short read

22/1/2026 5:31:00 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:31:00 μμ : ESC: BL_ConnectEx 3/4 at 11

22/1/2026 5:31:00 μμ : ESC: short read

22/1/2026 5:31:00 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:31:00 μμ : ESC: BL_ConnectEx 3/4 at 11

22/1/2026 5:31:00 μμ : ESC: short read

22/1/2026 5:31:00 μμ : ESC: BL_ReadBuf 8 → 0

22/1/2026 5:31:00 μμ : ESC: BL_ConnectEx 3/4 at 11

22/1/2026 5:31:00 μμ : ESC: Running test on channel 3

[SOLVED] For future reference:

VTOL motors spinning simultaneously in Setup->Optional hardware->motor test using DShot protocol is solved.

Short story: Instead of using 1100-1900 Values use 1000-2000. Use 1000-2000 in full parameter list:

RC9,10,11,12

SERVO9,10,11,12

Q_M_PWM_MIN (1000)

Q_M_PWM_MAX (2000)

Also, in AM32 firmware

Long story:

Used 1100-1900 values based on (excellent) painless360 VTOL video tutorials. There, Ben from 3DXR may have used PWM VTOL servos. My 4in1 servo did not want to calibrate in simple PWM so I switched to DShot and left all the values at 1100-1900.

Additionally, I had to fix the ESC by upgrading the AM32 firmware from v2.13 to v.2.20. After my struggle I advise you all to always update the firmware prior to doing anything. I did not have to update its bootloader though. Updating ESC bootloader is a riskier procedure which may lead to bricking your ESC.

Dshot passthrough via cube orange could not update ESC firmware. Tried any possible combination of browsers, webpages (am32.ca, esc-configurator), even multiple versions of windows AM32 standalone software.

I thought I had to direct connect the ESC with PC to give it a try. I Used my Arduino UNO. Uploading the necessary code to Arduino UNO with BLHeli32 did not work. I had to upload the necessary code to Arduino UNO with Arduino IDE.

After that I could finally manage to upload v2.20 firmware to one by one of the 4 individual ESCS packed in the 4in1 ESC. I have to mention that during the flashing procedure the ESC LED bulb flashed but in a very very low brightness. You had to look at it very closely to understand that it illuminates. Additionally, I have to mention that after completing each ESC flashing, a message of completion appeared, followed by a message of failure. In reality the failure message was false. The flashing completed successfully.

Now the aircraft can unleash full RPM in QSTABILIZE mode and can finally perform motor test successfully.

What does not work:

TEST ALL MOTORS gives the same errors. (Test all in sequence works great)

SERVO_BLH_TEST

I would not bother with these two functions anymore.