What changed in INAV from 8 to 9
3 releases numbered after 8.0.1 up to and including 9.1.0, stable releases only. 8.0.1 and 9.1.0 are the newest stable releases of 8 and 9 we track; this page follows them as new ones ship.
- 2 mention breaking changes
52 changes across 3 releases
- Multicopter magless heading support allowing pilots to point the front toward North before takeoff
- Support for ICM-45686 IMU sensor
- Support for MS5525DSO airspeed sensor
- Support for SSD1315 OLED display
- Support for LSM6DSV16X and LSM6DSK320X accgyro sensors
- Support for XT25F128F and MX35LF2G flash storage
- 19 new hardware targets including AIKONF4V2, AXISFLYINGH743PRO, BLADE_F4, BLUEBERRYH743, BLUEBERRYF405, Brahma H7, DAKEFPVH743_SLIM, FlyDragon Pro, FLYWOOF405HD, FLYWOOF405PRO, FRSKYF405, HAKRCH743, NEXUS, PAURCF405V2, SDMODELH7V2, SimplyFly H7, SOLOGOODF722, TBS_LUCID_H7_OEM, and TBS_LUCID_H7_V3
- Add support for AIKONF4V3 flight controller
- Add support for CoreWing F405 Wing V2
- Add build-time Parameter Group struct size validation to catch EEPROM-breaking changes before release
- GPS-based pitot sensor validation with automatic fallback to virtual airspeed on sensor failure
- Optional DFU mode parameter to MSP_REBOOT command for entering bootloader
- Airspeed based PID Attenuation (APA) for fixed-wing aircraft
- Temperature compensation for accelerometers and barometers
- Enhanced magless multicopter yaw estimation
- New OSD elements: VERTICAL_SPEED_INDICATOR, ADSB_WARNING, ADSB_INFO, THROTTLE_GAUGE, NAV_MIN_GROUND_SPEED
- Programming Framework enables dynamic minimum ground speed adjustment
- Extended MSP override capability to 32-bit channels
- MSP2_INAV_SET_GVAR command for global variable manipulation
- MSP2_INAV_LOGIC_CONDITIONS_CONFIGURED command for optimized loading
- VANTAC_RF007 new FrSky/Rotorflight flight controller target with magnetometer support
- QMC5883P magnetometer driver
- GPS update rate is now optimized based on hardware type and number of active constellations
- Position estimator improved for better multicopter position hold accuracy in poor or fluctuating GPS signal
- OSD improvements including post-disarm stats, multifunction mode expansion, and toilet-bowl compass deviation warning
- gps_ublox_nav_hz default changed from 10 to 8 Hz
- gps_ublox_use_galileo and gps_ublox_use_beidou now default to ON
- FLYINGRCF4WINGMINI gyro rotation corrected requiring re-do of accelerometer alignment
- Improved fixed-wing altitude control with two selectable methods
- Enhanced position estimator Z velocity accuracy
- Improved VTOL tilt-rotor support with servo speed filtering
- Improved fixed-wing flight detection for auto-disarm
- Rebranded Vario as Vertical Speed Indicator
- Enhanced ADSB aircraft warnings with extended OSD glyphs
- Barometer altitude integrated into CRSF telemetry
- Bing Maps replaced with Esri World Imagery for better imagery quality and reliability
- Increased flexibility for fixedwing minimum ground speed settings
- SDIO blocking delays and state management issues on problematic SD cards
- WP JUMP and cross-track tracking issues in fixed-wing navigation
- NULL serial port crash risk when GPS provider is changed without reboot
- Fix missing frame length verification when handling CRSF_FRAMETYPE_MSP_REQ/MSP_WRITE, preventing potential buffer issues
- Fix position and velocity corrections for improved GPS hold and navigation accuracy
- Relate correction sanity limit to loop rate for consistent behavior across different loop rates
- Fix CLI dfu command on H743/H750 targets which would reboot as VCP instead of entering DFU mode
- Fix feedback loop where DShot beeper confirmation prevents re-arming by resetting the guard timer on each attempt
- Fix mathematical inconsistency where AGL velocity update used squared acceleration weight factor while altitude update used linear weight factor
- Fix rangefinder driver for TeraRanger Evo sensors
- Blackbox MOTORS condition mismatch causing null byte padding in logs
- APA safety by reducing I-term scaling and maximum gain limits
- Airspeed TPA parameters for better fixed-wing aircraft performance
- Settings.md documentation to match settings.yaml definitions
- Adds payload size validation for MSP_REBOOT command safety
Original release notes, newest first
The list above is our reading of these notes; the originals from INAV are here, one fold per release.
9.1.0INAV 9.1.0
INAV 9.1.0
Welcome to INAV 9.1.0
Please carefully read all of this document for the best possible experience and safety.
Contact other pilots, share experiences, suggestions and ask for help on:
INAV 9.1 is primarily a maintenance release focused on reliability improvements, safety fixes, and GPS accuracy. Since 9.0.1: 46 fixes and 76 new features/enhancements, including 19 new hardware targets. It contains no incompatible settings changes — your 9.0.x diff all will load cleanly.
For full PR-by-PR detail, see the wiki release notes.
Upgrading from INAV 9.0.x
- Download and install the new INAV 9.1 Configurator
- Backup your configuration: CLI →
diff all→ save to file - Flash INAV 9.1.0 — Full Chip Erase is NOT required when upgrading from 9.0.x
- Restore settings from CLI or use the Keep current settings option
Upgrading from INAV 8.x
- Download and install the new INAV 9.1 Configurator
- Backup configuration: CLI →
diff all→ save to file - Flash INAV 9.1.0 WITH Full Chip Erase enabled
- Load your 8.x diff into the CLI; note any settings shown in RED
- Use the INAV CLI Update Tool or manually update incompatible settings from the 9.0.0 release notes
- See Upgrading from an older version for full instructions
[!NOTE] The INAV 9.1 Configurator includes a settings migration tool in the CLI tab that can assist with upgrading from older versions.
⚠️ Important Notes for 9.1
FLYINGRCF4WINGMINI alignment change
If you have the FLYINGRCF4WINGMINI, you will need to re-do the accelerometer alignment, as the gyro rotation has been corrected.
GPS Default Settings Changed
Two GPS defaults have changed. These only affect you if you never explicitly set them in your configuration (i.e., they are not in your diff all):
gps_ublox_nav_hzdefault changed from 10 → 8 Hz. Lower rate allows more satellite constellations to be tracked for better accuracy, especially on M8/M9 modules. If you want to keep 10 Hz, addset gps_ublox_nav_hz = 10to your diff.gps_ublox_use_galileoandgps_ublox_use_beidounow default to ON. More constellations generally improves position accuracy.
Position Estimator — Altitude Controller Gains
[!WARNING] If you have increased
nav_mc_pos_z_pornav_mc_vel_z_pabove their default values since INAV 7.1, it is advisable to lower those gains or re-tune them to avoid possible throttle oscillations in navigation modes that control altitude (WP, Cruise, RTH, and forward-flight Poshold).The improved position estimator relies more on accelerometer weighting, so ensure your multicopter or VTOL is free from propeller and motor vibrations. See Multirotor filter setup for tips.
Highlights
GNSS Constellation and Update Rate
INAV now provides an optimized GPS update rate based on your hardware type (M8, M9, M10) and the number of active constellations. PR #11262
Multicopter Magless Heading
Pilots flying without a compass can now point the front of their multicopter or VTOL toward a known North heading before takeoff. PR #11529
Position Estimator Improvements
Several changes improve multicopter position hold accuracy when GPS signal is poor or fluctuating. #11270, #11322, #11387
OSD Improvements
Post-disarm stats, Multifunction mode expansion, toilet-bowl compass deviation warning, and Surface mode/Geozone message improvements. #11506, #11308, #10854
New Hardware Support
New Sensors: ICM-45686 IMU, MS5525DSO airspeed sensor, SSD1315 OLED display, LSM6DSV16X/LSM6DSK320X accgyro
New Flash Storage: XT25F128F, MX35LF2G
19 New Targets: AIKONF4V2, AXISFLYINGH743PRO, BLADE_F4, BLUEBERRYH743, BLUEBERRYF405, Brahma H7, DAKEFPVH743_SLIM, FlyDragon Pro, FLYWOOF405HD, FLYWOOF405PRO, FRSKYF405, HAKRCH743, NEXUS (Original), PAURCF405V2, SDMODELH7V2, SimplyFly H7, SOLOGOODF722, TBS_LUCID_H7_OEM, TBS_LUCID_H7_V3
Changes Since 9.1.0-RC1
- Fixed SDIO blocking delays and state management issues on problematic SD cards (#11674)
- Fixed WP JUMP and cross-track tracking issues in fixed-wing nav (#11640, #11648)
- Fixed a NULL-serial-port crash risk when the GPS provider is changed without reboot (#11634)
- Fixed ICM-42688P/42686P AAF frequency overflow (#11682)
- Added 3 new targets: DAKEFPVH743_SLIM, SOLOGOODF722, AXISFLYINGH743PRO
- Added LSM6DSV16X/LSM6DSK320X accgyro driver support (#11694)
- Allow UART pin swap on H7 targets (#11687)
- Several target-specific DMA/UART/telemetry fixes (AEDROXH7, JHEMCUF435, DAKEFPVH743PRO, DAKEFPVF405)
Full list: wiki release notes (see "Since 9.1.0-RC1" section)
Full Changelog: https://github.com/iNavFlight/inav/compare/9.0.1...9.1.0 Wiki Release Notes: https://github.com/iNavFlight/inav/wiki/9.1.0-Release-Notes
9.0.1INAV 9.0.1
INAV 9.0.1
Hello and welcome to INAV 9.0.1
Please carefully read all of this document for the best possible experience and safety.
Contact other pilots, share experiences, suggestions and ask for help on:
This is a patch release with bug fixes and new target support. No settings have been renamed or removed, so your 9.0.0 configuration will work without changes.
Changes since 9.0.0
Bug Fixes
- CRSF frame length validation - Fix missing frame length verification when handling CRSF_FRAMETYPE_MSP_REQ/MSP_WRITE, preventing potential buffer issues (#11210, @VoodooChild99)
- Position estimator corrections - Fix position and velocity corrections for improved GPS hold and navigation accuracy. Addresses issues #10360, #10391, #10893, #11049 (#11270, @breadoven)
- Position estimator sanity limit - Relate correction sanity limit to loop rate for consistent behavior across different loop rates (#11270, @breadoven)
- STM32H7 DFU mode - Fix CLI
dfucommand on H743/H750 targets which would reboot as VCP instead of entering DFU mode (#11295, @sensei-hacker) - DShot beeper arming loop - Fix feedback loop where DShot beeper confirmation prevents re-arming by resetting the guard timer on each attempt (#11306, @sensei-hacker)
- Surface mode Z velocity - Fix mathematical inconsistency where AGL velocity update used squared acceleration weight factor while altitude update used linear weight factor (#11255, @sensei-hacker)
- Terra Ranger Evo - Fix rangefinder driver for TeraRanger Evo sensors (#11311, @error414)
New Targets
- AIKONF4V3 - Aikon F405 V3 flight controller (#11284, @sensei-hacker)
- COREWINGF405WINGV2 - CoreWing F405 Wing V2 (#11291, @MakeSomeFakeNews)
Build & CI
- PG struct validation - Add build-time Parameter Group struct size validation to catch EEPROM-breaking changes before release (#11283, @sensei-hacker)
Upgrading from INAV 9.0.0
- Download and install the new INAV Configurator 9.0.1
- Backup configuration with CLI
diff allcommand - Flash INAV 9.0.1 - Full Chip Erase is not required when upgrading from 9.0.0
- Restore your settings from CLI or select Keep current settings from the defaults pop-up
⚠️ Important Upgrade Information (from INAV 8.x)
Flashing Notes
- Full chip erase REQUIRED when upgrading from 8.x
- Back up your configuration with
diff allbefore flashing - Review 9.0.0 Release Notes for breaking changes and incompatible settings
Upgrading from INAV 8.0
- Download and install the new INAV Configurator 9.0.1
- Backup configuration with CLI
diff allcommand or use the Diff All and Save to file buttons. - Flash INAV 9.0.1 WITH Full Chip Erase option enabled
- Load your 8.0
Diffsettings in to the CLI. Then take a note or write down the incompatible settings changes marked in RED. - Then copy your 8.0
Difffile and rename it 9.0. And edit the old incompatible settings. - Go to CLI and load your edited INAV 9.0
Diff - Done
[!Tip] Concerning step 6. It can be a safer option to load your
Diff Allsettings in two parts if you are using multiple Profiles. e.g. Control, Mixer or Battery. This can be done by copying and loading theDiff Alltext setting from the top, down to the bottom of the# mastersettings category. Then load that into the CLI and press enter. Once it has written, press the Save Settings button. Wait until it reboots and go back to the CLI tab again, then copy and load the rest of theDiff Alltext file. Starting from the# Control_profile 1settings category, down to the bottom. Press enter. Once written, it will save by itself.
Diff update tool
Rather than steps 4 and 5 above. You can try this diff update tool. This is a work in progress. Currently it will try to update version 7 or later diffs to version 8 or later. Just paste your full diff all (not dump) in to the tool. Select the INAV version you're upgrading to. Then press the button. It will create a new diff for you and give you warnings about anything you should check.
Upgrading from older versions
Please follow the instructions on this page.
- Check the 9.0.0 Release Notes Wiki for further information
Major Changes in INAV 9.x Since 8.0.1
JavaScript Logic Conditions
Navigation & Flight Control
- Improved fixed-wing altitude control with two selectable methods
- Enhanced position estimator Z velocity accuracy
- Position estimator corrections fix for improved GPS hold accuracy
- Temperature compensation for accelerometers and barometers
- Improved VTOL tilt-rotor support with servo speed filtering
- Enhanced magless multicopter yaw estimation
- Improved fixed-wing flight detection for auto-disarm
- Airspeed based PID Attenuation (APA)
- GPS-based pitot sensor validation with automatic fallback to virtual airspeed on sensor failure
OSD & Telemetry
- Rebranded "Vario" as Vertical Speed Indicator
- Enhanced ADSB aircraft warnings with extended OSD glyphs
- New vertical digital throttle gauge display
- Barometer altitude integrated into CRSF telemetry
- New OSD elements: VERTICAL_SPEED_INDICATOR, ADSB_WARNING, ADSB_INFO, THROTTLE_GAUGE, NAV_MIN_GROUND_SPEED
- Increased flexibility for fixedwing minimum ground speed settings
- SmartPort telemetry: Configure sensors for OpenTX widgets and ETHOS dashboards
Maps & Mission Planning
- Bing Maps replaced with Esri World Imagery (no API key needed)
- Better imagery quality and reliability
Programming & Logic
- Programming Framework enables dynamic minimum ground speed adjustment
- Extended MSP override capability to 32-bit channels
- Add MSP2_INAV_SET_GVAR command for global variable manipulation
- Add MSP2_INAV_LOGIC_CONDITIONS_CONFIGURED command for optimized loading
Hardware Support
- New Targets (34+ additional flight controller targets including):
- AIKONF4V3: Aikon F405 V3
- COREWINGF405WINGV2: CoreWing F405 Wing V2
- VANTAC_RF007: FrSky/Rotorflight Vantac RF007 with magnetometer support
- OMNIBUSF4V3_ICM: New target variant
- BLUEBERRYF435WING target added
- RADIOLINKF722: Add W25Q128 flash chip support
- New Sensors:
- QMC5883P magnetometer driver
- Puya PY25Q128HA flash chip support (16MB SPI NOR)
Bug Fixes
- USB MSC (Mass Storage): Fix H743 USB MSC regression, add timeout protection and retry logic for SD card access
- Power Limiting: Fix power limiting treating 0 (disabled) as less than continuous current
- CRSF Telemetry: Fix buffer overflow and dashboard sizeof bug
- CRSF MSP: Fix missing frame length verification for CRSF MSP requests
- Logic Conditions: Guard against increasing max conditions beyond 64
- Critical Bugs: Fix integer overflow and buffer overrun issues (cppcheck)
- Blackbox: Fix MOTORS condition mismatch causing null byte padding in logs
- STM32H7 DFU: Fix CLI
dfucommand on H743/H750 targets - DShot Beeper: Fix arming feedback loop caused by DShot beeper guard timer
- AGL Velocity Estimation: Fix squared acceleration weight factor inconsistency in AGL velocity update
- Terra Ranger Evo: Fix rangefinder driver for TeraRanger Evo sensors
- Mission control waypoint landing functionality fixes
- Servo mixer overflow issues fixed
- Fixedwing level pitch trim accuracy improvements
Performance & Improvements
- Flight counter addition to statistics tracking
- Airspeed TPA: Add pitch angle aware TPA with airspeed support
- Raise pitot_lpf_milli_hz default for better pitot performance
- MSP_REBOOT DFU mode parameter for entering bootloader via MSP
Localization
- Ukrainian language now available
- Expanded language support across configurator
Build/CI & Development
- Include cygwin1.dll in Windows SITL artifact (fixes Windows SITL)
- Build-time Parameter Group struct size validation
- Add maintenance-9.x to nightly build workflow
- MSP Protocol: Deprecate MSP command 8226, add enum parsing improvements
- Add maintenance branch workflow documentation
- Add release creation guide
Documentation
- Add Power and Current Limiting documentation
- Update JavaScript Programming documentation for namespaced syntax
- Improve DEBUG mode documentation
- Add prominent configurator download links to README
- Update OSD element documentation
- Fix Settings.md documentation to match settings.yaml definitions
- Update LedStrip.md documentation
Full Changelog (since 9.0.0): https://github.com/iNavFlight/inav/compare/9.0.0...9.0.1 Full Changelog (since 8.0.1): https://github.com/iNavFlight/inav/compare/8.0.1...9.0.1 Wiki Release Notes: https://github.com/iNavFlight/inav/wiki/9.0.0-Release-Notes
9.0.0INAV 9.0.0
INAV 9.0.0
Hello and welcome to INAV 9.0.0
Stable Release
This is the stable 9.0.0 release. For a complete list of changes since 8.0.1, please see the 9.0.0 Release Notes Wiki.
⚠️ Important Upgrade Information
Flashing Notes
- Full chip erase REQUIRED when upgrading from 8.x
- Back up your configuration with
diff allbefore flashing - Review 9.0.0 Release Notes for breaking changes and incompatible settings
Upgrading from INAV 8.0
- Download and install the new INAV Configurator 9.0
- Backup configuration with CLI
diff allcommand or use the Diff All and Save to file buttons. - Flash INAV 9.0 WITH Full Chip Erase option enabled
- Load your 8.0
Diffsettings in to the CLI. Then take a note or write down the incompatible settings changes marked in RED. - Then copy your 8.0
Difffile and rename it 9.0. And edit the old incompatible settings. - Go to CLI and load your edited INAV 9.0
Diff - Done
[!Tip] Concerning step 6.
It can be a safer option to load yourDiff Allsettings in two parts if you are using multiple Profiles. e.g. Control, Mixer or Battery.
This can be done by copying and loading theDiff Alltext setting from the top, down to the bottom of the# mastersettings category. Then load that into the CLI and press enter. Once it has written, press the Save Settings button.
Wait until it reboots and go back to the CLI tab again, then copy and load the rest of theDiff Alltext file. Starting from the# Control_profile 1settings category, down to the bottom. Press enter. Once written, it will save by itself.
Diff update tool
Rather than steps 4 and 5 above. You can try this diff update tool. This is a work in progress. Currently it will try to update version 7 or later diffs to version 8 or later. Just paste your full diff all (not dump) in to the tool. Select the INAV version you're upgrading to. Then press the button. It will create a new diff for you and give you warnings about anything you should check.
Upgrading from older versions
Please follow the instructions on this page.
- Check the 9.0.0 Release Notes Wiki for further information
Changes in 9.0.0 (since RC4)
New Features
- Pitot Sensor Validation: GPS-based pitot sensor validation with automatic fallback to virtual airspeed on sensor failure (#11222)
- Adds defensive airspeed clamping to prevent division issues
- Improves safety for fixed-wing aircraft with pitot sensors
- MSP_REBOOT DFU Mode: Add optional DFU mode parameter to MSP_REBOOT command for entering bootloader (#11238)
- Adds payload size validation for command safety
Bug Fixes
- Blackbox: Fix MOTORS condition mismatch causing null byte padding in logs (#11220)
- APA (Airspeed Pitch Assist): Improve safety by reducing I-term scaling and maximum gain limits
- Airspeed TPA: Adjust TPA parameters for better fixed-wing aircraft performance
- Documentation: Fix Settings.md documentation to match settings.yaml definitions
Target Changes
- VANTAC_RF007: Add new FrSky/Rotorflight Vantac RF007 target with magnetometer support (#11082)
- RADIOLINKF722: Add W25Q128 flash chip support (#11232)
Documentation
- Blackbox DEBUG: Improve DEBUG mode documentation (#11239)
- README: Add prominent configurator download links (#11221)
- OSD Elements: Update OSD element documentation
Build/CI
- Nightly Builds: Add maintenance-9.x to nightly build workflow (#11204)
- MSP Protocol: Deprecate MSP command 8226, add enum parsing improvements (#11185)
Major Changes in 9.0 Since 8.0.1
JavaScript Logic Conditions
Navigation & Flight Control
- Improved fixed-wing altitude control with two selectable methods
- Enhanced position estimator Z velocity accuracy
- Temperature compensation for accelerometers and barometers
- Improved VTOL tilt-rotor support with servo speed filtering
- Enhanced magless multicopter yaw estimation
- Improved fixed-wing flight detection for auto-disarm
- Airspeed based PID Attenuation (APA)
OSD & Telemetry
- Rebranded "Vario" as Vertical Speed Indicator
- Enhanced ADSB aircraft warnings with extended OSD glyphs
- New vertical digital throttle gauge display
- Barometer altitude integrated into CRSF telemetry
- New OSD elements: VERTICAL_SPEED_INDICATOR, ADSB_WARNING, ADSB_INFO, THROTTLE_GAUGE, NAV_MIN_GROUND_SPEED
- Increased flexibility for fixedwing minimum ground speed settings
- SmartPort telemetry: Configure sensors for OpenTX widgets and ETHOS dashboards
Maps & Mission Planning
- Bing Maps replaced with Esri World Imagery (no API key needed)
- Better imagery quality and reliability
Programming & Logic
- Programming Framework enables dynamic minimum ground speed adjustment
- Extended MSP override capability to 32-bit channels
- Add MSP2_INAV_SET_GVAR command for global variable manipulation
- Add MSP2_INAV_LOGIC_CONDITIONS_CONFIGURED command for optimized loading
Hardware Support
- New Targets (32+ additional flight controller targets including):
- VANTAC_RF007: New FrSky/Rotorflight Vantac RF007 target with magnetometer support
- OMNIBUSF4V3_ICM: New target variant
- BLUEBERRYF435WING target added
- RADIOLINKF722: Add W25Q128 flash chip support
- New Sensors:
- QMC5883P magnetometer driver
- Puya PY25Q128HA flash chip support (16MB SPI NOR)
Bug Fixes
- USB MSC (Mass Storage): Fix H743 USB MSC regression, add timeout protection and retry logic for SD card access
- Power Limiting: Fix power limiting treating 0 (disabled) as less than continuous current
- CRSF Telemetry: Fix buffer overflow and dashboard sizeof bug
- Logic Conditions: Guard against increasing max conditions beyond 64
- Critical Bugs: Fix integer overflow and buffer overrun issues (cppcheck)
- Blackbox: Fix MOTORS condition mismatch causing null byte padding in logs
- Mission control waypoint landing functionality fixes
- Servo mixer overflow issues fixed
- Fixedwing level pitch trim accuracy improvements
Performance & Improvements
- Flight counter addition to statistics tracking
- Airspeed TPA: Add pitch angle aware TPA with airspeed support
- Raise pitot_lpf_milli_hz default for better pitot performance
Localization
- Ukrainian language now available
- Expanded language support across configurator
Build/CI & Development
- Include cygwin1.dll in Windows SITL artifact (fixes Windows SITL)
- Add maintenance-9.x to nightly build workflow
- MSP Protocol: Deprecate MSP command 8226, add enum parsing improvements
- Add maintenance branch workflow documentation
- Add release creation guide
Documentation
- Add Power and Current Limiting documentation
- Update JavaScript Programming documentation for namespaced syntax
- Improve DEBUG mode documentation
- Add prominent configurator download links to README
- Update OSD element documentation
- Fix Settings.md documentation to match settings.yaml definitions
- Update LedStrip.md documentation
Full Changelog: https://github.com/iNavFlight/inav/compare/8.0.1...9.0.0
Wiki Release Notes: https://github.com/iNavFlight/inav/wiki/9.0.0-Release-Notes