When to use iNav
iNav is the right choice when you want waypoint missions, GPS-assisted modes (position hold, return-to-home, cruise), or fixed-wing autolaunch and autoland on a Betaflight-class flight controller. For purely manual FPV racing or freestyle, Betaflight remains leaner. For long-range survey, mapping, or agriculture, iNav covers the full autonomous flight surface without moving to ArduPilot’s heavier stack.Connect
- Power the flight controller.
- Plug it into your computer over USB.
- Open Mission Control at
http://localhost:4000. - Click Connect and pick the serial port from the browser picker.
- Mission Control auto-detects the firmware. iNav flight controllers return
INAVin the MSPFC_VARIANTresponse.
Mission Control requires WebSerial, which means Chromium-based browsers on desktop (Chrome, Edge, Brave) or the Electron desktop app. iOS Safari does not expose WebSerial.
Flight modes
iNav ships more autonomous modes than Betaflight:- ACRO direct stick-to-rate control.
- ANGLE / HORIZON self-leveling stabilization.
- NAV ALTHOLD barometric altitude hold.
- NAV POSHOLD GPS position hold.
- NAV RTH return to home. Climb-first or tail-first behavior configurable in the NavConfig panel.
- NAV WP waypoint mission execution.
- NAV CRUISE constant heading and speed cruise.
- NAV COURSE HOLD hold course, user controls throttle.
- NAV LAUNCH fixed-wing autolaunch.
- NAV LAND fixed-wing autoland.
Mission planning
iNav supports eight waypoint action types:| Action | Purpose |
|---|---|
| WAYPOINT | Navigate to the point. |
| POSHOLD_UNLIM | Hold position indefinitely. |
| POSHOLD_TIME | Hold for a configurable duration. |
| RTH | Return to home from this point. |
| LAND | Land at this point. |
| SET_POI | Point the camera at a fixed ground target. |
| JUMP | Conditional jump to another waypoint, with repeat count. |
| SET_HEAD | Set the heading for the next leg. |
MSP_SET_WP and multi-mission storage (MSP_WP_MISSION_LOAD / MSP_WP_MISSION_SAVE) on iNav 5.0 and later.
Mission limit: 60 waypoints per mission, up to 9 missions stored on the flight controller.
Safehomes
Safehomes are alternate return points. Useful when the launch point is inaccessible on return (forest, water, no-fly zone overhead). Mission Control’s Safehome panel in the Configure tab edits all 16 slots. Each slot: enabled flag, latitude, longitude. iNav uses the nearest enabled safehome withinsafehome_max_distance when RTH triggers.
Geozones
Polygon or circular fences. Up to 15 zones, up to 10 vertices per polygon. Each zone has:- Type: EXCLUSIVE (keep out) or INCLUSIVE (stay inside).
- Shape: CIRCULAR or POLYGON.
- Altitude bounds: minimum and maximum.
- Fence action: NONE (warn), AVOID, POSHOLD, RTH.
- Sea-level reference flag.
Navigation config
The NavConfig panel exposes the navigation tuning settings iNav pilots care most about:nav_max_speedcruise speed for waypoint navigation (cm/s).nav_manual_speedspeed under manual-with-nav-assist modes.nav_rth_altitudealtitude for return to home.nav_rth_climb_firstclimb before heading home (safer over obstacles).nav_rth_tail_firstfixed-wing tail-first return.nav_poshold_user_control_modehow RC input blends into position hold.nav_wp_max_distance_between_pointsenforces waypoint spacing.- Landing slowdown thresholds and emergency descent rate.
MSP2_COMMON_SETTING / MSP2_COMMON_SET_SETTING). Mission Control’s SettingsClient marshals values to the correct type automatically.
Profiles
iNav supports multiple profiles in three independent groups. Each profile switcher is in the Configure tab:- Control profiles (3): PIDs, RC tuning, rates. Switch via
current_control_rate_profile. - Battery profiles (4): capacity, cell count, voltage thresholds, current scale. Switch via
MSP2_INAV_SELECT_BATTERY_PROFILE. - Mixer profiles (3): platform type, motor / servo count, custom mixer rules. Switch via
MSP2_INAV_SELECT_MIXER_PROFILE.
Programming framework
iNav’s Logic Conditions, Global Variables, and Programming PIDs provide visual scripting without writing imperative code.- Logic Conditions up to 16 conditional rules. Each rule has an operator (AND, OR, XOR, NAND, NOR, NOT, GT, LT, EQ), two operands (RC channel, flight mode, global variable, constant, sensor value), and an activator output.
- Global Variables up to 16 int16 values. Read live via
MSP2_INAV_GVAR_STATUS. Assignable by Logic Conditions or directly through the settings system. - Programming PIDs up to 4 PID controllers outside the main flight loop. Useful for gimbal control, payload deployment, or custom tracking.
EZ Tune
The EZ Tune panel provides simplified auto-tuning for pilots who do not want to hand-tune PIDs. Sliders cover response, damping, stability, aggressiveness, snappiness, axis ratio, rate, and expo. Writes go toMSP2_INAV_EZ_TUNE_SET.
Fixed-wing approach
Airplane and tricopter platforms pick up FW Approach profiles. Each of 4 approach slots holds landing coordinates, approach altitude, land altitude, approach direction, two landing headings, and a sea-level reference flag. The FW Approach panel is hidden on multirotor platforms.Known limitations
- JavaScript Programming transpiler. iNav Configurator’s Programming tab also exposes a JavaScript-to-bytecode transpiler for imperative scripting. Mission Control does not ship that transpiler in v1. The Logic Conditions panel covers the same underlying primitives via direct rule editing. Users with an existing JavaScript-based workflow can keep iNav Configurator open for that one tab while doing everything else in Mission Control.
- Telemetry bridging (LTM, MAVLink emulation over iNav). Mission Control connects directly over USB WebSerial or TCP (SITL bridge) and speaks MSP natively. Telemetry-over-RC-link (SmartPort, CRSF, LTM on a serial pin feeding a radio receiver) is a different transport from what Mission Control ingests. Pilots who fly out of laptop range use their RC radio’s on-screen telemetry or an FPV OSD overlay for in-flight data. Once they land and plug in, Mission Control covers the full configuration, blackbox, and mission-review surface.
- DJI and HD VTX DisplayPort OSD preview. iNav supports
MSP_DISPLAYPORTfor DJI O3 / Avata / Goggles 2 and Walksnail Avatar. Mission Control configures OSD elements via the OSD panel, but does not render the DisplayPort frames as a live canvas preview. The goggle or HD VTX chip renders them on the drone at runtime. A canvas preview widget is on the roadmap. - MSP over-the-air firmware update.
MSP2_INAV_FWUPDT_*flashing is not implemented. Use the existing WebUSB DFU flasher in the Firmware panel for iNav binaries. iNav flashes the same way as Betaflight. - Mobile and phone viewports. Mission Control is a desktop and laptop GCS. iNav panels follow the existing responsive posture: tablet landscape works, phone viewports are not specifically designed for. Native Android coverage lives in a separate track (the ADOS Mission Control Android app, on its own roadmap).
- Real iNav hardware verification. The iNav path is exercised against the bundled demo protocol. A real iNav 7.x flight controller round-trip is the final gate before this page’s status flips from “preview” to “verified on hardware.”
- Older iNav versions. Mission Control targets iNav 7.0 and later. Older versions degrade gracefully: unsupported panels hide themselves based on
MSP2_COMMON_PG_LISTfeature detection.
Cross-references
- Firmware comparison side-by-side matrix of ArduPilot, PX4, Betaflight, and iNav.
- Connecting general connection flow.
- Mission planning if a dedicated mission page exists.