
A few days ago, a follower reached out asking us at Aomway to put together a parameter configuration guide for runway-operated fixed-wing UAVs. We finally found the time to write it up today.
Configuring a pure fixed-wing flight controller is relatively straightforward, but here is the critical caveat: during the maiden flight, you must have an experienced RC pilot on standby. Every airframe differs in structure, center of gravity, and power system — so the parameters will always need some fine-tuning. Below, we have compiled the key ArduPilot parameters into reference tables. Use these as a baseline, then adjust according to your specific aircraft.

Important: Whether you are working with a pure fixed-wing, multirotor, or VTOL aircraft, Step 1 must always be calibrating all sensors in Mission Planner — including the compass, RC transmitter, serial port assignments, and servo channel mapping. If these fundamentals are not properly configured, even perfectly tuned flight parameters later on cannot guarantee safe operation.
Recommendation: On the maiden flight, use FBWA (Fly-By-Wire-A) mode for manual flight, perform initial PID tuning in the air, and only switch to AUTO mode once the aircraft is stable.
Before any test flight, conduct a thorough pre-flight check: manually verify all control surfaces, throttle response, airspeed sensor readings (blow into the pitot tube and confirm the reading changes), and GPS lock status.
Key Takeaways
- Sensor calibration first: All sensor and channel configuration must be completed before tuning flight parameters.
- Maiden flight in FBWA: Always hand-fly the first flight in stabilized mode before trusting AUTO.
- Takeoff rotation speed: Set TKOFF_ROTATE_SPD to approximately 1.2× stall speed — for a 30kg airframe, 50-55 km/h.
- PID starting values: Roll/Pitch P at 0.30-0.50, Yaw P at 0.15-0.25 — these are conservative baselines for a heavy airframe.
- Landing flare: Initiate flare at 5-8m altitude with 2-3° nose-up pitch for a smooth touchdown.
- Hardware upgrades: Adding a laser rangefinder and RTK GPS dramatically improves takeoff and landing precision.
Runway Fixed-Wing Parameter Reference Tables
Takeoff Phase Parameters
| Parameter | Description | Recommended Value (30kg airframe) |
|---|---|---|
| TKOFF_ROTATE_SPD | Rotation airspeed (km/h) | 50-55 (≈14-15 m/s, roughly 1.2× stall speed) |
| TKOFF_THR_MAX | Maximum takeoff throttle (%) | 100 |
| TKOFF_LVL_PITCH | Climb pitch angle (degrees) | 10 |
| TKOFF_TDRAG_ELEV | Elevator downforce during ground roll (degrees) | -3.0 (negative = tail-down pressure) |
| TKOFF_ALT | Target takeoff altitude (meters) | 40-60 |
| TKOFF_DIST | Target takeoff roll distance (meters, optional) | Based on runway length, e.g. 100-200 |
| TKOFF_THR_MINSPD | Minimum airspeed throttle limit (m/s) | 3 (throttle limited below this speed) |
| TKOFF_TIMEOUT | Takeoff timeout (seconds) | 20 |
Cruise Phase: PID & TECS Control Parameters
| Category | Parameter / Control Loop | Description | Recommended Value |
|---|---|---|---|
| Attitude PID (starting values) | Roll | P Gain | 0.30 – 0.50 |
| I Gain | 0.05 – 0.10 | ||
| D Gain | 0.003 – 0.005 | ||
| Pitch | P Gain | 0.30 – 0.50 | |
| I Gain | 0.05 – 0.10 | ||
| D Gain | 0.003 – 0.005 | ||
| Yaw | P Gain | 0.15 – 0.25 | |
| I Gain | 0.01 – 0.02 | ||
| D Gain | 0.001 – 0.002 | ||
| TECS (Total Energy Control System) & Airspeed | TECS_CLMB_MAX | Maximum climb rate (m/s) | 5 |
| TECS_SINK_MAX | Maximum sink rate (m/s) | 3 | |
| ARSPD_FBW_MIN | Minimum airspeed in stabilized mode (m/s) | Stall speed × 1.2, e.g. 12 | |
| ARSPD_FBW_MAX | Maximum airspeed in stabilized mode (m/s) | Max cruise speed × 0.8, e.g. 25 | |
| ARSPD_USE | Enable airspeed sensor | 1 (Enabled) |
Navigation & Augmentation Parameters
| Parameter | Description | Recommended Value |
|---|---|---|
| NAVL1_PERIOD | L1 navigation period (seconds) | 20-25 |
| KFF_RDDRMIX | Rudder-to-aileron mixing coefficient | 0.5 – 0.8 |
| KFF_THR2PTCH | Throttle-to-pitch feedforward | 0.3 – 0.5 |
| STAB_PITCH_DOWN | Low-speed automatic nose-down compensation (degrees) | 2-3 |
| AUTOTUNE_LEVEL | Auto-tune aggressiveness (5-7, higher = more aggressive) | 6 |
Landing Phase Parameters
| Parameter | Description | Recommended Value |
|---|---|---|
| LAND_FLARE_ALT | Flare initiation altitude (meters) | 5-8 |
| LAND_FLARE_SEC | Flare duration (seconds) | 2-3 |
| LAND_PITCH_CD | Flare pitch angle (centidegrees, 1° = 100) | 200-300 (i.e. 2-3°) |
| TECS_LAND_ARSPD | Landing target airspeed (m/s) | Stall speed × 1.2, e.g. 12 |
| LAND_DISARM_DELAY | Post-landing auto-disarm delay (seconds) | 15-20 |
| USE_REV_THRUST | Reverse thrust (0=Off, 1=Manual, 2=Auto-landing) | 2 (if ESC supports reverse) |
| LAND_PITCH_RED | Final approach pitch correction (degrees) | Keep default, or -2~0 |
Essential Base Configuration Parameters
| Parameter | Description | Recommended Value |
|---|---|---|
| COMPASS_USE | Enable compass | 1 |
| AHRS_EKF_TYPE | Attitude estimation type (use EKF) | 3 |
| EK2_ENABLE / EK3_ENABLE | Enable EKF2 or EKF3 | 1 (choose one) |
| GPS_TYPE | GPS type | Per hardware (e.g. 1 = UBlox) |
| ARSPD_TYPE | Airspeed sensor type | Per hardware (e.g. 1 = I2C digital) |
| BATT_MONITOR | Battery monitoring | 4 (voltage + current) |
| BATT_CAPACITY | Battery capacity (mAh) | Per actual battery |
| FENCE_ENABLE | Geo-fence switch | 1 (recommended on) |
| FENCE_ACTION | Geo-fence trigger action | 1 (RTL return-to-launch) |
| FS_GCS_ENABLE | Ground station failsafe | 1 (triggers RTL) |
| FS_LONG_TIMEOUT | Signal loss timeout (seconds) | 10 |
Pro tip from Aomway: Runway-based fixed-wing operations require a sufficiently long takeoff and landing strip. For best results, equip your airframe with a laser rangefinder and RTK GPS module. These upgrades dramatically improve altitude accuracy and position precision, reducing the risk of overshooting the runway during both takeoff and landing.
Frequently Asked Questions
Q: Why should I use FBWA mode for the maiden flight instead of AUTO?
A: FBWA gives you stabilized manual control — the flight controller maintains attitude while you command turns and climbs. This lets you assess the aircraft’s behavior and tune PIDs safely before handing full control to AUTO mode.
Q: What happens if TKOFF_ROTATE_SPD is set too low?
A: The aircraft may attempt to rotate before reaching sufficient airspeed, risking a stall immediately after lift-off. Always set it to at least 1.2× the measured stall speed.
Q: Do I really need an airspeed sensor for a fixed-wing UAV?
A: While ArduPilot can estimate airspeed from GPS, an actual pitot-tube airspeed sensor (ARSPD_USE=1) is strongly recommended for reliable stall prevention, especially on heavier aircraft like a 30kg platform.
Q: How do I fine-tune the PID values after the initial flight?
A: Use AUTOTUNE_LEVEL=6 in flight, or manually increase P until you see slight oscillations, then back off by 20%. Increase D to dampen overshoot, and add I gradually to eliminate steady-state error.
Q: Can I use these parameters for a lighter fixed-wing UAV?
A: Yes, these tables serve as a baseline. For lighter aircraft (under 10kg), you can typically use slightly lower PID values and shorter takeoff distances. Always validate with flight testing.