foam board DIY airplane

INAV: A History of the Flight Controller That Always Knows the Way Home

Ten years, nine major versions and a few thousand pull requests later, INAV went from “Cleanflight, but with GPS” to a full autopilot that lands planes, flies VTOLs and now even runs JavaScript. Grab a coffee (or a LiPo, no judgement), we’re going through the official releases from the oldest to the newest.

A bit of family history first. The open source flight controller tree goes MultiWii, then Baseflight, then Cleanflight. Around 2015 Cleanflight got forked twice: BorisB started Betaflight to make quads go fast, and Konstantin Sharlaimov (better known as digitalentity) started INAV to make them bring GPS and navigation to the people. Betaflight became the racer. INAV became the one that always knows the way home. Think of them as siblings: one does backflips, the other does your taxes and remembers where you parked.

The official release list lives on GitHub, with longer notes in the project wiki. Here’s the ride.

The 1.x era (2016 – 2018): teaching an old Naze new tricks

INAV 1.0 – January 2016

INAV 1.0 shipped on 23 January 2016, released by digitalentity with a modest “1.0 final release” note. Modest, but the feature list was not. 1.0 brought a brand new task scheduler, a massively refactored GPS driver, DJI NAZA GPS support and, most importantly, complete GPS-only navigation for airplanes: Althold, Poshold and RTH. There was even a sonar guard for landing – if INAV saw the ground coming, it slowed down and touched down gently, no matter what the barometer believed.

Remember, this was the age of the Naze32 and CC3D. Running GPS navigation on an F1 chip in 2016 was a bit like running a modern browser on a calculator. It worked, but nobody asked how.

INAV 1.1 – May 2016

1.1 opened with two warnings in bold: your config will be erased and re-tuning PIDs is a strict requirement. Welcome to early INAV. In return you got a brand new PID controller (Rewrite and Lux were retired), a HEADING LOCK mode, HOME RESET mode, a GCS NAV mode for follow-me style flying, a BLHeli 4-way passthrough, air cushion detection for smoother takeoffs and initial surface tracking support.

INAV 1.2 – September 2016

1.2 is where things got serious. The Configurator arrived on the Chrome Web Store, and the release brought experimental F4 support (“use caution”, said the notes, and they meant it). Also new: MAVLink telemetry, rates in degrees per second instead of mystery units, flaperons, an RTH+LAND waypoint, more waypoints overall, Jeti receiver support and a first turn assistant. Under the hood the whole driver layer moved to a new IO framework.

INAV 1.3 and 1.4 – late 2016

These two arrived quickly in the autumn of 2016 and were mostly about polish, stability and fixed wing friendliness. Community setup guides from that time cheerfully note things like “baro fixed for fixed wing in INAV 1.4”, which tells you what the daily struggles were.

INAV 1.5 – December 2016

The headline in 1.5: boards with an onboard OSD chip finally worked properly. Seeing your altitude and distance home on the goggles without a separate MinimOSD board felt like magic.

INAV 1.6 – February 2017

1.6 introduced the PIFF controller for fixed wings – Proportional, Integral, Feed Forward – which suits how airplanes actually fly and is kinder to servos. It also added RTH sanity checking: if the distance to home keeps growing during RTH (default threshold 500 m), INAV stops pretending and does an emergency landing instead of flying off to explore the neighbouring country.

INAV 1.7 – May 2017

1.7 gave airplanes a turn assistant for coordinated turns using ailerons, elevator and rudder, plus an airplane Autotune mode that learns roll, pitch and yaw tuning from your stick inputs. Then came 1.7.3 with a sad note: the last release for F1 boards like Naze, CC3D and AirHero32. They simply ran out of memory and CPU. Rest in peace, little Naze. You carried a GPS navigation stack on 128 KB of flash and never complained (much).

INAV 1.8 and 1.9 – late 2017 to March 2018

Fewer shiny features, lots of refinement. Highlights were initial SmartAudio and IRC Tramp VTX control, new OSD elements and messages, and MSP over SmartPort, which let your Taranis talk to INAV through Lua scripts. MSP v2 also showed up around this time, because the old protocol had literally run out of message IDs.

