github iNavFlight/inav 3.0.0
INAV 3.0.0

latest releases: 8.0.0-RC1, v20240613.18, 7.1.2...
pre-release3 years ago

Hello and welcome to INAV 3.0.0 Release!

Please carefully read all of this document for the best possible experience and safety.

Get in touch with other pilots, share experiences, suggestions and ask for help on:

INAV Official on Telegram
INAV Official on Facebook

Please continue to support developers, for free, by checking out from the following stores after having clicked on the following links:

Support us on Banggood

Your contribution from the past month has been very welcome! Thanks!

Tested and suggested hardware can be found here

Important Notes

F3 Removal

STM32 F3 flight controllers like Omnibus F3 or SP Racing F3 are no longer supported in INAV. If you are still using F3 boards, please migrate to F4 or F7.

The supporting code will be retained for a few more releases, but will not be maintained and is not guaranteed to build or work properly in the future.

Adjustments

There are now separate adjustments for D and CD/FF gains. This breaks compatibility with diffs from previous releases. Check the adjustments tab in the configurator after restoring a diff to makes sure they are set up correctly.

Font update required

The OSD fonts have been improved (@Jettrel) and there are several new symbols. A font file update is required to use the new symbols and avoid an invalid font warning. Upload the updated font of your choosing from the OSD tab.

Upgrading from previous releases

We suggest NOT to do a full diff or dump upgrade. To get the best performance set up your aircraft from scratch. You can copy osd, aux, serial, and mixer settings, as well as accelerometer and magnetometer calibration values from INAV 2.6, but other settings should be tuned again.

Upgrading from 2.6, 2.6.1

  1. Download and install the new configurator
  2. Save to a file the current diff all from the CLI.
  3. Upgrade to INAV 3.0 using the Full Erase option in the configurator.
  4. Upload your OSD font of choice from the OSD tab.
  5. Go to the CLI again and paste the above-described contents from the file you previously created and write save , press ENTER.
  6. There are a large number of new, changed and removed settings. Check carefully that the settings are correct and fix any unrecognised or out-of-range items from the saved configuration.
  7. You should be ready, explore new 3.0 features and enjoy!

Upgrading from 2.5 or older version

Please follow the instructions on this page.

New targets:

  • Diatone MambaF405US_I2C
  • FLYWOOF411_V2
  • Mamba F722_I2C

CLI:

New commands

Setting Description
imu2 Display current status of the Secondary IMU
imu2 fetch Get calibration data from the Secondary IMU
pid Configure general purpose PID controllers. Refer to docs

Changed Settings

Setting Description
blackbox_device Default: target
log_level Default: ERROR
nav_overrides_motor_stop When set to OFF the navigation system will not take over the control of the motor if the throttle is low (motor will stop). When set to OFF_ALWAYS the navigation system will not take over the control of the motor if the throttle was low even when failsafe is triggered. When set to AUTO_ONLY the navigation system will only take over the control of the throttle in autonomous navigation modes (NAV WP and NAV RTH). When set to ALL_NAV (default) the navigation system will take over the control of the motor completely and never allow the motor to stop even when the throttle is low. This setting only has an effect on NAV modes which take control of the throttle when combined with MOTOR_STOP and is likely to cause a stall if fw_min_throttle_down_pitch isn't set correctly or the pitch estimation is wrong for fixed wing models when not set to ALL_NAV
nav_rth_climb_first New: ON_FW_SPIRAL
platform_type Default: MULTIROTOR
receiver_type Default: target
rssi_source Default: AUTO

New Settings

