Skip to content

Releases: iNavFlight/inav

INAV 2.4.0

12 Feb 19:25
bcd4cae
Compare
Choose a tag to compare

Hello and welcome to INAV 2.4.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

Upgrading from 2.3.0 or 2.2.0

  1. Download and install the new configurator
  2. Save to a file the current diff all from the CLI.
  3. Upgrade to INAV 2.4 using the Full Erase option in the configurator.
  4. Upload your OSD font of choice from the OSD tab.
  5. Find on your diff all result the min_throttle line, and replace it by throttle_idle, setting the percentage of the idle throttle. The default is 15.
  6. Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
  7. You should be ready, explore new 2.4 features and enjoy!

Upgrading from 2.1.0 or older version

Please follow the instructions on this page.

New targets:

CLI:

New commands

Command Description
msc Enter USB Mass storage mode. See docs/USB_Mass_Storage_(MSC)_mode.md for usage information.
Setting Description
throttle_idle Previously min_throttle - Set the idle throttle percent. The percentage of the throttle range (max_throttle - min_command) above min_command used for minimum / idle throttle. Note that the default of 15% will most likely be too high for modern *shot ESCs.
nav_rth_home_offset_distance Distance offset from GPS established home to "safe" position used for RTH (cm, 0 disables)
nav_rth_home_offset_direction Direction offset from GPS established home to "safe" position used for RTH (degrees, 0=N, 90=E, 180=S, 270=W, requires non-zero offset distance)
gyro_stage2_lowpass_type Defines the type of stage 2 gyro LPF filter. Possible values: PT1, BIQUAD. PT1 offers faster filter response while BIQUAD better attenuation. Default value: BIQUAD
rpm_gyro_filter_enabled Enables gyro RPM filter. Turned OFF by default. Set to ON only when ESC telemetry is working and rotation speed of the motors is correctly reported to INAV
rpm_dterm_filter_enabled RPM filter for D-term. Experimental, probably will be removed in the next release
rpm_gyro_harmonics Number of harmonic frequencies to be covered by gyro RPM filter. Default value of 1 usually works just fine
rpm_gyro_min_hz The lowest frequency for gyro RPM filter. Default 150 is fine for 5" mini-quads. On 7-inch drones you can lower even down to 60-70
rpm_gyro_q Q factor for gyro RPM filter. Lower values give softer, wider attenuation. Usually there is no need to change this setting
dterm_gyro_harmonics Number of harmonic frequencies to be covered by D-term RPM filter. Default value of 1 usually works just fine
rpm_dterm_min_hz -
rpm_dterm_q -
dterm_lpf_type Defines the type of stage 1 D-term LPF filter. Possible values: PT1, BIQUAD. PT1 offers faster filter response while BIQUAD better attenuation. Default value: BIQUAD
dterm_lpf2_hz Cutoff frequency for stage 2 D-term filter. Disabled by default 0
dterm_lpf2_type Defines the type of stage 1 D-term LPF filter. Possible values: PT1, BIQUAD. PT1 offers faster filter response while BIQUAD better attenuation. Default value: BIQUAD
pidsum_limit_yaw Replaces yaw_jump_prevention_limit and yaw_p_limit
pid_type Allows to set type of PID controller used in control loop. Possible values: NONE, PID, PIFF, AUTO. Change only in case of experimental platforms like VTOL, tailsitters, rovers, boats, etc. Airplanes should always use PIFF and multirotors PID

Removed settings

Setting Description
min_throttle Replaced by throttle_idle
yaw_jump_prevention_limit Replaced by pidsum_limit_yaw
yaw_p_limit Replaced by pidsum_limit_yaw

New drivers and protocols

RPM Filters (@DzikuVx)

INAV can now take determine where to place notch filters based on the rotation speed of the motors to attenuate noise being fed into PID.
You need to connect BlHeli telemetry on a serial port and then enable RPM Filters.

USB Mass Storage (@fiam, @stronnag)

USB MSC (mass storage device class) SD card and internal flash access is enabled for F4 and F7 targets with suitable hardware. This means you can mount the FC (SD card / internal flash) as a host computer file system via USB to read BB logs (and delete them from an SD card). See docs/USB_Mass_Storage_(MSC)_mode.md for usage information.

RTH Home Offset (@stronnag)

Allows INAV RTH and failsafe RTH to not return the launch point but in a nearby area allowing not to violate a protected space which might be active in some flying fields. It's configurable via nav_rth_home_offset_distance which sets the distance offset from GPS established home to "safe" position used for RTH and nav_rth_home_offset_direction which configure the direction offset from GPS established home to "safe" position used for RTH (degrees, 0=N, 90=E, 180=S, 270=W, requires non-zero offset distance)

Linear Climb and Dive on Waypoint Missions (@hali9)

When flying a mission with different altitude waypoints, the old behaviour was INAV trying to reach the next waypoint altitude as soon as it can, constrained only by nav_auto_climb_rate, nav_fw_climb_angle and nav_fw_dive_angle CLI variables. Aircraft would use a lot of energy to reach the waypoint altitude, and then will keep that altitude for the rest of the way to the waypoint.

Now, INAV will try to climb or dive to the next waypoint altitude in a linearly manner, so it'll reach the next waypoint altitude only when it's almost reaching the waypoint itself. This way aircraft will consume less energy to climb since it'll be a less steep climb or will save energy by trading altitude for speed for more time when diving.

It works for all airframe types, fixed wing or multirotor.

OSD improvements (@fiam, @shellixyz, @DzikuVx)

Motors RPM can now displayed as a new item. There are minor bug fixes in the FrSky OSD driver.
Furthermore when you navigate the CMS (OSD menu) servos on your airplane will not move anymore.

Support for DJI HD FPV (@digitalentity)

INAV is now ready to embrace HD FPV with support for the DJI HD FPV system. Just connect the DJI HD VTX to a spare UART, set that UART to have a DJI FPV function in the Configurator Ports tab and you're good to go.

If you want to use DJI remote controller as well, you can connect the S.Bus wire from DJI VTX to your FC as well and select "SBUS Fast" protocol (earlier known as DJI HDL). INAV fully supports this protocol and will allow you to get 7ms contol latency (as advertised by DJI).

INAV 2.4.0-RC2

31 Jan 19:02
a3fb3b6
Compare
Choose a tag to compare
INAV 2.4.0-RC2 Pre-release
Pre-release

Hello and welcome to INAV 2.4.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

Upgrading from 2.3.0

  1. Download and install the new configurator
  2. Save to a file the current diff all from the CLI.
  3. Upgrade to INAV 2.4 using the Full Erase option in the configurator.
  4. Upload your OSD font of choice from the OSD tab.
  5. Find on your diff all result the min_throttle line, and replace it by throttle_idle, setting the percentage of the idle throttle. The default is 15.
  6. Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
  7. You should be ready, explore new 2.4 features and enjoy!

Upgrading from 2.2.0 or older version

  1. Please follow the upgrade guide to 2.3.0 from 2.2.0 here and then step to the previous section.

New targets:

CLI:

New commands