The 2.x era (2018 – 2020): growing up

The 2.x line is when INAV stopped being “the GPS fork” and became a platform. Summaries below come from the wiki’s older release notes.

INAV 2.0 – August 2018

A big one. 2.0 threw away the predefined mixers – the firmware no longer cared if you built a quad, a plane or a flying lawnmower, the mixer was fully configurable from a new GUI. Fixed wings got NAV CRUISE mode (hold heading, fight the wind for you) and wind estimation. The OSD gained three switchable layouts plus map and radar modes, and VTX settings could finally be changed from the Configurator or OSD menus via SmartAudio or Tramp. A new SBUS driver also fixed a nasty bug that could cause a mid-air disarm, which is the kind of bug fix you really appreciate.

INAV 2.1 – February 2019

2.1 added DShot, so the digital ESC party finally reached INAV. Multirotors also got a braking mode, and PINIO support arrived for switching things like camera power from a switch.

INAV 2.2 – June 2019

The programmable future started here. 2.2 introduced Logic Conditions, a small rule engine for servo mixer rules. It also brought cellular telemetry via SMS using a SIM800 module (your plane can text you now – just not while you drive) and support for INAV Radar ESP32 boards, which share positions between multiple aircraft. Missions could now also continue when out of radio range.

INAV 2.3 – November 2019

2.3 brought DShot ESC telemetry, Betaflight-style dynamic filters, Global Functions (which can override flight parameters in flight based on logic conditions) and pixel based OSD support with a driver for FrSky’s OSD.

Compact oktacopter with digital FPV and INAV

INAV 2.4 – February 2020

Filter nerds rejoiced: 2.4 added RPM filters. Also new were USB Mass Storage for reading Blackbox logs, RTH home offset for fields with strict airspace rules, linear climb and dive between waypoints, and support for the DJI HD FPV system. HD goggles meet navigation firmware. Nice.

INAV 2.5 – June 2020

2.5 is the one where INAV learned to drive and swim: initial rover and boat support. Multirotors got Matrix filters (a per-axis dynamic notch), missions got JUMP, HOLD and LAND waypoint types, the OSD could show upcoming waypoints in the HUD, and VTX settings were unified in one CMS page.

INAV 2.6 – December 2020

The last of the 2.x line, 2.6 added the Unicorn filter (a Kalman filter, but with a much cooler name), Safehomes for returning to a predefined safe spot, SET_HEAD and SET_POI waypoints, baroless multirotor navigation using GPS altitude, F.Port2 and SRXL2 receiver support, and sensors over MSP.

INAV 3.0 and 4.x (2021 – 2022): new numbers, new names

With 3.0 the project switched to whole version numbers, and soon after the releases got bird codenames. Because if your firmware is going to scream “SATELLITES 4” at you, it might as well have a cool name.

INAV 3.0 – spring 2021

3.0 opened with an obituary: F3 boards like Omnibus F3 and SP Racing F3 were no longer supported. The F1s were gone, now the F3s followed. Moore’s law is a cruel landlord.

The new stuff was plenty. Turtle mode (flip over after a crash) finally reached INAV, along with a DShot beeper, a Prearm mode for two-stage arming, RC over MAVLink with MAVLink v2, and an initial cut of H7 support. Missions could use absolute sea-level altitudes, a global altitude limit appeared, and 4 user-programmable PID controllers were added to the programming framework – in the words of the release notes, “Because why not!”. Fixed wing pilots got a D-term, an Autotune that also finds rates, continuous servo autotrim and an RTH spiral climb. NAV CRUISE was renamed to COURSE HOLD, and a new CRUISE mode combined course hold with altitude hold.

INAV 4.0 “Red Kite” – late 2021

4.0 dropped PPM receivers (serial receivers only from here on) and warned that F411 and F722 boards would start losing features because they were running out of flash. Filtering got a big cleanup: the Unicorn (Kalman) and Matrix filters were on by default, the Matrix filter got 4x better resolution and the Smith Predictor was on by default too. Full H743 support arrived, along with Rate Dynamics ported from EmuFlight and battery profiles holding throttle settings.

