Skip to content

Parameters beyond the guide

The QuadPlane setup guide gives the parameters for the maiden flight. The SITL work found settings that the guide does not cover. This page lists them, with the SITL evidence for each one and the check that confirms it on the aircraft. sim/terrahawk.parm sets the first group. The others are findings, not settings, until the flight tests are done.

SITL uses the build’s 25 degrees of elevon travel at the servo endpoints, confirmed on 2026-09-27, and MIXING_GAIN 0.75. The elevon throw measurement checks the built aircraft against that figure.

Parameter Value Reason Confirm on the aircraft
Q_ASSIST_ALT 30 (was 25; not in the guide) In FBWA, the elevons reach their limit at 16 to 19 m/s and the nose drops; below this height the lift motors start. Raised to 30 on 2026-09-28 (th-avionics): no measured cost, and a larger catch height. In SITL it does not fire in calm or Dryden-gust flight. Earlier SITL departure counts that seemed to favour it were confounded by the height the turn-back started at, and the “assist trap” behind them came from SITL’s white-noise turbulence, not the aircraft. The lift-lost script’s Q_ASSIST_SPEED -1 disables it for the fixed-wing keel landing. Keep the VTOL takeoff height and every mission leg at least 30 m above home. The lift motors start below it in every fixed-wing mode.
BATT_LOW_VOLT / BATT_FS_LOW_ACT 21.0 / 1 (RTL) 3.5 V per cell. In SITL a hover reached this after 11 minutes with 3168 mAh used. On the wing, at about 7 A, a loiter reached it after 23 minutes with 3327 mAh used (2026-10-01). RTL then landed the aircraft vertically. Calibrate BATT_MONITOR against a multimeter first.
BATT_CRT_VOLT / BATT_FS_CRT_ACT 20.4 / 4 (QLand) 3.4 V per cell. Action 2 (Land) needs a landing sequence in the mission and fails without one. Same.
AIRSPEED_MIN / AIRSPEED_CRUISE 20 / 22 (guide: 16 / 20) AIRSPEED_MIN is 20 since 2026-10-18 (18 before). The forward transition ends when the indicated airspeed passes it, and the side static ports read high at the transition’s low and negative angle of attack. On the static-port sensor model on the Fuselage C model, 18 ended 19 % of transitions below 18 m/s true and 20 none (th-testpilot b9b5632f, 1d51b2d9). The trimmed stall is designed to as 16.5 m/s on the keel at 2.48 kg: 15.5 from the trim solution (12 degrees angle of attack carrying 10.6 degrees of up elevon), 16.7 and 17.8 from the SITL probe with the stall blend at 100 and 50. The elevon that trims the wing costs a fifth of the lift, which is why it sits well above the 13.4 m/s clean stall. The guide’s 16 is at or below it. The survey is flown at 20 m/s. The first flight-test item: a stall in FBWA at altitude, throttle low, nose held up, and read the speed when the nose goes. Until then, 16.5 is a model value.
Q_ASSIST_SPEED 18 (guide: 14) Above every number in the stall bracket, so the speed assist starts the lift motors before the wing lets go. Since 2026-10-18 it is 2 m/s under AIRSPEED_MIN 20. The assist acts on the indicated airspeed of a loaded wing, where the side ports read low: an indicated 18 m/s is about 21 m/s true (th-aeronautics’ static-port table at ARSPD_RATIO 2.3); the 30 degree angle assist (Q_ASSIST_ANGLE 30 since 2026-10-01) is the second catch. The guide’s 14 and the earlier 16 are inside the bracket. In SITL it does not fire in the transition out (18 m/s reached at 6.3 s, done at 11.3 s) or on the approach at 20 m/s. Same stall test; set it 1 to 2 m/s above the measured stall.
TECS_LAND_ARSPD 20 (default -1) The approach speed of a fixed-wing landing. At -1 it is halfway between AIRSPEED_MIN and AIRSPEED_CRUISE, so it would move when AIRSPEED_MIN moves. It is set to a fixed value because th-hangar sizes the belly-landing lane from it. In SITL the lane stops at +45 m or less in a 5 m/s tailwind (th-testpilot 5f21a1f0). The first fixed-wing landing: measure the stop distance.
MIXING_GAIN 0.75 The build setting. With the default 0.5 the elevons saturated at 16 to 19 m/s, above the assist speed. Confirm the throw with the measurement.
PTCH_RATE_* / RLL_RATE_* P and I: defaults / 2.34. FF: RLL_RATE_FF 0.311, PTCH_RATE_FF 0.801 The defaults were divided by 2.34 for the 2.34 times elevon authority change. The CFD elevon terms (th-aeronautics, 2026-09-29) lower the pitch authority by 25 %, so th-avionics divided the pitch feed-forward by 0.75. The roll authority is 0.758 of the old VSPAERO value, from the up-side CFD elevon slope where trim sits (th-aeronautics, 2026-09-30, 1bcc0b1; it was 0.68 from the central slope), so the roll feed-forward is 0.236 / 0.758 = 0.311 (it was 0.347). On the check mission in SITL, the roll error went from 15.0 to 10.4 degrees RMS and the bank overshoot from 2.9 to 1.6 degrees. In th-testpilot’s standard tier, no result changed, and the bank overshoot in the survey turns went from about 4 degrees to 2 degrees. The aircraft’s common file has the same values. They are provisional until AUTOTUNE. Do an AUTOTUNE flight after the elevon and mixing change, and use its gains in place of these.
RNGFND1_*, RNGFND_LANDING TFmini-S rows (7 m), landing use on The landing-sensing study’s sensor, modelled in SITL. It moves the start of the final descent up by about 1.5 m and slows the last 10 m; touchdown speed and the landing detector are unchanged. Fit the sensor per landing sensing; the barometer drift it corrects does not exist in SITL.
AIRSPEED_STALL 20.0 (default 0) ArduPlane’s stall prevention scales the bank limit and the lowest target speed in turns from this. With it at 0, the stall is taken as AIRSPEED_MIN and 48 degrees of bank is allowed at 22 m/s. The value was the model’s stall, 17.8 m/s, times 1.08 (19.2) until 2026-10-01. It is 20.0 since then (th-avionics), from th-testpilot’s paired S2 runs at the 21 m/s survey: 20.0 lowered the turn AoA peak on every gust seed (9.9 to 11.0 degrees, 0.3 to 1.6 lower) for about 1 Wh per 100 ha. TECS’s floor in a 35 degree turn is then 22.1 m/s, above the line speed. 20.0 is also 19.2 referred to the heaviest mass, 2.80 kg. At the earlier 20 m/s survey it only cost energy and track holding (SITL S1 and S2). In th-testpilot’s SITL battery (2026-09-28) the 20 m/s survey stalled in every 35 degree line-end turn without it; with it the turns self-limit to 25 degrees and nothing stalls, 22 m/s keeps full bank, and transitions and hover do not change. It also sets a speed floor: at 19.2, in level flight the aircraft held 19.3 m/s EAS or more (th-testpilot’s trim sweep H1 in SITL, 2026-09-29). AIRSPEED_MIN 18 still applies in the transition and when the lift motors assist. After the FBWA stall test, set it to the measured stall times 1.08.
ROLL_LIMIT_DEG 35 (quadplane default: 65) A turn at 45 degrees of bank raises the stall by a factor of 1.19, at 35 degrees by 1.10. With the keel at 2.48 kg the QRTL turn-back at 22 m/s in 5 m/s of gusty wind stalled in the turn and crashed in 3 of 8 SITL flights at 45 degrees and in 0 of 8 at 35 (2026-09-27). Earlier, at 2.37 kg in calm air, 63 degrees crashed and 45 landed every time. With AIRSPEED_STALL at 0, ArduPlane’s load-factor limit takes AIRSPEED_MIN as the stall, so it does not protect a turn at cruise speed. It costs turn radius: 70 m at 22 m/s, against 49 m at 45 degrees. After the FBWA stall test, set AIRSPEED_STALL to the measured stall and review this limit in a 35 and a 45 degree turn at cruise speed in the logs.
Q_A_RAT_YAW_P 0.3 (default 0.2, no D) The keel airframe. The rear keels are a yaw spring in a crosswind: broadside to 8 m/s about 0.26 N m by hand, near the lift motors’ differential-torque authority. In SITL the raised gain halves the rebound after the back-transition from 6.7 to 4.2 degrees; Q_A_RAT_YAW_D adds nothing. Confirm on the yaw axis of the AUTOTUNE flight. The sim cannot see the keels in a spanwise flow, so the hover margin is smaller on the aircraft than the sim’s 13% mixer demand shows.
Q_WVANE_GAIN 1 (default 0; Q_WVANE_ENABLE is already 1 on a plane build) Turns the nose into the wind in position-holding VTOL modes instead of holding it broadside. In SITL the keel model turned 90 degrees in 12 s, no overshoot, roll 10 degrees at most on the way. Off in QHOVER by ArduPilot’s design. The nose goes into the wind, which is the box axis only when the hangar sits along the prevailing wind. Set the gain to 0 to hold a heading instead.
Q_OPTIONS 200736 (guide: 163841) Bits 5, 12, 16 and 17 (th-avionics; bit 12 since 2026-10-19, 196640 from 2026-09-30, 229408 with bit 15 before). Bit 12: the speed assist acts only on a real airspeed sensor, not on a synthetic airspeed. Without a sensor, or after ArduPilot disables a failed one, the synthetic airspeed fell to about 13 m/s against 21 true, below Q_ASSIST_SPEED, and the assist restarted every 5 s through cruise with the lift motors running (th-testpilot 83567e78); with bit 12 that loop is gone, and with the sensor nothing changes (cc6d5d92). Height and angle assist stay. Bit 15, throttle land control, is off. In th-testpilot’s SITL flight F6, with bit 15 on, a throttle stick left at cruise turned a battery-failsafe landing into a climb to 640 m and a crash. In F7, a QLAND that started with the stick high held its height at mid stick. With 196640 the same F6 flight landed 0.1 m from home with the stick at 82 %. Bit 5: an RC failsafe in a VTOL mode returns home by QRTL instead of landing in place. Bit 16, DisableApproach: QRTL and VTOL landings skip the fixed-wing approach circle; in th-testpilot’s gusty SITL box it took crashes from 4 of 8 to 0 of 8, and the lift motors’ time on the wing in the turn-back from 32.5 s to 1.8 s. Bit 0, Level Transition, is off: no measured cost in calm transitions, and an aircraft caught by an assist may bank to turn home. Bit 17 as the guide. Bit 16’s gusty evidence used SITL’s SIM_WIND_TURB, which is harsher than real gusts (near-white noise at 1200 Hz); it removes a steep low-speed turn, which is safer under any gust model. Bench, transmitter off in QHOVER: the mode must go to QRTL. First QRTL flight: the aircraft should back-transition over home without a circle.
ARSPD_OPTIONS 9 (default 11) Bits 0 and 3: ArduPilot disables a pitot that disagrees with the GPS less the EKF’s wind, or with the EKF. Bit 1, which enables it again in flight, is off. With bit 1 the EKF can learn a wind that explains a stuck reading, and the health check then enables the stuck pitot again: in SITL the flight lost 8.8 to 11.2 m before the stuck guard caught it again. With 9 the worst was 3.1 m, 12 of 12 under 10 m (th-testpilot 184610e8). The cost: a good pitot rejected after a sudden wind change stays off for the flight, and the aircraft flies on synthetic airspeed. Bench: block the pitot in a hover test and check the airspeed is marked unhealthy and stays so.
Q_WVANE_LAND 0 (default -1, which follows Q_WVANE_ENABLE) QLAND and QRTL do not remove a crab, and with the weathervane on in the landing the nose turns into the wind: in SITL, stock QRTL in an 8 m/s crosswind landed 85 to 88 degrees off the box axis. With this row and the dock script’s yaw onto the axis, every case from ahead or across up to 5 m/s landed in the window. The weathervane still works in the hover modes. Part of the dock approach yaw. Confirm on the first pad landing in a crosswind that the heading holds after the yaw.
Q_LAND_FINAL_SPD 0.3 m/s (default 0.5) This is the touchdown speed for the keel gear on the flat pad. th-aeronautics accepts a nose-down contact of up to 12.5 degrees only at 0.5 m/s or less. All dock results in SITL were flown at 0.3 m/s, with Q_LAND_FINAL_ALT 3 m. The slower descent costs a few seconds, and the centring pad removes the reason to land fast. On the first pad landings, record the descent rate at contact in the log. Make sure that it is 0.3 m/s or less.
SERVO1_TRIM / SERVO2_TRIM, SERVO_AUTO_TRIM The predicted cruise trim of the model at 22 m/s, at 16 us for each degree of up elevon (1432 us for the default model); auto trim 1 SITL used to fly with the elevons centred at 1500 us. Each transition then started out of trim, and the pitch loop had to add the up elevon while the lift motors stopped. From 50 m the default model went down to 33 m and the CFD model to 26 m. With the trim, they went down to 37 m and 38 m (2026-09-29). The harnesses calculate the trim for the model that they fly. The airframe files start the real elevons at the same prediction, and SERVO_AUTO_TRIM corrects it in flight. After the first flights, copy the trim that SERVO_AUTO_TRIM learned into the airframe file.
STICK_MIXING 1 (the default; must not be 0) The dock script yaws the aircraft with a rudder override. QRTL ignores rudder input when STICK_MIXING is 0, and ArduPlane has no CONDITION_YAW, so 0 would silently remove the yaw step. Check it on the ground before any dock landing.
FLTMODE5 11, RTL (guide: QRTL) With Q_OPTIONS bit 16 set, a QRTL started far from home hovers the whole way back: in SITL, QRTL from 2.6 km ran the pack to critical and ended in the field. RTL flies home as a plane and hands over to QRTL near home (Q_RTL_MODE 1). So the transmitter’s return slot is RTL, and QRTL is used only near the pad (th-avionics, 2026-09-28). On the bench, check that switch position 5 shows RTL.
RTL_ALTITUDE 80 m (default 100) Under the 120 m ceiling and well above Q_ASSIST_ALT.
Q_RTL_ALT 50 m (was 40) A transition from hover sags about 15 m, and an aircraft on the wing below Q_ASSIST_ALT does not climb back out with TECS_SPDWEIGHT 2 (SITL, calm air: it stayed at 28 m with the lift motors near full power). In th-testpilot’s far-return test, 50 m here with RTL_ALTITUDE 80 landed on 806 mAh against 2582 mAh at 40 and 100 (th-avionics, 2026-09-28). Keep every transition from a hover at 50 m or higher.
TECS_SPDWEIGHT 2 (default 1) TECS gives speed priority over height. In th-testpilot’s SITL home-leg set (the reference survey in a steady 5 m/s wind from 8 directions, 2026-09-28): with the default, the angle of attack peaked at 20.9 degrees, with 3 Q_assist activations and 1 crash; with 2, it peaked at 9.4 degrees with no crash, the survey’s height error was smaller (p95 3.3 m against 3.8 m) and the energy slightly lower. Raising AIRSPEED_STALL to 20.5 instead cost height holding, and TECS_SINK_MAX 3 still stalled. With no usable airspeed, and in VTOL flight, TECS sets the weighting to 0 (height first) by itself, so an airspeed-sensor failure behaves as before. Check the first survey’s logs for height holding on the line-end turns. With the airspeed sensor failed, TECS falls back to height priority.
TECS_PITCH_MAX 7, absolute 12 with PTCH_TRIM_DEG 5 (default: PTCH_LIM_MAX_DEG) The wing stalls at 12 degrees angle of attack. With the pusher modelled as a SIM_Motor (the folding 10x6 at the time; the APC 10x7E since 2026-09-27, re-flown with the same result), TECS asked for 15 degrees of pitch in the landing approach’s first turn to hold height; the wing stalled and the aircraft flew into the ground. Capped, it gives up height instead and lands. Keep it. Check in the first flight log that TECS holds height in a 45 degree turn at cruise speed without reaching the cap.
Q_RTL_ALT 40 (default: 15) The QRTL approach descends to this height. At 15 it is below Q_ASSIST_ALT, so the lift motors started on height in the middle of the approach. 40 keeps the approach clear of the floor and gives the turn height to lose. Same.
Parameter SITL result What to do
PTCH_TRIM_DEG 5 (default 0) ArduPlane adds it to every fixed-wing pitch demand after the limits, so the centre stick in FBWA holds 5 degrees of pitch, about level cruise on the Fuselage C model. With 0, a hands-off FBWA transition held the nose near 1 degree through the lift ramp and lost up to 10.7 m in 126 SITL transitions on the C model. With 5 it lost 1.0 m at most, and the lowest true airspeed at the transition’s end rose from 16.89 to 21.24 m/s (th-testpilot dd6577cd).
PTCH_LIM_MAX_DEG / PTCH_LIM_MIN_DEG / TECS_LAND_PMAX / LAND_PITCH_DEG 15 / -30 / 5 / -5 These limits are relative to PTCH_TRIM_DEG. Each is 5 degrees less than its absolute angle, so the aircraft keeps the angles it flew before the trim: 20, -25 and 10 degrees (the defaults), and 0 for the belly-landing lane’s flare (peaks of 1.4 to 4.6 degrees as flown). Q_TRAN_PIT_MAX stays at its default of 3, so the AUTO transition’s pitch window is 2 to 8 degrees absolute. lift_check.lua v1.6.7 subtracts the trim from its own cap and from the lane’s LAND_PITCH_DEG.
SERVO1_TRIM / SERVO2_TRIM 1375 (5 degrees of up reflex) moved the elevon limit from 19 to 17.6 m/s with the earlier 20 degree throw. With 25 degrees the stall limits first, so reflex buys less. Set SERVO_AUTO_TRIM 1, which learns the trims in flight, or set the trims so that level cruise needs no stick.

