Trad Heli Collective and aileron coupled in wrong way

Hi All,

I am trying to use pixhawk2.1 and latest Arducopter 3.5.4 firmware on a helicopter.
After RC calibration, when I try to raise the throttle stick, the collective behaves correctly, but when I move the aileron stick, the aileron behaves in a reverse direction.

So I reverse the channel from my RC transmitter setup, in this case, the control of aileron behaves correctly, but the self-stabilising movement of aileron is wrong under stabilise mode (it tries to destabilise more).

Then, I try to reverse the aileron channel in Mission planner setup, aileron behaves normally now, but collective becomes reverse again!

It seems that collective and aileron are coupled in a strange way. Any advice is really appreciated!

Below is photo of my helicopter:

Here is a video that explains the set up of the swashplate servos and collective range. I haven’t done a setup from scratch in quite some time. So I’m not sure how well the set up screens in Mission Planner help. I typically do all of my parameter changes in the Full Parameter List in the Config/Tuning Tab of mission planner. So here are some changes in the parameters from when this video was made to the current software version

Where X is 1, 2 or 3. One thing to note regarding the REVERSED parameter is that 0 is normal and 1 is reversed. In order to get your control directions to work properly, you will have to reverse the swashplate servos as described in the video. You should not do any reversing in your transmitter. Hope this helps. Let me know if you have any other questions.


Sounds to me like you might have a couple servos plugged in wrong. Standing behind the heli, #1 is the LF, #2 the RF, #3 is the rear one. And those all must go to outputs 1, 2 & 3 on the Pixhawk, respectively.

Check to make sure you didn’t get the #1 and #2 servos swapped around.


I think I have similar problem. I am following “downstream FBL” method using 3.6beta firmware.

stick response seems okay. (Stick works okay)
in acro mode, FBL reponse correctly for all directions. (FBL works okay)
in stability mode, pitch swash moves opposite direction (Pixhawk pitch dir is incorrect)

Is there a parameter that I can reverse only for this response?


Did you reverse it in your RC radio? Typically the pitch needs to be reversed in the radio to get it to go the right way for RC calibration.

1 Like

You are right. Elevator should be reversed. Thus I will have to setup the fbl again. I will check the settings again.

Thank you for the advice.

I was able to solve “the elevator reverse problem” by

  • keeping “radio setting direction” in mission planner and change transmitter channel no. 2 reversed.
  • then I changed it back by setting SERVO2_REVSERED=1.

I have a few questions but those are not any more related with the topic.

So, here it is.

  1. I want to match the RC input signal (1094~1934 pwm) to Servo output signal to make everything easier.

  2. I don’t know why but with your 3.5.5 firmware I can not make it to that value.
    It’s always default value. (1000~2000 pwm, mid 1500pwm). How can I solve this problem?

  3. for ch4 which is YAW, the min/max is set same for RC and SERVO but actual pwm output is little bit off.
    RC4 = 1094/1934
    say, SERVO4=1054/1951

With current condition, moving ACRO / STAB couple of times. the swash position is not consistent.
So after mode change, it’s going to be little hard to fly that thing. Since the stick response is not same.

That’s not the way it works. It is not a pass-thru system. The flight controller has control of the output to the servos. The RC input tells it what to do. How much the servo’s move with RC input is scaled in the code and cyclic servo travel is set with the H_COL_xxx and H_CYC_MAX parameters. Servo endpoints are set in the SERVOx_ settings only for the rudder (channel 4) and throttle (channel 8) if you are using a throttle servo. SERVO1-3 stays at 1000 MIN, 2000 MAX and 1500 TRIM no matter what for helicopters.

The only time there is a connection between RC in and SERVO out is if the SERVOx_FUNCTION is set to RC passthru.

1 Like

I think now I matched acro/stab signals.

One thing currently I don’t understand is the tail is not responding to pixhawk movement.
Is there a possible reason? swash works fine now.

Thank you.

When the aircraft is disarmed, the stabilizing part of the control laws is turned off until the aircraft is armed.

1 Like

I found it actually respond but very slowly and delayed in hover position.
But If PX is nose down or nose up more than 45 degree angle then the response is fast.
This is bugging me. Please, give me some pointers? which parameters to change?

Do I need Col_Yaw compensation set to 3.0? or It doesn’t matter since I use external gyro.

STAB mid point is about 5 to 10 pwm higher than ACRO mid point for servo1 and servo2.
It is not very big but Is there a way to remove it? ( I think I will have to change TX mid value. I will try later)

I also figured that I have to power up receiver and PX first until it start to send stabilized signals. And then powering up FBL and then hook up the motor. Otherwise, sometimes motor started even though I set the minimum pwm to -120% level. (HeliRSC for servo8). May be a separate switch?

And tuned VFF to 0.5/0.5/0.4 and tail response direction was incorrect so I’ve fixed that too.

I think I can fly in ACRO mode first and STAB now.

The flight control laws are very complex. Since you are using a downsteam 3 axis gyro, I assume you are setting all PID values to zero. If you are looking at the swash response in stabilize and maybe in acro, the controls laws work in an earth reference axis system rather than a body fixed axis system. What this means is that if you are yawing the aircraft about its z axis (not the earth z axis since it is pitched up 45 deg) then it is using the tailrotor to respond to earth reference pitch and roll movements. I think this is what is happening.

I think this depends on your gyro. Does it say it can be used with Collective-yaw mixing (Col_yaw compensation)?

Again there is a lot going on here. I can think of two reasons why they may be different. 1) your aircraft isn’t perfectly level and in stabilize mode it is adding some input to bring the aircraft back to wings level nose on the horizon. 2) The collectve differences between the two modes is causing this. So if you want the swash to respond similarly between acro and stabilize modes, you want to have the collective setting between them be the same. This is done by having the IM_STAB_COL 1 and 4 be 0 and 1000 respectively. Which means the Stabilize mode collective range is the same range that you programmed when setting up the head. I think it may be due to the first reason though.

The other thing to remember is that you can set up acro a much larger collective range than stabilize. The software handles the transition from one swashplate position to the other as a ramp but i don’t remember how long it takes to do that. But if you have no plans to do acrobatics then I would make the collective range very close to each other.

This is not good. Is channel 8 out of the pixhawk going to the ESC or routed through the 3 axis gyro? I would connect it straight from the Pixhawk to the ESC.

1 Like

Thank you for the advice.

  1. many things caused by my futaba center signal is different from standard (1500us)
    I was looking for a way to just add PX to existing heli and minimize the setup process.
    It maybe possible with other transmitter but not with Futaba.

    I centered my transmitter with subtrim -23 so the range is (1080/1500/1920). travel is 420.

    • RC1~16 max/min/trim reset and Servo1~16 max/min/trim reset to default (2000/1500/1000)
    • minimum is now way low for servo8 = HeliRSC --> ESC start signal (1035us) so it won’t start
    • h_col_min/mid/max to (1080/1500/1920)
    • Setup FBL as usual
    • I found stab mod signal is not 1500 --> due to PX acceleration calibration was wrong.
    • I did manual calibration by setting AHRS_TRIM_X/Y/Z=0 tune until it indicate center (1500us)
      Now, acro/stab min/mid/max is same.
  2. Since I used subtrim I had to change chan5 END point and TRIM rate in transmitter to (80% / 30)
    to use flight mode.

  3. Now, I have to set h_cyc_max value to match same cyclic value.

  4. I use transmitter expo so No stab expo and No FBL expo currently.

  • I think it’s ready for initial flight test.