Command Description
msc Enter USB Mass storage mode. See docs/USB_Mass_Storage_(MSC)_mode.md for usage information.
Setting Description
throttle_idle Previously min_throttle - Set the idle throttle percent. The percentage of the throttle range (max_throttle - min_command) above min_command used for minimum / idle throttle. Note that the default of 15% will most likely be too high for modern *shot ESCs.
nav_rth_home_offset_distance Distance offset from GPS established home to "safe" position used for RTH (cm, 0 disables)
nav_rth_home_offset_direction Direction offset from GPS established home to "safe" position used for RTH (degrees, 0=N, 90=E, 180=S, 270=W, requires non-zero offset distance)
gyro_stage2_lowpass_type Defines the type of stage 2 gyro LPF filter. Possible values: PT1, BIQUAD. PT1 offers faster filter response while BIQUAD better attenuation. Default value: BIQUAD
rpm_gyro_filter_enabled Enables gyro RPM filter. Turned OFF by default. Set to ON only when ESC telemetry is working and rotation speed of the motors is correctly reported to INAV
rpm_dterm_filter_enabled RPM filter for D-term. Experimental, probably will be removed in the next release
rpm_gyro_harmonics Number of harmonic frequencies to be covered by gyro RPM filter. Default value of 1 usually works just fine
rpm_gyro_min_hz The lowest frequency for gyro RPM filter. Default 150 is fine for 5" mini-quads. On 7-inch drones you can lower even down to 60-70
rpm_gyro_q Q factor for gyro RPM filter. Lower values give softer, wider attenuation. Usually there is no need to change this setting
dterm_gyro_harmonics Number of harmonic frequencies to be covered by D-term RPM filter. Default value of 1 usually works just fine
rpm_dterm_min_hz -
rpm_dterm_q -
dterm_lpf_type Defines the type of stage 1 D-term LPF filter. Possible values: PT1, BIQUAD. PT1 offers faster filter response while BIQUAD better attenuation. Default value: BIQUAD
dterm_lpf2_hz Cutoff frequency for stage 2 D-term filter. Disabled by default 0
dterm_lpf2_type Defines the type of stage 1 D-term LPF filter. Possible values: PT1, BIQUAD. PT1 offers faster filter response while BIQUAD better attenuation. Default value: BIQUAD
pidsum_limit_yaw Replaces yaw_jump_prevention_limit and yaw_p_limit
pid_type Allows to set type of PID controller used in control loop. Possible values: NONE, PID, PIFF, AUTO. Change only in case of experimental platforms like VTOL, tailsitters, rovers, boats, etc. Airplanes should always use PIFF and multirotors PID

Removed settings

Setting Description
min_throttle Replaced by throttle_idle
yaw_jump_prevention_limit Replaced by pidsum_limit_yaw
yaw_p_limit Replaced by pidsum_limit_yaw

New drivers and protocols

  • BMP388 barometer
  • ICM20601 IMU
  • SBUS Fast

RPM Filters

INAV can now take determine where to place notch filters based on the rotation speed of the motors to attenuate noise being fed into PID.
You need to connect BlHeli telemetry on a serial port and then enable RPM Filters.

USB Mass Storage

USB MSC (mass storage device class) SD card and internal flash access is enabled for F4 and F7 targets with suitable hardware. This means you can mount the FC (SD card / internal flash) as a host computer file system via USB to read BB logs (and delete them from an SD card). See docs/USB_Mass_Storage_(MSC)_mode.md for usage information.

RTH Home Offset

Allows INAV RTH and failsafe RTH to not return the launch point but in a nearby area allowing not to violate a protected space which might be active in some flying fields. It's configurable via nav_rth_home_offset_distance which sets the distance offset from GPS established home to "safe" position used for RTH and nav_rth_home_offset_direction which configure the direction offset from GPS established home to "safe" position used for RTH (degrees, 0=N, 90=E, 180=S, 270=W, requires non-zero offset distance)

Linear Climb and Dive on Waypoint Missions

When flying a mission with different altitude waypoints, the old behaviour was INAV trying to reach the next waypoint altitude as soon as it can, constrained only by nav_auto_climb_rate, nav_fw_climb_angle and nav_fw_dive_angle CLI variables. Aircraft would use a lot of energy to reach the waypoint altitude, and then will keep that altitude for the rest of the way to the waypoint.

Now, INAV will try to climb or dive to the next waypoint altitude in a linearly manner, so it'll reach the next waypoint altitude only when it's almost reaching the waypoint itself. This way aircraft will consume less energy to climb since it'll be a less steep climb or will save energy by trading altitude for speed for more time when diving.

It works for all airframe types, fixed wing or multirotor.

OSD improvements

Motors RPM can now displayed as a new item. There are minor bug fixes in the FrSky OSD driver.
Furthermore when you navigate the CMS (OSD menu) servos on your airplane will not move anymore.

Support for DJI HD FPV

INAV is now ready to embrace HD FPV with support for the DJI HD FPV system. Just connect the DJI HD VTX to a spare UART, set that UART to have a DJI FPV function in the Configurator Ports tab and you're good to go.

If you want to use DJI remote controller as well, you can connect the S.Bus wire from DJI VTX to your FC as well and select "SBUS Fast" protocol (earlier known as DJI HDL). INAV fully supports this protocol and will allow you to get 7ms contol latency (as advertised by DJI).

INAV 2.4.0-RC1

23 Jan 09:50
39de2e2
Compare
Choose a tag to compare
INAV 2.4.0-RC1 Pre-release
Pre-release

Hello and welcome to INAV 2.4.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

Upgrading from 2.3.0

  1. Download and install the new configurator
  2. Save to a file the current diff all from the CLI.
  3. Upgrade to INAV 2.4 using the Full Erase option in the configurator.
  4. Upload your OSD font of choice from the OSD tab.
  5. Find on your diff all result the min_throttle line, and replace it by throttle_idle, setting the percentage of the idle throttle. The default is 15.
  6. Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
  7. You should be ready, explore new 2.4 features and enjoy!

Upgrading from 2.2.0 or older version

  1. Please follow the upgrade guide to 2.3.0 from 2.2.0 here and then step to the previous section.

New targets:

CLI:

New commands

Command Description
msc Enter USB Mass storage mode. See docs/USB_Mass_Storage_(MSC)_mode.md for usage information.
Setting Description
throttle_idle Previously min_throttle - Set the idle throttle percent. The percentage of the throttle range (max_throttle - min_command) above min_command used for minimum / idle throttle. Note that the default of 15% will most likely be too high for modern *shot ESCs.
nav_rth_home_offset_distance Distance offset from GPS established home to "safe" position used for RTH (cm, 0 disables)
nav_rth_home_offset_direction Direction offset from GPS established home to "safe" position used for RTH (degrees, 0=N, 90=E, 180=S, 270=W, requires non-zero offset distance)
gyro_stage2_lowpass_type Defines the type of stage 2 gyro LPF filter. Possible values: PT1, BIQUAD. PT1 offers faster filter response while BIQUAD better attenuation. Defauilt value: BIQUAD
rpm_gyro_filter_enabled Enables gyro RPM filtere. Turned OFF by default. Set to ON only when ESC telemetry is working and rotation speed of the motors is correctly reported to INAV
rpm_dterm_filter_enabled RPM filter for D-term. Experimental, probably will be removed in the next release
rpm_gyro_harmonics Number of harmonic frequences to be covered by gyro RPM filter. Default value of 1 usually works just fine
rpm_gyro_min_hz The lowest frequency for gyro RPM filtere. Default 150 is fine for 5" mini-quads. On 7-inch drones you can lower even down to 60-70
rpm_gyro_q Q factor for gyro RPM filter. Lower values give softer, wider attenuation. Usually there is no need to change this setting
dterm_gyro_harmonics Number of harmonic frequences to be covered by D-term RPM filter. Default value of 1 usually works just fine
rpm_dterm_min_hz -
rpm_dterm_q -
dterm_lpf_type Defines the type of stage 1 D-term LPF filter. Possible values: PT1, BIQUAD. PT1 offers faster filter response while BIQUAD better attenuation. Defauilt value: BIQUAD
dterm_lpf2_hz Cutoff frequency for stage 2 D-term filter. Disabled by default 0
dterm_lpf2_type Defines the type of stage 1 D-term LPF filter. Possible values: PT1, BIQUAD. PT1 offers faster filter response while BIQUAD better attenuation. Defauilt value: BIQUAD
pidsum_limit_yaw Replaces yaw_jump_prevention_limit and yaw_p_limit
pid_type Allows to set type of PID controller used in control loop. Possible values: NONE, PID, PIFF, AUTO. Change only in case of experimental platforms like VTOL, tailsitters, rovers, boats, etc. Airplanes should always use PIFF and multirotors PID

