MAVLINKHUD

Overview

The MOT parameter group is the core configuration for the Motor Mixer and Thrust Linearization system in multicopters, helicopters, and blimps.

This library translates the high-level PID demands (Roll, Pitch, Yaw, Throttle) into specific electrical signals sent to the ESCs. It also handles "Voltage Compensation," ensuring the drone feels the same at the end of a battery pack as it does at the start.

Key Concepts

1. PWM & Signal Type (MOT_PWM_TYPE)

Defines the communication protocol with the ESCs.

  • 0: Normal PWM (50-490Hz).
  • 4: DShot150.
  • 6: DShot600.

2. Spin Levels (MOT_SPIN_ARM / MIN / MAX)

  • SPIN_ARM: The speed motors spin when armed but throttle is zero.
  • SPIN_MIN: The lowest speed allowed in flight (ensures motors don't stall during aggressive descents).
  • SPIN_MAX: Usually 0.95 (95%) to leave headroom for attitude control at full throttle.

3. Thrust Linearization (MOT_THST_EXPO)

Brushless motors do not produce linear thrust (50% PWM is not 50% thrust).

  • THST_EXPO: A curve factor (0 to 1) that "flattens" the thrust response so the PID controllers have consistent authority across the entire throttle range.

4. Voltage Compensation (MOT_BAT_VOLT_...)

As battery voltage drops, the same PWM signal produces less thrust. The autopilot automatically increases the signal to compensate.

  • MOT_BAT_VOLT_MAX: Voltage of a full pack.
  • MOT_BAT_VOLT_MIN: Voltage of an empty pack.

Parameter Breakdown

  • MOT_THST_HOVER: The learned or manual throttle value (0.0 - 1.0) required to maintain hover.
  • MOT_SLEWRATE: Limits how fast the throttle can increase (prevents current spikes).
  • MOT_YAW_HEADROOM: Reserves a portion of motor power for yaw control even at full throttle.

Integration Guide

  1. ESC Calibration: Not needed for DShot. For PWM, must match MOT_PWM_MIN and MAX.
  2. Hover Tune: Hover the vehicle in a stable mode (AltHold/Loiter). Check MOT_THST_HOVER in the logs and set it manually if MOT_HOVER_LEARN is disabled.
  3. Vibration: If the vehicle is "jumpy," check if MOT_THST_EXPO is too high for your motor/prop combo.

Developer Notes

  • Library: libraries/AP_Motors.
  • Hierarchy: AP_MotorsMatrix (Multicopter), AP_MotorsHeli (Helicopter).

MOT1_DIRECTION

Default 1
Range -1 1

Motor 1 Normal or Reverse (MOT1_DIRECTION)

Description

MOT1_DIRECTION allows you to reverse the spin direction of Motor 1 via software. This is useful for "Sub" (Submarine) vehicles or Rovers where rewiring is difficult.

  • 1: Normal.
  • -1: Reverse.

The Engineer's View

This parameter is primarily used by AP_Motors6DOF (Sub) and AP_MotorsUGV (Rover).
For Multicopters (Copter/QuadPlane), motor direction is usually fixed by the frame type and wiring, or reversed via DShot commands (SERVO_BLH_REV). This parameter might not have an effect on standard Copters unless using a specific frame class that supports it.

Tuning & Behavior

  • Default Value: 1
  • Usage: Change to -1 if the motor is spinning the wrong way and you cannot swap two phase wires.

MOT2_DIRECTION

Default 1
Range null

Motor normal or reverse

Note: This parameter functions identically to MOT1_DIRECTION.

MOT3_DIRECTION

Default 1
Range null

Motor normal or reverse

Note: This parameter functions identically to MOT1_DIRECTION.

MOT4_DIRECTION

Default 1
Range null

Motor normal or reverse

Note: This parameter functions identically to MOT1_DIRECTION.

MOT5_DIRECTION

Default 1
Range null

Motor normal or reverse

Note: This parameter functions identically to MOT1_DIRECTION.

MOT6_DIRECTION

Default 1
Range null

Motor normal or reverse

Note: This parameter functions identically to MOT1_DIRECTION.

MOT7_DIRECTION

Default 1
Range null

Motor normal or reverse

Note: This parameter functions identically to MOT1_DIRECTION.

MOT8_DIRECTION

Default 1
Range null

Motor normal or reverse

Note: This parameter functions identically to MOT1_DIRECTION.

MOT9_DIRECTION

Default 1
Range null

Motor normal or reverse

Note: This parameter functions identically to MOT1_DIRECTION.

MOT_BAT_CURR_MAX

A
Default 0
Range 0 200

Motor Current Max (MOT_BAT_CURR_MAX)

Description

MOT_BAT_CURR_MAX is a safety limiter for your battery and PDB.

If the total current drawn by the motors exceeds this value, ArduPilot will actively reduce the maximum throttle to bring the current back down.

Tuning & Behavior

  • Default Value: 0 (Disabled).
  • Recommendation: Set to 80% of your battery's C-Rating or your PDB's max current.
  • Safety: This response is not instant (filtered by MOT_BAT_CURR_TC), so it won't stop a millisecond spike, but it will prevent sustained over-current.

MOT_BAT_CURR_TC

s
Default 5.0
Range 0 10.0

Battery Current Time Constant (MOT_BAT_CURR_TC)

Description

MOT_BAT_CURR_TC determines how quickly the autopilot reacts to an over-current situation.

ArduPilot has a "Current Limiter" that reduces throttle if the drone pulls more Amps than your battery or ESCs can handle. This parameter acts as a "Buffer" – a higher value allows brief current spikes (like a fast punch-out) without cutting power, while still protecting against sustained high current that could melt wires or blow a fuse.

Tuning & Behavior

  • Default: 5.0 seconds.
  • High Value (e.g. 10.0): Very slow reaction. Good for high-performance drones that need occasional bursts of power.
  • Low Value (e.g. 1.0): Fast reaction. Best for protecting fragile batteries or electronics from any significant current surge.
  • Dependencies: Only active if MOT_BAT_CURR_MAX is configured.

MOT_BAT_IDX

Default 0
Range 0 9

Battery Compensation Index (MOT_BAT_IDX)

Description

MOT_BAT_IDX tells the autopilot which battery it should look at to decide how much to scale the motor power (compensation).

If you have multiple batteries with separate monitors (e.g., BATT1 for motors, BATT2 for electronics), you must set this to the index of the battery that is actually powering the ESCs/Motors.

  • 0: Battery 1. (Standard).
  • 1: Battery 2.
  • etc.

Tuning & Behavior

  • Default: 0.
  • Important: If you set this to an index that is not enabled (e.g., set to 1 but only BATT1 is configured), the autopilot will not be able to perform voltage compensation, and your throttle feel may vary during the flight.

MOT_BAT_VOLT_MAX

V
Default 0
Range 6 53

Battery voltage compensation maximum voltage (MOT_BAT_VOLT_MAX)

Description

MOT_BAT_VOLT_MAX helps your drone feel consistent from the start to the end of a battery pack.

At 16.8V (full charge), your motors produce more thrust for 50% throttle than they do at 14.0V (empty). This parameter tells the autopilot what "Full Voltage" looks like so it can scale the throttle output down slightly at the start of the flight to match the performance at the end.

The Mathematics

$$ \text{Scale Factor} = \frac{\text{Current Voltage}}{\text{MOT\_BAT\_VOLT\_MAX}} $$

Tuning & Behavior

  • Default Value: 0 (Disabled).
  • Recommendation: Set to 4.2V * Cell Count.
    • 4S: 16.8V
    • 6S: 25.2V
  • Benefit: Makes your PID tuning valid for the entire flight, preventing "oscillations at takeoff" (due to high voltage) and "sluggishness at landing" (due to low voltage).

MOT_BAT_VOLT_MIN

V
Default 0
Range 6 42

Battery voltage compensation minimum voltage (MOT_BAT_VOLT_MIN)

Description

MOT_BAT_VOLT_MIN is the "Empty" reference for thrust scaling.

Tuning & Behavior

  • Default Value: 0 (Disabled).
  • Recommendation: Set to 3.3V * Cell Count.
    • 4S: 13.2V
    • 6S: 19.8V

MOT_BOOST_SCALE

Default 0
Range 0 5.0

Booster Motor Scale Factor (MOT_BOOST_SCALE)

Description

MOT_BOOST_SCALE is used for hybrid aircraft that have dedicated "Thrust" motors in addition to their lift motors (e.g. some Tailsitters or QuadPlanes).

It defines how much the booster motor responds when you push the throttle. The booster motor's output is calculated as:
$$ \text{Booster Output} = \text{Main Throttle} \times \text{MOT\_BOOST\_SCALE} $$

  • 0: Disabled.
  • 1.0: The booster motor mirrors the throttle exactly.
  • > 1.0: The booster motor provides more power than the main lift motors at the same stick position.

Tuning & Behavior

  • Default: 0.
  • Usage: Use this to balance your forward-flight speed against your climb-rate performance.

MOT_FV_CPLNG_K

Default 1.0
Range 0 1.5

6-DOF Pitch Decoupling Gain (MOT_FV_CPLNG_K)

Description

MOT_FV_CPLNG_K is an advanced tuning parameter for 6-DOF (Omnidirectional) multicopters.

In a traditional drone, moving forward requires pitching the nose down. In a 6-DOF drone, the motors are tilted so you can move forward while staying perfectly level. However, applying forward thrust often creates a slight, unintended "Nod" in the pitch axis due to the motor geometry. This parameter applies a mathematical correction to "cancel out" that coupling.

  • 0: Disabled.
  • 1.2: Typical "Normal" value for most 6-DOF frames.

Tuning & Behavior

  • Default: 1.0.
  • Calibration: Fly your 6-DOF drone and command a pure forward translation. If the drone pitches down as it accelerates, increase this value. If it pitches up, decrease it.
  • Context: Only used if your motor layout is configured for 6-DOF control.

MOT_HOVER_LEARN

Default 2
Range 0 2

Hover Value Learning (MOT_HOVER_LEARN)

Description

MOT_HOVER_LEARN allows the drone to figure out how much throttle is needed to hover and save that value.

  • 0: Disabled. Uses the manually set MOT_THST_HOVER and never changes it.
  • 1: Learn. Updates the hover estimate in RAM while flying, but does not save it to EEPROM on disarm. Good for testing payloads without messing up your base tune.
  • 2: Learn and Save (Default). Continuously updates the hover estimate and saves it to MOT_THST_HOVER when you disarm.

The Mathematics

The autopilot monitors the average throttle output while in "AltHold" or "Loiter" when the vertical velocity is near zero. It passes this through a slow low-pass filter to update the MOT_THST_HOVER value.

The Engineer's View

Knowing the correct hover throttle is critical for the Altitude Controller (PSC_ACCZ_P and PSC_ACCZ_I). If the hover throttle is wrong, the drone will jump up or drop down when engaging AltHold, and the altitude hold performance will be "bouncy".

Tuning & Behavior

  • Default Value: 2 (Learn and Save)
  • Recommendation: Leave at 2 for most users.
  • Payload Drones: If you constantly swap between heavy payloads (camera) and no payload, set to 1 (Learn). This way, the drone learns the weight for the current flight, but reverts to the "base weight" setting when you reboot, preventing it from taking off like a rocket if you remove the payload but it "remembered" the heavy throttle settings.

MOT_PWM_FREQ

kHz
Default 16
Range 1 20

Motor PWM Frequency (MOT_PWM_FREQ)

Description

MOT_PWM_FREQ defines the switching frequency of the H-Bridge or ESC when controlling Brushed motors.

Brushed motors (common in smaller Rovers and Boats) require a high-frequency PWM signal to operate efficiently and quietly. If the frequency is too low, the motors will "sing" or "whine" audibly. If too high, the ESC may overheat due to switching losses.

  • Default: 16 kHz.
  • Recommended: 16 kHz to 20 kHz for silent operation.

Tuning & Behavior

  • Default: 16.
  • Note: This parameter is only used if the vehicle is configured for Brushed motors. Standard brushless ESCs (using PWM/DShot) ignore this parameter.

MOT_PWM_MAX

PWM
Default 2000
Range 0 2000

PWM output maximum (MOT_PWM_MAX)

Description

MOT_PWM_MAX defines the top of the throttle range sent to your ESCs.

  • For PWM ESCs: This must match the calibrated maximum of your ESC. If set too low, you won't get full power. If set too high, you might hit the "Full Throttle" deadzone early.
  • For DShot: Ignored for signal generation but used for scaling calculations.

Tuning & Behavior

  • Default Value: 2000 µs.
  • Recommendation: Perform an ESC Calibration.

MOT_PWM_MIN

PWM
Default 1000
Range 0 2000

PWM output minimum (MOT_PWM_MIN)

Description

MOT_PWM_MIN defines the bottom of the throttle range sent to your ESCs.

  • For PWM ESCs: This must match the calibrated minimum of your ESC. If set too low, the motors might not start. If set too high, the motors might spin immediately upon arming (even if MOT_SPIN_ARM is 0).
  • For DShot: This parameter is generally ignored for the signal itself (digital uses 0-2000 range internally), but ArduPilot still uses it for some internal scaling calculations.

Tuning & Behavior

  • Default Value: 1000 µs.
  • Recommendation: Perform an ESC Calibration. This will automatically detect the correct range.
  • Safety: Ensure this is lower than MOT_SPIN_ARM + overhead to prevent accidental spins.

MOT_PWM_TYPE

Default 0
Range 0 13

Output PWM type (MOT_PWM_TYPE)

Description

MOT_PWM_TYPE selects the communication protocol used to talk to the Electronic Speed Controllers (ESCs).

  • 0: Normal (PWM). Legacy analog protocol (1000-2000µs). Compatible with everything but slow.
  • 4: DShot150. Digital protocol. Robust, checksummed, no calibration needed.
  • 5: DShot300. Faster digital protocol. Good balance.
  • 6: DShot600. Fast digital protocol. Standard for modern racing/freestyle quads.
  • 7: DShot1200. Ultra-fast. Requires high-quality wiring and compatible ESCs.

The Mathematics

PWM: Analog pulse width modulation. Updates at ~400Hz.
DShot: Digital packet sending 16-bit commands (11-bit throttle + telemetry request + CRC).

  • DShot600: 600,000 bits/sec. Frame time $\approx 26.7 \mu s$.
  • DShot300: 300,000 bits/sec. Frame time $\approx 53.4 \mu s$.

The Engineer's View

Sets _pwm_type in AP_Motors.
Changing this usually requires a Reboot to reconfigure the timer hardware on the STM32.
If using DShot, you must also ensure your SERVO_BLH_MASK (or equivalent output mask) is configured correctly, although modern ArduPilot usually handles DShot on main outputs automatically if this param is set.

Tuning & Behavior

  • Default Value: 0 (PWM)
  • Recommendation:
    • DShot600 (6): Use this for almost all modern BLHeli_S, BLHeli_32, or AM32 ESCs. It enables features like "Turtle Mode", ESC Telemetry (RPM filtering), and digital precision.
    • DShot300 (5): Use if you have long signal wires or signal integrity issues with DShot600.
    • Normal (0): Use only for legacy SimonK/Melody ESCs or servos.

MOT_SAFE_DISARM

Default 0
Range 0 1

Motor PWM output disabled when disarmed (MOT_SAFE_DISARM)

Description

MOT_SAFE_DISARM adds an extra layer of safety on the ground.

  • 0 (Default): The flight controller sends a "Min PWM" (e.g. 1000us) signal to the ESCs even when disarmed. This keeps the ESCs initialized and ready.
  • 1 (Safe): The flight controller stops sending any signal to the motors when disarmed.

The Engineer's View

Some ESCs will beep annoyingly if they don't receive a signal. However, stopping the signal ensures that a glitch (or a user bumping the throttle stick on a non-ArduPilot system) cannot spin the props.
For DShot, this parameter might stop the packet stream entirely.

Tuning & Behavior

  • Default Value: 0.
  • Recommendation: Leave at 0 for most ESCs to prevent them from entering "Programming Mode" or beeping.
  • Safety: If your ESCs support it, setting this to 1 prevents accidental spin-ups.

MOT_SAFE_TIME

s
Default 0.1
Range 0 5.0

Motor PWM Safety Transition Time (MOT_SAFE_TIME)

Description

MOT_SAFE_TIME defines a short buffer period when the drone's output signal is transitioning between "Safe" (Disarmed) and "Live" (Armed) states.

This delay ensures that the ESCs and other hardware have a consistent signal before the drone attempts to apply flight power. It helps prevent "Twitches" or unexpected motor jumps the moment the arming switch is toggled.

Tuning & Behavior

  • Default: 0.1 seconds.
  • Safety: This is a low-level hardware safety parameter. It is recommended to leave it at the default setting unless you have specialized ESCs that require more time to synchronize.

MOT_SLEWRATE

%/s
Default 100
Range 0 1000

Throttle Slew Rate (MOT_SLEWRATE)

Description

MOT_SLEWRATE acts as a "Smoothing" filter for your throttle.

It defines how fast the motor power can increase or decrease. A value of 100% means the motor can go from zero to full power in exactly 1 second. This is critical for heavy Rovers or vehicles with high-torque motors where a sudden "punch" of throttle could snap a drive belt, strip a gear, or cause a sudden voltage drop (brownout) that reboots the flight controller.

  • 100: (Default). 1 second to reach full power.
  • 40: 2.5 seconds to reach full power. Recommended for high-current vehicles with weak batteries.
  • 0: Disabled. No smoothing (instant response).

Tuning & Behavior

  • Default: 100.
  • Mechanical Protection: If your Rover "jerks" violently when you touch the throttle, reduce this value to 50 or 75.
  • Electrical Stability: If your flight controller reboots during hard acceleration, your battery cannot handle the current spike. Reducing this value will soften the ramp-up and may prevent the reboot.

MOT_SLEW_DN_TIME

s
Default 0
Range 0 0.5

Output slew time for decreasing throttle (MOT_SLEW_DN_TIME)

Description

MOT_SLEW_DN_TIME accounts for the "spool down" time of large props.

Active Braking (Damped Light) helps motors slow down fast, but large props still have momentum. This parameter prevents the PID loops from under-shooting when reducing throttle.

Tuning & Behavior

  • Default Value: 0 (Disabled).
  • Recommendation: Usually same as MOT_SLEW_UP_TIME.

MOT_SLEW_UP_TIME

s
Default 0
Range 0 0.5

Output slew time for increasing throttle (MOT_SLEW_UP_TIME)

Description

MOT_SLEW_UP_TIME prevents the flight controller from demanding impossible acceleration from the motors.

Large propellers (15"+) have significant inertia. If you command them to go from 10% to 90% throttle instantly, they physically can't do it. This causes the PID loop to "wind up" because it thinks the motor isn't responding. By telling ArduPilot how long the motor actually takes to spin up, the PID controller waits patiently, resulting in much better stability.

Tuning & Behavior

  • Default Value: 0 (Disabled).
  • Recommendation:
    • 5-10" Props: 0.0 (Disabled).
    • 15-20" Props: 0.15s.
    • 28"+ Props: 0.3s.

MOT_SPD_SCA_BASE

m/s
Default 1.0
Range 0 10.0

Ground Speed Steering Scale Base (MOT_SPD_SCA_BASE)

Description

MOT_SPD_SCA_BASE is a safety feature for Rovers and Boats that prevents high-speed rollovers or loss of control.

At low speeds (e.g., 1 m/s), you want 100% steering authority to make tight turns. At high speeds (e.g., 10 m/s), a full-lock steering command would cause the vehicle to flip or spin violently. This parameter defines the "Safe Speed" – above this speed, the autopilot automatically reduces the steering multiplier so that the vehicle remains stable.

Tuning & Behavior

  • Default: 1.0 m/s.
  • Recommendation: Set this to the maximum speed at which your vehicle can safely handle a full-lock turn.
  • Effect: As speed increases above this base, the steering response becomes progressively "softer" or less sensitive.
  • 0: Disables speed-based steering scaling.

MOT_SPIN_ARM

Default 0.10
Range 0.0 0.2

Motor Spin armed (MOT_SPIN_ARM)

Description

MOT_SPIN_ARM sets the idle speed of the motors when you arm the drone (even with the throttle stick at zero).

Crucial Function: This idle spin provides "Air Mode" authority. Even at zero throttle, the motors must spin fast enough so that if the autopilot needs to pitch or roll, the motors can respond instantly without stalling or desyncing.

The Mathematics

The throttle output sent to the ESC is:
$$ \text{Idle Throttle} = \text{MOT\_SPIN\_ARM} $$
(Scaled by MOT_PWM_MIN and MOT_PWM_MAX if using PWM, or 0-1 range for DShot).

The Engineer's View

If set too low, motors may stop or stutter during zero-throttle maneuvers (like inverted hangs or rapid descents), causing loss of control ("Desync").
If set too high, the drone will be "floaty" and hard to land, or might even bounce on landing.

Tuning & Behavior

  • Default Value: 0.10 (10%)
  • Range: 0.0 - 0.2 (0% - 20%)
  • Recommendation:
    • 5" Racing Quad: 0.04 - 0.07 (4-7%). Small motors spin up easily.
    • Large (15"+) Props: 0.10 - 0.12 (10-12%). Heavy props need more torque to keep spinning reliably.
    • Test: Arm the drone (props OFF first to verify direction, then ON for idle check). Ensure all motors spin smoothly and don't stutter. Lower the value until they stutter, then add 0.02 or 0.03 safety margin.

MOT_SPIN_MAX

Default 0.95
Range 0.9 1.0

Motor Spin maximum (MOT_SPIN_MAX)

Description

MOT_SPIN_MAX sets the upper limit for the throttle sent to the ESCs.

ArduPilot reserves the top few percent of the throttle range for the attitude controller. Even at full stick deflection, the average motor output is clamped to MOT_SPIN_MAX to ensure there is always "headroom" for the stabilization loop to increase the speed of one motor (to roll or pitch) without hitting the 100% saturation limit instantly.

The Mathematics

$$ \text{Max Output} = \text{MOT\_SPIN\_MAX} $$

If MOT_SPIN_MAX is 0.95, the motors will never be commanded above 95% throttle for lift generation, leaving 5% headroom for yaw/roll/pitch authority at full throttle.

The Engineer's View

Used in AP_MotorsMulticopter::output_to_motors().
Ideally, this matches the point where the thrust curve flattens out (diminishing returns).

Tuning & Behavior

  • Default Value: 0.95 (95%)
  • Range: 0.9 - 1.0
  • Recommendation: Leave at 0.95.
    • 0.90: Safer for stability at full throttle, but slight loss of top speed.
    • 1.00: Disables headroom. Not recommended, as the drone may lose yaw/roll authority during a full-throttle punch-out (unless MOT_YAW_HEADROOM saves it).

MOT_SPIN_MIN

Default 0.15
Range 0.0 0.3

Motor Spin minimum (MOT_SPIN_MIN)

Description

MOT_SPIN_MIN sets the lower limit for the throttle during active flight. Even if you cut the throttle stick to zero (while armed and not landed), the motors will not spin slower than this value.

Critical Safety Function: This prevents the motors from stalling or desyncing during aggressive maneuvers or rapid descents. If the props spin too slowly in the airflow, the ESC might lose synchronization, causing the motor to stop and the drone to tumble.

The Mathematics

The throttle output sent to the ESC is clamped:
$$ \text{Output} \ge \text{MOT\_SPIN\_MIN} $$
(Scaled by PWM/DShot range).

The Engineer's View

Must be higher than MOT_SPIN_ARM.
Ideally, this is set to the lowest RPM where the motor still produces reliable, non-stuttering thrust under load (prop wash).

Tuning & Behavior

  • Default Value: 0.15 (15%)
  • Range: 0.0 - 0.3 (0% - 30%)
  • Recommendation:
    • 5" Racing Quad: 0.07 - 0.10 (7-10%).
    • Large (15"+) Props: 0.15 - 0.20 (15-20%). Large props have high inertia and stall easily in turbulent air.
    • Rule of Thumb: Set MOT_SPIN_MIN = MOT_SPIN_ARM + 0.03 (at least 3% higher).
  • Symptoms of Low Setting: "Desyncs" or death-rolls at the bottom of a dive or flip.
  • Symptoms of High Setting: Drone won't descend quickly (floaty).

MOT_SPOOL_TIME

s
Default 0.5
Range 0.05 2.0

Motor Spool-Up Time (MOT_SPOOL_TIME)

Description

MOT_SPOOL_TIME defines how "Soft" the initial motor start is.

When you arm the drone or first apply throttle, ArduPilot doesn't just "slam" the motors to speed. Instead, it ramps the power up gradually over this many seconds. This prevents sudden torque spikes that could flip a drone on the ground or put unnecessary stress on the propellers and frame.

  • Standard Setting: 0.5 seconds.
  • Large Props: May need 1.0s or more to ensure a smooth, synchronized start without stalling.

Tuning & Behavior

  • Default: 0.5.
  • Recommendation: If your drone "hops" or feels nervous the moment it arms, increase this value.
  • Note: This parameter also affects the internal state machine that transitions the drone from "On the ground" to "In flight" logic.

MOT_SPOOL_TIM_DN

s
Default 0
Range 0 2.0

Motor Spool-Down Time (MOT_SPOOL_TIM_DN)

Description

MOT_SPOOL_TIM_DN defines the duration of the motor ramp-down when the drone lands or is disarmed.

  • 0 (Default): Uses the same value as MOT_SPOOL_TIME.
  • Non-Zero: Sets a specific time for the ramp-down.

Tuning & Behavior

  • Recommendation: Keep at 0 to match the spool-up time.
  • Safety: This ensures the motors don't stop instantly, which can be useful to prevent large props from unscrewing themselves due to sudden deceleration (on some older hardware) or simply to provide a more predictable disarm feel.

MOT_STR_THR_MIX

Default 0.5
Range 0.1 1.0

Steering vs Throttle Priority (MOT_STR_THR_MIX)

Description

MOT_STR_THR_MIX defines what happens when your Rover is "Maxed Out."

On a Skid-Steer rover (like a tank), the motors are used for both turning and driving forward. If you command full speed AND a hard turn, the autopilot may run out of motor power. This parameter tells the autopilot which one is more important:

  • Higher Value (0.8 - 1.0): Prioritizes Steering. The rover will slow down to ensure it can make the turn accurately. (Recommended for precise autonomous missions).
  • Lower Value (0.2 - 0.5): Prioritizes Throttle. The rover will keep its speed up, even if it has to widen the turn. (Recommended for high-speed racing).

Tuning & Behavior

  • Default: 0.5 (Balanced).
  • Recommendation: If your rover "Overshoots" corners while trying to maintain speed, increase this value to 0.7 or 0.8.
  • Note: This only applies to vehicles with skid-steering (tank mode) enabled.

MOT_THR_MAX

%
Default 100
Range 30 100

Throttle Maximum (MOT_THR_MAX)

Description

MOT_THR_MAX sets the "Speed Governor" for your Rover or Boat.

Even if you push the transmitter stick to 100%, the autopilot will limit the actual power sent to the motors to this percentage. This is useful for high-powered vehicles to prevent overheating motors and ESCs, or to make a fast vehicle safer for beginners.

  • 100: (Default). Full power available.
  • 50: Half power limit.

Tuning & Behavior

  • Default: 100.
  • Usage: If your motors get too hot to touch after a short run, reduce this value to 70 or 80.
  • Note: This only applies to Rover and Boat. For Multicopters, use MOT_SPIN_MAX.

MOT_THR_MIN

%
Default 0
Range 0 20

Throttle Minimum (MOT_THR_MIN)

Description

MOT_THR_MIN sets the "Idle" limit for your Rover or Boat's powertrain.

This is particularly useful for vehicles with Internal Combustion Engines (Gasoline/Nitro), where setting a minimum throttle ensures the engine doesn't stall when the autopilot commands zero speed. It can also be used for electric vehicles to overcome static friction (stiction) in a drivetrain.

  • 0: (Default). No minimum limit.
  • 10: Autopilot will never command less than 10% throttle unless disarmed.

Tuning & Behavior

  • Default: 0.
  • Usage: For ICE vehicles, set this to the percentage that maintains a reliable idle. For electric rovers that won't start moving until 5% throttle, set this to 5 to improve responsiveness.
  • Note: This only applies to Rover and Boat. For Multicopters, use MOT_SPIN_ARM.

MOT_THST_ASYM

Default 1.0
Range 1.0 10.0

Motor Thrust Asymmetry (MOT_THST_ASYM)

Description

MOT_THST_ASYM is a calibration factor for Skid-Steer (tank-tread style) vehicles.

Most electric motors and propellers/tires are significantly more efficient when spinning forward than backward. If you apply the same PWM signal to both directions, the vehicle might move much slower in reverse than it does forward. This parameter allows the autopilot to "Boost" the reverse power so that the vehicle's speed and steering response remain consistent in both directions.

  • 1.0 (Default): Symmetric. Forward and reverse thrust are treated as equal.
  • 2.0: High Asymmetry. Autopilot will command twice as much signal to achieve the same thrust in reverse.

Tuning & Behavior

  • Calibration: Drive your rover in a straight line at a constant speed forward, then reverse. If reverse is much slower, increase this value until the speeds match.
  • Note: This only applies to Rover and Boat frames with skid-steering enabled.

MOT_THST_EXPO

Default 0.65
Range -1.0 1.0

Thrust Curve Expo (MOT_THST_EXPO)

Description

MOT_THST_EXPO linearizes the relationship between the autopilot's requested thrust and the actual physical thrust produced by the motors.

Most brushless motors/propellers produce thrust roughly proportional to the square of RPM, and RPM is roughly proportional to throttle signal. This means 50% throttle signal might only produce 25% thrust. This nonlinearity confuses the PID controller (which assumes linear response). MOT_THST_EXPO corrects this.

The Mathematics

The conversion from desired thrust ($T\_{des} \in [0,1]$) to throttle signal ($Out \in [0,1]$) is:
$$ Out = \frac{(1 - k) T\_{des}}{1 - k T\_{des}} $$
where $k = \text{MOT\_THST\_EXPO}$.

If $k=0$, $Out = T\_{des}$ (Linear).
If $k \approx 1$, the curve corrects for the square-law thrust.

The Engineer's View

Used in AP_MotorsMulticopter::output_to_motors().
Correct setting makes the PID gains effective across the entire throttle range.

  • If set too low: Drones will oscillate at high throttle (over-gained) and feel sluggish at low throttle.
  • If set too high: Drones will oscillate at low throttle and feel sluggish at high throttle.

Tuning & Behavior

  • Default Value: 0.65
  • Range: -1.0 to 1.0 (Typical range for multicopters is 0.5 to 0.8).
  • Recommendation:
    • 5" Racing Quad: 0.55 - 0.65
    • 10-15" Props: 0.65 - 0.70
    • Large (18"+) Props: 0.70 - 0.75
    • Flame/T-Motor ESCs: These often have internal linearization. If so, set this to 0. Check your ESC manual.

MOT_THST_HOVER

Default 0.35
Range 0.125 0.6875

Thrust Hover Value (MOT_THST_HOVER)

Description

MOT_THST_HOVER stores the throttle level (0.0 to 1.0) required to keep the drone stationary in the air.

This value is the foundation for the entire altitude controller. The autopilot assumes that MOT_THST_HOVER provides exactly 1G of lift. The PIDs then calculate adjustments relative to this baseline.

The Mathematics

$$ \text{Throttle Output} = \text{MOT\_THST\_HOVER} + \text{PID}( \text{Altitude Error} ) $$

If this value is too low, the P-term has to work constantly to add thrust, causing the drone to sag when entering AltHold.
If too high, the drone jumps up when entering AltHold.

The Engineer's View

Used in AP_MotorsMulticopter::set_throttle_hover().
Typically updated automatically if MOT_HOVER_LEARN is 2.
Range is clamped between MOT_SPIN_MIN and MOT_SPIN_MAX.

Tuning & Behavior

  • Default Value: 0.35 (35%)
  • Range: 0.125 - 0.6875
  • Recommendation:
    • Let it learn: Set MOT_HOVER_LEARN = 2, fly in Loiter for 30 seconds, land, disarm. This value will update itself.
    • Manual Setting: Hover in Stabilize mode. Note the throttle stick position (e.g., 40%). Set MOT_THST_HOVER to 0.40.
    • Optimal Range: A well-designed multicopter hovers between 0.25 and 0.50. If hovering > 0.65, the drone is underpowered. If hovering < 0.15, it is overpowered (and will be hard to land).

MOT_VEC_ANGLEMAX

deg
Default 0
Range 0 90

Vector Thrust Angle Max (MOT_VEC_ANGLEMAX)

Description

MOT_VEC_ANGLEMAX defines the mechanical limit of your boat's steerable motor.

Unlike a rudder, which is a passive fin, Vectored Thrust means the entire motor or propeller unit rotates to steer the boat. This parameter tells the autopilot how many degrees of physical rotation your motor mount can achieve.

Tuning & Behavior

  • Default: 0.
  • Action: Measure the maximum angle your motor can physically pivot to the left or right. If the motor can turn 30 degrees in each direction, set this to 30.
  • Note: This is only used for Boat frames where the motor itself is the steering actuator.

MOT_YAW_HEADROOM

PWM
Default 200
Range 0 500

Matrix Yaw Min (MOT_YAW_HEADROOM)

Description

MOT_YAW_HEADROOM ensures you can always steer, even at full throttle.

When you punch the throttle to 100%, the motors are maxed out. If you try to yaw (spin) at that moment, the drone normally couldn't do it because it can't speed up the motors any further. This parameter forces the average throttle down slightly to keep a "reserve" for yaw.

Tuning & Behavior

  • Default Value: 200 (approx 20% of range).
  • Recommendation: Leave at 200.
  • Race Quads: You might reduce this to 50 or 100 to get more raw climb power, at the cost of yaw authority during punch-outs.

MOT_YAW_SV_ANGLE

deg
Default 30
Range 5 80

Tricopter Yaw Servo Max Angle (MOT_YAW_SV_ANGLE)

Description

MOT_YAW_SV_ANGLE defines the mechanical limit of the tilt mechanism on your Tricopter's tail motor.

Tricopters use a single tilting motor for yaw control. This parameter tells the autopilot how many degrees that motor can physically tilt to the left or right. This is used to calibrate the relationship between the requested "Yaw Force" and the physical servo movement.

Tuning & Behavior

  • Default: 30 degrees.
  • Measurement: Tilt your tail servo to its maximum physical limit. Use a protractor to measure the angle from the vertical. Enter that value here.
  • Significance: If this value is incorrect, your Tricopter's yaw gains will be off, leading to sluggish or oscillating yaw behavior.