These are not parameters. They come from the SITL drills on the Fly it in SITL page.

  • A lift motor failure in a hover is recoverable only in forward flight. The reaction is mode cruise and full throttle at once. It costs about 55 m of height. Hover at 70 m or higher when a failure is possible.
  • The first build has nose revision C with the CG trim slider, the Walksnail Moonlight camera, and both ESCs flat in the belly between the spars (2026-10-06). The slider moves the pack to set the CG, so the aircraft needs no trim weight for 268 mm on either landing gear. With the Survey3W fitted, put the pack front at Y 87.3 on keel A, which the print beds have until the keel B antenna cassette bay is drawn, or at Y 81.9 on keel B, the decided gear. The aircraft is then about 2.89 kg on keel A or about 2.85 kg on keel B, with the F8041 3-blade lift props. For the stall test at 265 mm, put the pack at the forward stop (Y 80) and add about 9 g on keel A or about 32 g on keel B. The SITL models keep the pack at its drawn place (front at Y 86) with no ballast: keel B at 269.5 mm and 2.85 kg, keel A at 267.2 mm and 2.89 kg. The stall and bank figures above were measured at the earlier 2.37 kg and 262 mm; the trim at 270 mm needs 1.6 degrees less up elevon. Refer to the CG envelope.
  • A transition in FBWA at half throttle does not complete. The pusher cannot reach 16 m/s at half throttle. The lift motors then carry the aircraft until the pack is empty. Use 85% or more, or use CRUISE.
  • The last waypoint before a VTOL landing must be 400 m or more from the landing point. From 150 m the aircraft overshoots and comes back.

Source: docs/flight-parameters.md in the repo. Edit it there; this page is generated.

Comments on

    Comments are reviewed before they appear. Please leave out places, addresses and other personal details.

    A Supported Systems Flight

    This build log is written and kept by Supported Systems, a small studio that makes thoughtful, user-first technology. The airframe, the hangar and the simulation are ours.

    Visit supported.systems