Removed settings

Setting Description
min_throttle Replaced by throttle_idle
yaw_jump_prevention_limit Replaced by pidsum_limit_yaw
yaw_p_limit Replaced by pidsum_limit_yaw

New drivers and protocols

  • BMP388 barometer
  • ICM20601 IMU
  • SBUS Fast

RPM Filters

INAV can now take determine where to place notch filters based on the rotation speed of the motors to attenuate noise being fed into PID.
You need to connect BlHeli telemetry on a serial port and then enable RPM Filters.

USB Mass Storage

USB MSC (mass storage device class) SD card and internal flash access is enabled for F4 and F7 targets with suitable hardware. This means you can mount the FC (SD card / internal flash) as a host computer file system via USB to read BB logs (and delete them from an SD card). See docs/USB_Mass_Storage_(MSC)_mode.md for usage information.

RTH Home Offset

Allows INAV RTH and failsafe RTH to not return the launch point but in a nearby area allowing not to violate a protected space which might be active in some flying fields. It's configurable via nav_rth_home_offset_distance which sets the distance offset from GPS established home to "safe" position used for RTH and nav_rth_home_offset_direction which configure the direction offset from GPS established home to "safe" position used for RTH (degrees, 0=N, 90=E, 180=S, 270=W, requires non-zero offset distance)

Linear Climb and Dive on Waypoint Missions

When flying a mission with different altitude waypoints, the old behaviour was INAV trying to reach the next waypoint altitude as soon as it can, constrained only by nav_auto_climb_rate, nav_fw_climb_angle and nav_fw_dive_angle CLI variables. Aircraft would use a lot of energy to reach the waypoint altitude, and then will keep that altitude for the rest of the way to the waypoint.

Now, INAV will try to climb or dive to the next waypoint altitude in a linearly manner, so it'll reach the next waypoint altitude only when it's almost reaching the waypoint itself. This way aircraft will consume less energy to climb since it'll be a less steep climb or will save energy by trading altitude for speed for more time when diving.

It works for all airframe types, fixed wing or multirotor.

OSD improvements

Motors RPM can now displayed as a new item. There are minor bug fixes in the FrSky OSD driver.
Furthermore when you navigate the CMS (OSD menu) servos on your airplane will not move anymore.

Support for DJI HD FPV

INAV is now ready to embrace HD FPV with support for the DJI HD FPV system. Just connect the DJI HD VTX to a spare UART, set that UART to have a DJI FPV function in the Configurator Ports tab and you're good to go.

If you want to use DJI remote controller as well, you can connect the S.Bus wire from DJI VTX to your FC as well and select "SBUS Fast" protocol (earlier known as DJI HDL). INAV fully supports this protocol and will allow you to get 7ms contol latency (as advertised by DJI).

INAV 2.3.0

25 Nov 18:20
d0bdd38
Compare
Choose a tag to compare

Hello and welcome to INAV 2.3.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

Upgrading from 2.2.0

  1. Download and install the new configurator
  2. Save to a file the current diff all from the CLI.
  3. Upgrade to INAV 2.3 using the Full Erase option in the configurator.
  4. Upload your OSD font of choice from the OSD tab.
  5. Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
  6. You should be ready, explore new 2.3 features and enjoy!

Upgrading from 2.1.0

  1. Please follow the upgrade guide to 2.2.0 and then step to the previous section.

New targets:

CLI:

New

Setting Description
dyn_notch_width_percent Distance in % of the attenuated frequency for double dynamic filter notched. When set to 0 single dynamic notch filter is used
dyn_notch_range Dynamic gyro filter range. Possible values LOW MEDIUM HIGH. MEDIUM should work best for 5-6" multirotors. LOW should work best with 7" and bigger. HIGH should work with everything below 4"
dyn_notch_q Q factor for dynamic notches
dyn_notch_min_hz Minimum frequency for dynamic notches. Default value of 150 works best with 5" multirors. Should be lowered with increased size of propellers. Values around 100 work fine on 7" drones. 10" can go down to 60 - 70
throttle_scale Throttle scaling factor. 1 means no throttle scaling. 0.5 means throttle scaled down by 50%
vbat_meter_type Vbat voltage source. Possible values: NONE, ADC, ESC. ESC required ESC telemetry enabled and running
antigravity_gain Max Antigravity gain. 1 means Antigravity is disabled, 2 means Iterm is allowed to double during rapid throttle movements
antigravity_accelerator
antigravity_cutoff_lpf_hz Antigravity cutoff frequenct for Throtte filter. Antigravity is based on the difference between actual and filtered throttle input. The bigger is the difference, the bigger Antigravity gain
sim_pin PIN for GSM card module

ESC Telemetry

ESC Telemetry is a feature of DSHOT ESCs to send some data back to the flight controller - voltage, current, temperature, motor RPM. It required additional wire from an ESC to the flight controller. To configure you need DSHOT as a motor protocol and "ESC output/telemetry" function enabled for the serial port where ESC telemetry wires are connected.

INAV ESC Telemetry with BlHeli_32 - The Complete Guide

Dynamic Filters

Dynamic Filters is a port of Betaflight dynamic filtering. It uses FFT analysis of gyro traces to locate noise peaks and double notch filters to attenuate them. By default, there are 6 notches, 2 per each axis: roll, pitch and yaw.

To enable Dynamic Filters, go to CLI and type
feature DYNAMIC_FILTERS

The default values are suited for 5" mini quads. Depending on the size of multirotor propellers, some adjustments might be required.

Propeller size dyn_notch_range dyn_notch_min_hz
Below 5" HIGH 200 or more
5" HIGH or MEDIUM 150 or more
7" LOW 100 or less

INAV Dynamic Filters, one of INAV 2.3 goodies - how-to guide

Global Functions

Global Functions (abbr. GF) are a mechanism allowing to override certain flight parameters (during flight). Global Functions are activated by Logic Conditions.

Currently implemented Global Functions

Name Notes
OVERRIDE_ARMING_SAFETY Allows to arm on any angle even without GPS fix
OVERRIDE_THROTTLE_SCALE Override throttle scale to the defined value
SWAP_ROLL_YAW basically, when activated, yaw stick will control roll and roll stick will control yaw. Required for tail-sitters VTOL during vertical-horizonral transition when body frame changes
SET_VTX_POWER_LEVEL Sets VTX power level. Allows to change VTX power level based on distance, switch or other values present in Logic Conditions
INVERT_ROLL Inverts ROLL axis input for PID/PIFF controller
INVERT_PITCH Inverts PITCH axis input for PID/PIFF controller
INVERT_YAW Inverts YAW axis input for PID/PIFF controller
OVERRIDE_THROTTLE Override throttle value that is fed to the motors by mixer. Allows for throttle hold

For details refer to Global Functions.md in docs folder.

Pixel based OSD

INAV now supports pixel based OSDs and includes a driver for FrSky's OSD. Some elements, like the artificial horizon, the home arrow or the heading graph include pixel based implementations.