Setting Description
dji_speed_source Sets the speed type displayed by the DJI OSD: GROUND, 3D, AIR Default: GROUND
dshot_beeper_enabled Whether using DShot motors as beepers is enabled Default: TRUE
dshot_beeper_tone Sets the DShot beeper tone Values: 1 - 5 Default: 1
fw_d_pitch Fixed wing rate stabilisation D-gain for PITCH Default: 0
fw_d_roll Fixed wing rate stabilisation D-gain for ROLL Default: 0
fw_d_yaw Fixed wing rate stabilisation D-gain for YAW Default: 0
fw_level_pitch_trim Pitch trim for self-leveling flight modes. In degrees. +5 means airplane nose should be raised 5 deg from level Values: -10 - 10 Default: 0
fw_yaw_iterm_freeze_bank_angle Yaw Iterm is frozen when bank angle is above this threshold [degrees]. This solves the problem of the rudder counteracting turns by partially disabling yaw stabilization when making banked turns. Setting to 0 (the default) disables this feature. Only applies when autopilot is not active and TURN ASSIST is disabled. Values: 0 - 90 Default: 0
gyro_abg_alpha Alpha factor for Gyro Alpha-Beta-Gamma filter Values: 0 - 1 Default: 0
gyro_abg_boost Boost factor for Gyro Alpha-Beta-Gamma filter Values: 0 - 2 Default: 0.35
gyro_abg_half_life Sample half-life for Gyro Alpha-Beta-Gamma filter Values: 0 - 10 Default: 0.5
gyro_anti_aliasing_lpf_hz Gyro processing anti-aliasing filter cutoff frequency. In normal operation this filter setting should never be changed. In Hz Values: 0 - 255 Default: 250
gyro_anti_aliasing_lpf_type Specifies the type of the software LPF of the gyro signals. Default: PT1
gyro_dyn_lpf_curve_expo Expo value for the throttle-to-frequency mapping for Dynamic LPF Values: 1 - 10 Default: 5
gyro_dyn_lpf_max_hz Maximum frequency of the gyro Dynamic LPF Values: 40 - 1000 Default: 500
gyro_dyn_lpf_min_hz Minimum frequency of the gyro Dynamic LPF Values: 40 - 400 Default: 200
gyro_main_lpf_hz Software based gyro main lowpass filter. Value is cutoff frequency (Hz) Values: 0 - 500 Default: 60
gyro_main_lpf_type Defines the type of the main gyro LPF filter. Possible values: PT1, BIQUAD. PT1 offers faster filter response while BIQUAD better attenuation. Default: BIQUAD
gyro_use_dyn_lpf Use Dynamic LPF instead of static gyro stage1 LPF. Dynamic Gyro LPF updates gyro LPF based on the throttle position. Default: FALSE
imu2_align_pitch Pitch alignment for Secondary IMU. 1/10 of a degree Values: -1800 - 3600 Default: 0
imu2_align_roll Roll alignment for Secondary IMU. 1/10 of a degree Values: -1800 - 3600 Default: 0
imu2_align_yaw Yaw alignment for Secondary IMU. 1/10 of a degree Values: -1800 - 3600 Default: 0
imu2_gain_acc_x Secondary IMU ACC calibration data Values: -32768 - 32767 Default: 0
imu2_gain_acc_y Secondary IMU ACC calibration data Values: -32768 - 32767 Default: 0
imu2_gain_acc_z Secondary IMU ACC calibration data Values: -32768 - 32767 Default: 0
imu2_gain_mag_x Secondary IMU MAG calibration data Values: -32768 - 32767 Default: 0
imu2_gain_mag_y Secondary IMU MAG calibration data Values: -32768 - 32767 Default: 0
imu2_gain_mag_z Secondary IMU MAG calibration data Values: -32768 - 32767 Default: 0
imu2_hardware Selection of a Secondary IMU hardware type. NONE disables this functionality Default: NONE, values NONE, BNO055, BNO055_SERIAL
imu2_radius_acc Secondary IMU MAG calibration data Values: -32768 - 32767 Default: 0
imu2_radius_mag Secondary IMU MAG calibration data Values: -32768 - 32767 Default: 0
imu2_use_for_osd_ahi If set to ON, Secondary IMU data will be used for Analog OSD Artificial Horizon Default: FALSE
imu2_use_for_osd_heading If set to ON, Secondary IMU data will be used for Analog OSD heading Default: FALSE
imu2_use_for_stabilized If set to ON, Secondary IMU data will be used for Angle, Horizon and all other modes that control attitude (PosHold, WP, RTH) Default: FALSE
mavlink_version Version of MAVLink to use Values: 1 - 2 Default: 2
nav_land_maxalt_vspd Vertical descent velocity above nav_land_slowdown_maxalt during the RTH landing phase. [cm/s] Values: 100 - 2000 Default: 200
nav_land_minalt_vspd Vertical descent velocity under nav_land_slowdown_minalt during the RTH landing phase. [cm/s] Values: 50 - 500 Default: 50
nav_max_altitude Max allowed altitude (above Home Point) that applies to all NAV modes (including Altitude Hold). 0 means limit is disabled Values: 0 - 65000 Default: 0
nav_mc_wp_slowdown When ON, NAV engine will slow down when switching to the next waypoint. This prioritizes turning over forward movement. When OFF, NAV engine will continue to the next waypoint and turn as it goes. Default: TRUE
nav_rth_alt_control_override If set to ON RTH altitude and CLIMB FIRST settings can be overridden during the RTH climb phase using full pitch or roll stick held for > 1 second. RTH altitude is reset to the current altitude using pitch down stick. RTH CLIMB FIRST is overridden using right roll stick so craft turns and heads directly to home (CLIMB FIRST override only works for fixed wing) Default: FALSE
osd_pan_servo_index Index of the pan servo to adjust osd home heading direction based on camera pan. Note that this feature does not work with continiously rotating servos. Values: 0 - 10 Default: 0
osd_pan_servo_pwm2centideg Centidegrees of pan servo rotation us PWM signal. A servo with 180 degrees of rotation from 1000 to 2000 us PWM typically needs 18 for this setting. Change sign to inverse direction. Values: -36 - 36 Default: 0
osd_plus_code_short Number of leading digits removed from plus code. Removing 2, 4 and 6 digits requires a reference location within, respectively, ~800km, ~40 km and ~2km to recover the original coordinates. Default: 0
osd_sidebar_height Height of sidebars in rows. 0 leaves only the level indicator arrows (Not for pixel OSD) Values: 0 - 5 Default: 3
osd_stats_min_voltage_unit Display minimum voltage of the BATTERY or the average per CELL in the OSD stats. Default: BATTERY. Options BATTERY, CELL
osd_telemetry To enable OSD telemetry for antenna tracker. Possible values are OFF, ON and TEST Default: OFF
prearm_timeout Duration (ms) for which Prearm being activated is valid. after this, Prearm needs to be reset. 0 means Prearm does not timeout. Values: 0 - 10000 Default: 10000
safehome_max_distance In order for a safehome to be used, it must be less than this distance (in cm) from the arming point. Values: 0 - 65000 Default: 20000
safehome_usage_mode Used to control when safehomes will be used. Possible values are OFF, RTH and RTH_FS. See Safehome documentation for more information. Default: RTH
servo_autotrim_rotation_limit Servo midpoints are only updated when total aircraft rotation is less than this threshold [deg/s]. Only applies when using feature FW_AUTOTRIM. Values: 1 - 60 Default: 15
smith_predictor_delay Expected delay of the gyro signal. In milliseconds Values: 0 - 8 Default: 0
smith_predictor_lpf_hz Cutoff frequency for the Smith Predictor Low Pass Filter Values: 1 - 500 Default: 50
smith_predictor_strength The strength factor of a Smith Predictor of PID measurement. In percents Values: 0 - 1 Default: 0.5
turtle_mode_power_factor Turtle mode power factor Values: 0 - 100 Default: 55
vtx_smartaudio_early_akk_workaround Enable workaround for early AKK SAudio-enabled VTX bug. Default: TRUE
osd_rssi_dbm_alarm RSSI in dBm alarm for Crossfire. Default: 0
nav_wp_load_on_boot If set to ON, waypoints will be automatically loaded from EEPROM to the FC during startup. Default: OFF