Missions got a serious upgrade: multiple missions stored on the FC and selectable before arming, up to 120 waypoints, on-the-fly missions recorded while flying, and fly-by-home waypoints. Glider pilots got a Soaring mode that lets the plane ride thermals without the altitude controller fighting it, and RTH learned a two-stage climb. There was even a General Aviation units set with knots and feet, so you can call ATC from your foam wing. Please don’t.

INAV 4.1 “Raging Sparrow” – 2022

A smaller follow-up. 4.1 added HDZero OSD canvas mode, SD card support on Kakute H7, a Matrix filter that now tracks 3 gyro noise peaks instead of 1, and fixed RTH sanity checking.

INAV 5.x and 6.0 (2022 – 2023): birds of prey

INAV 5.0 “Ballistic Buzzard” – mid 2022

Every major release now has a bird of prey on the cover, and 5.0 started with spring cleaning: the old PCA9685 servo driver, separate gyro and acc alignment settings, GPS glitch detection and a pile of ancient MSP frames from the Cleanflight days were all removed. Strict MSP payload length checks were added to fight the infamous “randomly changed settings” bug.

On the feature side, output_mode let you turn all outputs into motors or all into servos, landing detection was reworked (and now also covers planes), and multirotors got a new SQRT altitude hold controller. You could skip gyro calibration on boot, so you can now arm on a moving boat – very handy for pirates. Missions gained an enforce-altitude option, the OSD got switch indicators, logic conditions got rangefinder data and doubled to 64, u-blox M10 GPS support arrived and BLE configuration became possible.

Foam flying wing with INAV

INAV 5.1 – 2022

A point release with fixes and new targets, the usual “oops and also more boards” update.

INAV 6.0 “Horizon Hawk” – March 2023

The headline of 6.0 was a brand new AHRS (attitude and heading reference system). Its goal was to fix “horizon drift” for good, the annoying effect where your artificial horizon slowly leans after a few turns and your plane decides level means “a bit to the left”. Getting attitude right makes ANGLE mode and every navigation mode more reliable, so this one was a big deal even if it doesn’t look flashy on a feature list.

6.0 also added extra arming safety checks, the ability to switch between stored missions in flight, a mission index adjustment for DJI users, and new waypoint-related operands in the programming framework.

INAV 7.x to 9.x (2023 – 2026): VTOLs, geozones and JavaScript

INAV 7.0 “Ferocious Falcon” – late 2023

7.0 is the release a lot of people waited for: mixer profiles and VTOL support. With the plug-and-play VTOL models getting popular, being able to switch between a multirotor mixer and a fixed wing mixer mid-flight was a game changer. It also brought flexible motor and servo output assignment per timer group right from the Configurator, so no more custom firmware builds just to get one more servo.

Multirotor pilots got Ez Tune (8 sliders instead of a wall of PID numbers) and a multirotor Cruise mode. Everyone got In-flight Emergency Rearm – you have 5 seconds to undo that accidental disarm, which is about 4 seconds longer than most of us need to start screaming. Other goodies: multi-constellation GPS selection, MSP VTX control for HD systems, a more flexible linear descent for RTH and custom pilot logos on the OSD. The cleanup list was long too: NMEA GPS protocol and FrSky D-series telemetry were gone, and 7 was announced as the last release for F411 boards.

INAV 7.1 – March 2024

A “minor” update that wasn’t that minor. 7.1 brought fixed wing Autoland with a landing pattern, much improved compass and baro handling including (still partly experimental) mag-less navigation, and tailsitter VTOL support. Yes, INAV can now land your plane for you. No, it will not also carry it back to the car.

INAV 8.0 “Gallant Goshawk” – 2024 / 2025

8.0 (with 8.0.1 following in March 2025) is packed. Geozones let you draw flight zones and no-fly zones in Mission Control, like a geofence but more flexible. GPS fix estimation lets a plane head home even when GPS dies, using the remaining sensors and the wind estimate – dead reckoning, like the sailors did, just with fewer scurvy problems.

