Understanding ArduPilot Landings — CTUN, MODE, and the LAND Parameter Family
ardupilotlandingctunlog-analysisland-mode

Understanding ArduPilot Landings — CTUN, MODE, and the LAND Parameter Family

LogHat Engineering TeamMarch 27, 20265 min read

Key Takeaway

ArduPilot Copter has no distinct LAND log message. Landing is expressed in MODE (mode 9 with its Rsn), CTUN (DAlt/Alt/DCRt/CRt for the descent profile, ThO/ThH for controller effort), and MSG (phase boundaries). LAND_SPEED, LAND_ALT_LOW, LAND_SPEED_HIGH, and the rangefinder + ground-effect compensation knobs tune the descent.

TL;DR: ArduPilot Copter doesn't have a dedicated "LAND" log message. The information you need to diagnose and tune a landing lives in MODE (the entry into mode 9 with its Rsn), CTUN (desired versus achieved altitude and climb rate during descent), and the LAND_* parameter family (LAND_SPEED, LAND_ALT_LOW, LAND_REPOSITION). For diagnosing a bumpy or inaccurate touchdown, plot CTUN.DAlt vs CTUN.Alt and CTUN.DCRt vs CTUN.CRt for the last 15 seconds of the flight.

There is no LAND log message — here’s what actually exists

A common misconception is that ArduPilot writes a distinct LAND message that describes the landing in the log. It doesn’t. The only landing-specific log message in mainline ArduPilot is DSTL, which is for ArduPlane deepstall landings — not relevant to Copter or QuadPlane VTOL landings.

What you actually have to work with:

  • MODE — flight mode transitions. Mode 9 is LAND on Copter; Rsn says why the autopilot entered it (4 = battery failsafe, 8 = mission end, 9 = throttle land escape, etc.).
  • CTUN — throttle and altitude controller telemetry, written continuously while flying. This is where the descent profile lives.
  • BARO, RFND (rangefinder) — altitude sources the autopilot is using to decide ground proximity.
  • MSG lines — textual messages like "Land complete" and "Ground detect" that mark phase boundaries.

The CTUN fields you need

CTUN is the Copter control-tuning message. Field list:

CTUN  TimeUS  ThI  ABst  ThO  ThH  DAlt  Alt  BAlt  DSAlt  SAlt  TAlt  DCRt  CRt
  • DAlt — desired altitude. During LAND, this descends at the configured rate.
  • Alt — achieved altitude (EKF-fused).
  • BAlt — raw barometric altitude.
  • DSAlt — desired altitude above the rangefinder reading (used near ground if WPNAV_RFND_USE = 1).
  • SAlt — achieved rangefinder altitude.
  • DCRt — desired climb rate (negative during descent).
  • CRt — achieved climb rate.
  • ThO — throttle output the autopilot is commanding.
  • ThH — calculated hover throttle (the autopilot’s estimate of what throttle would maintain altitude). Compare ThO against ThH to see how hard the descent controller is working.

The descent profile in a healthy landing

Plot CTUN.DAlt against CTUN.Alt for the last 15 seconds of flight. A clean landing has:

  • A smooth, monotonic decline in both traces with the achieved altitude tracking the desired altitude within roughly 30 cm.
  • CTUN.DCRt ramping from the higher descent rate (LAND_SPEED_HIGH or WPNAV_SPEED_DN) to LAND_SPEED as the drone crosses LAND_ALT_LOW.
  • CTUN.ThO dropping below CTUN.ThH during descent — you’re using less than hover throttle because you want to descend.
  • A final stretch of one or two seconds where CTUN.CRt trails to near zero before disarm.

The LAND parameters worth knowing

  • LAND_SPEED — descent rate in cm/s below LAND_ALT_LOW. Default 50 (0.5 m/s).
  • LAND_SPEED_HIGH — descent rate above LAND_ALT_LOW. Default 0 means use WPNAV_SPEED_DN instead.
  • LAND_ALT_LOW — altitude at which the autopilot switches to LAND_SPEED. Default 1000 (10 m).
  • LAND_REPOSITION — 1 lets the pilot reposition horizontally during the descent. Useful for landing in tight spots.
  • WPNAV_RFND_USE — 1 uses the rangefinder for the final descent if one is fitted, which is more reliable than the barometer near ground.
  • GROUND_EFFECT_COMP — 1 compensates the barometer for ground-effect pressure changes during the last metre.
  • PILOT_ACCEL_Z — caps the descent acceleration the pilot can command in altitude-controlled modes.

Diagnosing common landing problems

  1. Bumpy touchdown. CTUN.Alt oscillating around CTUN.DAlt in the last 2 m. Cause is usually ground effect changing the barometer reading; enable GROUND_EFFECT_COMP = 1 or fit a rangefinder and set WPNAV_RFND_USE = 1.
  2. Drifting horizontally during landing. Compare POS.Lat/POS.Lng with the intended touchdown point. Often it’s wind plus a slow horizontal controller; enable LAND_REPOSITION = 1 if you want to correct manually, or improve your hover Loiter tune first.
  3. Premature throttle cut. The autopilot decides the drone has landed before it actually has. Look at the "Land complete" MSG timestamp versus CTUN.Alt; if it fires while the drone is still 0.5 m up, the ground-detect logic was confused by a sharp CTUN.ThO dip or a momentary baro reading. Check LAND_DETECT_TIME.
  4. Mid-air pause. CTUN.DAlt stops descending in the middle of the landing. Most often this is a rangefinder reading dropping out and the autopilot switching sources; correlate RFND.Dist with the pause window.
  5. Wrong descent rate. CTUN.DCRt doesn’t step at LAND_ALT_LOW. Verify LAND_SPEED and LAND_SPEED_HIGH are set correctly for your weight class. Heavier drones generally want slower LAND_SPEED.

Confirming it in MAVExplorer

MAV> graph CTUN.DAlt CTUN.Alt
MAV> graph CTUN.DCRt CTUN.CRt
MAV> graph CTUN.ThO CTUN.ThH
MAV> messages MSG

Overlay the descent altitude, descent rate, throttle output, and textual messages on one view and the entire landing reveals itself.

When this isn’t a LAND-mode problem

  • Auto mission DO_LAND_START. The mission planner can hand off to LAND mode in the middle of an Auto mission. The mode change is logged with Rsn=2 (GCS_COMMAND) or Rsn=8 (MISSION_END).
  • RTL landing leg. Mode 6 (RTL) transitions to landing internally without changing the logged mode. Look at CTUN.DAlt instead of waiting for a mode change to confirm descent.
  • Crash detection forcing land. ERR Subsys=12 ECode=2 (CRASH_CHECK_LOSS_OF_CONTROL) disarms the vehicle abruptly; the descent profile won’t be controlled in any useful sense after that line.

When LogHat helps — and when it doesn’t

LogHat overlays the descent profile (CTUN.DAlt, CTUN.Alt, CTUN.CRt) on the 3D replay with the touchdown point annotated and surfaces the relevant LAND_* parameter snapshot at takeoff. What we can’t do is tell you whether the landing zone was actually level — that needs you to look at the spot.

About the author

LE

LogHat Engineering Team

The LogHat engineering team — drone-systems engineers who build and operate the LogHat flight analytics platform. Posts in this byline are written and reviewed by team members working on the parsers, analysis engine, and Vector AI that the post describes.

Tagged

ardupilotlandingctunlog-analysisland-mode

Try LogHat

Analyze your flight logs in seconds

Upload a .bin, .tlog, .log, or .ulg file. Get AI crash analysis, 3D replay, and forensic PDF reports instantly.

Try LogHat Free