MAVLINKHUD

Overview

The MIXING parameter group (specifically MIXING_GAIN and MIXING_OFFSET) configures the output scaling for Elevon and V-Tail aircraft.

In these airframes, two surfaces handle two different control axes (e.g., Elevons handle Roll AND Pitch). The mixer combines the demands from the controllers into physical servo movements.

Key Concepts

1. Mixing Gain (MIXING_GAIN)

The multiplier applied to the mixed output.

  • Purpose: If your control surfaces don't move enough at full stick, increase this. If they move too much (binding), decrease it.

2. Reflex / Offset (MIXING_OFFSET)

Adds a constant bias to the surfaces.

  • Purpose: Many flying wings require "Reflex" (upward elevator trim) to maintain stable flight. Using this parameter allows you to add that reflex without affecting the center-point of the PID loops.

Parameter Breakdown

  • MIXING_GAIN: Output multiplier (typically 0.5 to 1.0).
  • MIXING_OFFSET: Neutral bias (%).

Developer Notes

  • Library: ArduPlane/servos.cpp.
  • Context: Only used when FRAME_TYPE or SERVOx_FUNCTION indicates a mixed output (Elevon/VTail).

MIXING_OFFSET

%
Default 0
Range -100 100

Mixing Offset (MIXING_OFFSET)

Description

This parameter adds a fixed offset (bias) to the control surfaces when using V-Tail or Elevon mixing. It is primarily used to provide Reflex (upward elevator trim) on flying wings without reducing the available servo travel range, or to correct for minor build asymmetries.

The Mathematics

$$ \text{Servo}\_{\text{out}} = \text{Mixer}(\text{Pitch}, \text{Roll}) + \text{MIXING\_OFFSET} $$

The Engineer's View

Defined in ArduPlane/Parameters.cpp.

  • Positive: Typically adds up-elevator (reflex) on elevons.
  • Negative: Adds down-elevator.

Tuning & Behavior

  • Default Value: 0%
  • Flying Wings: Often requires +5% to +10% reflex for stability.

MIXING_GAIN: Mixing Gain

Description

The gain for the V-tail and elevon output mixers.

Values

  • Range: 0.5 to 1.2
  • Default: 0.5

Description

This parameter adjusts the servo travel limits when using software mixing (e.g., Flying Wings with Elevons or V-Tail planes).

  • Default (0.5): Ensures that even if you apply full Pitch AND full Roll simultaneously, the servos will not hit their mechanical limits (saturate). 0.5 * Pitch + 0.5 * Roll = 1.0 (Full Throw).
  • Higher Values (e.g. 1.0): Gives more authority to individual inputs but risks "clipping" if you apply both inputs at once. Useful if your control surfaces aren't moving enough to control the plane.

Source Code

ardupilot/ArduPlane/Parameters.cpp