Also new: ADS-B receiver support with OSD warnings when real aircraft get close, MAVLink RC so ELRS or mLRS can carry control and telemetry on one UART (and work with Mission Planner or QGroundControl), MSP link stats, Walksnail serial gimbal and head tracker support, I-term lock for fixed wings and u-blox AssistNow in the Configurator for GPS fixes in seconds instead of minutes. DJI O4 support arrived in 8.0.1. Meanwhile F411 targets were dropped from official builds and older u-blox units were deprecated, with only M8 and newer supported going forward.

INAV 9.0 – January 2026

9.0 shipped on 17 January 2026 and made INAV programmable in JavaScript through a new Configurator tab – the logic conditions from 2.2 grew up and went to university. Fixed wings got airspeed-based PID attenuation (APA) and pitch-aware TPA using a pitot or virtual airspeed, two selectable altitude control methods, and GPS-based pitot validation that falls back to virtual airspeed when the sensor fails.

The position estimator got better Z velocity, accelerometer and baro got temperature compensation, VTOL tilt-rotors got smoother transitions and the minimum ground speed can now adapt to wind via the programming framework. The OSD gained a vertical throttle gauge and better ADS-B warnings, the old Vario was renamed Vertical Speed Indicator, “PID Profile” became “Control Profile”, and the Configurator maps swapped Bing for Esri imagery. 9.0.1 followed in February with fixes.

INAV 9.1 – July 2026

The current stable release, 9.1 from 9 July 2026, is mostly about reliability: 46 fixes, 76 enhancements and 19 new targets since 9.0.1. Highlights are GPS update rates tuned to your module (M8, M9, M10) and constellation count, magless heading for multicopters (point the nose north before takeoff and go), better position hold with poor GPS, and post-disarm OSD stats plus a toilet-bowl warning for confused compasses. Your 9.0 diff loads without changes, which in INAV terms is basically a spa day.

Coming next: INAV 10.0

Release candidates for 10.0 are already out for testing, with the stable release planned for December 2026. One nice change for upgraders: the Configurator now has a Backup and Restore Config path that migrates renamed settings automatically.

Wrapping up

Looking back, the story of INAV is pretty clear. 1.x taught a Naze32 to find its way home. 2.x turned INAV into a platform that could fly, drive and float. 3.x and 4.x tidied up the filters and gave missions real muscle. 5.x and 6.x fixed the boring but critical stuff, like knowing which way is up. And 7.x to 9.x went after things that used to be ArduPilot territory: VTOLs, autoland, geozones, ADS-B, dead reckoning and scripting.

Along the way INAV said goodbye to F1, F3 and F411 boards, PPM receivers, NMEA GPS and a long list of settings you probably had in your diff. Every upgrade came with the same sacred ritual: diff all, full chip erase, paste, fix the red lines, remove the props. If you’ve done it ten times, you’re officially an INAV pilot.

VersionReleasedOne-line summary
1.0Jan 2016GPS navigation on Cleanflight, airplane RTH
1.2Sep 2016Experimental F4, MAVLink, Chrome Configurator
1.6Feb 2017PIFF controller for planes, RTH sanity check
1.7May 2017Turn assistant, airplane Autotune, F1 farewell
2.0Aug 2018Fully custom mixer, Cruise mode, wind estimation
2.2Jun 2019Logic Conditions, INAV Radar
2.5Jun 2020Rovers and boats, Matrix filter
2.6Dec 2020Safehomes, baroless multirotor nav
3.02021Turtle mode, H7, F3 dropped
4.02021Multi-mission, Soaring mode, PPM dropped
5.02022Output modes, new landing detection
6.0Mar 2023New AHRS, no more horizon drift
7.02023VTOL mixer profiles, Ez Tune, emergency rearm
7.1Mar 2024Fixed wing Autoland, mag-less nav, tailsitters
8.02024 / 2025Geozones, GPS-free RTH, ADS-B, MAVLink RC
9.0Jan 2026JavaScript programming, airspeed PID scaling
9.1Jul 2026GPS tuning, magless heading, reliability

Ten years ago INAV was an experiment to see if a cheap flight controller could hold position. Today it lands planes, transitions VTOLs and runs JavaScript. Somewhere, a retired Naze32 is sitting in a drawer, very proud and slightly confused.

Clear skies, and may your sats count always be high.

Sources


Posted

in

by