Removed settings

Setting Description
gyro_sync
nav_landing_speed replaced by nav_land_minalt_vspd and nav_land_maxalt_vspd

Renamed settings

Old name New name
gyro_lpf_hz Replaced with gyro_main_lpf_hz
gyro_lpf_type Replaced with gyro_main_lpf_type
gyro_stage2_lowpass_hz Replaced with gyro_anti_aliasing_lpf_hz
gyro_stage2_lowpass_type Replaced with gyro_anti_aliasing_lpf_type
mc_airmode_threshold airmode_threshold
mc_airmode_type airmode_type
osd_artificial_horizon_max_pitch osd_ahi_max_pitch
osd_artificial_horizon_reverse_roll osd_ahi_reverse_roll

New drivers and protocols

  • Rangefinder "GY-US42(v2) Ultrasonic Range Sensor
  • Rangefinder vl53l1x
  • BNO055 Secondary IMU
  • BMI088 IMU

New features

Turtle mode aka Flip Over after crash (@kernel-machine)

INAV now has a "Turtle Mode".

  • Requires DSHOT ESC protocol
  • Assign a switch to TURTLE mode
  • Ensure you can arm at any angle

WP mission sealevel altitude datum (@breadoven)

Prior to inav 3.0, mission waypoint altitudes are relative the arming location. It is now possible to define waypoints with absolute (AMSL) altitude, making the mission independent of the arming location. See the inav wiki for details (WP paramater 3)

