Releases: iNavFlight/inav
INAV 2.5.0-RC1
Hello and welcome to INAV 2.5.0 RC1!
Please carefully read all of this document for the best possible experience and safety.
Get in touch with other pilots, share experiences, suggestions and ask for help on:
INAV Official on Telegram | |
INAV Official on Facebook |
Please continue to support developers, for free, by checking out from the following stores after having clicked on the following links:
Support us on Banggood |
Your contribution from the past month has been very welcome! Thanks!
Tested and suggested hardware can be found here
Important Notes
CLI aux
mode migration
inav 2.5 moves the CLI aux
mode value from a boxid
that was not guaranteed to be stable between releases to a permmanentId
that is guaranteed to be stable between releases. This is a "breaking" change for inav 2.5 that brings stability in the future.
In order to use a diff
or dump
from 2.4 or earlier in inav 2.5, the user must do one of the following:
- Remove
aux
settings from thediff
/dump
and recreate them in inav 2.5; or - Use the box2perm tool to migrate the
diff
/dump
automatically; or - Manually edit the
aux
settings; a conversion table is provided as part of the box2perm documentation.
F3 Deprecation
STM32 F3 flight controllers like Omnibus F3 or SP Racing F3 are deprecated and soon they will reach the end of support in INAV. If you are still using F3 boards, please migrate to F4 or F7.
Upgrading from 2.4
- Download and install the new configurator
- Save to a file the current diff all from the CLI.
- Modify the
diff
to update or remove theaux
statements - Upgrade to INAV 2.5 using the Full Erase option in the configurator.
- Upload your OSD font of choice from the OSD tab.
- Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
- You should be ready, explore new 2.5 features and enjoy!
Upgrading from 2.3 or older version
Please follow the instructions on this page.
New targets:
- AIRBOTF7
- OMMINBUSF7NANOV2
CLI:
New commands
Command | Description |
---|---|
gf |
Global Functions. For details refer to Global Functions.md in the docs folder. |
logic |
Defined Logic conditions activating Global Functions. For details refer to Logic Conditions.md in the docs folder. |
New Settings
Setting | Description |
---|---|
dynamic_gyro_notch_enabled |
Enable/disable dynamic gyro notch also known as Matrix Filter [ON / OFF] |
dynamic_gyro_notch_range |
Range for dynamic gyro notches. MEDIUM for 5", HIGH for 3" and MEDIUM or LOW for 7" and bigger propellers |
dynamic_gyro_notch_q |
Q factor for dynamic notches |
dynamic_gyro_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 |
motor_direction_inverted |
Cli.md UPDATE Boolean ON / OFF, replaces yaw_motor_direction |
nav_fw_pos_hdg_p |
Cli.md MISSING |
nav_fw_pos_hdg_i |
Cli.md MISSING |
nav_fw_pos_hdg_d |
Cli.md MISSING |
nav_fw_pos_hdg_pidsum_limit |
Cli.md MISSING |
nav_use_fw_yaw_control |
Cli.md MISSING |
nav_fw_yaw_deadband |
Cli.md MISSING |
osd_esc_temp_alarm_max |
Temperature under which the IMU temperature OSD element will start blinking (decidegrees centigrade) |
osd_esc_temp_alarm_min |
Temperature above which the IMU temperature OSD element will start blinking (decidegrees centigrade) |
osd_hud_wp_disp |
Cli.md MISSING Controls display of the next waypoints in the HUD. See description below |
osd_ahi_style |
Cli.md MISSING Sets OSD Artificial Horizon style "DEFAULT" or "LINE" |
telemetry_halfduplex |
Cli.md UPDATE Replaces telemetry_uart_unidir |
servo_protocol |
Select which protocol is used to communicate with servos (PWM, servo driver or SBUS) |
Removed settings
Setting | Description |
---|---|
dyn_notch_width_percent |
|
dyn_notch_range |
|
dyn_notch_q |
|
dyn_notch_min_hz |
|
rpm_dterm_filter_enabled |
|
dterm_gyro_harmonic |
|
rpm_dterm_min_hz |
|
rpm_dterm_q |
|
telemetry_uart_unidir |
Cli.md UPDATE Replaced by telemetry_halfduplex |
yaw_motor_direction |
Cli.md UPDATE Replaced by motor_direction_inverted |
New drivers and protocols
- BME280 Barometer (@gereic)
Initial Rover and Boat support (@DzikuVx)
Starting from version 2.5, INAV supports Rovers and Boats (more general: ground and water vehicles without altitude control with yaw steering only. Remark: tanks and vehicles with differential steering are also supported).
The Rover and Boat related features:
- Flight modes: PosHold, AltHold, Cruise, Launch, Loiter Direction Change, Angle, Horizon, FPV Angle Mix, Turn Assist, Airmode are not available on Rover and Boat platforms
- Feature 3D is renamed to Reversible Motors
- Reversible ESCs are now working correctly
- New Heading PID controller used for YAW control on rovers and boats
- Return To Home is working. Rover will disarm at the end of RTH procedure. Bear in mind, it will return in a straight line, no Smart RTH support yet.
- Waypoint Missions are operational. Rover will drive directly int the direction of the Waypoint. At the last Waypoint, it will stop motors instead of loitering.
Reversible ESCs support (@DzikuVx)
Description
New Matrix Filters for Multirotors (@DzikuVx)
The new Matrix Notch filter comes enabled by default on INAV. It's a dynamic notch filter that detects noise frequencies on each individual axis (X, Y and Z) and apply the filters to each axis, resulting in a much better noise handling.
Check out this video to see a detailed explanation of how the Matrix Filter works.
JUMP, HOLD and LAND Waypoint types (@giacomo892, @Jacky2k, @stronnag)
INAV 2.5 supports additional waypoint types, allowing more complex missions to be performed.
- JUMP: Defines a 'jump' to another waypoint, allowing mission loops (backward jump) and forward jumps. The number of jump iterations is also user defined.
- POSHOLD_TIME: Defines the amount of time for which the aircraft will loiter at the waypoint position before proceeding to the next waypoint.
- LAND: Defines a location for landing. This allows INAV to perform one-way missions.
The navigation messages wiki page provides more information and annotated examples.
HUD POI Waypoints markers (@OlivierC-FR)
Shows the next waypoints in the hud. To enable this feature, enter the count of next waypoints in the CLI command:
set osd_hud_wp_disp = 0 to 3
Or on the CMS menu: OSD > HUD > Displayed items > Next waypoints: (from 0 to 3, 0 means disabled)
Then start a WP mission, the next WPs will appear as soon as the mission is loaded in FC memory AND that the aircraft has a valid GPS heading, so it must move if it's not fitted with a magnetometer.
Servo S.BUS output (@digitalentity)
It's now possible to connect S.BUS servos to INAV. You can configure INAV to output servo commands as S.BUS stream on one of the serial ports. Important note - F4 boards generally don't support inversion on serial ports, for those boards a hardware inverter might be required.
VTX/CMS Unification (@digitalentity)
Now CMS has one unified page for configuring VTX settings. No need to remember which protocol your VTX is talking (Tramp, S.Audio or other).
ESC Sensor listen-only mode (@digitalentity)
ESC sensor can now be put to listen-only mode, allowing ESC sensor functionality to be used when an ESC is connected with a PWM-based protocol and configured to sent telemetry automatically. This will be useful on airplanes to provide RPM feedback without the need to use DSHOT.
Legacy Targets
Due to flash / memory restrictions the following functions have been disabled on F3 targets:
- Pitot
- Multirotor braking
INAV 2.4.0
Hello and welcome to INAV 2.4.0 Release!
Please carefully read all of this document for the best possible experience and safety.
Get in touch with other pilots, share experiences, suggestions and ask for help on:
INAV Official on Telegram | |
INAV Official on Facebook |
Please continue to support developers, for free, by checking out from the following stores after having clicked on the following links:
Support us on Banggood |
Your contribution from the past month has been very welcome! Thanks!
Tested and suggested hardware can be found here
Important Notes
Upgrading from 2.3.0 or 2.2.0
- Download and install the new configurator
- Save to a file the current diff all from the CLI.
- Upgrade to INAV 2.4 using the Full Erase option in the configurator.
- Upload your OSD font of choice from the OSD tab.
- Find on your diff all result the
min_throttle
line, and replace it bythrottle_idle
, setting the percentage of the idle throttle. The default is 15. - Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
- 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:
- Matek F722-PX
- Holybro Kakute F7 HDV
- Mamba F405US Stack
- Mamba F722S Stack
- F4BY (@Jingxian-Xiao)
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 (@shellixyz, @hydra)
- ICM20601 IMU (@shellixyz)
- SBUS Fast (@digitalentity)
RPM Filters (@DzikuVx)
INAV can now take determine where to place notch filters based on the rotation speed of the motors to attenuate noise being fed into PID.
You need to connect BlHeli telemetry on a serial port and then enable RPM Filters.
USB Mass Storage (@fiam, @stronnag)
USB MSC (mass storage device class) SD card and internal flash access is enabled for F4 and F7 targets with suitable hardware. This means you can mount the FC (SD card / internal flash) as a host computer file system via USB to read BB logs (and delete them from an SD card). See docs/USB_Mass_Storage_(MSC)_mode.md
for usage information.
RTH Home Offset (@stronnag)
Allows INAV RTH and failsafe RTH to not return the launch point but in a nearby area allowing not to violate a protected space which might be active in some flying fields. It's configurable via nav_rth_home_offset_distance
which sets the distance offset from GPS established home to "safe" position used for RTH and nav_rth_home_offset_direction
which configure the direction offset from GPS established home to "safe" position used for RTH (degrees, 0=N, 90=E, 180=S, 270=W, requires non-zero offset distance)
Linear Climb and Dive on Waypoint Missions (@hali9)
When flying a mission with different altitude waypoints, the old behaviour was INAV trying to reach the next waypoint altitude as soon as it can, constrained only by nav_auto_climb_rate
, nav_fw_climb_angle
and nav_fw_dive_angle
CLI variables. Aircraft would use a lot of energy to reach the waypoint altitude, and then will keep that altitude for the rest of the way to the waypoint.
Now, INAV will try to climb or dive to the next waypoint altitude in a linearly manner, so it'll reach the next waypoint altitude only when it's almost reaching the waypoint itself. This way aircraft will consume less energy to climb since it'll be a less steep climb or will save energy by trading altitude for speed for more time when diving.
It works for all airframe types, fixed wing or multirotor.
OSD improvements (@fiam, @shellixyz, @DzikuVx)
Motors RPM can now displayed as a new item. There are minor bug fixes in the FrSky OSD driver.
Furthermore when you navigate the CMS (OSD menu) servos on your airplane will not move anymore.
Support for DJI HD FPV (@digitalentity)
INAV is now ready to embrace HD FPV with support for the DJI HD FPV system. Just connect the DJI HD VTX to a spare UART, set that UART to have a DJI FPV function in the Configurator Ports tab and you're good to go.
If you want to use DJI remote controller as well, you can connect the S.Bus wire from DJI VTX to your FC as well and select "SBUS Fast" protocol (earlier known as DJI HDL). INAV fully supports this protocol and will allow you to get 7ms contol latency (as advertised by DJI).
INAV 2.4.0-RC2
Hello and welcome to INAV 2.4.0 Release!
Please carefully read all of this document for the best possible experience and safety.
Get in touch with other pilots, share experiences, suggestions and ask for help on:
INAV Official on Telegram | |
INAV Official on Facebook |
Please continue to support developers, for free, by checking out from the following stores after having clicked on the following links:
Support us on Banggood |
Your contribution from the past month has been very welcome! Thanks!
Tested and suggested hardware can be found here
Important Notes
Upgrading from 2.3.0
- Download and install the new configurator
- Save to a file the current diff all from the CLI.
- Upgrade to INAV 2.4 using the Full Erase option in the configurator.
- Upload your OSD font of choice from the OSD tab.
- Find on your diff all result the
min_throttle
line, and replace it bythrottle_idle
, setting the percentage of the idle throttle. The default is 15. - Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
- You should be ready, explore new 2.4 features and enjoy!
Upgrading from 2.2.0 or older version
- Please follow the upgrade guide to 2.3.0 from 2.2.0 here and then step to the previous section.
New targets:
CLI:
New commands
Command | Description |
---|---|
msc |
Enter USB Mass storage mode. See docs/USB_Mass_Storage_(MSC)_mode.md for usage information. |
Setting | Description |
---|---|
throttle_idle |
Previously min_throttle - Set the idle throttle percent. The percentage of the throttle range (max_throttle - min_command ) above min_command used for minimum / idle throttle. Note that the default of 15% will most likely be too high for modern *shot ESCs. |
nav_rth_home_offset_distance |
Distance offset from GPS established home to "safe" position used for RTH (cm, 0 disables) |
nav_rth_home_offset_direction |
Direction offset from GPS established home to "safe" position used for RTH (degrees, 0=N, 90=E, 180=S, 270=W, requires non-zero offset distance) |
gyro_stage2_lowpass_type |
Defines the type of stage 2 gyro LPF filter. Possible values: PT1 , BIQUAD . PT1 offers faster filter response while BIQUAD better attenuation. Default value: BIQUAD |
rpm_gyro_filter_enabled |
Enables gyro RPM filter. Turned OFF by default. Set to ON only when ESC telemetry is working and rotation speed of the motors is correctly reported to INAV |
rpm_dterm_filter_enabled |
RPM filter for D-term. Experimental, probably will be removed in the next release |
rpm_gyro_harmonics |
Number of harmonic frequencies to be covered by gyro RPM filter. Default value of 1 usually works just fine |
rpm_gyro_min_hz |
The lowest frequency for gyro RPM filter. Default 150 is fine for 5" mini-quads. On 7-inch drones you can lower even down to 60 -70 |
rpm_gyro_q |
Q factor for gyro RPM filter. Lower values give softer, wider attenuation. Usually there is no need to change this setting |
dterm_gyro_harmonics |
Number of harmonic frequencies to be covered by D-term RPM filter. Default value of 1 usually works just fine |
rpm_dterm_min_hz |
- |
rpm_dterm_q |
- |
dterm_lpf_type |
Defines the type of stage 1 D-term LPF filter. Possible values: PT1 , BIQUAD . PT1 offers faster filter response while BIQUAD better attenuation. Default value: BIQUAD |
dterm_lpf2_hz |
Cutoff frequency for stage 2 D-term filter. Disabled by default 0 |
dterm_lpf2_type |
Defines the type of stage 1 D-term LPF filter. Possible values: PT1 , BIQUAD . PT1 offers faster filter response while BIQUAD better attenuation. Default value: BIQUAD |
pidsum_limit_yaw |
Replaces yaw_jump_prevention_limit and yaw_p_limit |
pid_type |
Allows to set type of PID controller used in control loop. Possible values: NONE , PID , PIFF , AUTO . Change only in case of experimental platforms like VTOL, tailsitters, rovers, boats, etc. Airplanes should always use PIFF and multirotors PID |
Removed settings
Setting | Description |
---|---|
min_throttle |
Replaced by throttle_idle |
yaw_jump_prevention_limit |
Replaced by pidsum_limit_yaw |
yaw_p_limit |
Replaced by pidsum_limit_yaw |
New drivers and protocols
- BMP388 barometer
- ICM20601 IMU
- SBUS Fast
RPM Filters
INAV can now take determine where to place notch filters based on the rotation speed of the motors to attenuate noise being fed into PID.
You need to connect BlHeli telemetry on a serial port and then enable RPM Filters.
USB Mass Storage
USB MSC (mass storage device class) SD card and internal flash access is enabled for F4 and F7 targets with suitable hardware. This means you can mount the FC (SD card / internal flash) as a host computer file system via USB to read BB logs (and delete them from an SD card). See docs/USB_Mass_Storage_(MSC)_mode.md
for usage information.
RTH Home Offset
Allows INAV RTH and failsafe RTH to not return the launch point but in a nearby area allowing not to violate a protected space which might be active in some flying fields. It's configurable via nav_rth_home_offset_distance
which sets the distance offset from GPS established home to "safe" position used for RTH and nav_rth_home_offset_direction
which configure the direction offset from GPS established home to "safe" position used for RTH (degrees, 0=N, 90=E, 180=S, 270=W, requires non-zero offset distance)
Linear Climb and Dive on Waypoint Missions
When flying a mission with different altitude waypoints, the old behaviour was INAV trying to reach the next waypoint altitude as soon as it can, constrained only by nav_auto_climb_rate
, nav_fw_climb_angle
and nav_fw_dive_angle
CLI variables. Aircraft would use a lot of energy to reach the waypoint altitude, and then will keep that altitude for the rest of the way to the waypoint.
Now, INAV will try to climb or dive to the next waypoint altitude in a linearly manner, so it'll reach the next waypoint altitude only when it's almost reaching the waypoint itself. This way aircraft will consume less energy to climb since it'll be a less steep climb or will save energy by trading altitude for speed for more time when diving.
It works for all airframe types, fixed wing or multirotor.
OSD improvements
Motors RPM can now displayed as a new item. There are minor bug fixes in the FrSky OSD driver.
Furthermore when you navigate the CMS (OSD menu) servos on your airplane will not move anymore.
Support for DJI HD FPV
INAV is now ready to embrace HD FPV with support for the DJI HD FPV system. Just connect the DJI HD VTX to a spare UART, set that UART to have a DJI FPV function in the Configurator Ports tab and you're good to go.
If you want to use DJI remote controller as well, you can connect the S.Bus wire from DJI VTX to your FC as well and select "SBUS Fast" protocol (earlier known as DJI HDL). INAV fully supports this protocol and will allow you to get 7ms contol latency (as advertised by DJI).
INAV 2.4.0-RC1
Hello and welcome to INAV 2.4.0 Release!
Please carefully read all of this document for the best possible experience and safety.
Get in touch with other pilots, share experiences, suggestions and ask for help on:
INAV Official on Telegram | |
INAV Official on Facebook |
Please continue to support developers, for free, by checking out from the following stores after having clicked on the following links:
Support us on Banggood |
Your contribution from the past month has been very welcome! Thanks!
Tested and suggested hardware can be found here
Important Notes
Upgrading from 2.3.0
- Download and install the new configurator
- Save to a file the current diff all from the CLI.
- Upgrade to INAV 2.4 using the Full Erase option in the configurator.
- Upload your OSD font of choice from the OSD tab.
- Find on your diff all result the
min_throttle
line, and replace it bythrottle_idle
, setting the percentage of the idle throttle. The default is 15. - Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
- You should be ready, explore new 2.4 features and enjoy!
Upgrading from 2.2.0 or older version
- Please follow the upgrade guide to 2.3.0 from 2.2.0 here and then step to the previous section.
New targets:
CLI:
New commands
Command | Description |
---|---|
msc |
Enter USB Mass storage mode. See docs/USB_Mass_Storage_(MSC)_mode.md for usage information. |
Setting | Description |
---|---|
throttle_idle |
Previously min_throttle - Set the idle throttle percent. The percentage of the throttle range (max_throttle - min_command ) above min_command used for minimum / idle throttle. Note that the default of 15% will most likely be too high for modern *shot ESCs. |
nav_rth_home_offset_distance |
Distance offset from GPS established home to "safe" position used for RTH (cm, 0 disables) |
nav_rth_home_offset_direction |
Direction offset from GPS established home to "safe" position used for RTH (degrees, 0=N, 90=E, 180=S, 270=W, requires non-zero offset distance) |
gyro_stage2_lowpass_type |
Defines the type of stage 2 gyro LPF filter. Possible values: PT1 , BIQUAD . PT1 offers faster filter response while BIQUAD better attenuation. Defauilt value: BIQUAD |
rpm_gyro_filter_enabled |
Enables gyro RPM filtere. Turned OFF by default. Set to ON only when ESC telemetry is working and rotation speed of the motors is correctly reported to INAV |
rpm_dterm_filter_enabled |
RPM filter for D-term. Experimental, probably will be removed in the next release |
rpm_gyro_harmonics |
Number of harmonic frequences to be covered by gyro RPM filter. Default value of 1 usually works just fine |
rpm_gyro_min_hz |
The lowest frequency for gyro RPM filtere. Default 150 is fine for 5" mini-quads. On 7-inch drones you can lower even down to 60 -70 |
rpm_gyro_q |
Q factor for gyro RPM filter. Lower values give softer, wider attenuation. Usually there is no need to change this setting |
dterm_gyro_harmonics |
Number of harmonic frequences to be covered by D-term RPM filter. Default value of 1 usually works just fine |
rpm_dterm_min_hz |
- |
rpm_dterm_q |
- |
dterm_lpf_type |
Defines the type of stage 1 D-term LPF filter. Possible values: PT1 , BIQUAD . PT1 offers faster filter response while BIQUAD better attenuation. Defauilt value: BIQUAD |
dterm_lpf2_hz |
Cutoff frequency for stage 2 D-term filter. Disabled by default 0 |
dterm_lpf2_type |
Defines the type of stage 1 D-term LPF filter. Possible values: PT1 , BIQUAD . PT1 offers faster filter response while BIQUAD better attenuation. Defauilt value: BIQUAD |
pidsum_limit_yaw |
Replaces yaw_jump_prevention_limit and yaw_p_limit |
pid_type |
Allows to set type of PID controller used in control loop. Possible values: NONE , PID , PIFF , AUTO . Change only in case of experimental platforms like VTOL, tailsitters, rovers, boats, etc. Airplanes should always use PIFF and multirotors PID |
Removed settings
Setting | Description |
---|---|
min_throttle |
Replaced by throttle_idle |
yaw_jump_prevention_limit |
Replaced by pidsum_limit_yaw |
yaw_p_limit |
Replaced by pidsum_limit_yaw |
New drivers and protocols
- BMP388 barometer
- ICM20601 IMU
- SBUS Fast
RPM Filters
INAV can now take determine where to place notch filters based on the rotation speed of the motors to attenuate noise being fed into PID.
You need to connect BlHeli telemetry on a serial port and then enable RPM Filters.
USB Mass Storage
USB MSC (mass storage device class) SD card and internal flash access is enabled for F4 and F7 targets with suitable hardware. This means you can mount the FC (SD card / internal flash) as a host computer file system via USB to read BB logs (and delete them from an SD card). See docs/USB_Mass_Storage_(MSC)_mode.md
for usage information.
RTH Home Offset
Allows INAV RTH and failsafe RTH to not return the launch point but in a nearby area allowing not to violate a protected space which might be active in some flying fields. It's configurable via nav_rth_home_offset_distance
which sets the distance offset from GPS established home to "safe" position used for RTH and nav_rth_home_offset_direction
which configure the direction offset from GPS established home to "safe" position used for RTH (degrees, 0=N, 90=E, 180=S, 270=W, requires non-zero offset distance)
Linear Climb and Dive on Waypoint Missions
When flying a mission with different altitude waypoints, the old behaviour was INAV trying to reach the next waypoint altitude as soon as it can, constrained only by nav_auto_climb_rate
, nav_fw_climb_angle
and nav_fw_dive_angle
CLI variables. Aircraft would use a lot of energy to reach the waypoint altitude, and then will keep that altitude for the rest of the way to the waypoint.
Now, INAV will try to climb or dive to the next waypoint altitude in a linearly manner, so it'll reach the next waypoint altitude only when it's almost reaching the waypoint itself. This way aircraft will consume less energy to climb since it'll be a less steep climb or will save energy by trading altitude for speed for more time when diving.
It works for all airframe types, fixed wing or multirotor.
OSD improvements
Motors RPM can now displayed as a new item. There are minor bug fixes in the FrSky OSD driver.
Furthermore when you navigate the CMS (OSD menu) servos on your airplane will not move anymore.
Support for DJI HD FPV
INAV is now ready to embrace HD FPV with support for the DJI HD FPV system. Just connect the DJI HD VTX to a spare UART, set that UART to have a DJI FPV function in the Configurator Ports tab and you're good to go.
If you want to use DJI remote controller as well, you can connect the S.Bus wire from DJI VTX to your FC as well and select "SBUS Fast" protocol (earlier known as DJI HDL). INAV fully supports this protocol and will allow you to get 7ms contol latency (as advertised by DJI).
INAV 2.3.0
Hello and welcome to INAV 2.3.0 Release!
Please carefully read all of this document for the best possible experience and safety.
Get in touch with other pilots, share experiences, suggestions and ask for help on:
INAV Official on Telegram | |
INAV Official on Facebook |
Please continue to support developers, for free, by checking out from the following stores after having clicked on the following links:
Support us on Banggood |
Your contribution from the past month has been very welcome! Thanks!
Tested and suggested hardware can be found here
Important Notes
Upgrading from 2.2.0
- Download and install the new configurator
- Save to a file the current diff all from the CLI.
- Upgrade to INAV 2.3 using the Full Erase option in the configurator.
- Upload your OSD font of choice from the OSD tab.
- Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
- You should be ready, explore new 2.3 features and enjoy!
Upgrading from 2.1.0
- Please follow the upgrade guide to 2.2.0 and then step to the previous section.
New targets:
CLI:
New
Setting | Description |
---|---|
dyn_notch_width_percent | Distance in % of the attenuated frequency for double dynamic filter notched. When set to 0 single dynamic notch filter is used |
dyn_notch_range | Dynamic gyro filter range. Possible values LOW MEDIUM HIGH . MEDIUM should work best for 5-6" multirotors. LOW should work best with 7" and bigger. HIGH should work with everything below 4" |
dyn_notch_q | Q factor for dynamic notches |
dyn_notch_min_hz | Minimum frequency for dynamic notches. Default value of 150 works best with 5" multirors. Should be lowered with increased size of propellers. Values around 100 work fine on 7" drones. 10" can go down to 60 - 70 |
throttle_scale | Throttle scaling factor. 1 means no throttle scaling. 0.5 means throttle scaled down by 50% |
vbat_meter_type | Vbat voltage source. Possible values: NONE , ADC , ESC . ESC required ESC telemetry enabled and running |
antigravity_gain | Max Antigravity gain. 1 means Antigravity is disabled, 2 means Iterm is allowed to double during rapid throttle movements |
antigravity_accelerator | |
antigravity_cutoff_lpf_hz | Antigravity cutoff frequenct for Throtte filter. Antigravity is based on the difference between actual and filtered throttle input. The bigger is the difference, the bigger Antigravity gain |
sim_pin | PIN for GSM card module |
ESC Telemetry
ESC Telemetry is a feature of DSHOT ESCs to send some data back to the flight controller - voltage, current, temperature, motor RPM. It required additional wire from an ESC to the flight controller. To configure you need DSHOT as a motor protocol and "ESC output/telemetry" function enabled for the serial port where ESC telemetry wires are connected.
INAV ESC Telemetry with BlHeli_32 - The Complete Guide
Dynamic Filters
Dynamic Filters is a port of Betaflight dynamic filtering. It uses FFT analysis of gyro traces to locate noise peaks and double notch filters to attenuate them. By default, there are 6 notches, 2 per each axis: roll, pitch and yaw.
To enable Dynamic Filters, go to CLI and type
feature DYNAMIC_FILTERS
The default values are suited for 5" mini quads. Depending on the size of multirotor propellers, some adjustments might be required.
Propeller size | dyn_notch_range |
dyn_notch_min_hz |
---|---|---|
Below 5" | HIGH |
200 or more |
5" | HIGH or MEDIUM |
150 or more |
7" | LOW |
100 or less |
INAV Dynamic Filters, one of INAV 2.3 goodies - how-to guide
Global Functions
Global Functions (abbr. GF) are a mechanism allowing to override certain flight parameters (during flight). Global Functions are activated by Logic Conditions.
Currently implemented Global Functions
Name | Notes |
---|---|
OVERRIDE_ARMING_SAFETY | Allows to arm on any angle even without GPS fix |
OVERRIDE_THROTTLE_SCALE | Override throttle scale to the defined value |
SWAP_ROLL_YAW | basically, when activated, yaw stick will control roll and roll stick will control yaw. Required for tail-sitters VTOL during vertical-horizonral transition when body frame changes |
SET_VTX_POWER_LEVEL | Sets VTX power level. Allows to change VTX power level based on distance, switch or other values present in Logic Conditions |
INVERT_ROLL | Inverts ROLL axis input for PID/PIFF controller |
INVERT_PITCH | Inverts PITCH axis input for PID/PIFF controller |
INVERT_YAW | Inverts YAW axis input for PID/PIFF controller |
OVERRIDE_THROTTLE | Override throttle value that is fed to the motors by mixer. Allows for throttle hold |
For details refer to Global Functions.md
in docs
folder.
Pixel based OSD
INAV now supports pixel based OSDs and includes a driver for FrSky's OSD. Some elements, like the artificial horizon, the home arrow or the heading graph include pixel based implementations.
To enable it go to the Ports tab in the configurator and select "FrSky OSD" from the peripherals column of the port that the OSD is connected to. Font uploading and OSD element configuration works in the same way, regardless of the OSD type.
Development Environment
The iNav Makefile
will attempt to install a recommended compiler for your platform. Should you wish to override this, or your platform is not supported, please refer to the document docs/development/Generic_Linux_development.md
which describes how to use an alternative compiler.
Due to third-party incompatibilities between Windows 64bit, Cygwin and the 32bit ARM cross-compiler, we do not recommend trying to build with Cygwin. The Cygwin build documentation has been withdrawn. Please use WSL or a Linux VM for building on Windows.
INAV 2.3.0-RC2
Hello and welcome to INAV 2.3.0 Release!
Please carefully read all of this document for the best possible experience and safety.
Get in touch with other pilots, share experiences, suggestions and ask for help on:
INAV Official on Telegram | |
INAV Official on Facebook |
Please continue to support developers, for free, by checking out from the following stores after having clicked on the following links:
Support us on Banggood |
Your contribution from the past month has been very welcome! Thanks!
Tested and suggested hardware can be found here
Important Notes
Upgrading from 2.2.0
- Download and install the new configurator
- Save to a file the current diff all from the CLI.
- Upgrade to INAV 2.3 using the Full Erase option in the configurator.
- Upload your OSD font of choice from the OSD tab.
- Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
- You should be ready, explore new 2.3 features and enjoy!
Upgrading from 2.1.0
- Please follow the upgrade guide to 2.2.0 and then step to the previous section.
New targets:
CLI:
New
Setting | Description |
---|---|
dyn_notch_width_percent | Distance in % of the attenuated frequency for double dynamic filter notched. When set to 0 single dynamic notch filter is used |
dyn_notch_range | Dynamic gyro filter range. Possible values LOW MEDIUM HIGH . MEDIUM should work best for 5-6" multirotors. LOW should work best with 7" and bigger. HIGH should work with everything below 4" |
dyn_notch_q | Q factor for dynamic notches |
dyn_notch_min_hz | Minimum frequency for dynamic notches. Default value of 150 works best with 5" multirors. Should be lowered with increased size of propellers. Values around 100 work fine on 7" drones. 10" can go down to 60 - 70 |
throttle_scale | Throttle scaling factor. 1 means no throttle scaling. 0.5 means throttle scaled down by 50% |
vbat_meter_type | Vbat voltage source. Possible values: NONE , ADC , ESC . ESC required ESC telemetry enabled and running |
antigravity_gain | Max Antigravity gain. 1 means Antigravity is disabled, 2 means Iterm is allowed to double during rapid throttle movements |
antigravity_accelerator | |
antigravity_cutoff_lpf_hz | Antigravity cutoff frequenct for Throtte filter. Antigravity is based on the difference between actual and filtered throttle input. The bigger is the difference, the bigger Antigravity gain |
sim_pin | PIN for GSM card module |
ESC Telemetry
ESC Telemetry is a feature of DSHOT ESCs to send some data back to the flight controller - voltage, current, temperature, motor RPM. It required additional wire from an ESC to the flight controller. To configure you need DSHOT as a motor protocol and "ESC output/telemetry" function enabled for the serial port where ESC telemetry wires are connected.
INAV ESC Telemetry with BlHeli_32 - The Complete Guide
Dynamic Filters
Dynamic Filters is a port of Betaflight dynamic filtering. It uses FFT analysis of gyro traces to locate noise peaks and double notch filters to attenuate them. By default, there are 6 notches, 2 per each axis: roll, pitch and yaw.
To enable Dynamic Filters, go to CLI and type
feature DYNAMIC_FILTERS
The default values are suited for 5" mini quads. Depending on the size of multirotor propellers, some adjustments might be required.
Propeller size | dyn_notch_range |
dyn_notch_min_hz |
---|---|---|
Below 5" | HIGH |
200 or more |
5" | HIGH or MEDIUM |
150 or more |
7" | LOW |
100 or less |
INAV Dynamic Filters, one of INAV 2.3 goodies - how-to guide
Global Functions
Global Functions (abbr. GF) are a mechanism allowing to override certain flight parameters (during flight). Global Functions are activated by Logic Conditions.
Currently implemented Global Functions
Name | Notes |
---|---|
OVERRIDE_ARMING_SAFETY | Allows to arm on any angle even without GPS fix |
OVERRIDE_THROTTLE_SCALE | Override throttle scale to the defined value |
SWAP_ROLL_YAW | basically, when activated, yaw stick will control roll and roll stick will control yaw. Required for tail-sitters VTOL during vertical-horizonral transition when body frame changes |
SET_VTX_POWER_LEVEL | Sets VTX power level. Allows to change VTX power level based on distance, switch or other values present in Logic Conditions |
INVERT_ROLL | Inverts ROLL axis input for PID/PIFF controller |
INVERT_PITCH | Inverts PITCH axis input for PID/PIFF controller |
INVERT_YAW | Inverts YAW axis input for PID/PIFF controller |
OVERRIDE_THROTTLE | Override throttle value that is fed to the motors by mixer. Allows for throttle hold |
For details refer to Global Functions.md
in docs
folder.
Pixel based OSD
INAV now supports pixel based OSDs and includes a driver for FrSky's OSD. Some elements, like the artificial horizon, the home arrow or the heading graph include pixel based implementations.
To enable it go to the Ports tab in the configurator and select "FrSky OSD" from the peripherals column of the port that the OSD is connected to. Font uploading and OSD element configuration works in the same way, regardless of the OSD type.
Development Environment
The iNav Makefile
will attempt to install a recommended compiler for your platform. Should you wish to override this, or your platform is not supported, please refer to the document docs/development/Generic_Linux_development.md
which describes how to use an alternative compiler.
INAV 2.3.0-RC1
Hello and welcome to INAV 2.3.0 Release!
Please carefully read all of this document for the best possible experience and safety.
Get in touch with other pilots, share experiences, suggestions and ask for help on:
INAV Official on Telegram | |
INAV Official on Facebook |
Please continue to support developers, for free, by checking out from the following stores after having clicked on the following links:
Support us on Banggood |
Your contribution from the past month has been very welcome! Thanks!
Tested and suggested hardware can be found here
Important Notes
Upgrading from 2.2.0
- Download and install the new configurator
- Save to a file the current diff all from the CLI.
- Upgrade to INAV 2.3 using the Full Erase option in the configurator.
- Upload your OSD font of choice from the OSD tab.
- Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
- You should be ready, explore new 2.3 features and enjoy!
Upgrading from 2.1.0
- Please follow the upgrade guide to 2.2.0 and then step to the previous section.
New targets:
CLI:
New
Setting | Description |
---|---|
dyn_notch_width_percent | Distance in % of the attenuated frequency for double dynamic filter notched. When set to 0 single dynamic notch filter is used |
dyn_notch_range | Dynamic gyro filter range. Possible values LOW MEDIUM HIGH . MEDIUM should work best for 5-6" multirotors. LOW should work best with 7" and bigger. HIGH should work with everything below 4" |
dyn_notch_q | Q factor for dynamic notches |
dyn_notch_min_hz | Minimum frequency for dynamic notches. Default value of 150 works best with 5" multirors. Should be lowered with increased size of propellers. Values around 100 work fine on 7" drones. 10" can go down to 60 - 70 |
throttle_scale | Throttle scaling factor. 1 means no throttle scaling. 0.5 means throttle scaled down by 50% |
vbat_meter_type | Vbat voltage source. Possible values: NONE , ADC , ESC . ESC required ESC telemetry enebled and running |
antigravity_gain | Max Antigravity gain. 1 means Antigravity is disabled, 2 means Iterm is allowed to double during rapid throttle movements |
antigravity_accelerator | |
antigravity_cutoff_lpf_hz | Antigravity cutoff frequenct for Throtte filter. Antigravity is based on the difference between actual and filtered throttle input. The bigger is the difference, the bigger Antigravity gain |
sim_pin | PIN for GSM card module |
ESC Telemetry
ESC Telemetry is a feature of DSHOT ESCs to send some data back to the flight controller - voltage, current, temperature, motor RPM. It required additional wire from an ESC to the flight controller. To configure you need DSHOT as a motor protocol and "ESC output/telemetry" function enabled for the serial port where ESC telemetry wires are connected.
INAV ESC Telemetry with BlHeli_32 - The Complete Guide
Dynamic Filters
Dynamic Filters is a port of Betaflight dynamic filtering. It uses FFT analysis of gyro traces to locate noise peaks and double notch filters to attenuate them. By default, there are 6 notches, 2 per each axis: roll, pitch and yaw.
To enable Dynamic Filters, go to CLI and type
feature DYNAMIC_FILTERS
The default values are suited for 5" mini quads. Depending on the size of multirotor propellers, some adjustments might be required.
Propeller size | dyn_notch_range |
dyn_notch_min_hz |
---|---|---|
Below 5" | HIGH |
200 or more |
5" | HIGH or MEDIUM |
150 or more |
7" | LOW |
100 or less |
INAV Dynamic Filters, one of INAV 2.3 goodies - how-to guide
Global Functions
Global Functions (abbr. GF) are a mechanism allowing to override certain flight parameters (during flight). Global Functions are activated by Logic Conditions.
Currently implemented Global Functions
Name | Notes |
---|---|
OVERRIDE_ARMING_SAFETY | Allows to arm on any angle even without GPS fix |
OVERRIDE_THROTTLE_SCALE | Override throttle scale to the defined value |
SWAP_ROLL_YAW | basically, when activated, yaw stick will control roll and roll stick will control yaw. Required for tail-sitters VTOL during vertical-horizonral transition when body frame changes |
SET_VTX_POWER_LEVEL | Sets VTX power level. Allows to change VTX power level based on distance, switch or other values present in Logic Conditions |
INVERT_ROLL | Inverts ROLL axis input for PID/PIFF controller |
INVERT_PITCH | Inverts PITCH axis input for PID/PIFF controller |
INVERT_YAW | Inverts YAW axis input for PID/PIFF controller |
OVERRIDE_THROTTLE | Override throttle value that is fed to the motors by mixer. Allows for throttle hold |
For details refer to Global Functions.md
in docs
folder.
Pixel based OSD
INAV now supports pixel based OSDs and includes a driver for FrSky's OSD. Some elements, like the artificial horizon, the home arrow or the heading graph include pixel based implementations.
To enable it go to the Ports tab in the configurator and select "FrSky OSD" from the peripherals column of the port that the OSD is connected to. Font uploading and OSD element configuration works in the same way, regardless of the OSD type.
Development Environment
The iNav Makefile
will attempt to install a recommended compiler for your platform. Should you wish to override this, or your platform is not supported, please refer to the document docs/development/Generic_Linux_development.md
which describes how to use an alternative compiler.
INAV 2.2.1
Hello and welcome to INAV 2.2.1 Release!
Please carefully read all of this document for the best possible experience and safety.
Get in touch with other pilots, share experiences, suggestions and ask for help on:
INAV Official on Telegram | |
INAV Official on Facebook |
Please continue to support developers, for free, by checking out from the following stores after having clicked on the following links:
Support us on Banggood |
Your contribution from the past month has been very welcome! Thanks!
Tested and suggested hardware can be found here
Important Notes
- Arming with sticks is being removed since it is not safe to use. You must use a switch to ARM.
- 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
- Download and install the new configurator
- Save to a file the current diff all from the CLI.
- Upgrade to INAV 2.2.1 using the Full Erase option in the configurator.
- Upload your OSD font of choice from the OSD tab.
- Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
- If you armed with via sticks, add an arming switch in the Modes tab in the configurator.
- If you are upgrading a multi rotor, POS XY PID I and D have now specific settings, respectively
nav_mc_pos_deceleration_time
andnav_mc_pos_expo
. So if you don't use defaults, when restoring, move yours to the new settings. - You should be ready, explore new 2.2.1 features and enjoy!
Upgrading from 2.0.0
- Please follow the upgrade guide to 2.1.0 and then step to the previous section.
New targets:
- MAMBA F405 (For Fixed Wings: Motors on S1/S4 Servos S2/S3)
- OMNIBUSF4V3_SFTSRL2 (OMNIBUSF4V3 with two software serial)
- KAKUTE F7 MINI
- MATEKF411_FD_SFTS (F411-WING with a full duplex soft serial)
- IFLIGHTF7_TWING
CLI:
New
Setting | Description |
---|---|
acc_lpf_type |
Specifies the type of the software LPF of the acc signals. BIQUAD gives better filtering and more delay, PT1 less filtering and less delay, so use only on clean builds. |
nav_mc_pos_deceleration_time |
Used for stoping distance calculation. Stop position is computed as speed * nav_mc_pos_deceleration_time from the place where sticks are released. Braking mode overrides this setting |
nav_mc_pos_expo |
Expo for PosHold control |
use_dterm_fir_filter |
Setting to OFF disabled extra filter on Dterm. OFF offers faster Dterm and better inflight performance with a cost of being more sensitive to gyro noise. Small and relatively clean multirotors (7 inches and below) are suggested to use OFF setting. If motors are getting too hot, switch back to ON |
osd_gforce_alarm |
Value above which the OSD g force indicator will blink (g) |
osd_gforce_axis_alarm_min |
Value under which the OSD axis g force indicators will blink (g) |
osd_gforce_axis_alarm_max |
Value above which the OSD axis g force indicators will blink (g) |
mc_airmode_type | Defines the Airmode state handling type for Multirotors. Default STICK_CENTER is the classical approach in which Airmode is always active if enabled, but when the throttle is low and ROLL/PITCH/YAW sticks are centered, Iterms is not allowed to grow (ANTI_WINDUP). THROTTLE_THRESHOLD is the Airmode behavior known from Betaflight. In this mode, Airmode is active as soon THROTTLE position is above mc_airmode_threshold and stays active until disarm. ANTI_WINDUP is never triggered. For small Multirotors (up to 7-inch propellers) it is suggested to switch to THROTTLE_THRESHOLD since it keeps full stabilization no matter what pilot does with the sticks. Fixed Wings always use STICK_CENTER mode. |
mc_airmode_threshold |
Defines airmode THROTTLE activation threshold when mc_airmode_type THROTTLE_THRESHOLD is used |
osd_current_alarm |
Value above which the OSD current consumption element will start blinking. Measured in full Amperes. |
sim_ground_station_number |
Number of phone that is used to communicate with SIM module. Messages / calls from other numbers are ignored. If undefined, can be set by calling or sending a message to the module. |
sim_transmit_interval |
Text message transmission interval in seconds for SIM module. Minimum value: 10 |
sim_transmit_flags |
String specifying text message transmit condition flags for the SIM module. Flags can be given in any order. Empty string means the module only sends response messages. A : acceleration events, T : continuous transmission, F : continuous transmission in failsafe mode, L : continuous transmission when altitude is below sim_low_altitude , G : continuous transmission when GPS signal quality is low |
acc_event_threshold_high |
Acceleration threshold [cm/s/s] for impact / high g event text messages sent by SIM module. Acceleration values greater than 4 g can occur in fixed wing flight without an impact, so a setting of 4000 or greater is suggested. 0 = detection off. |
acc_event_threshold_low |
Acceleration threshold [cm/s/s] for low-g / freefall detection text messages sent by SIM module. A setting of less than 100 is suggested. Valid values: [0-900], 0 = detection off. |
acc_event_threshold_neg_x |
Acceleration threshold [cm/s/s] for backwards acceleration / fixed wing landing detection text messages sent by SIM module. Suggested value for fixed wing: 1100. 0 = detection off. |
sim_low_altitude |
Threshold for low altitude warning messages sent by SIM module when the 'L' transmit flag is set in sim_transmit_flags . |
failsafe_mission |
If set to OFF the failsafe procedure won't be triggered and the mission will continue if the FC is in WP (automatic mission) mode |
imu_acc_ignore_rate |
Total gyro rotation rate threshold [deg/s] to consider accelerometer trustworthy on airplanes |
imu_acc_ignore_slope |
Half-width of the interval to gradually reduce accelerometer weight. Centered at imu_acc_ignore_rate (exactly 50% weight) |
Setting | Description |
---|---|
auto_disarm_delay |
Experimental mitigation for IMU horizon drift on fixed wings
The physical effect that contributes most to AHI drift on airplanes is centrifugal force when doing a balanced turn - that force creates a bias and accelerometer no longer measures true gravity. Based on that assumption we created a hack, that will temporary ignore accelerometer in IMU calculations if a turn is likely to cause this effect to be significant.
The workaround is controlled by two parameters: imu_acc_ignore_rate
and imu_acc_ignore_slope
.
If you want to play around with imu_acc_ignore_rate
bear in mind that too low values (<5) will likely disable accelerometer completely even on slightest maneuvers and too high value will keep accelerometer enabled even during turns that would cause drift.
We did a few tests on different airplanes and a reasonable value of imu_acc_ignore_rate
is about 10. Value of imu_acc_ignore_slope
could be set to 0-1 (only controls how sharp the transition from "enabled" to "disabled" would be, might or might not have any effect on the code behavior).
STM32F7 optimizations
INAV 2.2 offers a huge performance boost for all F7 based flight controllers (STM32F745 and STM32F722). Thanks to using both fast Instruction and Data memory (ITCM and DTCM), INAV on F7 boards is as fast as on F4 boards. Special thanks to @DieHertz for helping and original work for Betaflight. With performance fixes, INAV 2.2 is now capable of running 8kHz PID loop.
It is still not advised to use 8kHz when any I2C devices are connected to flight controller (BOTH F4 and F7). This specially applies to Magnetometer and Barometer. Because I2C bus driver is synchronous and the process or reading data for MAG or BARO takes longer than time available between PID loop cycles, jitter will appear.
If I2C magnetometer or barometer are to be used, switch to 4kHz mode!
Logic Conditions
Logic conditions is a new function framework that in INAV 2.2 allows to activate and deactivate specific servo mixer rules.
Logic conditions can evaluate RC channels, flight parameters, and other logic conditions into true/false and activate/deactivate servo mixer rules. It opens possibilities like:
- automatically deploy flaps when speed is too low
- activate servo when distance or altitude has been reached
- flaps/spoilers with different throws
Future versions of INAV will allow using Logic conditions to switch motor mixer banks and make other overrides that currently cannot be change...
INAV 2.2.0
Hello and welcome to INAV 2.2.0 Release!
Please carefully read all of this document for the best possible experience and safety.
Get in touch with other pilots, share experiences, suggestions and ask for help on:
INAV Official on Telegram | |
INAV Official on Facebook |
Please continue to support developers, for free, by checking out from the following stores after having clicked on the following links:
Support us on Banggood |
Your contribution from the past month has been very welcome! Thanks!
Tested and suggested hardware can be found here
Important Notes
- Arming with sticks is being removed since it is not safe to use. You must use a switch to ARM.
- 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
- Download and install the new configurator
- Save to a file the current diff from the CLI.
- Upgrade to INAV 2.2 using the Full Erase option in the configurator.
- Upload your OSD font of choice from the OSD tab.
- Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
- If you armed with via sticks, add an arming switch in the Modes tab in the configurator.
- If you are upgrading a multi rotor, POS XY PID I and D have now specific settings, respectively
nav_mc_pos_deceleration_time
andnav_mc_pos_expo
. So if you don't use defaults, when restoring, move yours to the new settings. - You should be ready, explore new 2.2 features and enjoy!
Upgrading from 2.0.0
- Please follow the upgrade guide to 2.1.0 and then step to the previous section.
New targets:
- MAMBA F405 (For Fixed Wings: Motors on S1/S4 Servos S2/S3)
- OMNIBUSF4V3_SFTSRL2 (OMNIBUSF4V3 with two software serial)
- KAKUTE F7 MINI
- MATEKF411_FD_SFTS (F411-WING with a full duplex soft serial)
CLI:
New
Setting | Description |
---|---|
acc_lpf_type |
Specifies the type of the software LPF of the acc signals. BIQUAD gives better filtering and more delay, PT1 less filtering and less delay, so use only on clean builds. |
nav_mc_pos_deceleration_time |
Used for stoping distance calculation. Stop position is computed as speed * nav_mc_pos_deceleration_time from the place where sticks are released. Braking mode overrides this setting |
nav_mc_pos_expo |
Expo for PosHold control |
use_dterm_fir_filter |
Setting to OFF disabled extra filter on Dterm. OFF offers faster Dterm and better inflight performance with a cost of being more sensitive to gyro noise. Small and relatively clean multirotors (7 inches and below) are suggested to use OFF setting. If motors are getting too hot, switch back to ON |
osd_gforce_alarm |
Value above which the OSD g force indicator will blink (g) |
osd_gforce_axis_alarm_min |
Value under which the OSD axis g force indicators will blink (g) |
osd_gforce_axis_alarm_max |
Value above which the OSD axis g force indicators will blink (g) |
mc_airmode_type | Defines the Airmode state handling type for Multirotors. Default STICK_CENTER is the classical approach in which Airmode is always active if enabled, but when the throttle is low and ROLL/PITCH/YAW sticks are centered, Iterms is not allowed to grow (ANTI_WINDUP). THROTTLE_THRESHOLD is the Airmode behavior known from Betaflight. In this mode, Airmode is active as soon THROTTLE position is above mc_airmode_threshold and stays active until disarm. ANTI_WINDUP is never triggered. For small Multirotors (up to 7-inch propellers) it is suggested to switch to THROTTLE_THRESHOLD since it keeps full stabilization no matter what pilot does with the sticks. Fixed Wings always use STICK_CENTER mode. |
mc_airmode_threshold |
Defines airmode THROTTLE activation threshold when mc_airmode_type THROTTLE_THRESHOLD is used |
osd_current_alarm |
Value above which the OSD current consumption element will start blinking. Measured in full Amperes. |
sim_ground_station_number |
Number of phone that is used to communicate with SIM module. Messages / calls from other numbers are ignored. If undefined, can be set by calling or sending a message to the module. |
sim_transmit_interval |
Text message transmission interval in seconds for SIM module. Minimum value: 10 |
sim_transmit_flags |
String specifying text message transmit condition flags for the SIM module. Flags can be given in any order. Empty string means the module only sends response messages. A : acceleration events, T : continuous transmission, F : continuous transmission in failsafe mode, L : continuous transmission when altitude is below sim_low_altitude , G : continuous transmission when GPS signal quality is low |
acc_event_threshold_high |
Acceleration threshold [cm/s/s] for impact / high g event text messages sent by SIM module. Acceleration values greater than 4 g can occur in fixed wing flight without an impact, so a setting of 4000 or greater is suggested. 0 = detection off. |
acc_event_threshold_low |
Acceleration threshold [cm/s/s] for low-g / freefall detection text messages sent by SIM module. A setting of less than 100 is suggested. Valid values: [0-900], 0 = detection off. |
acc_event_threshold_neg_x |
Acceleration threshold [cm/s/s] for backwards acceleration / fixed wing landing detection text messages sent by SIM module. Suggested value for fixed wing: 1100. 0 = detection off. |
sim_low_altitude |
Threshold for low altitude warning messages sent by SIM module when the 'L' transmit flag is set in sim_transmit_flags . |
failsafe_mission |
If set to OFF the failsafe procedure won't be triggered and the mission will continue if the FC is in WP (automatic mission) mode |
Removed
Setting | Description |
---|---|
auto_disarm_delay |
STM32F7 optimizations
INAV 2.2 offers a huge performance boost for all F7 based flight controllers (STM32F745 and STM32F722). Thanks to using both fast Instruction and Data memory (ITCM and DTCM), INAV on F7 boards is as fast as on F4 boards. Special thanks to @DieHertz for helping and original work for Betaflight. With performance fixes, INAV 2.2 is now capable of running 8kHz PID loop.
It is still not advised to use 8kHz when any I2C devices are connected to flight controller (BOTH F4 and F7). This specially applies to Magnetometer and Barometer. Because I2C bus driver is synchronous and the process or reading data for MAG or BARO takes longer than time available between PID loop cycles, jitter will appear.
If I2C magnetometer or barometer are to be used, switch to 4kHz mode!
Logic Conditions
Logic conditions is a new function framework that in INAV 2.2 allows to activate and deactivate specific servo mixer rules.
Logic conditions can evaluate RC channels, flight parameters, and other logic conditions into true/false and activate/deactivate servo mixer rules. It opens possibilities like:
- automatically deploy flaps when speed is too low
- activate servo when distance or altitude has been reached
- flaps/spoilers with different throws
Future versions of INAV will allow using Logic conditions to switch motor mixer banks and make other overrides that currently cannot be changed during flight or be activated by flight conditions
Optic flow calibration
Finally for the machines equipped with optic flow we have a calibration logic. After pressing the button in the Configurator you have 30 seconds to hold the copter in the air and tilt it to sides without moving it horizontally. The calibration code inside the flight controller will calculate the opflow_scale
variable automatically.
Accelerometer vibration mitigation
The altitude/position estimation code is now aware of high accelerometer vibration making INAV to counteract the uncontrolled climb in navigation modes [#486]. There is no OSD indication of excessive vibration yet.
WARNING: This is an emergency mode of operation. The uncontrolled climb is caused by accelerometer clipping when vibration exceeds the range accelerometer is capable of measuring. This effect is induced by vibration (usually high frequency) and can't be fully compensated by software filtering so you should soft-mount your FC to minimize the risk of this happening.
New altitude mode for RTH
When new altitude mode AT_LEAST_LINEAR_DESCENT
is chosen the aircraft will climb to the set rth_altitude
if bellow or start from the current altitude then en route to home will descend linearly to hit the set home_altitude
when reaching home.
Possibility to change the VTX power level in flight
It is now possible to change the VT...
INAV 2.2.0-RC2
Hello and welcome to INAV 2.2.0 Release!
Please carefully read all of this document for the best possible experience and safety.
Get in touch with other pilots, share experiences, suggestions and ask for help on:
INAV Official on Telegram | |
INAV Official on Facebook |
Please continue to support developers, for free, by checking out from the following stores after having clicked on the following links:
Support us on Banggood |
Your contribution from the past month has been very welcome! Thanks!
Tested and suggested hardware can be found here
Important Notes
- Arming with sticks is being removed since it is not safe to use. You must use a switch to ARM.
- 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
- Download and install the new configurator
- Save to a file the current diff from the CLI.
- Upgrade to INAV 2.2 using the Full Erase option in the configurator.
- Upload your OSD font of choice from the OSD tab.
- Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
- If you armed with via sticks, add an arming switch in the Modes tab in the configurator.
- If you are upgrading a multi rotor, POS XY PID I and D have now specific settings, respectively
nav_mc_pos_deceleration_time
andnav_mc_pos_expo
. So if you don't use defaults, when restoring, move yours to the new settings. - You should be ready, explore new 2.2 features and enjoy!
Upgrading from 2.0.0
- Please follow the upgrade guide to 2.1.0 and then step to the previous section.
New targets:
- MAMBA F405 (For Fixed Wings: Motors on S1/S4 Servos S2/S3)
- OMNIBUSF4V3_SFTSRL2 (OMNIBUSF4V3 with two software serial)
- KAKUTE F7 MINI
- MATEKF411_FD_SFTS (F411-WING with a full duplex soft serial)
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:
...