inav

INAV: Navigation-enabled flight control software

GPL-3.0 License

Stars
3.1K
Committers
403

Bot releases are hidden (Show)

inav - INAV 2.4.0

Published by digitalentity over 4 years ago

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:

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

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 - INAV 2.4.0-RC2

Published by digitalentity over 4 years ago

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:

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

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 - INAV 2.4.0-RC1

Published by digitalentity over 4 years ago

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:

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

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 - INAV 2.3.0

Published by digitalentity almost 5 years ago

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:

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

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 - INAV 2.3.0-RC2

Published by digitalentity almost 5 years ago

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:

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

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 - INAV 2.3.0-RC1

Published by digitalentity almost 5 years ago

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:

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

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 - INAV 2.2.1

Published by digitalentity over 5 years ago

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:

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

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 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.
Modules like this one should work flawlessly.

Support for INAV Radar

INAV 2.2 introduces the support for Radar ESP32 boards. They can be used to share information (including position) between multiple machines. This enables, for instance, the possibility to display the positions live on the OSD.
More infos can be found in the dedicated wiki page here: here

2.2.1 changes:

  • [AUTOTUNE] Fix incorrect logic modifying D-gain instead of FF-gain (@digitalentity ,#4870)
  • [BLACKBOX] Log D output if either D or FF term is nonzero (@digitalentity ,#4873)
  • [OSD] Fix position of the symbol in remaining capacity indicator (@fiam ,#4874)
  • [OSD] Fix display of PIFF FF term (@fiam ,#4875)
  • [IMU] Experimental mitigation for IMU horizon drift on fixed wings (@digitalentity ,#4883)
  • [TELEMETRY] Fixed MAVLINK telemetry flight mode info (@yarreg ,#4888)

All changes:

inav - INAV 2.2.0

Published by digitalentity over 5 years ago

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:

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

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 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 before arming.

Emergency arming

Enabling and disabling the arming switch 10 times during a 10s window will override arming checks for level, navigation unsafe, compass not calibrated and some hardware failures (it will only enforce gyro and acc to be working). Useful for example if you're stuck in a tree.

Out of range missions

It is now possible to disable the failsafe mechanism for the NAV WP mode (autonomous missions) by setting failsafe_mission to OFF. The aircraft will then continue autonomous missions even when the link is lost with the remote control.

Airspeed estimation

It is now possible to get an estimation of the airspeed for fixed wing aircrafts by enabling the "Virtual pitot sensor". This feature is experimental. It shouldn't cause any issue though since it is only for now displayed on the OSD and used by the turn assistant.

Mission waypoints management from the CLI

The saved mission waypoints can now be managed from the CLI with the wp command. They are present when doing a diff/dump meaning that they can now be restored easily along with the other settings.

Support for INAV Radar

INAV 2.2 introduces the support for Radar ESP32 boards. They can be used to share information (including position) between multiple machines. This enables, for instance, the possibility to display the positions live on the OSD.
More infos can be found in the dedicated wiki page here: here

All changes:

inav - INAV 2.2.0-RC2

Published by digitalentity over 5 years ago

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:

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

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:

From RC2:

inav - INAV 2.2.0-RC1

Published by digitalentity over 5 years ago

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:

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

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 before arming.

Emergency arming

Enabling and disabling the arming switch 10 times during a 10s window will override arming checks for level, navigation unsafe, compass not calibrated and some hardware failures (it will only enforce gyro and acc to be working). Useful for example if you're stuck in a tree.

Out of range missions

It is now possible to disable the failsafe mechanism for the NAV WP mode (autonomous missions) by setting failsafe_mission to OFF. The aircraft will then continue autonomous missions even when the link is lost with the remote control.

Airspeed estimation

It is now possible to get an estimation of the airspeed for fixed wing aircrafts by enabling the "Virtual pitot sensor". This feature is experimental. It shouldn't cause any issue though since it is only for now displayed on the OSD and used by the turn assistant.

Mission waypoints management from the CLI

The saved mission waypoints can now be managed from the CLI with the wp command. They are present when doing a diff/dump meaning that they can now be restored easily along with the other settings.

All changes:

inav - INAV-2.1.0

Published by digitalentity over 5 years ago

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

Support developers for free by checking out from the following stores after having clicked on the following links:

Important Notes

  1. INAV 2.1 is the last release of INAV that fully supports F3 and especially Omnibus F3 boards. Due to the lack of flash and RAM, future versions of INAV will either remove functions on F3 or not support those boards at all. STM32F3 are strongly discouraged for new builds and existing builds should be upgraded to F7 boards
  2. Feature AIRMODE is enabled by default on all targets! There is no need to change that on Fixed Wings at all. On Multirotors, if there a need to do so, users might disable it and enable AIRMODE as a flight mode on a switch like before. In the majority of the cases, AIRMODE can be enabled on Multirotors all the time. The two cases when a user might make it conditional are: usage of MOTOR_STOP or disabling for landing.
  3. ASYNC processing is gone. Gyro/Acc updates now happens in sync with the control loop.
  4. DSHOT is one of the new features of INAV 2.1. A digital protocol, like what DSHOT is, can substain a certain amount of noise with no performance degradation and allows a very smooth motor output. This comes at the cost of not offering a way in between a perfectly working setup or a not working one! (Think for instance to you Digital Television!).
    DSHOT requires a very clean setup and short ESC signal wires run. You might find your DSHOT setup perfectly working on the bench and failing when flying. If you are unsure about your setup just stick with analog protocols like ONESHOT or MULTISHOT. More on the topic can be found here
  5. On fixed wing aircrafts, if a compass is present and enabled, it will used as the only source of heading ignoring GPS course on ground information.

Upgrading from 2.0.0

  1. Be sure to run the latest INAV 2.1 Configuration release. Download from here
  2. Go to the CLI tab and copy and paste the diff output to a text file for later usage.
  3. Flash INAV 2.1.0 enabling full chip erase . Now you FC should run INAV 2.1.0 Connect again and check the firmware version.
  4. Go to CLI tab and paste all the contents you previously saved into a text file and press enter. Wait for it to finish. Type save and you should be good to go!
  5. Go to the OSD tab, Font Manager and upload a new font to the board if you use the OSD feature.
  6. Enjoy INAV 2.1.0 and explore its new features!

Upgrading from 1.9.X

  1. Be sure to run the latest INAV 2.1 Configuration release. Download from [here]
  2. Go to the CLI tab and copy and paste the diff output to a text file for later usage.
  3. Go to the OSD tab and take a screenshot of the current layout
  4. Flash INAV 2.1.0 enabling full chip erase . Now you FC should run INAV 2.0. Connect again and check the firmware version.
  5. Go to the Mixer tab and load and apply your desired mixer.
  6. Go back to your configuration text file and delete all lines starting with: mixer acczero accgain magzero osd. Adjust values to be adjusted noted in the release notes.
  7. Open the CLI tab in the configurator and paste your cleaned up configuration in the text box and type save and press enter. The flight controller will now reboot.
  8. Calibrate the accelerometer following the steps in the dedicated tab. Only first two steps need to be made in the right order.
  9. Calibration of the magnetometer should be done at the field. The magnetic field indoors can be distorted and led to a bad calibration.
  10. Restore manually your OSD layout using the screenshot and upload the font you like using the dedicated button.
  11. Carefully check all the configuration and check on the bench without installed propellers if everything looks good. In particular, check if the model preview behaves correctly when you are moving your model and check surfaces movements for an airplane.
  12. Enjoy INAV 2.1.0 and explore its new features!

New targets:

Temperature sensors support

It is now possible to measure temperatures with the help of the I²C LM75 and 1-Wire DS18B20 chips. The temperature values can be displayed on the OSD and also logged. Up to 8 sensors supported. The support is enabled by default on F4 and F7 FCs. To use with F3 FCs you need to build a custom firmware. See the documentation for more information.

Servo mixer

The maximum rate for a servo mixer rule is now 1000% instead of 125%

CLI:

New

Setting Description
rc_filter_frequency RC data biquad filter cutoff frequency. Lower cutoff frequencies result in smoother response at expense of command control delay. Practical values are 20-50. Set to zero to disable entirely and use unsmoothed RC stick values
fw_iterm_limit_stick_position Iterm is not allowed to grow when stick position is above threshold. This solves the problem of bounceback or followthrough when full stick deflection is applied on poorely tuned fixed wings. In other words, stabilization is partialy disabled when pilot is actively controlling the aircraft and active when sticks are not touched. 0 mean stick is in center position, 1 means it is fully deflected to either side
nav_mc_braking_speed_threshold min speed in cm/s above which braking can happen
nav_mc_braking_disengage_speed braking is disabled when speed goes below this value
nav_mc_braking_timeout timeout in ms for braking
nav_mc_braking_boost_factor acceleration factor for BOOST phase
nav_mc_braking_boost_timeout how long in ms BOOST phase can happen
nav_mc_braking_boost_speed_threshold BOOST can be enabled when speed is above this value
nav_mc_braking_boost_disengage_speed BOOST will be disabled when speed goes below this value
nav_mc_braking_bank_angle max angle that MR is allowed to bank in BOOST mode
osd_artificial_horizon_max_pitch Max pitch, in degrees, for OSD artificial horizon
osd_failsafe_switch_layout If enabled the OSD automatically switches to the first layout during failsafe

Removed

Setting Description
acc_task_frequency
attitude_task_frequency
async_mode
smix reverse input reverse can be done on the mixer level

Main changes

DSHOT

INAV 2.1 supports DSHOT ESC protocol. It can be configured using motor_pwm_protocol CLI setting. The following versions of DSHOT are supported:

  • DSHOT150
  • DSHOT300
  • DSHOT600
  • DSHOT1200

There is no DSHOT telemetry or DSHOT commands support yet!

Be advised that DSHOT is not well tested on INAV and because of being digital protocol can totally fail on setups with high electrical noise without giving any sign of degradation or motor stuttering.

DSHOT is enabled on following targets:

  • AIRBOTF4
  • ASGARD32F4
  • ASGARD32F7
  • COLIBRI_RACE
  • FIREWORKSV2
  • FOXEERF405
  • FOXEERF722DUAL
  • SPRACINGF7DUAL
  • MATEKF405 (CTR, STD, not WING)
  • MATEKF722
  • MATEKF722SE
  • OMNIBUSF4
  • OMNIBUSF7NXT
  • REVO

Multirotor braking mode

Requirements and setup

  1. Multirotor has to be capable of running 3D Position Hold: GPS, Compass, and Baro are required
  2. MC BRAKING flight mode has to be enabled
  3. UAV has to be put into User Control Mode CRUISE

Settings

  • nav_mc_braking_speed_threshold - min speed in cm/s above which braking can happen
  • nav_mc_braking_disengage_speed - braking is disabled when speed goes below this value
  • nav_mc_braking_timeout - timeout in ms for braking
  • nav_mc_braking_boost_factor - acceleration factor for BOOST phase
  • nav_mc_braking_boost_timeout - how long in ms BOOST phase can happen
  • nav_mc_braking_boost_speed_threshold - BOOST can be enabled when speed is above this value
  • nav_mc_braking_boost_disengage_speed - BOOST will be disabled when speed goes below this value
  • nav_mc_braking_bank_angle - max angle that MR is allowed to bank in BOOST mode

How it works:

  1. There are two phases BRAKE and BOOST
  2. BRAKE can be started then MC BRAKING mode is enabled, MR is in CRUISE mode, 3D PosHold is enabled, MR is traveling above nav_mc_braking_speed_threshold and pilot releases sticks
  3. INAV will store new PosHold position only when copter will stop, not when stricks are released
  4. On top of that, BOOST phase can be enabled if MR is traveling above nav_mc_braking_boost_speed_threshold
  5. in BOOST phase, MR is allowed to use higher acceleration and banking angle than normal.
  6. Because BOOSTS is limited in time, banking angle much higher than default should be fine

Tuning

Default values should be pretty safe to use. My 6" machine using following values:

set nav_mc_braking_speed_threshold = 100
set nav_mc_braking_disengage_speed = 50
set nav_mc_braking_timeout = 2000
set nav_mc_braking_boost_factor = 150
set nav_mc_braking_boost_timeout = 1000
set nav_mc_braking_boost_speed_threshold = 120
set nav_mc_braking_boost_disengage_speed = 75
set nav_mc_braking_bank_angle = 40

All changes:

inav - INAV 2.1.0-RC3

Published by digitalentity over 5 years ago

Hello and welcome to INAV 2.1.0-RC3!

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:

Support developers for free by checking out from the following stores after having clicked on the following links:

Important Notes

  1. INAV 2.1 is the last release of INAV that fully supports F3 and especially Omnibus F3 boards. Due to the lack of flash and RAM, future versions of INAV will either remove functions on F3 or not support those boards at all. STM32F3 are strongly discouraged for new builds and existing builds should be upgraded to F7 boards
  2. Feature AIRMODE is enabled by default on all targets! There is no need to change that on Fixed Wings at all. On Multirotors, if there a need to do so, users might disable it and enable AIRMODE as a flight mode on a switch like before. In the majority of the cases, AIRMODE can be enabled on Multirotors all the time. The two cases when a user might make it conditional are: usage of MOTOR_STOP or disabling for landing.
  3. ASYNC processing is gone. Gyro/Acc updates now happens in sync with the control loop.
  4. DSHOT is one of the new features of INAV 2.1. A digital protocol, like what DSHOT is, can substain a certain amount of noise with no performance degradation and allows a very smooth motor output. This comes at the cost of not offering a way in between a perfectly working setup or a not working one! (Think for instance to you Digital Television!).
    DSHOT requires a very clean setup and short ESC signal wires run. You might find your DSHOT setup perfectly working on the bench and failing when flying. If you are unsure about your setup just stick with analog protocols like ONESHOT or MULTISHOT. More on the topic can be found here

Upgrading from 2.0.0

  1. Be sure to run the latest INAV 2.1 Configuration release. Download from here
  2. Go to the CLI tab and copy and paste the diff output to a text file for later usage.
  3. Flash INAV 2.1.0 enabling full chip erase . Now you FC should run INAV 2.1.0 Connect again and check the firmware version.
  4. Go to CLI tab and paste all the contents you previously saved into a text file and press enter. Wait for it to finish. Type save and you should be good to go!
  5. Enjoy INAV 2.1.0 and explore its new features!

Upgrading from 1.9.X

  1. Be sure to run the latest INAV 2.1 Configuration release. Download from [here]
  2. Go to the CLI tab and copy and paste the diff output to a text file for later usage.
  3. Go to the OSD tab and take a screenshot of the current layout
  4. Flash INAV 2.1.0 enabling full chip erase . Now you FC should run INAV 2.0. Connect again and check the firmware version.
  5. Go to the Mixer tab and load and apply your desired mixer.
  6. Go back to your configuration text file and delete all lines starting with: mixer acczero accgain magzero osd. Adjust values to be adjusted noted in the release notes.
  7. Open the CLI tab in the configurator and paste your cleaned up configuration in the text box and type save and press enter. The flight controller will now reboot.
  8. Calibrate the accelerometer following the steps in the dedicated tab. Only first two steps need to be made in the right order.
  9. Calibration of the magnetometer should be done at the field. The magnetic field indoors can be distorted and led to a bad calibration.
  10. Restore manually your OSD layout using the screenshot and upload the font you like using the dedicated button.
  11. Carefully check all the configuration and check on the bench without installed propellers if everything looks good. In particular, check if the model preview behaves correctly when you are moving your model and check surfaces movements for an airplane.
  12. Enjoy INAV 2.1.0 and explore its new features!

New targets:

Temperature sensors support

It is now possible to measure temperatures with the help of the I²C LM75 and 1-Wire DS18B20 chips. The temperature values can be displayed on the OSD and also logged. See the documentation for more information.

CLI:

New

Setting Description
rc_filter_frequency RC data biquad filter cutoff frequency. Lower cutoff frequencies result in smoother response at expense of command control delay. Practical values are 20-50. Set to zero to disable entirely and use unsmoothed RC stick values
fw_iterm_limit_stick_position Iterm is not allowed to grow when stick position is above threshold. This solves the problem of bounceback or followthrough when full stick deflection is applied on poorely tuned fixed wings. In other words, stabilization is partialy disabled when pilot is actively controlling the aircraft and active when sticks are not touched. 0 mean stick is in center position, 1 means it is fully deflected to either side
nav_mc_braking_speed_threshold min speed in cm/s above which braking can happen
nav_mc_braking_disengage_speed braking is disabled when speed goes below this value
nav_mc_braking_timeout timeout in ms for braking
nav_mc_braking_boost_factor acceleration factor for BOOST phase
nav_mc_braking_boost_timeout how long in ms BOOST phase can happen
nav_mc_braking_boost_speed_threshold BOOST can be enabled when speed is above this value
nav_mc_braking_boost_disengage_speed BOOST will be disabled when speed goes below this value
nav_mc_braking_bank_angle max angle that MR is allowed to bank in BOOST mode
osd_artificial_horizon_max_pitch Max pitch, in degrees, for OSD artificial horizon
osd_failsafe_switch_layout If enabled the OSD automatically switches to the first layout during failsafe

Removed

Setting Description
acc_task_frequency
attitude_task_frequency
async_mode
smix reverse input reverse can be done on the mixer level

Main changes

DSHOT

INAV 2.1 supports DSHOT ESC protocol. It can be configured using motor_pwm_protocol CLI setting. The following versions of DSHOT are supported:

  • DSHOT150
  • DSHOT300
  • DSHOT600
  • DSHOT1200

There is no DSHOT telemetry or DSHOT commands support yet!

Be advised that DSHOT is not well tested on INAV and because of being digital protocol can totally fail on setups with high electrical noise without giving any sign of degradation or motor stuttering.

DSHOT is enabled on following targets:

  • AIRBOTF4
  • ASGARD32F4
  • ASGARD32F7
  • COLIBRI_RACE
  • FIREWORKSV2
  • FOXEERF405
  • FOXEERF722DUAL
  • MATEKF405 (CTR, STD, not WING)
  • MATEKF722
  • MATEKF722SE
  • OMNIBUSF4
  • OMNIBUSF7NXT
  • REVO

Multirotor braking mode

Requirements and setup

  1. Multirotor has to be capable of running 3D Position Hold: GPS, Compass, and Baro are required
  2. MC BRAKING flight mode has to be enabled
  3. UAV has to be put into User Control Mode CRUISE

01

02

Settings

  • nav_mc_braking_speed_threshold - min speed in cm/s above which braking can happen
  • nav_mc_braking_disengage_speed - braking is disabled when speed goes below this value
  • nav_mc_braking_timeout - timeout in ms for braking
  • nav_mc_braking_boost_factor - acceleration factor for BOOST phase
  • nav_mc_braking_boost_timeout - how long in ms BOOST phase can happen
  • nav_mc_braking_boost_speed_threshold - BOOST can be enabled when speed is above this value
  • nav_mc_braking_boost_disengage_speed - BOOST will be disabled when speed goes below this value
  • nav_mc_braking_bank_angle - max angle that MR is allowed to bank in BOOST mode

How it works:

  1. There are two phases BRAKE and BOOST
  2. BRAKE can be started then MC BRAKING mode is enabled, MR is in CRUISE mode, 3D PosHold is enabled, MR is traveling above nav_mc_braking_speed_threshold and pilot releases sticks
  3. INAV will store new PosHold position only when copter will stop, not when stricks are released
  4. On top of that, BOOST phase can be enabled if MR is traveling above nav_mc_braking_boost_speed_threshold
  5. in BOOST phase, MR is allowed to use higher acceleration and banking angle than normal.
  6. Because BOOSTS is limited in time, banking angle much higher than default should be fine

Tuning

Default values should be pretty safe to use. My 6" machine using following values:

set nav_mc_braking_speed_threshold = 100
set nav_mc_braking_disengage_speed = 50
set nav_mc_braking_timeout = 2000
set nav_mc_braking_boost_factor = 150
set nav_mc_braking_boost_timeout = 1000
set nav_mc_braking_boost_speed_threshold = 120
set nav_mc_braking_boost_disengage_speed = 75
set nav_mc_braking_bank_angle = 40

All changes:

inav - INAV 2.1.0-RC2

Published by digitalentity over 5 years ago

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

Support developers for free by checking out from the following stores after having clicked on the following links:

Important Notes

  1. INAV 2.1 is the last release of INAV that fully supports F3 and especially Omnibus F3 boards. Due to the lack of flash and RAM, future versions of INAV will either remove functions on F3 or not support those boards at all. STM32F3 are strongly discouraged for new builds and existing builds should be upgraded to F7 boards
  2. Feature AIRMODE is enabled by default on all targets! There is no need to change that on Fixed Wings at all. On Multirotors, if there a need to do so, users might disable it and enable AIRMODE as a flight mode on a switch like before. In the majority of the cases, AIRMODE can be enabled on Multirotors all the time. The two cases when a user might make it conditional are: usage of MOTOR_STOP or disabling for landing.
  3. ASYNC processing is gone. Gyro/Acc updates now happens in sync with the control loop.
  4. DSHOT is one of the new features of INAV 2.1. A digital protocol, like what DSHOT is, can substain a certain amount of noise with no performance degradation and allows a very smooth motor output. This comes at the cost of not offering a way in between a perfectly working setup or a not working one! (Think for instance to you Digital Television!).
    DSHOT requires a very clean setup and short ESC signal wires run. You might find your DSHOT setup perfectly working on the bench and failing when flying. If you are unsure about your setup just stick with analog protocols like ONESHOT or MULTISHOT. More on the topic can be found here

Upgrading from 2.0.0

  1. Be sure to run the latest INAV 2.1 Configuration release. Download from here
  2. Go to the CLI tab and copy and paste the diff output to a text file for later usage.
  3. Flash INAV 2.1.0 enabling full chip erase . Now you FC should run INAV 2.1.0 Connect again and check the firmware version.
  4. Go to CLI tab and paste all the contents you previously saved into a text file and press enter. Wait for it to finish. Type save and you should be good to go!
  5. Enjoy INAV 2.1.0 and explore its new features!

Upgrading from 1.9.X

  1. Be sure to run the latest INAV 2.1 Configuration release. Download from [here]
  2. Go to the CLI tab and copy and paste the diff output to a text file for later usage.
  3. Go to the OSD tab and take a screenshot of the current layout
  4. Flash INAV 2.1.0 enabling full chip erase . Now you FC should run INAV 2.0. Connect again and check the firmware version.
  5. Go to the Mixer tab and load and apply your desired mixer.
  6. Go back to your configuration text file and delete all lines starting with: mixer acczero accgain magzero osd. Adjust values to be adjusted noted in the release notes.
  7. Open the CLI tab in the configurator and paste your cleaned up configuration in the text box and type save and press enter. The flight controller will now reboot.
  8. Calibrate the accelerometer following the steps in the dedicated tab. Only first two steps need to be made in the right order.
  9. Calibration of the magnetometer should be done at the field. The magnetic field indoors can be distorted and led to a bad calibration.
  10. Restore manually your OSD layout using the screenshot and upload the font you like using the dedicated button.
  11. Carefully check all the configuration and check on the bench without installed propellers if everything looks good. In particular, check if the model preview behaves correctly when you are moving your model and check surfaces movements for an airplane.
  12. Enjoy INAV 2.1.0 and explore its new features!

New targets:

CLI:

New

Setting Description
rc_filter_frequency RC data biquad filter cutoff frequency. Lower cutoff frequencies result in smoother response at expense of command control delay. Practical values are 20-50. Set to zero to disable entirely and use unsmoothed RC stick values
fw_iterm_limit_stick_position Iterm is not allowed to grow when stick position is above threshold. This solves the problem of bounceback or followthrough when full stick deflection is applied on poorely tuned fixed wings. In other words, stabilization is partialy disabled when pilot is actively controlling the aircraft and active when sticks are not touched. 0 mean stick is in center position, 1 means it is fully deflected to either side
nav_mc_braking_speed_threshold min speed in cm/s above which braking can happen
nav_mc_braking_disengage_speed braking is disabled when speed goes below this value
nav_mc_braking_timeout timeout in ms for braking
nav_mc_braking_boost_factor acceleration factor for BOOST phase
nav_mc_braking_boost_timeout how long in ms BOOST phase can happen
nav_mc_braking_boost_speed_threshold BOOST can be enabled when speed is above this value
nav_mc_braking_boost_disengage_speed BOOST will be disabled when speed goes below this value
nav_mc_braking_bank_angle max angle that MR is allowed to bank in BOOST mode
osd_artificial_horizon_max_pitch Max pitch, in degrees, for OSD artificial horizon
osd_failsafe_switch_layout If enabled the OSD automatically switches to the first layout during failsafe
fw_loiter_direction Circle direction for FW loiter (LEFT, RIGHT), default RIGHT. My be changed in flight by the LOITER CHANGE switch.

Removed

Setting Description
acc_task_frequency
attitude_task_frequency
async_mode
smix reverse input reverse can be done on the mixer level

Main changes

DSHOT

INAV 2.1 supports DSHOT ESC protocol. It can be configured using motor_pwm_protocol CLI setting. The following versions of DSHOT are supported:

  • DSHOT150
  • DSHOT300
  • DSHOT600
  • DSHOT1200

There is no DSHOT telemetry or DSHOT commands support yet!

Be advised that DSHOT is not well tested on INAV and because of being digital protocol can totally fail on setups with high electrical noise without giving any sign of degradation or motor stuttering.

DSHOT is enabled on following targets:

  • AIRBOTF4
  • ASGARD32F4
  • ASGARD32F7
  • COLIBRI_RACE
  • FIREWORKSV2
  • FOXEERF405
  • FOXEERF722DUAL
  • MATEKF405 (CTR, STD, not WING)
  • MATEKF722
  • MATEKF722SE
  • OMNIBUSF4
  • OMNIBUSF7NXT
  • REVO

Multirotor braking mode

Requirements and setup

  1. Multirotor has to be capable of running 3D Position Hold: GPS, Compass, and Baro are required
  2. MC BRAKING flight mode has to be enabled
  3. UAV has to be put into User Control Mode CRUISE

01

02

Settings

  • nav_mc_braking_speed_threshold - min speed in cm/s above which braking can happen
  • nav_mc_braking_disengage_speed - braking is disabled when speed goes below this value
  • nav_mc_braking_timeout - timeout in ms for braking
  • nav_mc_braking_boost_factor - acceleration factor for BOOST phase
  • nav_mc_braking_boost_timeout - how long in ms BOOST phase can happen
  • nav_mc_braking_boost_speed_threshold - BOOST can be enabled when speed is above this value
  • nav_mc_braking_boost_disengage_speed - BOOST will be disabled when speed goes below this value
  • nav_mc_braking_bank_angle - max angle that MR is allowed to bank in BOOST mode

How it works:

  1. There are two phases BRAKE and BOOST
  2. BRAKE can be started then MC BRAKING mode is enabled, MR is in CRUISE mode, 3D PosHold is enabled, MR is traveling above nav_mc_braking_speed_threshold and pilot releases sticks
  3. INAV will store new PosHold position only when copter will stop, not when stricks are released
  4. On top of that, BOOST phase can be enabled if MR is traveling above nav_mc_braking_boost_speed_threshold
  5. in BOOST phase, MR is allowed to use higher acceleration and banking angle than normal.
  6. Because BOOSTS is limited in time, banking angle much higher than default should be fine

Tuning

Default values should be pretty safe to use. My 6" machine using following values:

set nav_mc_braking_speed_threshold = 100
set nav_mc_braking_disengage_speed = 50
set nav_mc_braking_timeout = 2000
set nav_mc_braking_boost_factor = 150
set nav_mc_braking_boost_timeout = 1000
set nav_mc_braking_boost_speed_threshold = 120
set nav_mc_braking_boost_disengage_speed = 75
set nav_mc_braking_bank_angle = 40

All changes:

inav - INAV 2.1.0-RC1

Published by digitalentity almost 6 years ago

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

Important Notes

  1. INAV 2.1 is the last release of INAV that fully supports F3 and especially Omnibus F3 boards. Due to the lack of flash and RAM, future versions of INAV will either remove functions on F3 or not support those boards at all. STM32F3 are strongly discouraged for new builds and existing builds should be upgraded to F7 boards
  2. Feature AIRMODE is enabled by default on all targets! There is no need to change that on Fixed Wings at all. On Multirotors, if there a need to do so, users might disable it and enable AIRMODE as a flight mode on a switch like before. In the majority of the cases, AIRMODE can be enabled on Multirotors all the time. The two cases when a user might make it conditional are: usage of MOTOR_STOP or disabling for landing.
  3. ASYNC processing is gone. Gyro/Acc updates now happens in sync with the control loop.
  4. DSHOT is one of the new features of INAV 2.1. A digital protocol, like what DSHOT is, can substain a certain amount of noise with no performance degradation and allows a very smooth motor output. This comes at the cost of not offering a way in between a perfectly working setup or a not working one! (Think for instance to you Digital Television!).
    DSHOT requires a very clean setup and short ESC signal wires run. You might find your DSHOT setup perfectly working on the bench and failing when flying. If you are unsure about your setup just stick with analog protocols like ONESHOT or MULTISHOT. More on the topic can be found here

Upgrading from 2.0.0

  1. Be sure to run the latest INAV 2.1 Configuration release. Download from here
  2. Go to the CLI tab and copy and paste the diff output to a text file for later usage.
  3. Flash INAV 2.1.0 enabling full chip erase . Now you FC should run INAV 2.1.0 Connect again and check the firmware version.
  4. Go to CLI tab and paste all the contents you previously saved into a text file and press enter. Wait for it to finish. Type save and you should be good to go!
  5. Enjoy INAV 2.1.0 and explore its new features!

Upgrading from 1.9.X

  1. Be sure to run the latest INAV 2.1 Configuration release. Download from [here]
  2. Go to the CLI tab and copy and paste the diff output to a text file for later usage.
  3. Go to the OSD tab and take a screenshot of the current layout
  4. Flash INAV 2.1.0 enabling full chip erase . Now you FC should run INAV 2.0. Connect again and check the firmware version.
  5. Go to the Mixer tab and load and apply your desired mixer.
  6. Go back to your configuration text file and delete all lines starting with: mixer acczero accgain magzero osd. Adjust values to be adjusted noted in the release notes.
  7. Open the CLI tab in the configurator and paste your cleaned up configuration in the text box and type save and press enter. The flight controller will now reboot.
  8. Calibrate the accelerometer following the steps in the dedicated tab. Only first two steps need to be made in the right order.
  9. Calibration of the magnetometer should be done at the field. The magnetic field indoors can be distorted and led to a bad calibration.
  10. Restore manually your OSD layout using the screenshot and upload the font you like using the dedicated button.
  11. Carefully check all the configuration and check on the bench without installed propellers if everything looks good. In particular, check if the model preview behaves correctly when you are moving your model and check surfaces movements for an airplane.
  12. Enjoy INAV 2.1.0 and explore its new features!

New targets:

CLI:

New

Setting Description
rc_filter_frequency RC data biquad filter cutoff frequency. Lower cutoff frequencies result in smoother response at expense of command control delay. Practical values are 20-50. Set to zero to disable entirely and use unsmoothed RC stick values
fw_iterm_limit_stick_position Iterm is not allowed to grow when stick position is above threshold. This solves the problem of bounceback or followthrough when full stick deflection is applied on poorely tuned fixed wings. In other words, stabilization is partialy disabled when pilot is actively controlling the aircraft and active when sticks are not touched. 0 mean stick is in center position, 1 means it is fully deflected to either side
nav_mc_braking_speed_threshold min speed in cm/s above which braking can happen
nav_mc_braking_disengage_speed braking is disabled when speed goes below this value
nav_mc_braking_timeout timeout in ms for braking
nav_mc_braking_boost_factor acceleration factor for BOOST phase
nav_mc_braking_boost_timeout how long in ms BOOST phase can happen
nav_mc_braking_boost_speed_threshold BOOST can be enabled when speed is above this value
nav_mc_braking_boost_disengage_speed BOOST will be disabled when speed goes below this value
nav_mc_braking_bank_angle max angle that MR is allowed to bank in BOOST mode
osd_artificial_horizon_max_pitch Max pitch, in degrees, for OSD artificial horizon
osd_failsafe_switch_layout If enabled the OSD automatically switches to the first layout during failsafe

Removed

Setting Description
acc_task_frequency
attitude_task_frequency
async_mode
smix reverse input reverse can be done on the mixer level

Main changes

DSHOT

INAV 2.1 supports DSHOT ESC protocol. It can be configured using motor_pwm_protocol CLI setting. The following versions of DSHOT are supported:

  • DSHOT150
  • DSHOT300
  • DSHOT600
  • DSHOT1200

There is no DSHOT telemetry or DSHOT commands support yet!

Be advised that DSHOT is not well tested on INAV and because of being digital protocol can totally fail on setups with high electrical noise without giving any sign of degradation or motor stuttering.

RC1 DSHOT targets

  • ASGARD32F4
  • ASGARD32F7
  • COLIBRI_RACE
  • FIREWORKSV2
  • FOXEERF405
  • FOXEERF722DUAL
  • MATEKF405
  • MATEKF722
  • MATEKF722SE
  • OMNIBUSF4
  • OMNIBUSF7NXT
  • REVO

Multirotor braking mode

Requirements and setup

  1. Multirotor has to be capable of running 3D Position Hold: GPS, Compass, and Baro are required
  2. MC BRAKING flight mode has to be enabled
  3. UAV has to be put into User Control Mode CRUISE

01

02

Settings

  • nav_mc_braking_speed_threshold - min speed in cm/s above which braking can happen
  • nav_mc_braking_disengage_speed - braking is disabled when speed goes below this value
  • nav_mc_braking_timeout - timeout in ms for braking
  • nav_mc_braking_boost_factor - acceleration factor for BOOST phase
  • nav_mc_braking_boost_timeout - how long in ms BOOST phase can happen
  • nav_mc_braking_boost_speed_threshold - BOOST can be enabled when speed is above this value
  • nav_mc_braking_boost_disengage_speed - BOOST will be disabled when speed goes below this value
  • nav_mc_braking_bank_angle - max angle that MR is allowed to bank in BOOST mode

How it works:

  1. There are two phases BRAKE and BOOST
  2. BRAKE can be started then MC BRAKING mode is enabled, MR is in CRUISE mode, 3D PosHold is enabled, MR is traveling above nav_mc_braking_speed_threshold and pilot releases sticks
  3. INAV will store new PosHold position only when copter will stop, not when stricks are released
  4. On top of that, BOOST phase can be enabled if MR is traveling above nav_mc_braking_boost_speed_threshold
  5. in BOOST phase, MR is allowed to use higher acceleration and banking angle than normal.
  6. Because BOOSTS is limited in time, banking angle much higher than default should be fine

Tuning

Default values should be pretty safe to use. My 6" machine using following values:

set nav_mc_braking_speed_threshold = 100
set nav_mc_braking_disengage_speed = 50
set nav_mc_braking_timeout = 2000
set nav_mc_braking_boost_factor = 150
set nav_mc_braking_boost_timeout = 1000
set nav_mc_braking_boost_speed_threshold = 120
set nav_mc_braking_boost_disengage_speed = 75
set nav_mc_braking_bank_angle = 40

All changes:

inav - INAV 2.0.1

Published by digitalentity almost 6 years ago

Hello and welcome to INAV 2.0.1 Release!

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

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

Maintenance release

This release is a maintenance release. We've found and fixed a bug so big and important that we decided to backport it from development versions to 2.0.0 code base and make a separate release.

This bug is known as a "GPS Lag" which has been reported by some pilots but it's cause has beed unknown until recently. On a quad the bug manifests itself as violent toilet bowling that can't be explained with compass interference/calibration. On a plane this bug causes the plane to fly in circles or other weird-shaped paths during RTH or Cruise modes.

If you have not encountered the issue you are still advised to upgrade to avoid issues with RTH/Cruise/Poshold.

WARNING

After this update your GPS module may cease to work with INAV. This is usually an indication of miswiring. If after upgrate INAV doesn't detect your module, please check the wiring and make sure both TX and RX lines of GPS module are connected to corresponding pins of your FC.

Sponsors and supporters

Ongoing development would be impossible without ongoing cooperation with manufacturers and support from the following businesses:

inav - INAV 2.0.0

Published by digitalentity about 6 years ago

Hello and welcome to INAV 2.0.0 Release!

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

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

Sponsors and supporters

Ongoing development would be impossible without ongoing cooperation with manufacturers and support from the following businesses:

Important Notes

  • DO NOT RESTORE ACCELEROMETER CALIBRATION VALUES FROM AN OLDER RELEASE (<2.0) Doing that will led to poor attitude estimation performance and may cause troubles.

  • When upgrading a full chip erase (when flashing) / defaults from CLI is advised. Be sure to backup your configuration and restore it wisely.

  • OSD layout configuration from releases < 2.0 is not compatible with the current one. Take a screenshot of your current OSD layout before upgrading and restore it manually from the configurator.

  • current_meter_offset setting changed scale. Need to be multiplied by 10 if it's value is coming from < INAV 2.0.0

  • Position Hold 2D (only keeping horizontal position with GPS aid) has been dropped. Now Position Hold is only 3D and it will hold position and altitude.

  • STM32F1 boards support has been dropped. NAZE/CC3D targets are no longer supported. Please upgrade to F4/F7 board. F3 boards are not recommended since their flash space is almost full and they are likely to not receive all features on the next release.

  • AIRMODE now excludes feature MOTOR_STOP in multicopters This means that if you have AIRMODE enabled on a multi-rotor, the motors will most likely spin on arming, even with feature MOTOR_STOP (or the configurator "Don't spin the motors when armed") set.

Upgrading from 1.9.X

  1. Be sure to run the latest INAV 2.0 Configuration release. Download from here
  2. Go to the CLI tab and copy and paste the diff output to a text file for later usage.
  3. Go to the OSD tab and take a screenshot of the current layout
  4. Flash INAV 2.0 enabling full chip erase . Now you FC should run INAV 2.0. Connect again and check firmware version.
  5. Go to the Mixer tab and load and apply your desidered mixer.
  6. Go back to your configuration text file and delete all lines starting with: mixer acczero accgain magzero osd. Adjust values to be adjusted noted in the release notes.
  7. Open the CLI tab in the configurator and paste your cleaned up configuration in the text box and type save and press enter. The flight controller will now reboot.
  8. Calibrate the accelerometer following the steps in the dedicated tab. Only first two steps needs to be made in the right order.
  9. Calibration of the magnetometer should be done at the field. The magnetic field indoors can be distorted and led to a bad calibration.
  10. Restore manually your OSD layout using the screenshot and upload the font you like using the dedicated button.
  11. Carefully check all the configuration and check on the bench without installed propellers if everything looks good. In particular check if the model preview behave correctly when you are moving your model and check surfaces movements for an airplane.
  12. Enjoy INAV 2.0.0 and explore its new features!

Walk through if TL;DR

https://www.youtube.com/watch?v=sHvItS2qKfk

Known bugs

  • RadioLink R9DS (an possibly all RadioLink receivers) SBUS output cannot be used . They are not complying with standards and this results in them sending invalid SBUS packets to the FC (#3563)
  • If INAV Configurator starts minimized, you have to manually remove content of C:\Users%Your_UserNname%\AppData\Local\inav-configurator https://www.youtube.com/watch?v=XMoULyiFDp4
  • When running async (GYRO or ALL), gyro update will stick to PID loop frequency even if the configurator reports an higher frequency. You can check this via tasks command in CLI. It's strongly recommended not to run async and synchronize looptime to gyroscope. (#3628)

New mixer and mixer GUI

Starting from INAV 2.0.0, there are no predefined mixers on the firmware side: CLI command mixer QUADX will just not work. Mixer has to be configured using INAV Configurator 2.0 with Mixer tab.

Restoring from previous releases via CLI will not work correctly. Please use Configurator 2.0 mixer tab to configure it from scratch.

See https://www.youtube.com/watch?v=0cLFu-5syi0

It is no longer necessary to use smix reverse to reverse a tricopter tail servo; this can be done in the 2.0 Configurator or with the CLI smix 0 5 2 -100 0.

Added NAV CRUISE flight mode (fixed wing)

This release introduces the new NAV CRUISE flight mode. When enabled the machine will try to maintain the current heading and compensate for any external disturbances (2D CRUISE). User can adjust the flight direction directly with ROLL stick or with the YAW stick ( nav_fw_cruise_yaw_rate set the yawing rate at full stick deflection ). The latter will offer a smoother way to adjust the flight direction. If the mode is enabled in conjunction with NAV ALTHOLD also the current altitude will be maintained (3D CRUISE). Altitude can be adjusted, as usual, via the pitch stick. In both modes ANGLE mode is active and the plane will stay leveled.

OSD improvements

OSD functionally got overhauled and improved. Now it is possible to have three OSD layouts and switch between them via an RC channel. Furthermore new two modes have been added: map and radar.

  • map mode draws the home centered, while the craft moves around. There are two available maps: one with the North pointing up and another one with the takeoff direction pointing up.
  • radar mode draws the craft in the center and the home moving around.

Those modes will enable the display of other aircraft flying in the vicinity in a future releases.

It is now possible to display a lot of new data on the OSD:

  • All the values adjustable in flight via RC. When a value is selected for adjustment it starts blinking. This means it is possible to select a lot of adjustments with a pot for example and know easily which one is being adjusted.
  • Wind estimation
  • Numeric attitude angles
  • Cruise mode heading info
  • Numeric heading to home
  • New battery related data: estimated remaining time and distance before having to head home, sag compensated battery voltage, estimated battery impedance
  • Outputs of the PID controllers

Added full VTX control via Smart Audio / TRAMP

User can now select VTX settings from the configurator or via the OSD CMS. Furthermore vtx_low_power_disarm setting has been added. Setting it to ON will set the power to its minimum value on startup (usually 25mW) and increase it to vtx_power when arming and change it back to its lowest setting after disarming. Note that this setting can jeopardize the ability to find a lost quad using a strong signal coming from the VTX but on the other way it can prevent the VTX to overheat if you do quick flight cycles on the same battery.
UNTIL_FIRST_ARM will set the VTX to its minimum power, but once the craft is armed it will increase the output power to vtx_power and it will never decrease until the craft is power cycled. OFF will make the power output always to be set to the vtx_power setting.

Wind Estimation for Fixed Wing

It is possible to show estimated wind speed and direction on the OSD. In particular both lateral and vertical indicators are present. This is an experimental feature, you are encouraged to use it and report any anomalies in the estimated wind speed.

Battery management related features

These features have been added for helping with the battery management:

  • Battery profile with optional automatic switching
  • Sag compensated battery voltage and battery impedance calculation
  • Estimation of the remaining flight time and distance before having to head home
  • Automatic compensation of throttle command based on battery voltage to help maintain constant thrust regardless of the battery voltage
  • The current sensor can be calibrated more accurately (increased offset voltage resolution: 0.1mV instead of 1mV). If you'd like to keep your current_meter_offset value from an old config you need to multiply it by 10).

You can read more about these feature in the battery documentation

CLI parameter renaming / new parameters

Name Description
nav_fw_cruise_yaw_rate Max YAW rate when NAV CRUISE mode is enabled (0=disable control via yaw stick) [dps]
gyro_stage2_lowpass_hz Software based second stage lowpass filter for gyro. Value is cutoff frequency (Hz). Currently experimental
name The craft name is now a set value. name MYCRAFT is replaced by set name = MYCRAFT.
switch_disarm_delay Defines a delay for switch disarming setting (default 150ms, PR #3118) For better safety, a value of at least 250ms is recommended
inav_reset_home Defines when the home position is automatically reset, default is EACH_ARM. Allowed values: NEVER, FIRST_ARM, EACH_ARM
model_preview_type Defines the aircraft type. This is advisory for display purposes only (Configurator, Ground Control Stations) and has no affect on aircraft behaviour. This setting takes the numeric values equivalent to the old 'mixer'.
platform_type Defines the aircraft (vehicle) type. This value affects the vehicle performance. Default is MULTIROTOR, allowed values: MULTIROTOR, AIRPLANE, HELICOPTER, TRICOPTER, ROVER, BOAT. Only MULTIROTOR, AIRPLANE and TRICOPTER are implemented in iNav 2.0.
has_flaps Defines is UAV is capable of having flaps. If ON and AIRPLANE platform_type is used, FLAPERON flight mode will be available for the pilot
vtx_band Configure the VTX band. Set to zero to use vtx_freq. Bands: 1: A, 2: B, 3: E, 4: F, 5: Race.
vtx_channel Channel to use within the configured vtx_band. Valid values are [1, 8].
vtx_freq Set the VTX frequency using raw MHz. This parameter is ignored unless vtx_band is 0.
vtx_halfduplex Use half duplex UART to communicate with the VTX, using only a TX pin in the FC.
vtx_low_power_disarm When the craft is disarmed, set the VTX to its lowest power. ON will set the power to its minimum value on startup, increase it to vtx_power when arming and change it back to its lowest setting after disarming. UNTIL_FIRST_ARM will start with minimum power, but once the craft is armed it will increase to vtx_power and it will never decrease until the craft is power cycled.
vtx_pit_mode_freq Frequency to use (in MHz) when the VTX is in pit mode.
vtx_power VTX RF power level to use. The exact number of mw depends on the VTX hardware.
nav_rth_home_altitude Aircraft will climb/descend to this altitude after reaching home if landing is not enabled. Set to 0 to stay at nav_rth_altitude (default) [cm]
nav_fw_cruise_speed Speed for the plane/wing at cruise throttle used for remaining flight time/distance estimation in cm/s
cruise_power Power draw at cruise throttle used for remaining flight time/distance estimation in 0.01W unit
idle_power Power draw at zero throttle used for remaining flight time/distance estimation in 0.01W unit
rth_energy_margin Energy margin wanted after getting home (percent of battery energy capacity). Use for the remaining flight time/distance calculation
osd_estimations_wind_compensation Use wind estimation for remaining flight time/distance estimation
nav_fw_allow_manual_thr_increase Enable the possibility to manually increase the throttle in auto throttle controlled modes for fixed wing
bat_voltage_src Chose between raw and sag compensated battery voltage to use for battery alarms and telemetry. Possible values are RAW and SAG_COMP
bat_cells Number of cells of the battery (0 = autodetect), see battery documentation
vbat_cell_detect_voltage Maximum voltage per cell, used for auto-detecting the number of cells of the battery in 0.01V units, default is 4.30V
align_opflow Optical flow module alignment (default CW0_DEG_FLIP)
fw_min_throttle_down_pitch Automatic pitch down angle when throttle is at 0 in angle mode. Progressively applied between cruise throttle and zero throttle
tz_automatic_dst Automatically add Daylight Saving Time to the GPS time when needed or simply ignore it. Includes presets for EU and the USA - if you live outside these areas it is suggested to manage DST manually via tz_offset.
motor_accel_time Minimum time for the motor(s) to accelerate from 0 to 100% throttle (ms) [0-1000]
motor_decel_time Minimum time for the motor(s) to deccelerate from 100 to 0% throttle (ms) [0-1000]
thr_comp_weight Weight used for the throttle compensation based on battery voltage.
nav_overrides_motor_stop Setting to OFF combined with MOTOR_STOP feature will allow user to stop motor when in autonomous modes. On most planes this setting is likely to cause a stall. Use caution

New boards

  • Added support for MATEKF411 mini and MATEKF411-WING (@fiam, #3146)
  • Added support for DALRCF405 (@nyway, #3184)
  • Add CLRACINGF4AIRV3 to CLRACINGF4AIR target (@bnn1044, #3239)

New features

Improvements

Removed features:

  • Feature CHANNEL_FORWARDING has been removed, it can be implemented using new mixer GUI in Configurator
  • Feature SERVO_GIMBAL has been removed, it can be implemented using new mixer GUI in Configurator
  • The mid_rc CLI variable has been removed, and the setting removed from the configurator. If necessary (e.g.Futaba TX), the same effect can be achieved using rxrange settings.

Bugfixes

  • Avoid to delete navigation modes if MAG is not available (@shellixyz, #2984)
  • Prevent out of time ARMED message in the OSD when arming with the OSD disabled (@shellixyz, #3098)
  • Allow using CMS while OSD is disabled (@shellixyz, #3099)
  • Fix current sensor overflow (@shellixyz, #3131)
  • Remove YAW inversion in 3D mode for vehicles that don't need it (@eephyne, #3128)
  • Fix vertical alignment of ARMED screen in OSD when using NTSC (@fiam, #3149)
  • Make the total trip distance OSD item work when no current sensor is present (@shellixyz, #3163)
  • Add missing OSD alarm settings from CLI (@shellixyz, #3182)
  • Fix "sensor lost" problems when using FPort telemetry (@fiam, #3206)
  • MATEKF405: As requested in #3223 S5 is no longer used for FW servos (@DzikuVx, #3224)
  • Fix outputs 5 and 6 in SPRACINGF3 (@shellixyz, #3236)
  • Correct home yaw when a valid heading is acquired (@fiam, #3247)
  • Fix logging of negative altitudes in BlackBox logs (@stronnag, #3250)
  • Properly round servo values after applying servo filtering (@fiam, #3276)
  • Fix and simplify applyFixedWingPitchRollThrottleController() (@shellixyz, #3297)
  • change year base for RTC time_t to correct leap processing (@stronnag, #3307)
  • Make FPort stop one sensor cycle every 3 (@fiam, #3308)
  • Fix RTH hover above home (can't keep altitude) (@shellixyz, #3332)
  • Fix FF_PIKOF4 and FF_PIKOF4OSD targets (@shellixyz, #3333)
  • remove unneeded rxConfig from sbusChannelsInit and fix up callers (@stronnag, #3338)
  • Fix potential overflow in energy metering (@shellixyz, #3342)
  • Reset disarm reason at moment of arming (@digitalentity, #3360)
  • Fix support for AK8975 MAG (@fiam, #3413)
  • Gyro SPI bus fix according to OmnibusF4-nano v8 schematics (@digitalentity, #3426)
  • Fix VTX device type reported via MSP (@fiam, #3429)
  • Add missing break when adjusting ADJUSTMENT_RC_YAW_EXPO (@fiam, #3430)
  • Work around compiler bug, fix MSP2_INAV_ANALOG and convert amperage from int32_t to int16_t (@shellixyz, #3469)
  • Prevent time comparison overflow in S.Port driver (@fiam, #3536)
  • Fix automatic DST support (@fiam, #3542)
  • PWM driver - startup value fix (fixes servo twitching at startup) (@marbalon, [#3540])
  • Fix FrSky HDOP range (@teckel12, #3519)
  • Fix division by 0 in generateThrottleCurve() (@shellixyz, #3502)
  • Fix current BB logging and improve battery code (@shellixyz, #3490)
  • Add definition for MAX_SPI_SPEED to limit spi seed if defined for target (@marbalon, #3532)
  • Fix incorrect axis convention (incompliance with datasheet) for IST8310 compass (@digitalentity, #3546)
  • Fix a rare edge case where RC receiver failsafe channel values may leak into AUX mode switching and cause a disarm (@digitalentity, [#3482])
  • Add workaround for AKK VTX with S.Audio bug (@fiam, [#3633])
  • Fix orientation of the drivers for AK8963, AK8975 and MPU9250 MAG (@fiam, [#3447])
  • Fix PCA9685 support (@DzikuVx, [#3744])

Developer Notes

Due to a beneficial change in the build environment (generated files are stored per target, not in a common area), it is necessary to remove a couple of files from any older branches (these files are generated automatically by the build).

# on a Posix O/S
rm -f src/main/fc/settings_generated.[ch]
inav - INAV 2.0.0 RC6

Published by digitalentity about 6 years ago

Changes since RC5:

  • Fix issue with not being able to disarm after ~70 min flight
  • Fix missing vtx settings from CLI
  • Telemetry improvements for LuaTelemetry

Full list: https://github.com/iNavFlight/inav/compare/2.0.0-RC5...2.0.0-RC6

Please, see the full release notes at https://github.com/iNavFlight/inav/wiki/2.0.0-Release-Notes

inav - INAV 2.0.0 RC5

Published by digitalentity about 6 years ago

Changes since RC4:

  • Add SOFTSERIAL support on TX2 for MATEKF405
  • New setting for disabling motor_stop in NAV modes
  • Ignore RC receiver data if receiver is in failsafe
  • Fix default compass direction for SPRACINGF3EVO
  • Add workaround for AKK VTX with S.Audio bug
  • Replace rssi_scale and rssi_invert with rssi_min and rssi_max
  • Check settings for respecting min/max values at boot time

Full list: https://github.com/iNavFlight/inav/compare/2.0.0-RC4...2.0.0-RC5

Please, see the full release notes at https://github.com/iNavFlight/inav/wiki/2.0.0-Release-Notes

inav - INAV 2.0.0 RC4

Published by fiam over 6 years ago

Changes since RC3:

  • Fixed bug which caused some ESCs to lose their calibration data (introduced in RC3).
  • Show a message in the ARMED screen when GPS is configured but no home position has been recorded.
  • Make the home arrow point up (when disarmed) or show a - (when armed) if the direction to home is not actually known (due to either sensor failure or no home position recorded).
  • Fixed display of coordinates in the (-1, 0) range in the latitude and longitude indicators.
  • Fixed RC adjustments being applied too fast when multiple adjustments where active at the same time.
  • Ensure micros() doesn't return an incorrect value under some special circumstances.
  • Added new parameter for changing the SBUS frame sync interval, for receivers not implementing SBUS properly.

Full list: https://github.com/iNavFlight/inav/compare/2.0.0-RC3...2.0.0-RC4

Please, see the full release notes at https://github.com/iNavFlight/inav/wiki/2.0.0-Release-Notes

inav - INAV 2.0.0 RC3

Published by fiam over 6 years ago

Known issues:

  • Due to the changes made to eliminate servo twitching, some ESC might lose their calibration data. Please, make sure yours are not affected. A fix has been already merged and will be present in RC4.

Changes since RC2: https://github.com/iNavFlight/inav/compare/2.0.0-RC2...2.0.0-RC3

Please, see the full release notes at https://github.com/iNavFlight/inav/wiki/2.0.0-Release-Notes