X650 doesn't lift off/tilts

Hello,

I am using the X650 development kit from Holybro. I am using this battery: Battery Hobbydrone Li-ion 6S4P 16000mah 10C XT60 | on Hobbydrone.cz
I am pretty sure I tried all the possible combinations of which propeller is mounted on which motor.

The issue I am facing is:

  1. When I mount the propellers the correct way (curved edge forward the spinning direction), there is no airflow below the propellers, and the drone doesn’t move at all. Also at max throttle the motors (T-motor MN4014 330KV) are getting 76A current based on the bin file, which seems too much, since in specs it says max 11.9A per motor for 15" propeller.
  2. When I switch the CCW and CW propellers, there is airflow under propellers. The drone at ~50% throttle starts lifting, but tilts to the side, and doesn’t lift in a straight line. In some other different combinations of propellers, it also tilts to other sides

Any idea what could be the problem?

Incorrect motor order, rotation direction and prop assembly.

Please follow the documented motor test order procedure in mission planner.

@amilcarlucas All of the motors spin in correct order/rotation according to standard quad X from Ardu pilot. I checked this already and now rechecked again. What do you mean by prop assembly?

The correct motor order is ABCD, not 1 2 3 4
The rotation direction must also be correct.
The propellers must be mounted so that they produce lift when rotating in the direction that their respective motor rotates.

Checked how? With what? Unless you used Mission Planners Motor Test function and understand how it works the skepticism of your claim will remain.

I checked with Mission Planner > SETUP > Optional Hardware > Motor test, that this schema: ardupilot quad x - Google Search matches the drone, both ABCD and 1234 and that the rotation direction of each motor matches CW/CCW. The propellers are mounted based on this. But there is still heavy tilt to the left side.

Hi, I don’t know if you’re still facing this issue but I faced something similar. I will share my solutions here in case anyone else has a problem with the same platform.

My configuration:
X650 ARTF Kit
Pixhawk 6C flight controller on Arducopter v4.5.2
6S 8000mAh battery
Radiomaster TX16S MKII with RP1 Nano on ELRS

My process and symptoms prior to the fix:

  • Performed all necessary initial configurations and setup
  • I tested all motors without props via the mission planner motor test function
  • Tested one motor with a prop with UAS secured, worked fine
  • Took UAS outdoors to prep for first flight, hit approx 50% on thrust stick of R/C and the props sounded like they weren’t speeding up beyond this point
  • I gently pushed the thrust stick all the way to max but the platform didn’t shift (maybe only a little tilting about)

At this point I verified that all motors were spinning in the correct direction, I used motor test to make sure the right motors were being commanded, I did some low power ground tests to verify correct response to roll/pitch commands, all was fine.

I did some more ground testing and did a motor test at increments of 10% - I noticed that after 50% command, the prop sounded like it was saturated (i.e. when I commanded 50%, 60%, 70%, the prop made the exact same sound).

I did some research and came across forums where people had discovered that the X650 had been shipped with incorrectly configured ESCs for the motors.

The diagnosis and the fix:
My understanding is that the supplied ESCs (Tekko32 F4 45A) were not configured to the right parameters for the supplied motors (MN4014 KV330) - the KV and Pole Count values in the ESC configuration were incorrect in my case. I think this then caused the ESCs to saturate their output past a certain point as a protection against something (don’t know the speicifcs sorry!)

To rectify this, you need to download the ESC configuration software tool. These ESCs run on AM32 firmware and you can download the configuration tool on the linked webpage. I followed the ardupilot documentation to configure the ESCs via passthrough for AM32. This did cause me a couple of headaches due to PWM outputs 1-8 and 9-16 being configured differently with regards to DSHOT, but eventually I managed to reconfigure each of the four ESCs:
I set to 340kV as this was nearest option to the actual motor value, and 24 poles on the motor.

After this configuration, I repeated my ground-based motor test by stepping the command by 10% at a time, and before I even got to 50% everything sounded much faster and more powerful. I took the platform out to try and fly it again and it worked beautifully. It’s flying very well now and I’m working my way through all the normal setup and analysis stages before I begin my experimental side of the project.

I hope this helps you or someone else that is having this problem. It seems like a number of x650s have experienced this issue and I wonder what’s gone on. I will be getting in touch with Holybro about this.

1 Like

Hi @RHagg, a QGroundControl user here.
Do you remember how you configured DSHOT?

In order to configure the ESC, from Mission Planner I followed the suggested ardupilot documentation and furthermore I set:

  • SERVO9_FUNCTION to Motor 1 … SERVO12_FUNCTION to Motor 4.
  • DShot150
  • SERVO_DSHOT_ESC to 1

