github iNavFlight/inav 2.2.1
INAV 2.2.1

latest releases: 8.0.0-RC1, v20240613.18, 7.1.2...
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:

INAV Official on Telegram
INAV Official on Facebook

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

Support us on Banggood

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

Tested and suggested hardware can be found here

Important Notes

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

Upgrading from 2.1.0

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

Upgrading from 2.0.0

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

New targets:

CLI:

New

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

Experimental mitigation for IMU horizon drift on fixed wings

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

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

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

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

STM32F7 optimizations

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

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

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

Logic Conditions

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

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

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

Future versions of INAV will allow using Logic conditions to switch motor mixer banks and make other overrides that currently cannot be 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:

Don't miss a new inav release

NewReleases is sending notifications on new releases.