ArduPlane Tailsitter Configuration – Fixed-Wing Mode Not Responding to RC Inputs

1. Aircraft Configuration

I am working with a hybrid VTOL drone that combines a fixed-wing aircraft and quadcopter configuration. The aircraft uses a tailsitter VTOL configuration.

The aircraft has the following characteristics:

  • Hybrid VTOL/fixed-wing configuration.
  • Quadrotor motor arrangement for VTOL operation.
  • The motors are mounted in an angular/tilted rotor configuration rather than being perfectly vertical.
  • The fixed-wing configuration does not use conventional aerodynamic control surfaces such as ailerons, elevator, or rudder.
  • The aircraft uses a full-lift body configuration, meaning the body/airframe itself generates the aerodynamic lift.
  • Control during fixed-wing flight is therefore expected to be achieved primarily through differential motor thrust / motor control, rather than conventional control surfaces.

I have attached an image of the aircraft/motor configuration for reference.

2. ArduPilot Configuration

We are using:

  • Vehicle: ArduPlane
  • Firmware: 4.6.3
  • Firmware Hash: 3fc7011a
  • Configuration: Tailsitter VTOL

For VTOL takeoff, we are currently using:

  • QLOITER
  • QSTABILIZE

Both of these modes are currently working correctly, and the aircraft is able to perform VTOL takeoff and stabilization without major issues.

3. Problem During Transition to Fixed-Wing Mode

The main problem occurs when transitioning from VTOL mode to fixed-wing flight.

When we change the flight mode to:

  • FBWA
  • FBWB

the aircraft does not respond correctly to RC control inputs.

For example, we have tried providing:

  • Roll input
  • Pitch input
  • Yaw input

However, the aircraft does not respond as expected in fixed-wing mode.

Since the aircraft does not have conventional control surfaces, we are expecting the flight controller to control the aircraft through the available motor outputs/differential thrust.

At the moment, this control does not appear to be working correctly in FBWA or FBWB.

4. Unexpected Yaw Behavior

There is also another issue that we noticed during testing.

When the aircraft is in FBWB mode, we are observing a yaw-rate response even when there is no yaw RC input.

In other words, the aircraft appears to be generating yaw-rate commands or yaw motion without an intentional pilot yaw command.

We would like to understand whether this behavior is related to:

  • The tailsitter configuration
  • The motor tilt angle
  • The Q_TRIM_PITCH setting
  • The Q_TAILSIT_ANGLE setting
  • The lack of conventional control surfaces
  • The motor mixing/output configuration
  • Or another ArduPlane parameter/configuration issue.

5. Current Motor Tilt / VTOL Configuration

Because of the physical motor mounting angle, we have had to compensate for the motor orientation during VTOL operation.

For VTOL operation, we currently use:

Q_TRIM_PITCH = -50

The reason for this value is the physical motor tilt angle.

During VTOL takeoff, the motors initially operate according to the VTOL configuration. As the aircraft transitions, the motors are expected to rotate/align toward the fixed-wing thrust direction.

Due to the motor mounting angle, the aircraft naturally tends to pitch upward slightly during the VTOL phase, so Q_TRIM_PITCH was adjusted to compensate for this behavior.

6. Fixed-Wing/Tailsitter Angle Configuration

For the fixed-wing configuration, we are currently using:

Q_TAILSIT_ANGLE = 30

The intention of this setting is to compensate for the physical geometry of the aircraft during the transition to fixed-wing flight.

When the aircraft reaches the fixed-wing orientation, the aircraft should become approximately level.

With the current mechanical configuration, the front motor moves downward during the transition, while the aircraft body rotates toward the normal fixed-wing flight attitude.

Therefore, we selected Q_TAILSIT_ANGLE = 30 based on the required physical orientation of the aircraft.

7. Expected Behavior

Our expected flight sequence is:

  1. Start the aircraft in VTOL configuration.
  2. Perform takeoff using QSTABILIZE or QLOITER.
  3. Once the aircraft is safely airborne, initiate the transition to fixed-wing flight.
  4. The motors should change from the VTOL orientation/thrust configuration toward the fixed-wing configuration.
  5. The aircraft should settle into the correct fixed-wing attitude.
  6. In FBWA or FBWB, the aircraft should respond to pilot RC inputs.
  7. Roll, pitch, and yaw commands should produce the appropriate differential thrust/control response.
  8. There should not be an unexpected yaw-rate command when there is no yaw RC input.

8. Actual Behavior