WP Mission Landing Elevation Setting (@breadoven)

The relative / absolute ground altitude of a LAND waypoint may be set as WP paramater 2 (m). See the inav wiki for details.

DShot Beeper (@harry1453)

Nothing to add. If DSHOT is enabled, DSHOT beeper will be used.

RC via MAVLink & MAVLink V2 Support (@harry1453)

MAVLink is still only a downlink from UAV to the ground station, but now allows to use RC-Over-MAVLink

Prearm Mode (@harry1453)

Prearm offers a two-stage arming process as an optional additional safety feature.

  • Activate prearm (normally a button or momentary switch)
  • Activate arm

Initial cut on H7 MCU support (@digitalentity, @bkleiner, @DzikuVx)

H7 is available in the source repository; target Hex files will be released as targets mature, probably in the future point releases.

Add D-term to control loop on fixed wing aircraft (@avsaase)

You can now use the D-gain to improve the stabilization, especially on small and agile airplanes. Until we have a better understanding of how to tune this on a range of airplanes, the D-gain is set to zero by default and not tuned using autotune. Please report good performing tunes in #6709.

Improved AUTOTUNE for fixed wing (@avsaase)

AUTOTUNE can now automatically set the correct rates for your airplane. The goal is to set rates that the airplane is capable of achieving with 80% control surface deflection so there is some room for the stabilization to work. This feature is controlled by CLI setting fw_autotune_rate_adjustment. When set to AUTO (the default), autotune automatically determines the rates and gains. When set to MAX, rates will be automatically adjusted, but never above the starting values. This can be used to calm down a very agile plane, while still avoiding setting too high rates. When set to FIXED, rates will not be adjusted. Note that setting too high rates can cause very bad flight behavior and potential crashes. Rate discovery is not possible in ANGLE mode so it is highly advised to do autotune in ACRO mode.

Continuously trim servos on fixed wing (@avsaase)

There is now the option to continuously trim the servos for straight and level flight. When enabled and flying straight and level, INAV records what servo output is required to maintain a constant attitude, and adjusts the servo midpoints accordingly. The servo midpoints are limited to the 1300-1700 range. After the first maiden flight, and after the first flight when significant changes have been made to the airplane, check the servo midpoints. If they are at or close to the end of this range mechanically adjust the control surfaces.

Improvements and updates

Gyro processing improvements (@DzikuVx)

As part of gyro processing updates, the following changes were made:

  1. gyro_sync is gone, INAV no longer does a wait cycle trying to get the next set of data from the gyro.
  2. Gyro data acquisition is no longer part of the main PID task
  3. Gyro data is acquired with a constant rate of 4kHz and filters with an anti-aliasing filter (gyro_anti_aliasing_lpf_hz). In normal circumstances, there is no need to change this setting
  4. All the other filters are running as part of the main PID task as before
  5. The gyro low-pass filter gyro_lpf_hz was renamed to gyro_main_lpf_hz

New experimental features for Multirotors

  • Smith Predictor on gyro signal helps to reduce the delay introduced by gyro filters. It's disabled by default. To enable, use set smith_predictor_delay = 3. More details about this feature will follow later
  • Alpha-Beta-Gamma filter is a relative of the Kalman filter and other prediction filters. Disabled by default. To enable, set gyro_abg_alpha = 0.25 or higher value. It requires a very clean gyro signal or might introduce oscillations on the high throttle. If the multirotor started to vibrate after enabling the Alpha-Beta-Gamma filter, you either have to improve the gyro filter strategy or disable the ABG filter. It works great on some builds and not so great or other. It's up to you to test.
  • Dynamic Gyro Main LPF - Dynamic gyro LPF with the cutoff frequency depending on throttle position. To enable set gyro_use_dyn_lpf=ON and set gyro_dyn_lpf_min_hz and gyro_dyn_lpf_max_hz. Dynamic LPF replaces gyro_main_lpf_hz

Update EGNOS PRN mask to latest EGSA definition, fix SBAS for non-Galileo usage (@stronnag)

The EGNOS (GPS ground assistance) definitions have been updated to the latest values for all GNSS options. An invalid association with the availability of Galileo has been corrected.

Make CW270FLIP default MAG alignment (@DzikuVx)

New FCs rarely feature onboard compass, and most GPS+MAG default to CW270FLIP, so this is now the INAV default. If you use another value, check your setup after upgrading.

Rename NAV CRUISE mode to NAV COURSE HOLD and add CRUISE mode which is equivalent to CRSH+AH (@shellixyz)