To enable it go to the Ports tab in the configurator and select "FrSky OSD" from the peripherals column of the port that the OSD is connected to. Font uploading and OSD element configuration works in the same way, regardless of the OSD type.

Development Environment

The iNav Makefile will attempt to install a recommended compiler for your platform. Should you wish to override this, or your platform is not supported, please refer to the document docs/development/Generic_Linux_development.md which describes how to use an alternative compiler.

Due to third-party incompatibilities between Windows 64bit, Cygwin and the 32bit ARM cross-compiler, we do not recommend trying to build with Cygwin. The Cygwin build documentation has been withdrawn. Please use WSL or a Linux VM for building on Windows.

INAV 2.3.0-RC2

15 Nov 12:01
Compare
Choose a tag to compare
INAV 2.3.0-RC2 Pre-release
Pre-release

Hello and welcome to INAV 2.3.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

Upgrading from 2.2.0

  1. Download and install the new configurator
  2. Save to a file the current diff all from the CLI.
  3. Upgrade to INAV 2.3 using the Full Erase option in the configurator.
  4. Upload your OSD font of choice from the OSD tab.
  5. Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
  6. You should be ready, explore new 2.3 features and enjoy!

Upgrading from 2.1.0

  1. Please follow the upgrade guide to 2.2.0 and then step to the previous section.

New targets:

CLI:

New

Setting Description
dyn_notch_width_percent Distance in % of the attenuated frequency for double dynamic filter notched. When set to 0 single dynamic notch filter is used
dyn_notch_range Dynamic gyro filter range. Possible values LOW MEDIUM HIGH. MEDIUM should work best for 5-6" multirotors. LOW should work best with 7" and bigger. HIGH should work with everything below 4"
dyn_notch_q Q factor for dynamic notches
dyn_notch_min_hz Minimum frequency for dynamic notches. Default value of 150 works best with 5" multirors. Should be lowered with increased size of propellers. Values around 100 work fine on 7" drones. 10" can go down to 60 - 70
throttle_scale Throttle scaling factor. 1 means no throttle scaling. 0.5 means throttle scaled down by 50%
vbat_meter_type Vbat voltage source. Possible values: NONE, ADC, ESC. ESC required ESC telemetry enabled and running
antigravity_gain Max Antigravity gain. 1 means Antigravity is disabled, 2 means Iterm is allowed to double during rapid throttle movements
antigravity_accelerator
antigravity_cutoff_lpf_hz Antigravity cutoff frequenct for Throtte filter. Antigravity is based on the difference between actual and filtered throttle input. The bigger is the difference, the bigger Antigravity gain
sim_pin PIN for GSM card module

ESC Telemetry

ESC Telemetry is a feature of DSHOT ESCs to send some data back to the flight controller - voltage, current, temperature, motor RPM. It required additional wire from an ESC to the flight controller. To configure you need DSHOT as a motor protocol and "ESC output/telemetry" function enabled for the serial port where ESC telemetry wires are connected.

INAV ESC Telemetry with BlHeli_32 - The Complete Guide

Dynamic Filters

Dynamic Filters is a port of Betaflight dynamic filtering. It uses FFT analysis of gyro traces to locate noise peaks and double notch filters to attenuate them. By default, there are 6 notches, 2 per each axis: roll, pitch and yaw.

To enable Dynamic Filters, go to CLI and type
feature DYNAMIC_FILTERS

The default values are suited for 5" mini quads. Depending on the size of multirotor propellers, some adjustments might be required.

Propeller size dyn_notch_range dyn_notch_min_hz
Below 5" HIGH 200 or more
5" HIGH or MEDIUM 150 or more
7" LOW 100 or less

INAV Dynamic Filters, one of INAV 2.3 goodies - how-to guide

Global Functions

Global Functions (abbr. GF) are a mechanism allowing to override certain flight parameters (during flight). Global Functions are activated by Logic Conditions.

Currently implemented Global Functions

Name Notes
OVERRIDE_ARMING_SAFETY Allows to arm on any angle even without GPS fix
OVERRIDE_THROTTLE_SCALE Override throttle scale to the defined value
SWAP_ROLL_YAW basically, when activated, yaw stick will control roll and roll stick will control yaw. Required for tail-sitters VTOL during vertical-horizonral transition when body frame changes
SET_VTX_POWER_LEVEL Sets VTX power level. Allows to change VTX power level based on distance, switch or other values present in Logic Conditions
INVERT_ROLL Inverts ROLL axis input for PID/PIFF controller
INVERT_PITCH Inverts PITCH axis input for PID/PIFF controller
INVERT_YAW Inverts YAW axis input for PID/PIFF controller
OVERRIDE_THROTTLE Override throttle value that is fed to the motors by mixer. Allows for throttle hold

For details refer to Global Functions.md in docs folder.

Pixel based OSD

INAV now supports pixel based OSDs and includes a driver for FrSky's OSD. Some elements, like the artificial horizon, the home arrow or the heading graph include pixel based implementations.

To enable it go to the Ports tab in the configurator and select "FrSky OSD" from the peripherals column of the port that the OSD is connected to. Font uploading and OSD element configuration works in the same way, regardless of the OSD type.

Development Environment

The iNav Makefile will attempt to install a recommended compiler for your platform. Should you wish to override this, or your platform is not supported, please refer to the document docs/development/Generic_Linux_development.md which describes how to use an alternative compiler.

INAV 2.3.0-RC1

27 Oct 15:06
Compare
Choose a tag to compare
INAV 2.3.0-RC1 Pre-release
Pre-release

Hello and welcome to INAV 2.3.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

Upgrading from 2.2.0

  1. Download and install the new configurator
  2. Save to a file the current diff all from the CLI.
  3. Upgrade to INAV 2.3 using the Full Erase option in the configurator.
  4. Upload your OSD font of choice from the OSD tab.
  5. Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
  6. You should be ready, explore new 2.3 features and enjoy!

Upgrading from 2.1.0

  1. Please follow the upgrade guide to 2.2.0 and then step to the previous section.

New targets:

CLI:

New

Setting Description
dyn_notch_width_percent Distance in % of the attenuated frequency for double dynamic filter notched. When set to 0 single dynamic notch filter is used
dyn_notch_range Dynamic gyro filter range. Possible values LOW MEDIUM HIGH. MEDIUM should work best for 5-6" multirotors. LOW should work best with 7" and bigger. HIGH should work with everything below 4"
dyn_notch_q Q factor for dynamic notches
dyn_notch_min_hz Minimum frequency for dynamic notches. Default value of 150 works best with 5" multirors. Should be lowered with increased size of propellers. Values around 100 work fine on 7" drones. 10" can go down to 60 - 70
throttle_scale Throttle scaling factor. 1 means no throttle scaling. 0.5 means throttle scaled down by 50%
vbat_meter_type Vbat voltage source. Possible values: NONE, ADC, ESC. ESC required ESC telemetry enebled and running
antigravity_gain Max Antigravity gain. 1 means Antigravity is disabled, 2 means Iterm is allowed to double during rapid throttle movements
antigravity_accelerator
antigravity_cutoff_lpf_hz Antigravity cutoff frequenct for Throtte filter. Antigravity is based on the difference between actual and filtered throttle input. The bigger is the difference, the bigger Antigravity gain
sim_pin PIN for GSM card module

ESC Telemetry

ESC Telemetry is a feature of DSHOT ESCs to send some data back to the flight controller - voltage, current, temperature, motor RPM. It required additional wire from an ESC to the flight controller. To configure you need DSHOT as a motor protocol and "ESC output/telemetry" function enabled for the serial port where ESC telemetry wires are connected.