When I plug the battery the ESC is generating a constant beep after power-up, while launching the configuration tool trying to connect to the ESC I got for each motor a message like M1: Did not connect. Have you experienced this issue?

To clarify, my setup uses Pixhawk 6C with the ESCs connected on the I/O processor (I/O PWM OUT connector).
The parameters that I’m using are below, but if you’re connecting to FMU PWM OUT, then your SERVOx_FUNCTION and BRD_IO_DSHOT will be different.

Parameter` Value
BRD_IO_DSHOT 1
MOT_PWM_TYPE 6
SERVO_BLH_OTYPE 0
SERVO_DSHOT_ESC 1
SERVO_DSHOT_RATE 2
SERVO1_FUNCTION 33
SERVO2_FUNCTION 34
SERVO3_FUNCTION 35
SERVO4_FUNCTION 36

If you could provide your parameter file and maybe a description of your setup (which flight controller, how the ESCs are connected), I’d be happy to look through it and see if there’s anything obvious missing!

20251104_x650_params_1.param (17.9 KB)

Thanks for the quick reply.
Attached there are my parameters. I am using the Pixhawk 6X standard v2A with the ESC connected on the four AUX ports as shown in the attached figure. No other peripheral device attached, since it is only to configure the ESC.

Okay thanks, looks okay to me…

I would try setting SERVO_DSHOT_RATE to 2. This improves the regularity of the Dshot communications (though I’m sure I had Dshot working fine before changing this value)

Could you post the message you see during startup from QGroundControl? Should look similar to this one:

This is the message at startup from Mission Planner:

04/11/2025 13:46:10 : PreArm: Motors: Check frame class and type
04/11/2025 13:45:45 : Frame: UNSUPPORTED
04/11/2025 13:45:45 : IMU2: fast hi-res sampling 1.6kHz/3.2kHz
04/11/2025 13:45:45 : IMU1: fast hi-res sampling 1.6kHz/3.2kHz
04/11/2025 13:45:45 : IMU0: fast hi-res sampling 1.6kHz/3.2kHz
04/11/2025 13:45:45 : RCOut: PWM:1-16
04/11/2025 13:45:45 : IOMCU: 410 2003 411FC231
04/11/2025 13:45:45 : Pixhawk6X 001A0035 32335111 34313734
04/11/2025 13:45:45 : ChibiOS: 88b84600
04/11/2025 13:45:45 : ArduCopter V4.6.2 (1ebd4d99)

Configure these:
FRAME_CLASS
MOT_PWM_TYPE,6
SERVO_BLH_MASK

Then look at the RCOut message again.

2 Likes

Hi @dkemxr, thanks for your reply.

This is the ouptut now:

04/11/2025 14:46:03 : Frame: QUAD/X
04/11/2025 14:46:03 : IMU2: fast hi-res sampling 1.6kHz/3.2kHz
04/11/2025 14:46:03 : IMU1: fast hi-res sampling 1.6kHz/3.2kHz
04/11/2025 14:46:03 : IMU0: fast hi-res sampling 1.6kHz/3.2kHz
04/11/2025 14:46:03 : RCOut: PWM:1-8 DS600:9-12 PWM:13-16
04/11/2025 14:46:03 : IOMCU: 410 2003 411FC231
04/11/2025 14:46:03 : Pixhawk6X 001A0035 32335111 34313734
04/11/2025 14:46:03 : ChibiOS: 88b84600
04/11/2025 14:46:03 : ArduCopter V4.6.2 (1ebd4d99)

Atteched the new parameters list.
Not sure about the SERVO_BLH_MASK I enabled from channel 9 to 12 as for the servos, is it correct?

20251104_x650_params_2.param (17.9 KB)

Well there you go.

It is for your Servo output assignments.

Thanks both @RHagg now I am able to configure the ESC using the configurator tool.
The holybro support told me to set motor kv value to 320 or 340, however using the slider I can set 300 or 460. Do you know which is the correct value for the X650?

I set mine to 340. Which configurator are you using? The online AM32 tool has worked well for me.

I set mine to 300 — it works! The X650 takes off after flashing the PX4 firmware.

However, I’ve encountered some minor electrical issues: if I arm too quickly after disabling the kill switch, sometimes one motor doesn’t spin. Also, after landing, even if the vehicle is disarmed, disabling the kill switch causes the motors to spin. Have you ever experienced this issue?

Disable the “Safety” switch entirely, it will just give you trouble and it’s NOT safe to reach in amongst the props.
Using Ardupilot I’ve never had an issue with the motors running when they should not.

BRD_SAFETY_DEFLT,0
BRD_SAFETYOPTION,0