
Understanding ArduPilot Landings — CTUN, MODE, and the LAND Parameter Family
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;Rsnsays 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.MSGlines — 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 ifWPNAV_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). CompareThOagainstThHto 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.DCRtramping from the higher descent rate (LAND_SPEED_HIGHorWPNAV_SPEED_DN) toLAND_SPEEDas the drone crossesLAND_ALT_LOW.CTUN.ThOdropping belowCTUN.ThHduring descent — you’re using less than hover throttle because you want to descend.- A final stretch of one or two seconds where
CTUN.CRttrails to near zero before disarm.
The LAND parameters worth knowing
LAND_SPEED— descent rate in cm/s belowLAND_ALT_LOW. Default 50 (0.5 m/s).LAND_SPEED_HIGH— descent rate aboveLAND_ALT_LOW. Default 0 means useWPNAV_SPEED_DNinstead.LAND_ALT_LOW— altitude at which the autopilot switches toLAND_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
- Bumpy touchdown.
CTUN.Altoscillating aroundCTUN.DAltin the last 2 m. Cause is usually ground effect changing the barometer reading; enableGROUND_EFFECT_COMP = 1or fit a rangefinder and setWPNAV_RFND_USE = 1. - Drifting horizontally during landing. Compare
POS.Lat/POS.Lngwith the intended touchdown point. Often it’s wind plus a slow horizontal controller; enableLAND_REPOSITION = 1if you want to correct manually, or improve your hover Loiter tune first. - 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 sharpCTUN.ThOdip or a momentary baro reading. CheckLAND_DETECT_TIME. - Mid-air pause.
CTUN.DAltstops descending in the middle of the landing. Most often this is a rangefinder reading dropping out and the autopilot switching sources; correlateRFND.Distwith the pause window. - Wrong descent rate.
CTUN.DCRtdoesn’t step atLAND_ALT_LOW. VerifyLAND_SPEEDandLAND_SPEED_HIGHare set correctly for your weight class. Heavier drones generally want slowerLAND_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) orRsn=8(MISSION_END). - RTL landing leg. Mode 6 (RTL) transitions to landing internally without changing the logged mode. Look at
CTUN.DAltinstead 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
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
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