INAV ESC Telemetry with BlHeli_32 - The Complete Guide

Dynamic Filters

Dynamic Filters is a port of Betaflight dynamic filtering. It uses FFT analysis of gyro traces to locate noise peaks and double notch filters to attenuate them. By default, there are 6 notches, 2 per each axis: roll, pitch and yaw.

To enable Dynamic Filters, go to CLI and type
feature DYNAMIC_FILTERS

The default values are suited for 5" mini quads. Depending on the size of multirotor propellers, some adjustments might be required.

Propeller size dyn_notch_range dyn_notch_min_hz
Below 5" HIGH 200 or more
5" HIGH or MEDIUM 150 or more
7" LOW 100 or less

INAV Dynamic Filters, one of INAV 2.3 goodies - how-to guide

Global Functions

Global Functions (abbr. GF) are a mechanism allowing to override certain flight parameters (during flight). Global Functions are activated by Logic Conditions.

Currently implemented Global Functions

Name Notes
OVERRIDE_ARMING_SAFETY Allows to arm on any angle even without GPS fix
OVERRIDE_THROTTLE_SCALE Override throttle scale to the defined value
SWAP_ROLL_YAW basically, when activated, yaw stick will control roll and roll stick will control yaw. Required for tail-sitters VTOL during vertical-horizonral transition when body frame changes
SET_VTX_POWER_LEVEL Sets VTX power level. Allows to change VTX power level based on distance, switch or other values present in Logic Conditions
INVERT_ROLL Inverts ROLL axis input for PID/PIFF controller
INVERT_PITCH Inverts PITCH axis input for PID/PIFF controller
INVERT_YAW Inverts YAW axis input for PID/PIFF controller
OVERRIDE_THROTTLE Override throttle value that is fed to the motors by mixer. Allows for throttle hold

For details refer to Global Functions.md in docs folder.

Pixel based OSD

INAV now supports pixel based OSDs and includes a driver for FrSky's OSD. Some elements, like the artificial horizon, the home arrow or the heading graph include pixel based implementations.

To enable it go to the Ports tab in the configurator and select "FrSky OSD" from the peripherals column of the port that the OSD is connected to. Font uploading and OSD element configuration works in the same way, regardless of the OSD type.

Development Environment

The iNav Makefile will attempt to install a recommended compiler for your platform. Should you wish to override this, or your platform is not supported, please refer to the document docs/development/Generic_Linux_development.md which describes how to use an alternative compiler.

INAV 2.2.1

04 Jul 06:51
a6d8474
Compare
Choose a tag to compare

Hello and welcome to INAV 2.2.1 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

  1. Arming with sticks is being removed since it is not safe to use. You must use a switch to ARM.
  2. Using feature MOTOR STOP on multi rotors is not advised and it is not considered safe by the developers, it's there due the demand from users.

Upgrading from 2.1.0

  1. Download and install the new configurator
  2. Save to a file the current diff all from the CLI.
  3. Upgrade to INAV 2.2.1 using the Full Erase option in the configurator.
  4. Upload your OSD font of choice from the OSD tab.
  5. Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
  6. If you armed with via sticks, add an arming switch in the Modes tab in the configurator.
  7. If you are upgrading a multi rotor, POS XY PID I and D have now specific settings, respectively nav_mc_pos_deceleration_time and nav_mc_pos_expo . So if you don't use defaults, when restoring, move yours to the new settings.
  8. You should be ready, explore new 2.2.1 features and enjoy!

Upgrading from 2.0.0

  1. Please follow the upgrade guide to 2.1.0 and then step to the previous section.

New targets:

CLI:

New

Setting Description
acc_lpf_type Specifies the type of the software LPF of the acc signals. BIQUAD gives better filtering and more delay, PT1 less filtering and less delay, so use only on clean builds.
nav_mc_pos_deceleration_time Used for stoping distance calculation. Stop position is computed as speed * nav_mc_pos_deceleration_time from the place where sticks are released. Braking mode overrides this setting
nav_mc_pos_expo Expo for PosHold control
use_dterm_fir_filter Setting to OFF disabled extra filter on Dterm. OFF offers faster Dterm and better inflight performance with a cost of being more sensitive to gyro noise. Small and relatively clean multirotors (7 inches and below) are suggested to use OFF setting. If motors are getting too hot, switch back to ON
osd_gforce_alarm Value above which the OSD g force indicator will blink (g)
osd_gforce_axis_alarm_min Value under which the OSD axis g force indicators will blink (g)
osd_gforce_axis_alarm_max Value above which the OSD axis g force indicators will blink (g)
mc_airmode_type Defines the Airmode state handling type for Multirotors. Default STICK_CENTER is the classical approach in which Airmode is always active if enabled, but when the throttle is low and ROLL/PITCH/YAW sticks are centered, Iterms is not allowed to grow (ANTI_WINDUP). THROTTLE_THRESHOLD is the Airmode behavior known from Betaflight. In this mode, Airmode is active as soon THROTTLE position is above mc_airmode_threshold and stays active until disarm. ANTI_WINDUP is never triggered. For small Multirotors (up to 7-inch propellers) it is suggested to switch to THROTTLE_THRESHOLD since it keeps full stabilization no matter what pilot does with the sticks. Fixed Wings always use STICK_CENTER mode.
mc_airmode_threshold Defines airmode THROTTLE activation threshold when mc_airmode_type THROTTLE_THRESHOLD is used
osd_current_alarm Value above which the OSD current consumption element will start blinking. Measured in full Amperes.
sim_ground_station_number Number of phone that is used to communicate with SIM module. Messages / calls from other numbers are ignored. If undefined, can be set by calling or sending a message to the module.
sim_transmit_interval Text message transmission interval in seconds for SIM module. Minimum value: 10
sim_transmit_flags String specifying text message transmit condition flags for the SIM module. Flags can be given in any order. Empty string means the module only sends response messages. A: acceleration events, T: continuous transmission, F: continuous transmission in failsafe mode, L: continuous transmission when altitude is below sim_low_altitude, G: continuous transmission when GPS signal quality is low
acc_event_threshold_high Acceleration threshold [cm/s/s] for impact / high g event text messages sent by SIM module. Acceleration values greater than 4 g can occur in fixed wing flight without an impact, so a setting of 4000 or greater is suggested. 0 = detection off.
acc_event_threshold_low Acceleration threshold [cm/s/s] for low-g / freefall detection text messages sent by SIM module. A setting of less than 100 is suggested. Valid values: [0-900], 0 = detection off.
acc_event_threshold_neg_x Acceleration threshold [cm/s/s] for backwards acceleration / fixed wing landing detection text messages sent by SIM module. Suggested value for fixed wing: 1100. 0 = detection off.
sim_low_altitude Threshold for low altitude warning messages sent by SIM module when the 'L' transmit flag is set in sim_transmit_flags.
failsafe_mission If set to OFF the failsafe procedure won't be triggered and the mission will continue if the FC is in WP (automatic mission) mode
imu_acc_ignore_rate Total gyro rotation rate threshold [deg/s] to consider accelerometer trustworthy on airplanes
imu_acc_ignore_slope Half-width of the interval to gradually reduce accelerometer weight. Centered at imu_acc_ignore_rate (exactly 50% weight)
Setting Description
auto_disarm_delay

Experimental mitigation for IMU horizon drift on fixed wings

The physical effect that contributes most to AHI drift on airplanes is centrifugal force when doing a balanced turn - that force creates a bias and accelerometer no longer measures true gravity. Based on that assumption we created a hack, that will temporary ignore accelerometer in IMU calculations if a turn is likely to cause this effect to be significant.

