Skip to content

[Bug] Copy Trims (fixed-wing) does not preserve elevator position, surface ends at a different angle after zeroing TX trims #27491

@orrerie

Description

@orrerie

Describe the bug

Environment

  • PX4: 1.17.0 alpha (git 3e396f65e5e1c343ec6ad09fd761e27a80b7275)
  • Airframe: Fixed-wing, control allocation (CA_SV_CS*)
  • GCS: QGroundControl
  • Connected surfaces: elevator (pitch), rudder (yaw)
  • Flight controller: Cube Orange Plus

Summary

Copy Trims is expected to be transparent: after pressing it and zeroing the TX trims, the control surface should remain at the same physical angle it was trimmed to. Instead the elevator ends up at a different angle.

Steps to reproduce

  1. Apply elevator trim on the TX. Elevator deflects to 23° up, RC channel reads −23%.
  2. Press Copy Trims. Elevator jumps to 44°.
  3. Set TX trims to 0. Elevator settles at 41°.

Expected vs actual

  • Expected after step 3: ~23° (the angle it was trimmed to).
  • Actual: 41°.

Notes

  • After the procedure, TRIM_PITCH = 0.23, matching the −23% channel offset that Copy Trims captured.
  • Step 2 (23° → 44°) looks like the offset is applied twice: the live stick signal still carries the trim while TRIM_PITCH is simultaneously written with the same offset.
  • Step 3 should return the surface to the originally trimmed angle once the live stick offset is removed, but it stays at 41° instead of ~23°.

Parameter diff (before vs after the procedure)

Param Before After
TRIM_PITCH 0.0 0.23
RC2_TRIM 1500 1500 (unchanged)
CA_SV_CS2_TRIM −0.05 −0.05 (unchanged)

Copy Trims writes the trim offset into TRIM_PITCH rather than the RC or control-surface trim.

Question

Is this expected behavior? If so, what is the correct way to use Copy Trims so the surface keeps the trimmed angle? If not, Copy Trims should preserve the physical surface position after TX trims are zeroed.

Flight Log / Additional Information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:bugSomething is broken or behaving incorrectly.vehicle:fixed-wingFixed-wing-specific behavior.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions