Skip to main content
iNav extends Betaflight with autonomous navigation, waypoint missions, safehomes, geozones, and a visual programming framework. Mission Control supports iNav 7.0 and later as a first-class firmware, with the same protocol-level polish it offers for ArduPilot, PX4, and Betaflight.

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

  1. Power the flight controller.
  2. Plug it into your computer over USB.
  3. Open Mission Control at http://localhost:4000.
  4. Click Connect and pick the serial port from the browser picker.
  5. Mission Control auto-detects the firmware. iNav flight controllers return INAV in the MSP FC_VARIANT response.
The top bar shows the firmware family, version, and link quality. Capability-gated panels appear in the Configure tab when iNav is detected.
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.
The Flight Modes panel lists them all. Assign each mode to an RC AUX channel range and flip it in on the transmitter, same pattern as Betaflight.

Mission planning

iNav supports eight waypoint action types:
ActionPurpose
WAYPOINTNavigate to the point.
POSHOLD_UNLIMHold position indefinitely.
POSHOLD_TIMEHold for a configurable duration.
RTHReturn to home from this point.
LANDLand at this point.
SET_POIPoint the camera at a fixed ground target.
JUMPConditional jump to another waypoint, with repeat count.
SET_HEADSet the heading for the next leg.
Plan a mission in the Plan tab. The waypoint editor exposes iNav-specific actions when the connected firmware reports multi-mission support. Upload happens over MSP using 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 within safehome_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.
The Geozones panel edits zones via a form. Vertex coordinates are entered numerically. Map-based polygon drawing for geozones is a planned refinement; the current flow uses direct lat/lon entry. The NavConfig panel exposes the navigation tuning settings iNav pilots care most about:
  • nav_max_speed cruise speed for waypoint navigation (cm/s).
  • nav_manual_speed speed under manual-with-nav-assist modes.
  • nav_rth_altitude altitude for return to home.
  • nav_rth_climb_first climb before heading home (safer over obstacles).
  • nav_rth_tail_first fixed-wing tail-first return.
  • nav_poshold_user_control_mode how RC input blends into position hold.
  • nav_wp_max_distance_between_points enforces waypoint spacing.
  • Landing slowdown thresholds and emergency descent rate.
All fields use iNav’s name-based settings system (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.
Switching a profile takes effect immediately on the flight controller.

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.
The Logic Conditions panel shows live condition evaluation (on / off) alongside the editor rows. Polling runs at 2 Hz while the panel is open.

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 to MSP2_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_DISPLAYPORT for 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_LIST feature detection.

Cross-references