The workaround is controlled by two parameters: imu_acc_ignore_rate and imu_acc_ignore_slope.

If you want to play around with imu_acc_ignore_rate bear in mind that too low values (<5) will likely disable accelerometer completely even on slightest maneuvers and too high value will keep accelerometer enabled even during turns that would cause drift.

We did a few tests on different airplanes and a reasonable value of imu_acc_ignore_rate is about 10. Value of imu_acc_ignore_slope could be set to 0-1 (only controls how sharp the transition from "enabled" to "disabled" would be, might or might not have any effect on the code behavior).

STM32F7 optimizations

INAV 2.2 offers a huge performance boost for all F7 based flight controllers (STM32F745 and STM32F722). Thanks to using both fast Instruction and Data memory (ITCM and DTCM), INAV on F7 boards is as fast as on F4 boards. Special thanks to @DieHertz for helping and original work for Betaflight. With performance fixes, INAV 2.2 is now capable of running 8kHz PID loop.

It is still not advised to use 8kHz when any I2C devices are connected to flight controller (BOTH F4 and F7). This specially applies to Magnetometer and Barometer. Because I2C bus driver is synchronous and the process or reading data for MAG or BARO takes longer than time available between PID loop cycles, jitter will appear.

If I2C magnetometer or barometer are to be used, switch to 4kHz mode!

Logic Conditions

Logic conditions is a new function framework that in INAV 2.2 allows to activate and deactivate specific servo mixer rules.

Logic conditions can evaluate RC channels, flight parameters, and other logic conditions into true/false and activate/deactivate servo mixer rules. It opens possibilities like:

  • automatically deploy flaps when speed is too low
  • activate servo when distance or altitude has been reached
  • flaps/spoilers with different throws

Future versions of INAV will allow using Logic conditions to switch motor mixer banks and make other overrides that currently cannot be change...

Read more

INAV 2.2.0

19 Jun 07:20
5e5551b
Compare
Choose a tag to compare

Hello and welcome to INAV 2.2.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

  1. Arming with sticks is being removed since it is not safe to use. You must use a switch to ARM.
  2. Using feature MOTOR STOP on multi rotors is not advised and it is not considered safe by the developers, it's there due the demand from users.

Upgrading from 2.1.0

  1. Download and install the new configurator
  2. Save to a file the current diff from the CLI.
  3. Upgrade to INAV 2.2 using the Full Erase option in the configurator.
  4. Upload your OSD font of choice from the OSD tab.
  5. Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
  6. If you armed with via sticks, add an arming switch in the Modes tab in the configurator.
  7. If you are upgrading a multi rotor, POS XY PID I and D have now specific settings, respectively nav_mc_pos_deceleration_time and nav_mc_pos_expo . So if you don't use defaults, when restoring, move yours to the new settings.
  8. You should be ready, explore new 2.2 features and enjoy!

Upgrading from 2.0.0

  1. Please follow the upgrade guide to 2.1.0 and then step to the previous section.

New targets:

CLI:

New

Setting Description
acc_lpf_type Specifies the type of the software LPF of the acc signals. BIQUAD gives better filtering and more delay, PT1 less filtering and less delay, so use only on clean builds.
nav_mc_pos_deceleration_time Used for stoping distance calculation. Stop position is computed as speed * nav_mc_pos_deceleration_time from the place where sticks are released. Braking mode overrides this setting
nav_mc_pos_expo Expo for PosHold control
use_dterm_fir_filter Setting to OFF disabled extra filter on Dterm. OFF offers faster Dterm and better inflight performance with a cost of being more sensitive to gyro noise. Small and relatively clean multirotors (7 inches and below) are suggested to use OFF setting. If motors are getting too hot, switch back to ON
osd_gforce_alarm Value above which the OSD g force indicator will blink (g)
osd_gforce_axis_alarm_min Value under which the OSD axis g force indicators will blink (g)
osd_gforce_axis_alarm_max Value above which the OSD axis g force indicators will blink (g)
mc_airmode_type Defines the Airmode state handling type for Multirotors. Default STICK_CENTER is the classical approach in which Airmode is always active if enabled, but when the throttle is low and ROLL/PITCH/YAW sticks are centered, Iterms is not allowed to grow (ANTI_WINDUP). THROTTLE_THRESHOLD is the Airmode behavior known from Betaflight. In this mode, Airmode is active as soon THROTTLE position is above mc_airmode_threshold and stays active until disarm. ANTI_WINDUP is never triggered. For small Multirotors (up to 7-inch propellers) it is suggested to switch to THROTTLE_THRESHOLD since it keeps full stabilization no matter what pilot does with the sticks. Fixed Wings always use STICK_CENTER mode.
mc_airmode_threshold Defines airmode THROTTLE activation threshold when mc_airmode_type THROTTLE_THRESHOLD is used
osd_current_alarm Value above which the OSD current consumption element will start blinking. Measured in full Amperes.
sim_ground_station_number Number of phone that is used to communicate with SIM module. Messages / calls from other numbers are ignored. If undefined, can be set by calling or sending a message to the module.
sim_transmit_interval Text message transmission interval in seconds for SIM module. Minimum value: 10
sim_transmit_flags String specifying text message transmit condition flags for the SIM module. Flags can be given in any order. Empty string means the module only sends response messages. A: acceleration events, T: continuous transmission, F: continuous transmission in failsafe mode, L: continuous transmission when altitude is below sim_low_altitude, G: continuous transmission when GPS signal quality is low
acc_event_threshold_high Acceleration threshold [cm/s/s] for impact / high g event text messages sent by SIM module. Acceleration values greater than 4 g can occur in fixed wing flight without an impact, so a setting of 4000 or greater is suggested. 0 = detection off.
acc_event_threshold_low Acceleration threshold [cm/s/s] for low-g / freefall detection text messages sent by SIM module. A setting of less than 100 is suggested. Valid values: [0-900], 0 = detection off.
acc_event_threshold_neg_x Acceleration threshold [cm/s/s] for backwards acceleration / fixed wing landing detection text messages sent by SIM module. Suggested value for fixed wing: 1100. 0 = detection off.
sim_low_altitude Threshold for low altitude warning messages sent by SIM module when the 'L' transmit flag is set in sim_transmit_flags.
failsafe_mission If set to OFF the failsafe procedure won't be triggered and the mission will continue if the FC is in WP (automatic mission) mode

Removed

Setting Description
auto_disarm_delay

STM32F7 optimizations

INAV 2.2 offers a huge performance boost for all F7 based flight controllers (STM32F745 and STM32F722). Thanks to using both fast Instruction and Data memory (ITCM and DTCM), INAV on F7 boards is as fast as on F4 boards. Special thanks to @DieHertz for helping and original work for Betaflight. With performance fixes, INAV 2.2 is now capable of running 8kHz PID loop.

It is still not advised to use 8kHz when any I2C devices are connected to flight controller (BOTH F4 and F7). This specially applies to Magnetometer and Barometer. Because I2C bus driver is synchronous and the process or reading data for MAG or BARO takes longer than time available between PID loop cycles, jitter will appear.

If I2C magnetometer or barometer are to be used, switch to 4kHz mode!

Logic Conditions

Logic conditions is a new function framework that in INAV 2.2 allows to activate and deactivate specific servo mixer rules.

Logic conditions can evaluate RC channels, flight parameters, and other logic conditions into true/false and activate/deactivate servo mixer rules. It opens possibilities like:

  • automatically deploy flaps when speed is too low
  • activate servo when distance or altitude has been reached
  • flaps/spoilers with different throws

Future versions of INAV will allow using Logic conditions to switch motor mixer banks and make other overrides that currently cannot be changed during flight or be activated by flight conditions

