Tiltrotor support for plane

Hi Greg,

The basic idea of a flight mode in ArduPilot is that changing flight mode changes the way the pilot interacts with the aircraft. So when you switch from a fixed wing stabilised mode to a hovering mode then the throttle stick changes from forward thrust control to vertical thrust control. That makes it a different flight mode.
I find this works extremely well but I do understand it is different from how some other systems handle VTOL transitions.

In plane it is settable. Just set FLTMODE_CH to 5 and it will be on channel 5. It defaults to 8 for historical reasons that go back to the APM1. The APM1 had hardware failsafe passthrough tied to channel 8 that only worked on fixed wing, so copter used a different channel.

ok, then you need to set Q_TILT_RATE to 15

you need to either re-do the accel calibrations or manually copy the calibrations over. Same for compass calibration.

The accel and compass calibrations are the same in copter and plane. I’m not aware of changes since copter v3.3.3 that would cause it to fail now and pass previously. If you persistently can’t get it to calibrate then give me a tlog showing the failed attempt and I can see if I can spot a reason.

for bench testing purposes you could disable the arming checks (set ARMING_CHECK=0) but please don’t try and fly it with arming checks disabled.

I’ve found a bug that caused the two front motors to always run at the Q_M_SPIN_ARM throttle when in FBWA. I’m guessing that is what you are seeing. I’ve put a new test2 firmware up that fixes that, please check that all motors now stop at zero throttle in FBWA.
also check:

  • that you have a non-zero RC3_DZ
  • that channel 3 min on your transmitter matches RC3_MIN
    Another thing to understand is Q_ASSIST_SPEED. That is a airspeed below which the VTOL motors will provide assistance even in FBWA mode. I suggest you do the first flight and ground testing with that zero. Once you have more experience with the quadplane code you could set a non-zero value. I normally fly with Q_ASSIST_SPEED a bit above the stall speed as it allows me to slow down in FBWA to any speed I like, even completely stopped, while retaining throttle mapped to forward thrust. That won’t interact well at the moment with the binary nature of the CL84, but we may be able to find a way to make it work well later.
    Apart from the basic tests you have done, please perform the following tests:
  • with props off, test it in QHOVER and QSTABILIZE modes and ensure it stabilises as a tricopter. Check roll, pitch and yaw.
  • test that in FBWA mode you have good throttle control and that the rear motor does not spin
  • while in QHOVER at half throttle (so aircraft is stabilizing) switch to FBWA mode. The fwd motors should start to tilt. As they tilt the fwd motor throttle will increase and rear motor will decrease (to maintain pitch). As soon as the motor tilt is all the way forward the rear motor should stop and you should then have fwd throttle control
  • while in FBWA mode switch to QHOVER. The motors should start to tilt up. As soon as they are tilted up even a little the rear motor should start, initially at very low throttle. It should smoothly increase and the fwd motors decrease as the tilt goes up
    Another critical parameter is Q_TILT_MAX. This is the tilt angle of the fwd motors beyond which the fwd motors no longer contribute to roll control. The right value for that is very dependent on the aerodynamics of the airframe. The default is 45, but it may be you need a smaller or larger value. We’ll only find out by flying it.

Hi Greg,
I’ve been doing some more testing with a tiltwing in RealFlight and I’ve found the main problem is with the transition from forward flight to hover. For example, say you are flying in FBWA and transition to QHOVER. The problem is that the code can’t compensate fully for the pitching moment caused by the tilted wing at high speed. It can cope with the reduction in pitch moment from the forward motors being tilted, so when I test with a tricopter tiltrotor that doesn’t tilt its wing it works really well. When the wing also tilts then that causes a large pitch up moment proportional to airspeed, and for the simulator I have setup it doesn’t have enough thrust from the tail rotor to prevent the plane pitching up hard.
What I don’t know is if in the CL84 this is a problem. I’d certainly want to do the first transitions from fixed wing to hover with plenty of height above the ground to give time to recover, plus at as low airspeed as possible to reduce that pitching moment.
Cheers, Tridge

Hi Tridge,
Thanks for the new test code and list of things to test. I should get to play with it today.

I have experienced a difference in the transitions from forward flight to hover in the CL-84 as compared to the FireFLY6 with AvA. The FireFLY6 transitions are most elegant and automated with their new AvA and Wind Assist features. The FF6 transitions are always done in Alt. Hold modes. This would correspond to QHOVER and FBWB modes in plane. You simply move the left slider on the Taranis to change the FF6 from forward flight to copter-like Alt. Hold mode.

