Tiltrotor support for plane

I haven’t built APM code so if you could provide a build that would be great! Once I test the CL-84 using the stock controller with my new SimonK firmware ESCs, I’ll be ready to drop in a Pixhawk and M8N module. After a simple hover test in my backyard, I suspect that the “drunken sailor” effect is gone from using the stock ESCs.

My understanding of my FireFLY6 transition is that during the transition, the command is locked out from reversing until the transition has completed. In this manner, you never change modes in mid-transition. However, it seems that the CL-84 could only provide this lockout if we ran the servo control through the Pixhawk. Let me know your thoughts on this technique versus the current setup. I will test the CL-84 transition control on the bench tomorrow.

I was definitely planning on running the tilt servo control through the pixhawk. We have to do that for fully autonomous takeoff.
I’ll build a fw for you once I’ve got the option of supporting the retract-style servos. Should be in the next few days.
Cheers, Tridge


Sounds good, thanks!

This first test flight in my backyard simply shows that the the new SimonK ESCs work just fine using the stock CL-84 controller. The lean to the right wing was the CL-84 compensating for a slight breeze. I broke my stock tail prop putting it back on so I replaced it with a much stronger Aero-naut 6.5x4 carbon electric prop. No drilling required. Also, a good replacement for the stock main props is the APC Multi-Rotor Bundle 10x4.5 four prop set (LP 10045MR-B4). I bought a set but haven’t broken a main prop yet.

After a flight test, I’ll replace the stock controller with a Pixhawk and M8N module. Just adding a BARO will provide a great improvement over the stock performance. Adding VTOL control from APM: Plane will make the CL-84 and awesome entry level VTOL!


I tested the transition control on the CL-84. It takes about 7 seconds to complete a transition from hover to forward flight. Same time for the other direction. The stock transition control allows it to change directions at any time during the transition. I think we want to disable that through the Pixhawk.