Optic flow calibration

Finally for the machines equipped with optic flow we have a calibration logic. After pressing the button in the Configurator you have 30 seconds to hold the copter in the air and tilt it to sides without moving it horizontally. The calibration code inside the flight controller will calculate the opflow_scale variable automatically.

Accelerometer vibration mitigation

The altitude/position estimation code is now aware of high accelerometer vibration making INAV to counteract the uncontrolled climb in navigation modes [#486]. There is no OSD indication of excessive vibration yet.

WARNING: This is an emergency mode of operation. The uncontrolled climb is caused by accelerometer clipping when vibration exceeds the range accelerometer is capable of measuring. This effect is induced by vibration (usually high frequency) and can't be fully compensated by software filtering so you should soft-mount your FC to minimize the risk of this happening.

New altitude mode for RTH

When new altitude mode AT_LEAST_LINEAR_DESCENT is chosen the aircraft will climb to the set rth_altitude if bellow or start from the current altitude then en route to home will descend linearly to hit the set home_altitude when reaching home.

Possibility to change the VTX power level in flight

It is now possible to change the VT...

Read more

INAV 2.2.0-RC2

04 Jun 08:45
fceebce
Compare
Choose a tag to compare
INAV 2.2.0-RC2 Pre-release
Pre-release

Hello and welcome to INAV 2.2.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

  1. Arming with sticks is being removed since it is not safe to use. You must use a switch to ARM.
  2. Using feature MOTOR STOP on multi rotors is not advised and it is not considered safe by the developers, it's there due the demand from users.

Upgrading from 2.1.0

  1. Download and install the new configurator
  2. Save to a file the current diff from the CLI.
  3. Upgrade to INAV 2.2 using the Full Erase option in the configurator.
  4. Upload your OSD font of choice from the OSD tab.
  5. Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
  6. If you armed with via sticks, add an arming switch in the Modes tab in the configurator.
  7. If you are upgrading a multi rotor, POS XY PID I and D have now specific settings, respectively nav_mc_pos_deceleration_time and nav_mc_pos_expo . So if you don't use defaults, when restoring, move yours to the new settings.
  8. You should be ready, explore new 2.2 features and enjoy!

Upgrading from 2.0.0

  1. Please follow the upgrade guide to 2.1.0 and then step to the previous section.

New targets:

CLI:

New

Setting Description
acc_lpf_type Specifies the type of the software LPF of the acc signals. BIQUAD gives better filtering and more delay, PT1 less filtering and less delay, so use only on clean builds.
nav_mc_pos_deceleration_time Used for stoping distance calculation. Stop position is computed as speed * nav_mc_pos_deceleration_time from the place where sticks are released. Braking mode overrides this setting
nav_mc_pos_expo Expo for PosHold control
use_dterm_fir_filter Setting to OFF disabled extra filter on Dterm. OFF offers faster Dterm and better inflight performance with a cost of being more sensitive to gyro noise. Small and relatively clean multirotors (7 inches and below) are suggested to use OFF setting. If motors are getting too hot, switch back to ON
osd_gforce_alarm Value above which the OSD g force indicator will blink (g)
osd_gforce_axis_alarm_min Value under which the OSD axis g force indicators will blink (g)
osd_gforce_axis_alarm_max Value above which the OSD axis g force indicators will blink (g)
mc_airmode_type Defines the Airmode state handling type for Multirotors. Default STICK_CENTER is the classical approach in which Airmode is always active if enabled, but when the throttle is low and ROLL/PITCH/YAW sticks are centered, Iterms is not allowed to grow (ANTI_WINDUP). THROTTLE_THRESHOLD is the Airmode behavior known from Betaflight. In this mode, Airmode is active as soon THROTTLE position is above mc_airmode_threshold and stays active until disarm. ANTI_WINDUP is never triggered. For small Multirotors (up to 7-inch propellers) it is suggested to switch to THROTTLE_THRESHOLD since it keeps full stabilization no matter what pilot does with the sticks. Fixed Wings always use STICK_CENTER mode.
mc_airmode_threshold Defines airmode THROTTLE activation threshold when mc_airmode_type THROTTLE_THRESHOLD is used
osd_current_alarm Value above which the OSD current consumption element will start blinking. Measured in full Amperes.
sim_ground_station_number Number of phone that is used to communicate with SIM module. Messages / calls from other numbers are ignored. If undefined, can be set by calling or sending a message to the module.
sim_transmit_interval Text message transmission interval in seconds for SIM module. Minimum value: 10
sim_transmit_flags String specifying text message transmit condition flags for the SIM module. Flags can be given in any order. Empty string means the module only sends response messages. A: acceleration events, T: continuous transmission, F: continuous transmission in failsafe mode, L: continuous transmission when altitude is below sim_low_altitude, G: continuous transmission when GPS signal quality is low
acc_event_threshold_high Acceleration threshold [cm/s/s] for impact / high g event text messages sent by SIM module. Acceleration values greater than 4 g can occur in fixed wing flight without an impact, so a setting of 4000 or greater is suggested. 0 = detection off.
acc_event_threshold_low Acceleration threshold [cm/s/s] for low-g / freefall detection text messages sent by SIM module. A setting of less than 100 is suggested. Valid values: [0-900], 0 = detection off.
acc_event_threshold_neg_x Acceleration threshold [cm/s/s] for backwards acceleration / fixed wing landing detection text messages sent by SIM module. Suggested value for fixed wing: 1100. 0 = detection off.
sim_low_altitude Threshold for low altitude warning messages sent by SIM module when the 'L' transmit flag is set in sim_transmit_flags.
failsafe_mission If set to OFF the failsafe procedure won't be triggered and the mission will continue if the FC is in WP (automatic mission) mode

Removed

Setting Description
auto_disarm_delay

STM32F7 optimizations

INAV 2.2 offers a huge performance boost for all F7 based flight controllers (STM32F745 and STM32F722). Thanks to using both fast Instruction and Data memory (ITCM and DTCM), INAV on F7 boards is as fast as on F4 boards. Special thanks to @DieHertz for helping and original work for Betaflight. With performance fixes, INAV 2.2 is now capable of running 8kHz PID loop.

It is still not advised to use 8kHz when any I2C devices are connected to flight controller (BOTH F4 and F7). This specially applies to Magnetometer and Barometer. Because I2C bus driver is synchronous and the process or reading data for MAG or BARO takes longer than time available between PID loop cycles, jitter will appear.

If I2C magnetometer or barometer are to be used, switch to 4kHz mode!

Logic Conditions

Logic conditions is a new function framework that in INAV 2.2 allows to activate and deactivate specific servo mixer rules.

Logic conditions can evaluate RC channels, flight parameters, and other logic conditions into true/false and activate/deactivate servo mixer rules. It opens possibilities like:

  • automatically deploy flaps when speed is too low
  • activate servo when distance or altitude has been reached
  • flaps/spoilers with different throws

Future versions of INAV will allow using Logic conditions to switch motor mixer banks and make other overrides that currently cannot be changed during flight or be activated by flight conditions

Optic flow calibration

Finally for the machines equipped with optic flow we have a calibration logic. After pressing the button in the Configurator you have 30 seconds to hold the copter in the air and tilt it to sides without moving it horizontally. The calibration code inside the flight controller will calculate the opflow_scale variable automatically.

Accelerometer vibration mitigation

The altitude/position estimation code is now aware of high accelerometer vibration making INAV to counteract the uncontrolled climb in navigation modes [#486]. There is no OSD indication of excessive vibration yet.

WARNING: This is an emergency mode of operation. The uncontrolled climb is caused by accelerometer clipping when vibration exceeds the range accelerometer is capable of measuring. This effect is induced by vibration (usually high frequency) and can't be fully compensated by software filtering so you should soft-mount your FC to minimize the risk of this happening.

Cellular telemetry via text messages

INAV 2.2 can use a SimCom SIM800 series cellular module to provide telemetry via text messages. Telemetry messages can be requested by calling the module's number or sending it a text message. The module can be set to transmit messages at regular intervals, or when an acceleration event is detected. A text message command can be used to put the flight controller into RTH mode.

All changes:

...

Read more

INAV 2.2.0-RC1

26 May 19:16
a713b63
Compare
Choose a tag to compare
INAV 2.2.0-RC1 Pre-release
Pre-release

Hello and welcome to INAV 2.2.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

  1. Arming with sticks is being removed since it is not safe to use. You must use a switch to ARM.
  2. Using feature MOTOR STOP on multi rotors is not advised and it is not considered safe by the developers, it's there due the demand from users.

Upgrading from 2.1.0

  1. Download and install the new configurator
  2. Save to a file the current diff from the CLI.
  3. Upgrade to INAV 2.2 using the Full Erase option in the configurator.
  4. Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
  5. If you armed with via sticks, add an arming switch in the Modes tab in the configurator.
  6. If you are upgrading a multi rotor, POS XY PID I and D have now specific settings, respectively nav_mc_pos_deceleration_time and nav_mc_pos_expo . So if you don't use defaults, when restoring, move yours to the new settings.
  7. You should be ready, explore new 2.2 features and enjoy!

Upgrading from 2.0.0

  1. Please follow the upgrade guide to 2.1.0 and then step to the previous section.

New targets:

CLI:

New

Setting Description
acc_lpf_type Specifies the type of the software LPF of the acc signals. BIQUAD gives better filtering and more delay, PT1 less filtering and less delay, so use only on clean builds.
nav_mc_pos_deceleration_time Used for stoping distance calculation. Stop position is computed as speed * nav_mc_pos_deceleration_time from the place where sticks are released. Braking mode overrides this setting
nav_mc_pos_expo Expo for PosHold control
use_dterm_fir_filter Setting to OFF disabled extra filter on Dterm. OFF offers faster Dterm and better inflight performance with a cost of being more sensitive to gyro noise. Small and relatively clean multirotors (7 inches and below) are suggested to use OFF setting. If motors are getting too hot, switch back to ON
osd_gforce_alarm Value above which the OSD g force indicator will blink (g)
osd_gforce_axis_alarm_min Value under which the OSD axis g force indicators will blink (g)
osd_gforce_axis_alarm_max Value above which the OSD axis g force indicators will blink (g)
mc_airmode_type Defines the Airmode state handling type for Multirotors. Default STICK_CENTER is the classical approach in which Airmode is always active if enabled, but when the throttle is low and ROLL/PITCH/YAW sticks are centered, Iterms is not allowed to grow (ANTI_WINDUP). THROTTLE_THRESHOLD is the Airmode behavior known from Betaflight. In this mode, Airmode is active as soon THROTTLE position is above mc_airmode_threshold and stays active until disarm. ANTI_WINDUP is never triggered. For small Multirotors (up to 7-inch propellers) it is suggested to switch to THROTTLE_THRESHOLD since it keeps full stabilization no matter what pilot does with the sticks. Fixed Wings always use STICK_CENTER mode.
mc_airmode_threshold Defines airmode THROTTLE activation threshold when mc_airmode_type THROTTLE_THRESHOLD is used
osd_current_alarm Value above which the OSD current consumption element will start blinking. Measured in full Amperes.
sim_ground_station_number Number of phone that is used to communicate with SIM module. Messages / calls from other numbers are ignored. If undefined, can be set by calling or sending a message to the module.
sim_transmission_interval Text message transmission interval in seconds for SIM module. Negative value means transmission is off but can be switched on by sending a "T" message.
acc_event_threshold_high Acceleration threshold [cm/s/s] for impact detection text messages sent by SIM module. 0 = detection off.
acc_event_threshold_low Acceleration threshold [cm/s/s] for low-g / freefall detection text messages sent by SIM module. Valid values: [0-900]
acc_event_threshold_neg_x Acceleration threshold [cm/s/s] for backwards acceleration / fixed wing landing detection text messages sent by SIM module. 0 = detection off.
failsafe_mission If set to OFF the failsafe procedure won't be triggered and the mission will continue if the FC is in WP (automatic mission) mode

Removed

Setting Description
auto_disarm_delay

STM32F7 optimizations

INAV 2.2 offers a huge performance boost for all F7 based flight controllers (STM32F745 and STM32F722). Thanks to using both fast Instruction and Data memory (ITCM and DTCM), INAV on F7 boards is as fast as on F4 boards. Special thanks to @DieHertz for helping and original work for Betaflight. With performance fixes, INAV 2.2 is now capable of running 8kHz PID loop.

It is still not advised to use 8kHz when any I2C devices are connected to flight controller (BOTH F4 and F7). This specially applies to Magnetometer and Barometer. Because I2C bus driver is synchronous and the process or reading data for MAG or BARO takes longer than time available between PID loop cycles, jitter will appear.

If I2C magnetometer or barometer are to be used, switch to 4kHz mode!

Logic Conditions

Logic conditions is a new function framework that in INAV 2.2 allows to activate and deactivate specific servo mixer rules.

Logic conditions can evaluate RC channels, flight parameters, and other logic conditions into true/false and activate/deactivate servo mixer rules. It opens possibilities like:

  • automatically deploy flaps when speed is too low
  • activate servo when distance or altitude has been reached
  • flaps/spoilers with different throws

Future versions of INAV will allow using Logic conditions to switch motor mixer banks and make other overrides that currently cannot be changed during flight or be activated by flight conditions

Optic flow calibration

Finally for the machines equipped with optic flow we have a calibration logic. After pressing the button in the Configurator you have 30 seconds to hold the copter in the air and tilt it to sides without moving it horizontally. The calibration code inside the flight controller will calculate the opflow_scale variable automatically.

Accelerometer vibration mitigation

The altitude/position estimation code is now aware of high accelerometer vibration making INAV to counteract the uncontrolled climb in navigation modes [#486]. There is no OSD indication of excessive vibration yet.

WARNING: This is an emergency mode of operation. The uncontrolled climb is caused by accelerometer clipping when vibration exceeds the range accelerometer is capable of measuring. This effect is induced by vibration (usually high frequency) and can't be fully compensated by software filtering so you should soft-mount your FC to minimize the risk of this happening.

New altitude mode for RTH

When new altitude mode AT_LEAST_LINEAR_DESCENT is chosen the aircraft will climb to the set rth_altitude if bellow or start from the current altitude then en route to home will descend linearly to hit the set home_altitude when reaching home.

Possibility to change the VTX power level in flight

It is now possible to change the VTX power level in flight with the help of RC adjustments.

GSM SMS telemetry / commands

INAV can use a SimCom SIM800 series cellular module to provide telemetry via text messages. Telemetry messages can be requested by calling the module's number or sending it a text message. The module can be set to transmit messages at regular intervals, or when an acceleration event is detected. A text message command can be used to put the flight controller into RTH mode.

You can find more details in the related documentation

Stick arming

Stick arming have been removed for security reasons

Possibility to bypass navigation pre-flight checks

If nav_extra_arming_safety is set to ALLOW_BYPASS the user is able to momentarily disable the navigation pre-flight checks (No GPS fix, first waypoint is too far, nav mode active) by holding yaw right befor...

Read more