On the CL-84, I had it set up with the same left slider controlling the flight mode. The audibles from Amber’s voice are a real help here at times when you lose your wits from flying many different models. Transitions from hover to forward flight were easy and forgiving. However, when transitioning from forward flight back to hover, it worked best when you had the proper setup as shown in my videos. SimonK ESCs worked considerably better than the stock ESCs. I would slow the CL-84 down in speed so it was just above stall speed and flip the left slider while facing into the wind. The tilted wing of the CL-84 has much more resistance to wind than the FF6 tilt rotor design. I have flown the CL-84 in enough wind that I could not hover land it so I needed to land as a normal plane in forward flight mode. The FF6 also has more power to hover with its equal Y6 motor configuration.

My initial testing for the CL-84 using copter v3.3.3 was quite fun to see it Loiter. I was also surprised to see that my Throttle MID was near 500 as I thought it would be underpowered.

1 Like


I tested the ArduPlane-v2-CL84-test2.px4 firmware. Here are the results. I have two .bin log files from the testing but they are too large for uploading to this forum. If you really want them, I can post them in DIY Drones or RCG. Note that I disabled any arming checks.

Here is the good stuff:

  1. ACC Calibration was successful, not sure why it wasn’t yesterday but I had tried 5 times
  2. QStabilize, QHover, and QLoiter seem to compensate motors properly
  3. RC3_DZ was 30
  4. The motors shut off properly after calibrating the Radio, now RC3_MIN is 982 (unless a transition was done)
  5. In FBWA mode, throttle control was good and rear motor did not spin (unless a transition was done)

Here is the odd stuff:

  1. Could not disarm using yaw stick once armed by yaw stick (before or after a transition)
  2. After a transition, motors make a weird popping noise and seem uncontrollable
  3. After a transition, I can no longer shut off the motors
1 Like

Greg, do you have ARMING_RUDDER = 2?

1 Like

Good catch, my ARMING_RUDDER is set to 1. I am used to copter so plane is new to me…thanks!

I attached my param file…
CL84withAPMplane1.param (13.2 KB)

Hi Greg,

as iskess says, you need RUDDER_ARMING=2. The reason it is disabled by default is that full left rudder and zero throttle is a perfectly valid flight input in fixed wing.

after what sort of transition? From what mode to what mode? if you can get a DF log of this that would be appreciated

again, what sort of transition, and how are you trying to shut off the motors?
Cheers, Tridge

Happy to be able to help you Greg, your contributions to the community over at RCG has been a tremendous help to countless hobbyists.

@tridge, I don’t want to hijack this thread, but I was hoping you could reply to a few of the Quadplane questions embedded in my recent post. Sorry it’s so verbose, the questions are in bold.


Thank you so much for your valuable time.

1 Like


The maximum files size upload on this forum is only 3meg so I hosted the log (.bin) files below. One is 8.8meg and the other 6.4meg.

Here is how I currently have my Flight Modes set up. I haven’t used QRTL so I am switching between the first 4 modes. From any Q mode, switching to FBWA mode causes the problems; motor popping noises and I can no longer shut off the motors with the throttle all the way down. The same issue happens in reverse order. My use of the term “transition” is from a Q mode to FBWA or back…so basically from plane to copter or copter to plane.

Edit: Here is more detail on the mode change issue.
If I go into FBWA mode before arming, I can arm the CL-84 and the FBWA mode appears to work fine.
If I disarm in FBWA mode and change to QStabilize mode, I can arm in QStabilize mode and it appears to work fine.
The issue starts when I am already armed and try to change modes from QStabilize to FBWA or reverse. Then the motors start popping in FBWA mode and I cannot turn them off with minimum throttle. When in this odd mode, I can no longer disarm and need to power cycle the CL-84.

yes, you’re right I haven’t spent enough time responding to help requests. I’ll try to get some done today.


I’ve got 3 of the Aero’s I can setup in this manner, plus 1 Voltanix Ranger EX which someone has already done. This is amazing!!!

Great work!

Hi all, this is fascinating progress. I would like to do my part to help.
I would like to build a test airframe for this. I would rather just tilt-rotor rather than tilt wing.
I was thinking of designing and building an airframe that can be either Tri or Quad, (it’s quad I’m particularly interested in).
Anyway I will build whatever setup will help the most for testing this firmware. So what would you like?


Hi Anthony,