is the 7 seconds for full transition, or just the time it takes the wing to rotate? I didn’t measure mine accurately (just counted "ONE…TWO…THREE…FOUR), but I thought it was about 4 seconds.
What we need for ArduPilot is the time it takes the servo to move through its full range when its triggered.

I was using the transition servo noise from start to finish for my 7 second count, not just the wing travel.

Hi Tridge,

I see that Arduplane v3.6.0 Beta 1 is out from looking at the Release Notes. Does this contain your build changes for the retract-style transition servo?

My Pixhawk v2.4.8 clone from eBay arrived. It’s a great deal for only $65 shipped.

I made a quick flight test video to show the improvement in the CL-84 transitions when using ESCs with SimonK firmware. The clouds created some auto-focus issues with the Panasonic GH4 camera, and, the zoom amplified the camera shaking, but you can still see the relatively smooth transitions. The SimonK ESCs also eliminated the audible whine of the stock ESCs.

Hi Greg,
I haven’t implemented the code for retract type servos yet. I did start modelling it in a flight simulator with ArduPilot in control and it was really unstable during transition. I need to look into why it is so unstable and fix it.
Sorry it is taking so long. My priority right now is the 3.6.0beta2 release and I probably won’t get to the CL-84 servo code for a few days more at least.
Cheers, Tridge

Thanks for the update. No problem on the delay. Our summer is just beginning here so we have a good five months of flying weather ahead. After our Memorial Day weekend is over, I can start mounting the Pixhawk, GPS, and Power Module. I added a steerable nose wheel to mine so I could even try to fly it normal using Arduplane.

Will a “Tailsitter” type plane (elevons only, single motor) be supported anytime in the future (or now)?

It is mechanically and electronically the most simple of the potential VTOL’s but would it be a challenge in getting it to work properly?

This is my last test of the CL-84 before changing the stock controller to a Pixhawk loaded with new Tiltrotor firmware for APM:Plane. The stock ESCs were replaced with faster SimonK ESCs which made the transitions more stable and predictable. There was a fair amount of wind during this test which shows that the CL-84 can hover with control in breezes up to 10mph.

What a fun design!


Edit: Apparently, new users are limited to only 4 replies in a topic so I am forced to edit my 4th reply to add information.

I started my conversion to APM on the CL-84 by removing the stock flight controller and mounting the Pixhawk, GPS, PM, and support parts. I connected my Pixhawk to the FrSky X8R via a single SBUS connection.

I realized that we still need a connection diagram for the following outputs.

  • Left main motor CCW
  • Right main motor CW
  • Tail motor CCW
  • Tail motor tilt servo (Yaw)
  • Hover/Forward Flight mode servo
  • Ailerons
  • Elevator

Edit #2: This forum is pretty lame. How do you become something other than a new user if you can’t have more than 4 posts?

I hovered my CL-84 in the backyard using APM:Copter v3.3.3 firmware. It needs some pitch tuning because It’s not a normal tricopter with 3 equal motors but it works first try! What a hoot!

Edit #3: Hover testing with APM:Copter

I loaded copter v3.3.3 on my Pixhawk just to play around with how it might Loiter better than the stock controller. I’ve changed some PIDs and got it to work in Stabilize and Alt. Hold modes in light wind. Loiter will be next.

In addition to PID changes, I got a tip that these settings are needed for manual yaw control. Unlike the original controller, the manual yaw control is not active until the motors are running.

ATC_SLEW_YAW = 18000
ATC_ACCEL_Y_MAX = 100000

Edit #4: Pixhawk Installation in CL-84

Edit #5: ARMing LED Indication

There doesn’t seem to be a way to drive the ARMing LED in Pixhawk like in APM 2.x. Maybe you can add an AUX output to drive the ARMing LED of the CL-84.

Edit #6: Initial Testing with Copter v3.3.3

While waiting for the APM Plane tiltrotor code to be enhanced for the CL-84 retract-style transition servo, I decided to play around with APM Copter v3.3.3 on my newly installed Pixhawk. Photos at the beginning of the video show component placement and you can see my telemetry unit is mounted underneath the fuselage.
My current PID settings allow it to work in calm conditions but it doesn’t like much wind so I will continue to investigate. It may be good enough to try an Auto-Tune at this point but first I want to check the Throttle-Mid and Vibration readings. Fun stuff!


Edit #7: Test #2 with Copter v3.3.3

I have my PIDs tuned better for wind now. I’ll wait for the new APM Plane code to be ready for the CL-84.



Testing my new posting capability, thanks to Jani.

Hi Tridge,

My CL-84 is in a holding pattern ready for new firmware. Even if you don’t have the transition working perfectly, if you could make a build that would allow me to test the proper connections and setup for a tricopter, it would be a great start. I could simply play with hover setups and verify (on the ground) that forward flight mode is set up properly.


Hi Greg,
I’ve now implemented support for tiltrotors with “binary” servos (ie. retract servos). It has only had very basic testing in simulation, so I don’t suggest you fly it yet, but it would be great if you could start doing ground tests with props off.
The code is here:
and I have put a build for Pixhawk here:
Here is a quick guide to the setup:
connect channels as follows:

  • chan1: aileron
  • chan2: elevator
  • chan5: front right motor
  • chan6: front left motor
  • chan8: rear motor
  • chan11: rear motor tilt servo
  • chan12: front motors tilt servo

set the following parameters:

  • Q_ENABLE=1
  • Q_TILT_RATE=22.5
  • RC12_FUNCTION=41

Setup the Q_A_* params to match the ArduCopter parms for master tricopter ATC_*

The Q_TILT_RATE of 22.5 assumes that the tilt servo takes 4 seconds to go from all the way up to all the way forward. Please time that carefully by flicking between QSTABILIZE and FBWA and seeing exactly how much time it takes for the servo to rotate fully. The 22.5 value is 90/4 (so 90 degrees in 4 seconds).

For ground testing, see how the motors react as you move from QSTABILIZE, QHOVER and FBWA modes.

Cheers, Tridge


Thanks for the code and setup information. I loaded it up and have some initial observations below. My biggest surprise is the automatic transitions based on flight mode. This feature is a shift in convention from my Taranis slider control used on the FireFLY6 and stock CL-84. I need to think about it some more since the QuadPlane implementation has specific flights modes for copter and plane. Fun stuff!

Here is the good stuff:

  1. Aileron and Elevator control properly with R/C sticks
  2. Aileron and Elevator compensate properly with plane movements
  3. Wing servo transitions properly between flight modes

Here is the odd stuff:

  1. Why is Flight Mode on Ch.5 for Copter and Ch.8 for Plane?
  2. Transitions take 6 seconds, not 4 seconds
  3. I lost my Copter v3.3.3 calibrations and now get Bad AHRS messages
  4. ACC Calibrations fail but were fine on Copter v3.3.3
  5. Can not ARM motors in Q modes due to errors above
  6. Motors don’t shut off in FBWA mode

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)