To more clearly state what they do and how they work. It's a subtle, but worth it to change for sure!

Bump OSD font min version to 2 (@shellixyz)

Users must upgrade OSD Fonts to Version 2 (or later).

Delayed safehome (@tonyyng)

Safehome does not now replace the arming location until it is needed. If you cancel RTH or recover from RX failsafe, the original arming location is restored as the home location. Under normal circumstances, "distance to home" will revert to range from the arming location.

Switched RTH Preset Altitude Override (@breadoven)

Provides stick options to override configured RTH climb and/or turn behaviour. See the nav_rth_alt_control_override setting description for details.

Renamed OSD SW and LEDLOW to OSD/LEDS OFF (@MrD-RC)

Modes names were changed to be more user friendly. When OSD OFF is enabled, OSD will be turned off. When LED OFF is enabled, LEDs will be turned off.

Fixed wing RTH Spiral Climb Option (@breadoven)

Yeap, now when nav_rth_climb_first is set to ON_FW_SPIRAL, Fixed Wing will keep litering and gaining altitude until it reaches desired altitude. Previously, it was climbing while flying straight in random direction

Do not slow down in WP mission when approaching a waypoint (@DzikuVx)

When nav_mc_wp_slowdown is set to OFF, Waypoint missions on Multirotors will be smoother as the NAV engine will not try to slow down before entering the waypoint and then accelerate towards the next waypoint. INAV will rather enter WP with normal speed, switch to the next waypoint and then adjust heading while flying.

Configure speed source for DJI OSD (@DzikuVx)

The default behavior of the DJI OSD speed element was to display a ground speed. osd_speed_source can be set to GROUND, AIR or 3D speed depending on the preference

Ability to trim pitch angle for level flight (@DzikuVx)

  1. The flight controller trimming for level flight on Fixed Wings is no longer a recommended way to do so
  2. Board ROLL and PITCH setting should be changed only when the flight controller is not installed parallel to the wings plane
  3. pitch trim should be done using fw_level_pitch_trim setting. +5 fw_level_pitch_trim means airplane nose should be raised 5 deg from level
  4. Flight mode AUTO LEVEL will automatically trim the pitch angle when ANGLE or HORIZON flight modes are used

vtx_smartaudio_early_akk_workaround option (@RomanLut)

If your old AKK VTX is not working, use vtx_smartaudio_early_akk_workaround to fix it!

Added option to output servos on PWM and SBUS (@IVData)

Option for local plus codes on osd (@avsaase)

This adds the option to remove the first 2, 4, or 6 digits from the OSD plus code. Doing so requires a reference location (for example your current location when using Google Maps on your phone) within ~800, ~40, and ~2km, respectively.

Changed default settings for fixed wing throttle smoothing in navigation modes (@Airwide)

Throttle smoothing in the navigation modes on fixed wing aircraft is now enabled by default. This results in smoother throttle management and more efficient cruising.

Improved flight performance on planes with rudder (@avsaase)

In ACRO mode, you can mitigate the problem of the rudder fighting bank-and-yank turns by disabling the I-term when the bank angle is above a given threshold. Set the desired bank angle threshold on the Mechanics tab under PID tuning. 10 degrees is a good starting point. In the navigation modes, rudder handling is improved. As a consequence of this improvement, TURN ASSIST can no longer be used in ACRO mode.

Secondary IMU

INAV 3.0 supports, as an experimental feature, external BNO055 connected as either I2C or Serial device. Data from BNO055 can be used to display Artificial Horizon in OSD, Heading in OSD or drive the self-leveling ANGLE and HORIZON modes. Secondary IMU will not be used for navigation yet!

Altitude limit

Via #4442 it is now possible to limit maximum altitude for both Fixed Wings and Multirotors. nav_max_altitude sets the max altitude in centimeters. Bear in mind, limit is active only with Altitude Hold mode and does not affect manual and acro flight modes

General Purpose PID controllers

INAV 3.0 comes with 4 general-purpose, user-programmable PID controllers that can be integrated with Logic Conditions and Global Variables. Why? Because why not! With the ability to override RC channels with Logic Conditions you can program your own heading, speed, altitude, whatever control.

All Changes since 2.6.1

Recommended hardware

Flight controllers

Airplane models

Radios

Long range radio systems

GPS & Sensors

FPV

Other

You can get more suggestions following this link too.

Don't miss a new inav release

NewReleases is sending notifications on new releases.