Welcome to the tiltrotor support for plane thread. Choosing a frame type is a tough call so maybe Tridge will have some suggestions. I have the BirdsEyeView Aerobotics FireFLY6 which is a Y6 tricopter, tiltrotor, flying wing. The AvA firmware works fantastic on a single Pixhawk, however, the entry cost of around $1500 is quite high for many hobbyists. Further, I don’t want to test new firmware on the expensive frame that already works great. Here is one of my FireFLY6 videos.
FireFLY6 Test Flight 2

The CL-84 from HK is another rare VTOL ARF but it is much lower in cost and capability. Hopefully, the market will open up with some additional designs for those hobbyists that don’t have the skills (or desire) to build there own model. I tested it well in stock form and again using Copter v3.3.3 so it’s a good candidate for the new tiltrotor/tiltwing support.

My current plans also include converting my Bix3 ARF APM plane setup to a QuadPlane. It looks to be a simple conversion as it already has a Pixhawk in it.

I think your choice of going for a tiltrotor instead of a tiltwing is a good one. Although a scale model, the tiltwing CL-84 is like a kite in wind when hovering as compared to the tiltrotor FireFLY6 design. If you choose an inexpensive frame that you can modify, you may be able to leverage from the FireFLY6 spares like the transition kit or motor mount kit. Good luck!

I did a test hover with props on in QStabilize mode after changing my PIDs to values similar to the ones I settled on for my Copter v3.3.3 testing. It worked quite nicely so I think they are close. The first PID image below is from my Copter v3.3.3 testing and the next two images are my tiltrotor code in Plane as the copter settings appear as Q_. Note that Q_A_RAT_YAW_FILT was also changed from 5 to 20. Q_A_SLEW_YAW was ok at 18000 and Q_A_ACCEL_Y_MAX was ok at 100000.

One new issue I saw was that I could not disarm in QStabilize mode using the left yaw stick even with ARMING_RUDDER set to 2.

Hi Greg,
Thanks for your reply. For my use eventually I wish to implement into a larger 10kg ish frame so a quad would be needed.
Meanwhile, I wish to build anything that will help the development of the firmware. I just ordered two Pixhawks for this as I think I should build two airframes that would help in the development. One Tri and one Quad. (trying to cover most configurations builds general hobbyists would likely build).
As for the components this is not an issue as we manufacture all our parts in house. Perhaps if we designed a nice tilt mechanism we should make it available to the community.
Anyway the point is, I will build whatever would be most helpful to the development.
Bix3 yep that would make a good test bench. Actually I have some Rangers on the shelf. I bit heavier but would lend themselves to this.
I agree tilt wing like the CL-84 is a flying kite. Well could quite quickly become a kite.

I’ve created a support thread for APM QuadPlane, Tiltrotor, and Tiltwing projects on RCG. Feel free to add your knowledge, projects, and photos in the link below. The intent is to help others by localizing links in a forum that can support large amounts of information. It is not meant as a substitute for development.

APM: QuadPlane, Tiltrotor, and Tiltwing

How can I plan an auto approach without a vertical descent, (or a very short one)? I’d like to plan an approach path with a 1:1 (45 deg) glide path to take advantage of the headwind and conserve the VTOL battery power.
As it is now, the plane tries to arrive over the landing point and lands vertically straight down. This seems like a riskier approach than having some airspeed.
What if I set a DO_SET_SPEED below Q_ASSIST prior to the Land WP. Would that force the quad to come to life which would allow a steep descent path?

1 Like


Simply add some waypoints along your final leg to home and lower the altitude setting by 10m on each one. Alternatively, you can perform Loiter circles while lowering the altitude when the altitude setting is where you want to end up. The plane will gradually descend over x circles.

1 Like

Thanks Greg but I’m wanting to create a steep approach that only a VTOL could do. If I gradually descend or do loiter circles it defeats the point. I want to be able to clear the proverbial FAA 50 foot obstacle at say 25m and land the same distance upwind of it.

Maybe I need to force a transition to VTOL mode at the WP over the obstacle, then have it fly forward as a copter to a point 5m above the LAND point. If I have Q_VFWD_GAIN >1, then it should use the forward motor rather than tilting forward to navigate to the WP ahead, right?
Can I make this work with the given tools, or do we need some new code?

1 Like

I think you will break your plane if you make it too complicated. Simply come in as low as you dare with plane and then transition to copter before the landing point because there will be forward momentum. Once the transition is complete, invoke RTL.

You can see this demonstrated on my stock CL-84 VTOL and FireFLY6 videos. APM will do the same thing under manual control or a mission plan.

1 Like