The current behavior is:

  • QSTABILIZE works correctly.
  • QLOITER works correctly.
  • The aircraft can perform VTOL takeoff.
  • After changing to FBWA or FBWB, the aircraft does not respond correctly to RC inputs.
  • Roll and pitch inputs do not produce the expected aircraft response.
  • Yaw input also does not appear to produce the expected response.
  • In FBWB, we observe yaw-rate behavior even when there is no intentional yaw input.
  • The aircraft has no conventional aileron/elevator/rudder control surfaces, so we need the appropriate motor-based control/mixing strategy for fixed-wing flight.

9. Questions / Assistance Required

We would appreciate guidance on the correct ArduPilot configuration for this type of aircraft.

Specifically, we would like to know:

  1. Can ArduPlane 4.6.3 control a tailsitter fixed-wing aircraft that has no conventional control surfaces and relies entirely on differential motor thrust?

  2. If this configuration is supported, which parameters are required to configure the motor outputs correctly for roll, pitch, and yaw control in FBWA/FBWB?

  3. Is there a specific motor mixing/output configuration required for a quad-style motor arrangement to provide fixed-wing roll, pitch, and yaw control?

  4. Could Q_TRIM_PITCH = -50 be causing incorrect behavior during the transition or after entering fixed-wing mode?

  5. Is Q_TAILSIT_ANGLE = 30 the correct parameter/value for our mechanical configuration, or should this parameter be determined differently based on the actual aircraft geometry?

  6. Could the unexpected yaw-rate behavior in FBWB be caused by incorrect attitude estimation, motor mixing, tailsitter transition configuration, or yaw controller configuration?

  7. Are there any specific parameters that should be checked in the SERVO/MOTOR output functions to ensure that RC roll/pitch/yaw commands are actually being converted into the appropriate differential motor outputs?

  8. Is FBWA/FBWB the correct fixed-wing flight mode for this type of control-surface-less full-lift-body aircraft, or is another ArduPilot configuration/mode required?

10. Flight Test Data

I have also attached the flight test log/data from the aircraft.

The log should provide information about:

  • RC input commands
  • Desired roll/pitch/yaw
  • Actual roll/pitch/yaw
  • Yaw rate
  • Motor outputs
  • Flight-mode changes
  • VTOL-to-fixed-wing transition
  • Attitude response

In particular, we would appreciate it if someone could review the log around the point where the aircraft changes from QSTABILIZE/QLOITER into FBWA/FBWB and determine why the RC inputs are not producing the expected motor/control response.

Summary

The aircraft is a tailsitter hybrid VTOL with a quadrotor motor arrangement and no conventional fixed-wing control surfaces. VTOL operation is currently working well in QSTABILIZE and QLOITER.

The main issue is that after transitioning to FBWA/FBWB, the aircraft does not respond correctly to RC roll, pitch, or yaw commands. Additionally, we observe an unexpected yaw-rate response in FBWB without an intentional yaw input.

The aircraft’s motor geometry is also non-standard because the motors are mounted at an angle. We are currently compensating for this using:

  • Q_TRIM_PITCH = -50
  • Q_TAILSIT_ANGLE = 30

We would like guidance on the correct ArduPlane tailsitter parameters, motor mixing/output functions, and fixed-wing control configuration for this type of full-lift-body aircraft.

The attached aircraft image and flight-test log are provided for reference.

Here is log Link: Log file

“I checked your log, and you did not configure this parameter: Q_TAILSIT_MOTMX.”

Hi @weave_alan
Thank you for your time and response.

But as per the Arducopter document, it’s required only for 4.1 and earlier versions, not for the new one, because I’m using 4.6.3 now. It’s mentioned, “With firmware 4.2 and later, for this configuration, use Q_TAILSIT_ENABLE = 2 which forces QASSIT all the time. Q_TAILSIT_MOTMX is ignored in that case.”

“(firmware 4.1 and earlier) it is possible to have a CopterMotor Tailsitter using no fixed wing control surfaces, ie basically a quadcopter with a wing. For that configuration, all Copter motors would be set to be active in fixed wing modes via Q_TAILSIT_MOTMX and Q_OPTIONS bitmask would have bit 7 (Force QASSIST) set to have QASSIST active in all modes. With firmware 4.2 and later, for this configuration, use Q_TAILSIT_ENABLE = 2 which forces QASSIT all the time. Q_TAILSIT_MOTMX is ignored in that case.”

here is link : Tailsitter Planes — Plane documentation