3.6 Not trimming both control surfaces in separate ports

I have dual elevators setup and a rudder. I adjust the trim for each elevator but it only trims one elevator? I reinstalled the firmware and thought I had solved it but the issue is back now…I also cannot trim my rudder at all.

What method are you using to trim the control surfaces? If you explain it step by step then I may be able to spot the problem.
Please also post a tlog of the process.

I plug in the autopilot, let it power up.
I am doing the testing indoors and we have a GPS repeater so I wait for it to get good GPS lock.
I then connect to the autopilot in mission planner and arm the system…I have been getting bad AHRS sometimes but sometimes I can still arm.
Once armed I verify the control surfaces that I have plugged in (since the wings are not on just yet) are working.
In this case the left and right elevators and the rudder. I trim RC2 for one of the elevators and it seems to work, I then trim RC6(my chosen other elevator) and it trims the same elevator I was just trimming. Bear in mind I am writing the parameters for each trim. The funny thing is after downgrading and then reuploading 3.6.0 I am able to get proper functionality for a few writes of the parameters and then after reversing the surfaces via mission planner it will go back to being broken. I am also unable to trim the rudder with it being in the RC4 position.

I am not at work so I cannot provide tlogs just yet…apologies.

The bit I want you to explain is what you mean by “I trim RC2” and “I trim RC6”. It may be obvious to you but it isn’t to me. I have a few guesses as to what you mean:

  • perhaps you mean you adjust RC2_TRIM and RC6_TRIM in the advanced parameter list?
  • perhaps you mean you adjust the trims on your transmitter?
  • perhaps you mean you use AUTO_TRIM ?
  • perhaps you mean you adjust the servo control rod lengths?
  • maybe you’re using a servo with electronic trim and adjusting that?
    there are many ways to trim control surfaces. I need to know precisely what you are doing before I can try to reproduce the issue. I also need to know what flight mode you are in when you are doing it.

I also need to know what you have RC6_FUNCTION set to.

RC6_FUNCTION is set to 19 - Elevator.

I am not adjusting any trims on my transmitter (DX9) in order to keep everything consistent.
I am not messing with AUTO_TRIM at all.
I am not adjusting the servo control rod lengths because all of this should be able to be done in the autopilot.

I am adjusting RC2_TRIM…in my case it starts at 1500, and RC6_TRIM also starting at 1500.
The flight mode I am in is manual.

ok, I’ll need to explain a bit about the difference in behaviour between rc2 and rc6 with your setup.
In manual mode rc2 is pass-thru. The RC2_MIN, RC2_TRIM and RC2_MAX values make no difference at all to servo movement when in manual mode. The only way to trim RC2 in manual mode is to change your transmitter trim.
For your setup you should trim RC2 first. Change to manual and adjust your transmitter trim so the control surface is correct. The set RC2_TRIM to the current value on channel 2 (or read up on using TRIM_AUTO).
Now for RC6. The thing to understand about a slaved elevator (which is what RC6_FUNCTION=19 is) is that the output value on channel 6 depends on both the RC6_* parameters and the RC2_* values. Before you start thinking “that’s crazy!” let me explain.
The RC2_MIN, RC2_MAX and RC2_TRIM values affect the input on channel 2. So when you move your stick on channel 2 it calculates a value giving the “input angle”, measured in centi-degrees of input. When your stick is equal to RC2_TRIM that input angle is zero.
That input angle is then mapped to channel 6 by applying the RC6_MIN, RC6_MAX and RC6_TRIM values. So if channel 2 input is equal to the RC2_TRIM value then channel 6 will be set to RC6_TRIM.
So to adjust your trims you first get RC2 right, then adjust RC6_TRIM to get channel 6 right. If you do it the other way around it will drive you crazy.
Note that none of this has changed for a very long time in ArduPilot. This is how it has worked for years.
Cheers, Tridge

First of all, thank you very much. I wasn’t able to find this answer myself and I really do appreciate you taking the time to explain this.
I am going to assume that this is the same for all of my slaved control surfaces, not including flaps.
So first things first I should trim everything on the transmitter, then trim its slave to match the manually trimmed surface. Thank you so very, very much.

I also want to say thank you for explaining it. I am using a similar setup and never figured out why it was behaving in this way.