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 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:
- New mixer inputs for stabilized axises (@DzikuVx , #4148)
- STM32F7 Optimizations (@DzikuVx , #4263, #4483)
- LTM Improvements (@stronnag ,#4423)
- Temperature Sensing Improvements (@shellixyz ,#4416)
- Optimizing CMS to save FLASH (@fiam ,#4380)
- Enforcing Board Allignment Limits (@fiam ,#4420)
- Logic conditions framework (@DzikuVx , #4144, #4561, #4555, #4551)
- MSP on VPC Fixes (@digitalentity ,#4468)
- PT1 Filter option for Acc/Gyro (@giacomo892 ,#4454,#4676)
- Use imperial units for altitude for UK (@shellixyz ,#4445)
- Convert NAV POS/VEL PID to PIDFF (@DzikuVx , #4326, #4624)
- PH Settings aren't anymore inside PID conf. but have dedicated settings (@DzikuVx , #4484)
- Fixed Wing FF PIDFF setting now is no more "D" in the configurator (@DzikuVx , #4482)
- Make Dterm FIR filter configurable (@DzikuVx , #4475 , #4538)
- Update temperature related MSP messages (@shellixyz ,#4449)
- Set default home reset to FIRST ARM (@DzikuVx , #4499)
- Added Servo output logging in BB (@hali9 , #4501)
- Fixing the left-right arrow mismatch in the OSD fonts (@OlivierC-FR , #4502)
- Add dedicated OSD elements for map scale and reference (@fiam ,#4386)
- Manage WPs from CLI (@hali9 , #4473)
- Remove all MAX7456 specific code, replace it with generic interfaces (@fiam ,#4384)
- Refactor handling of RC input data (@fiam ,#4232)
- Replace DEBUG_TRACE with LOG (@fiam ,#4385)
- Add MAMBAF405 target (@shellixyz ,#4521)
- Fix emergency landing not engaging from initial RTH climb (@digitalentity ,#4582)
- SmartAudio 2.1 Support (@digitalentity ,#4596)
- DSHOT Timers Fixes (@digitalentity ,#4607)
- GPS distance from home can be > 65km (@giacomo892 ,#4617)
- OMNIBUSF4V3_SFTSRL2 target (@shellixyz ,#4626)
- Iterm Relax (@DzikuVx , #4630)
- Remove Sticks Arming (@DzikuVx , #4640)
- serial CLI command improvements (+n -n) (@fiam ,#4232)
- Support for bypassing extra arming safety (@fiam ,#4623)
- Airmode improvements (@DzikuVx , #4634)
- Optic flow & surface improvements (@digitalentity ,#3795,#4680)
- Ignore acceleration in estimated position when clipping or high vibration (@digitalentity ,#4681)
- Implement RTH Straight (@shellixyz ,#4188)
- g-force OSD items and stats (@shellixyz ,#4696)
- Automatic magnetic declination improvements (@fiam , @giacomo892 , #4713)
- Current consumption alarm in OSD (@nmaggioni ,#4715)
- Virtual pitot sensor (EXPERIMENTAL) (@hali9 ,#4712)
- Added Matek Serialshot (@digitalentity ,#4646)
- GSM Telemetry SIMCom modules (@potater1 ,#4388)
- Added option to continue mission out of radio range (@shellixyz ,#4731)
- Smarter RoC/RoD acceleration limit (@digitalentity ,#4448)
- I2C: Reduce timeout on F7 from 10s to 10ms (@fiam ,#4753)
- Make INAV 2.1 servo mixing rules compatible with 2.2 (@shellixyz ,#4763)
- OSD new icons for the Gforce (@OlivierC-FR ,#4772)
- add FW servos to FURYF4 / MAMBAF405 (@giacomo892 ,#4769)
- Add MATEKF411 target with one full duplex softserial: MATEKF411_FD_SFTS (@shellixyz ,#4754)
- RTH Improvements (@digitalentity , @shellixyz , #4769)
- CMS: Add support for editing FF term in the PID tuning menu (@fiam , #4801)
- Improve LEDSTRIP clock (@digitalentity ,#4805)
- Add vario sensor to CRSF telemetry (@shellixyz , #4791)
- Increase default FW max bank angle from 20 to 35° (@shellixyz , #4785)
- Change VTX power level via switch (@L4ky , #4717)
- OSD: Added VTX power indicator (@shellixyz , #4730)