| Protocol | MAVLink v2 | MAVLink v2 | MSP v1/v2 | MSP v1/v2 |
| Primary use case | Autonomous missions, long-range survey, VTOL, sub, rover | Autonomous missions, research, defense | FPV racing and freestyle | FPV freestyle with autonomous navigation, fixed-wing |
| Detection | HEARTBEAT autopilot = 3 | HEARTBEAT autopilot = 12 | MSP FC_VARIANT = BTFL | MSP FC_VARIANT = INAV |
| Parameter count | 800+ | 1000+ (63 mapped in handler) | ~300 | ~400 (name-based settings) |
| Parameter access | Numeric index | Numeric index | Numeric index + virtual params | Name-based settings client |
| Auto-save on set | Yes | Yes | No (explicit save) | No (explicit save) |
| Mission upload | Yes (MAVLink mission protocol) | Yes | Not supported | Yes (MSP_WP + multi-mission) |
| Waypoint actions | ~16 MAV_CMD types | ~16 MAV_CMD types | None | 8 (WAYPOINT, POSHOLD_UNLIM, POSHOLD_TIME, RTH, LAND, SET_POI, JUMP, SET_HEAD) |
| Multi-mission storage | No | No | No | Yes (up to 9 missions on FC) |
| Geofence | Polygon + circular | Polygon + circular | No | Polygon + circular (up to 15 zones, 10 vertices per polygon) |
| Rally points | Yes | No | No | No |
| Safehomes | No | No | No | Yes (16 slots) |
| Flight modes | 18+ (mode switch via MAV_CMD) | 18+ | Box-mode via AUX channels | Box-mode + nav modes (POSHOLD, RTH, WP, CRUISE, COURSE HOLD, LAUNCH, LAND, ALT_HOLD) |
| OSD configuration | Standard elements + 4 independent screens | Not supported (no OSD in PX4 stack) | Full MSP OSD (25 elements) | Extended element set (100+) + 8 custom text elements |
| Blackbox | Yes | Yes | Yes | Yes (with iNav nav-extended fields) |
| CLI panel | No dedicated CLI panel | MAVLink Shell (NuttShell over SERIAL_CONTROL) | Yes (MSP command-line) | No dedicated CLI panel |
| Firmware flashing | APJ via WebUSB DFU (serial-bootloader fallback) | .px4 via PX4 serial bootloader (WebSerial) | WebUSB DFU | WebUSB DFU (same path as Betaflight) |
| LED strip | Yes | No (DroneCAN) | Yes | Yes (extended LED config) |
| Gimbal | Gimbal Manager v2 | Yes | No | No |
| Camera | Servo + distance trigger | Yes | No | No |
| MAVLink v2 signing | Yes (ArduPilot 4.0+) | No | N/A | N/A |
| Manual control input | MANUAL_CONTROL at 50 Hz | MANUAL_CONTROL at 50 Hz | MSP_SET_RAW_RC at 50 Hz | MSP_SET_RAW_RC at 50 Hz |
| Demo mode coverage | 4 copters in the fleet | 1 copter (Delta) | 0 dedicated | 2 drones (copter + fixed-wing) |
| Panels in Configure tab | 25+ shared | 22 shared + 3 PX4-specific | 22 shared + 8 Betaflight-specific | 22 shared + 13 iNav-specific |