rearrange
[inav.wiki.git] / 3.0.0-Release-Notes.md
blob81f5f9c6e0066d3b5b8858c4130356a31e602888
1 ![](http://static.rcgroups.net/forums/attachments/6/1/0/3/7/6/a9088858-102-inav.png)
3 **Hello and welcome to INAV 3.0.0 Release!**
5 Please carefully read all of this document for the best possible experience and safety.
7 Get in touch with other pilots, share experiences, suggestions and ask for help on:
9 <table>
10   <tbody>
11     <tr>
12       <td><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Telegram_logo.svg/1024px-Telegram_logo.svg.png" width="48"></td>
13       <td><a href="https://t.me/INAVFlight">INAV Official on Telegram</a></td>
14     </tr>
15     <tr>
16       <td><img src="https://upload.wikimedia.org/wikipedia/commons/c/cd/Facebook_logo_%28square%29.png" width="48"></td>
17       <td><a href="https://www.facebook.com/groups/INAVOfficial">INAV Official on Facebook</a></td>
18     </tr>
19   </tbody>
20 </table>
22 Please continue to support developers, for free, by checking out from the following stores after having clicked on the following links:
24 <table>
25   <tbody>
26     <tr>
27       <td><img src="https://lh3.googleusercontent.com/TiHXyUiZ2COk7OmceBgo1qeRN2APAjWL5qUydGc-U3LqkJb3n13EhYEJ8Dpz_IACNHU" width="55"></td>
28       <td><a href="https://inavflight.com/shop/u/bg">Support us on Banggood</a></td>
29     </tr>
30   </tbody>
31 </table>
33 Your contribution from the past month has been very welcome! Thanks!
35 Tested and suggested hardware can be found [here](https://github.com/iNavFlight/inav/wiki/Welcome-to-INAV,-useful-links-and-products)
37 ## Important Notes
39 ### F3 Removal
41 STM32 F3 flight controllers like Omnibus F3 or SP Racing F3 **are no longer supported in INAV**. If you are still using F3 boards, please migrate to F4 or F7.
43 The supporting code will be retained for a few more releases, but will not be maintained and is not guaranteed to build or work properly in the future.
45 ### Adjustments
46 There are now separate adjustments for D and CD/FF gains. This breaks compatibility with `diff`s from previous releases. Check the adjustments tab in the configurator after restoring a `diff` to makes sure they are set up correctly.
48 ### Font update required
49 The OSD fonts have been improved (@Jettrel) and there are several new symbols. A font file update is required to use the new symbols and avoid an invalid font warning. Upload the updated font of your choosing from the OSD tab.
51 # Upgrading from previous releases
53 We suggest **NOT** to do a full `diff` or `dump` upgrade. To get the best performance set up your aircraft from scratch. You can copy `osd`, `aux`, `serial`, and mixer settings, as well as accelerometer and magnetometer calibration values from INAV 2.6, but other settings should be tuned again.
55 ## Upgrading from 2.6, 2.6.1
57 0. Download and install the new [configurator](https://github.com/iNavFlight/inav-configurator/releases)
58 1. Save to a file the current _diff all_ from the CLI.
59 2. Upgrade to INAV 3.0 using the Full Erase option in the configurator.
60 3. Upload your OSD font of choice from the OSD tab.
61 4. Go to the CLI again and paste the above-described contents from the file you previously created and write _save_ , press ENTER.
62 5. There are a large number of new, changed and removed settings. Check carefully that the settings are correct and fix any unrecognised or out-of-range items from the saved configuration.
63 6. You should be ready, explore new 3.0 features and enjoy!
65 ## Upgrading from 2.5 or older version
67 Please follow the instructions on [this](https://github.com/iNavFlight/inav/wiki/Upgrading-from-an-older-version-of-INAV-to-the-current-version) page.
69 ## New targets:
71 * Diatone MambaF405US_I2C
72 * FLYWOOF411_V2
73 * Mamba F722_I2C
75 ## CLI:
77 ### New commands
79 | Setting | Description |
80 | ------- | ----------- |
81 | imu2    | Display current status of the Secondary IMU |
82 | imu2 fetch | Get calibration data from the Secondary IMU |
83 | pid     | Configure general purpose PID controllers. Refer to [docs](https://github.com/iNavFlight/inav/blob/master/docs/Programming%20Framework.md#programming-pid) |
85 ### Changed Settings
87 | Setting | Description |
88 | ------- | ----------- |
89 | blackbox_device | Default: target |
90 | log_level | Default: ERROR |
91 | nav_overrides_motor_stop | When set to OFF the navigation system will not take over the control of the motor if the throttle is low (motor will stop). When set to OFF_ALWAYS the navigation system will not take over the control of the motor if the throttle was low even when failsafe is triggered. When set to AUTO_ONLY the navigation system will only take over the control of the throttle in autonomous navigation modes (NAV WP and NAV RTH). When set to ALL_NAV (default) the navigation system will take over the control of the motor completely and never allow the motor to stop even when the throttle is low. This setting only has an effect on NAV modes which take control of the throttle when combined with MOTOR_STOP and is likely to cause a stall if fw_min_throttle_down_pitch isn't set correctly or the pitch estimation is wrong for fixed wing models when not set to ALL_NAV |
92 | nav_rth_climb_first | New: `ON_FW_SPIRAL` |
93 | platform_type | Default: MULTIROTOR |
94 | receiver_type | Default: target |
95 | rssi_source | Default: AUTO |
97 ### New Settings
99 | Setting | Description |
100 | ------- | ----------- |
101 | dji_speed_source | Sets the speed type displayed by the DJI OSD: GROUND, 3D, AIR Default: GROUND |
102 | dshot_beeper_enabled | Whether using DShot motors as beepers is enabled Default: TRUE |
103 | dshot_beeper_tone | Sets the DShot beeper tone Values: 1 - 5 Default: 1 |
104 | fw_d_pitch | Fixed wing rate stabilisation D-gain for PITCH Default: 0 |
105 | fw_d_roll | Fixed wing rate stabilisation D-gain for ROLL Default: 0 |
106 | fw_d_yaw | Fixed wing rate stabilisation D-gain for YAW Default: 0 |
107 | fw_level_pitch_trim | Pitch trim for self-leveling flight modes. In degrees. +5 means airplane nose should be raised 5 deg from level Values: -10 - 10 Default: 0 |
108 | fw_yaw_iterm_freeze_bank_angle | Yaw Iterm is frozen when bank angle is above this threshold [degrees]. This solves the problem of the rudder counteracting turns by partially disabling yaw stabilization when making banked turns. Setting to 0 (the default) disables this feature. Only applies when autopilot is not active and TURN ASSIST is disabled. Values: 0 - 90 Default: 0 |
109 | gyro_abg_alpha | Alpha factor for Gyro Alpha-Beta-Gamma filter Values: 0 - 1 Default: 0 |
110 | gyro_abg_boost | Boost factor for Gyro Alpha-Beta-Gamma filter Values: 0 - 2 Default: 0.35 |
111 | gyro_abg_half_life | Sample half-life for Gyro Alpha-Beta-Gamma filter Values: 0 - 10 Default: 0.5 |
112 | gyro_anti_aliasing_lpf_hz | Gyro processing anti-aliasing filter cutoff frequency. In normal operation this filter setting should never be changed. In Hz Values: 0 - 255 Default: 250 |
113 | gyro_anti_aliasing_lpf_type | Specifies the type of the software LPF of the gyro signals. Default: PT1 |
114 | gyro_dyn_lpf_curve_expo | Expo value for the throttle-to-frequency mapping for Dynamic LPF Values: 1 - 10 Default: 5 |
115 | gyro_dyn_lpf_max_hz | Maximum frequency of the gyro Dynamic LPF Values: 40 - 1000 Default: 500 |
116 | gyro_dyn_lpf_min_hz | Minimum frequency of the gyro Dynamic LPF Values: 40 - 400 Default: 200 |
117 | gyro_main_lpf_hz | Software based gyro main lowpass filter. Value is cutoff frequency (Hz) Values: 0 - 500 Default: 60 |
118 | gyro_main_lpf_type | Defines the type of the main gyro LPF filter. Possible values: `PT1`, `BIQUAD`. `PT1` offers faster filter response while `BIQUAD` better attenuation. Default: BIQUAD |
119 | gyro_use_dyn_lpf | Use Dynamic LPF instead of static gyro stage1 LPF. Dynamic Gyro LPF updates gyro LPF based on the throttle position. Default: FALSE |
120 | imu2_align_pitch | Pitch alignment for Secondary IMU. 1/10 of a degree Values: -1800 - 3600 Default: 0 |
121 | imu2_align_roll | Roll alignment for Secondary IMU. 1/10 of a degree Values: -1800 - 3600 Default: 0 |
122 | imu2_align_yaw | Yaw alignment for Secondary IMU. 1/10 of a degree Values: -1800 - 3600 Default: 0 |
123 | imu2_gain_acc_x | Secondary IMU ACC calibration data Values: -32768 - 32767 Default: 0 |
124 | imu2_gain_acc_y | Secondary IMU ACC calibration data Values: -32768 - 32767 Default: 0 |
125 | imu2_gain_acc_z | Secondary IMU ACC calibration data Values: -32768 - 32767 Default: 0 |
126 | imu2_gain_mag_x | Secondary IMU MAG calibration data Values: -32768 - 32767 Default: 0 |
127 | imu2_gain_mag_y | Secondary IMU MAG calibration data Values: -32768 - 32767 Default: 0 |
128 | imu2_gain_mag_z | Secondary IMU MAG calibration data Values: -32768 - 32767 Default: 0 |
129 | imu2_hardware | Selection of a Secondary IMU hardware type. NONE disables this functionality Default: NONE, values  `NONE`, `BNO055`, `BNO055_SERIAL` |
130 | imu2_radius_acc | Secondary IMU MAG calibration data Values: -32768 - 32767 Default: 0 |
131 | imu2_radius_mag | Secondary IMU MAG calibration data Values: -32768 - 32767 Default: 0 |
132 | imu2_use_for_osd_ahi | If set to ON, Secondary IMU data will be used for Analog OSD Artificial Horizon Default: FALSE |
133 | imu2_use_for_osd_heading | If set to ON, Secondary IMU data will be used for Analog OSD heading Default: FALSE |
134 | imu2_use_for_stabilized | If set to ON, Secondary IMU data will be used for Angle, Horizon and all other modes that control attitude (PosHold, WP, RTH) Default: FALSE |
135 | mavlink_version | Version of MAVLink to use Values: 1 - 2 Default: 2 |
136 | nav_land_maxalt_vspd | Vertical descent velocity above nav_land_slowdown_maxalt during the RTH landing phase. [cm/s] Values: 100 - 2000 Default: 200 |
137 | nav_land_minalt_vspd | Vertical descent velocity under nav_land_slowdown_minalt during the RTH landing phase. [cm/s] Values: 50 - 500 Default: 50 |
138 | nav_max_altitude | Max allowed altitude (above Home Point) that applies to all NAV modes (including Altitude Hold). 0 means limit is disabled Values: 0 - 65000 Default: 0 |
139 | nav_mc_wp_slowdown | When ON, NAV engine will slow down when switching to the next waypoint. This prioritizes turning over forward movement. When OFF, NAV engine will continue to the next waypoint and turn as it goes. Default: TRUE |
140 | nav_rth_alt_control_override | If set to ON RTH altitude and CLIMB FIRST settings can be overridden during the RTH climb phase using full pitch or roll stick held for > 1 second. RTH altitude is reset to the current altitude using pitch down stick. RTH CLIMB FIRST is overridden using right roll stick so craft turns and heads directly to home (CLIMB FIRST override only works for fixed wing) Default: FALSE |
141 | osd_pan_servo_index | Index of the pan servo to adjust osd home heading direction based on camera pan. Note that this feature does not work with continiously rotating servos. Values: 0 - 10 Default: 0 |
142 | osd_pan_servo_pwm2centideg | Centidegrees of pan servo rotation us PWM signal. A servo with 180 degrees of rotation from 1000 to 2000 us PWM typically needs `18` for this setting. Change sign to inverse direction. Values: -36 - 36 Default: 0 |
143 | osd_plus_code_short | Number of leading digits removed from plus code. Removing 2, 4 and 6 digits requires a reference location within, respectively, ~800km, ~40 km and ~2km to recover the original coordinates. Default: 0 |
144 | osd_sidebar_height | Height of sidebars in rows. 0 leaves only the level indicator arrows (Not for pixel OSD) Values: 0 - 5 Default: 3 |
145 | osd_stats_min_voltage_unit | Display minimum voltage of the `BATTERY` or the average per `CELL` in the OSD stats. Default: BATTERY. Options  `BATTERY`, `CELL` |
146 | osd_telemetry | To enable OSD telemetry for antenna tracker. Possible values are `OFF`, `ON` and `TEST` Default: OFF |
147 | prearm_timeout | Duration (ms) for which Prearm being activated is valid. after this, Prearm needs to be reset. 0 means Prearm does not timeout. Values: 0 - 10000 Default: 10000 |
148 | safehome_max_distance | In order for a safehome to be used, it must be less than this distance (in cm) from the arming point. Values: 0 - 65000 Default: 20000 |
149 | safehome_usage_mode | Used to control when safehomes will be used. Possible values are `OFF`, `RTH` and `RTH_FS`.  See [Safehome documentation](Safehomes.md#Safehome) for more information. Default: RTH |
150 | servo_autotrim_rotation_limit | Servo midpoints are only updated when total aircraft rotation is less than this threshold [deg/s]. Only applies when using `feature FW_AUTOTRIM`. Values: 1 - 60 Default: 15 |
151 | smith_predictor_delay | Expected delay of the gyro signal. In milliseconds Values: 0 - 8 Default: 0 |
152 | smith_predictor_lpf_hz | Cutoff frequency for the Smith Predictor Low Pass Filter Values: 1 - 500 Default: 50 |
153 | smith_predictor_strength | The strength factor of a Smith Predictor of PID measurement. In percents Values: 0 - 1 Default: 0.5 |
154 | turtle_mode_power_factor | Turtle mode power factor Values: 0 - 100 Default: 55 |
155 | vtx_smartaudio_early_akk_workaround | Enable workaround for early AKK SAudio-enabled VTX bug. Default: TRUE |
156 | osd_rssi_dbm_alarm | RSSI in dBm alarm for Crossfire. Default: 0 |
157 | nav_wp_load_on_boot | If set to ON, waypoints will be automatically loaded from EEPROM to the FC during startup. Default: OFF |
159 ### Removed settings
161 | Setting | Description |
162 | ------- | ----------- |
163 | gyro_sync |  |
164 | nav_landing_speed | replaced by `nav_land_minalt_vspd` and `nav_land_maxalt_vspd` |
166 ### Renamed settings
168 | Old name | New name |
169 | -------- | -------- |
170 | gyro_lpf_hz | Replaced with `gyro_main_lpf_hz` |
171 | gyro_lpf_type | Replaced with `gyro_main_lpf_type` |
172 | gyro_stage2_lowpass_hz | Replaced with `gyro_anti_aliasing_lpf_hz` |
173 | gyro_stage2_lowpass_type | Replaced with `gyro_anti_aliasing_lpf_type`  |
174 | mc_airmode_threshold | airmode_threshold |
175 | mc_airmode_type | airmode_type |
176 | osd_artificial_horizon_max_pitch | osd_ahi_max_pitch |
177 | osd_artificial_horizon_reverse_roll | osd_ahi_reverse_roll |
179 ## New drivers and protocols
181 * Rangefinder "GY-US42(v2) Ultrasonic Range Sensor
182 * Rangefinder vl53l1x
183 * BNO055 Secondary IMU
184 * BMI088 IMU
186 ## New features
188 ### Turtle mode aka Flip Over after crash ([@kernel-machine])
190 INAV now has a "Turtle Mode".
192 * Requires DSHOT ESC protocol
193 * Assign a switch to TURTLE mode
194 * Ensure you can arm at any angle
196 ### WP mission sealevel altitude datum  ([@breadoven])
198 Prior to inav 3.0, mission waypoint altitudes are relative the arming location. It is now possible to define waypoints with absolute (AMSL) altitude, making the mission independent of the arming location. See the [inav wiki](https://github.com/iNavFlight/inav/wiki/MSP-Navigation-Messages#waypoint-and-action-attributes) for details (WP `paramater 3`)
200 ### WP Mission Landing Elevation Setting ([@breadoven])
202 The relative / absolute ground altitude of a `LAND` waypoint may be set as WP `paramater 2` (m). See the [inav wiki](https://github.com/iNavFlight/inav/wiki/MSP-Navigation-Messages#waypoint-and-action-attributes) for details.
204 ### DShot Beeper  ([@harry1453])
206 Nothing to add. If DSHOT is enabled, DSHOT beeper will be used. 
208 ### RC via MAVLink & MAVLink V2 Support ([@harry1453])
210 MAVLink is still only a downlink from UAV to the ground station, but now allows to use RC-Over-MAVLink
212 ### Prearm Mode ([@harry1453])
214 Prearm offers a two-stage arming process as an optional additional safety feature.
216 * Activate prearm (normally a button or momentary switch)
217 * Activate arm
219 ### Initial cut on H7 MCU support ([@digitalentity], [@bkleiner], [@DzikuVx])
221 H7 is available in the source repository; target Hex files will be released as targets mature, probably in the future point releases.
223 ### Add D-term to control loop on fixed wing aircraft ([@avsaase])
225 ### Improved AUTOTUNE for fixed wing ([@avsaase])
226 AUTOTUNE can now automatically set the correct rates for your airplane. The goal is to set rates that the airplane is capable of achieving with 80% control surface deflection so there is some room for the stabilization to work. This feature is controlled by CLI setting `fw_autotune_rate_adjustment`. When set to `AUTO` (the default), autotune automatically determines the rates and gains. When set to `MAX`, rates will be automatically adjusted, but never above the starting values. This can be used to calm down a very agile plane, while still avoiding setting too high rates. When set to `FIXED`, rates will not be adjusted. Note that setting too high rates can cause very bad flight behavior and potential crashes. Rate discovery is not possible in ANGLE mode so it is highly advised to do autotune in ACRO mode.
228 ### Continuously trim servos on fixed wing ([@avsaase])
229 There is now the option to continuously trim the servos for straight and level flight. When enabled and flying straight and level, INAV records what servo output is required to maintain a constant attitude, and adjusts the servo midpoints accordingly. The servo midpoints are limited to the 1300-1700 range. After the first maiden flight, and after the first flight when significant changes have been made to the airplane, check the servo midpoints. If they are at or close to the end of this range mechanically adjust the control surfaces. 
231 ## Improvements and updates
233 ### Gyro processing improvements ([@DzikuVx])
235 As part of gyro processing updates, the following changes were made:
236 1. `gyro_sync` is gone, INAV no longer does a wait cycle trying to get the next set of data from the gyro.
237 1. Gyro data acquisition is no longer part of the main PID task
238 1. Gyro data is acquired with a constant rate of 4kHz and filters with an anti-aliasing filter (`gyro_anti_aliasing_lpf_hz`). In normal circumstances, there is no need to change this setting
239 1. All the other filters are running as part of the main PID task as before
240 1. The gyro low-pass filter `gyro_lpf_hz` was renamed to `gyro_main_lpf_hz`
242 ### New experimental features for Multirotors
244 * Smith Predictor on gyro signal helps to reduce the delay introduced by gyro filters. It's disabled by default. To enable, use `set smith_predictor_delay = 3`. More details about this feature will follow later
245 * Alpha-Beta-Gamma filter is a relative of the Kalman filter and other prediction filters. Disabled by default. To enable, `set gyro_abg_alpha = 0.25` or higher value. It requires a very clean gyro signal or might introduce oscillations on the high throttle. If the multirotor started to vibrate after enabling the Alpha-Beta-Gamma filter, you either have to improve the gyro filter strategy or disable the ABG filter. It works great on some builds and not so great or other. It's up to you to test.
246 * Dynamic Gyro Main LPF - Dynamic gyro LPF with the cutoff frequency depending on throttle position. To enable `set gyro_use_dyn_lpf=ON` and set `gyro_dyn_lpf_min_hz` and `gyro_dyn_lpf_max_hz`. Dynamic LPF replaces `gyro_main_lpf_hz`
248 ### Update EGNOS PRN mask to latest EGSA definition, fix SBAS for non-Galileo usage ([@stronnag])
250 The EGNOS (GPS ground assistance)  definitions have been updated to the latest values for all GNSS options. An invalid association with the availability of Galileo has been corrected.
252 ### Make CW270FLIP default MAG alignment ([@DzikuVx])
254 New FCs rarely feature onboard compass, and most GPS+MAG default to CW270FLIP, so this is now the INAV default. If you use another value, check your setup after upgrading.
256 ### Rename NAV CRUISE mode to NAV COURSE HOLD and add CRUISE mode which is equivalent to CRSH+AH ([@shellixyz])
258 To more clearly state what they do and how they work. It's a subtle, but worth it change for sure!
260 ### Bump OSD font min version to 2 ([@shellixyz])
262 Users must upgrade OSD Fonts to Version 2 (or later).
264 ### Delayed safehome ([@tonyyng])
266 Safehome does not now replace the arming location until it is needed. If you cancel RTH or recover from RX failsafe, the original arming location is restored as the home location. Under normal circumstances, "distance to home" will revert to range from the arming location.
268 ### Switched RTH Preset Altitude Override ([@breadoven])
270 Provides stick options to override configured RTH climb and/or turn behaviour. See the `nav_rth_alt_control_override` setting description for details.  
272 ### Renamed OSD SW and LEDLOW to OSD/LEDS OFF ([@MrD-RC])
274 Modes names were changed to be more user friendly. When `OSD OFF` is enabled, OSD will be turned off. When `LED OFF` is enabled, LEDs will be turned off.
276 ### Fixed wing RTH Spiral Climb Option ([@breadoven])
278 Yeap, now when `nav_rth_climb_first` is set to `ON_FW_SPIRAL`, Fixed Wing will keep litering and gaining altitude until it reaches desired altitude. Previously, it was climbing while flying straight in random direction
280 ### Do not slow down in WP mission when approaching a waypoint ([@DzikuVx])
282 When `nav_mc_wp_slowdown` is set to `OFF`, Waypoint missions on Multirotors will be smoother as the NAV engine will not try to slow down before entering the waypoint and then accelerate towards the next waypoint. INAV will rather enter WP with normal speed, switch to the next waypoint and then adjust heading while flying. 
284 ### Configure speed source for DJI OSD  ([@DzikuVx])
286 The default behavior of the DJI OSD speed element was to display a ground speed. `osd_speed_source` can be set to GROUND, AIR or 3D speed depending on the preference
288 ### Ability to trim pitch angle for level flight ([@DzikuVx])
290 1. The flight controller trimming for level flight on Fixed Wings is no longer a recommended way to do so
291 1. Board ROLL and PITCH setting should be changed only when the flight controller is not installed parallel to the wings plane
292 1. pitch trim should be done using `fw_level_pitch_trim` setting. +5 `fw_level_pitch_trim` means airplane nose should be raised 5 deg from level
293 1. Flight mode `AUTO LEVEL` will automatically trim the pitch angle when ANGLE or HORIZON flight modes are used
295 ### vtx_smartaudio_early_akk_workaround option ([@RomanLut])
297 If your old AKK VTX is not working, use `vtx_smartaudio_early_akk_workaround` to fix it!
299 ### Added option to output servos on PWM and SBUS ([@IVData])
301 ### Option for local plus codes on osd ([@avsaase])
302 This adds the option to remove the first 2, 4, or 6 digits from the OSD plus code. Doing so requires a reference location (for example your current location when using Google Maps on your phone) within ~800, ~40, and ~2km, respectively.
304 ### Changed default settings for fixed wing throttle smoothing in navigation modes ([@Airwide])
305 Throttle smoothing in the navigation modes on fixed wing aircraft is now enabled by default. This results in smoother throttle management and more efficient cruising.
307 ### Improved flight performance on planes with rudder ([@avsaase])
308 In ACRO mode, you can mitigate the problem of the rudder fighting bank-and-yank turns by disabling the I-term when the bank angle is above a given threshold. Set the desired bank angle threshold on the Mechanics tab under PID tuning. 10 degrees is a good starting point. In the navigation modes, rudder handling is improved. As a consequence of this improvement, TURN ASSIST can no longer be used in ACRO mode.
310 ### Secondary IMU
312 INAV 3.0 supports, as an experimental feature, external BNO055 connected as either I2C or Serial device. Data from BNO055 can be used to display Artificial Horizon in OSD, Heading in OSD or drive the self-leveling ANGLE and HORIZON modes. Secondary IMU will not be used for navigation yet!
314 ### Altitude limit 
316 Via #4442 it is now possible to limit maximum altitude for both Fixed Wings and Multirotors. `nav_max_altitude` sets the max altitude in centimeters. Bear in mind, limit is active only with Altitude Hold mode and does not affect manual and acro flight modes
318 ### General Purpose PID controllers
320 INAV 3.0 comes with 4 general-purpose, user-programmable PID controllers that can be integrated with Logic Conditions and Global Variables. Why? Because why not! With the ability to override RC channels with Logic Conditions you can program your own heading, speed, altitude, whatever control.
322 ## All Changes since 2.6.1
324 * #6937 [Set correct I2C bus for rangefinders on SpeeedyBeedF4](https://github.com/iNavFlight/inav/pull/6937)
325 * #6936 [Fix mistake in #6904](https://github.com/iNavFlight/inav/pull/6936)
326 * #6935 [Fix Mamba I2C targets](https://github.com/iNavFlight/inav/pull/6935)
327 * #6930 [CMS: fix some and add missing items in OSD menu](https://github.com/iNavFlight/inav/pull/6930)
328 * #6929 [Add power limits](https://github.com/iNavFlight/inav/pull/6929)
329 * #6928 [Make CW270FLIP default MAG alignment](https://github.com/iNavFlight/inav/pull/6928)
330 * #6923 [Correct a typo in Navigation.md](https://github.com/iNavFlight/inav/pull/6923)
331 * #6914 [Update H743 pin mapping in MC mode](https://github.com/iNavFlight/inav/pull/6914)
332 * #6913 [Update launch docs to clarify climb angle](https://github.com/iNavFlight/inav/pull/6913)
333 * #6912 [h7: fix vcp on cold boot & dfu reset](https://github.com/iNavFlight/inav/pull/6912)
334 * #6905 [H7 timer/pwm output support](https://github.com/iNavFlight/inav/pull/6905)
335 * #6904 [Add CRUISE mode which is equivalent to CRSH+AH](https://github.com/iNavFlight/inav/pull/6904)
336 * #6902 [Alpha-Beta-Gamma filter for gyro](https://github.com/iNavFlight/inav/pull/6902)
337 * #6900 [Smith Compensator on PID measurement](https://github.com/iNavFlight/inav/pull/6900)
338 * #6896 [OSD sidebar height option](https://github.com/iNavFlight/inav/pull/6896)
339 * #6887 [Antenna tracking - video telemetry](https://github.com/iNavFlight/inav/pull/6887)
340 * #6878 [Enforce limits from setting.yaml in RC adjustments and add the possib…](https://github.com/iNavFlight/inav/pull/6878)
341 * #6876 [settings.rb: enforce min/max for default_value when possible](https://github.com/iNavFlight/inav/pull/6876)
342 * #6867 [Diatone MambaF405US_I2C target](https://github.com/iNavFlight/inav/pull/6867)
343 * #6866 [Mamaba F722_I2C target](https://github.com/iNavFlight/inav/pull/6866)
344 * #6864 [Fixes 0 dBm at disarm page when using crsf](https://github.com/iNavFlight/inav/pull/6864)
345 * #6863 [Turtle mode optimization](https://github.com/iNavFlight/inav/pull/6863)
346 * #6862 [OSD efficiency units](https://github.com/iNavFlight/inav/pull/6862)
347 * #6858 [Add option to display min cell voltage instead of min pack voltage on the disarm screen](https://github.com/iNavFlight/inav/pull/6858)
348 * #6857 [OSD: Fix bug in font metadata handling](https://github.com/iNavFlight/inav/pull/6857)
349 * #6856 [Bump OSD font min version to 2](https://github.com/iNavFlight/inav/pull/6856)
350 * #6853 [Copter: add new setting for final landing vspeed instead of being hardcoded to 25% of set landing vspeed](https://github.com/iNavFlight/inav/pull/6853)
351 * #6852 [Fix WP mode Set Head not resetting when starting new WP mission](https://github.com/iNavFlight/inav/pull/6852)
352 * #6846 [Drop gyro_sync](https://github.com/iNavFlight/inav/pull/6846)
353 * #6845 [Turtle mode issue fix](https://github.com/iNavFlight/inav/pull/6845)
354 * #6842 [Fix DSHOT beeper reset template](https://github.com/iNavFlight/inav/pull/6842)
355 * #6838 [Stats pages fix](https://github.com/iNavFlight/inav/pull/6838)
356 * #6830 [Fix error handling in settings.rb:Generator#resolve_types](https://github.com/iNavFlight/inav/pull/6830)
357 * #6828 [Gyro processing improvements](https://github.com/iNavFlight/inav/pull/6828)
358 * #6827 [Minor F7 optimization](https://github.com/iNavFlight/inav/pull/6827)
359 * #6826 [Move Lagacy Boards from docs to Wiki](https://github.com/iNavFlight/inav/pull/6826)
360 * #6822 [WP Mission Landing Elevation Setting](https://github.com/iNavFlight/inav/pull/6822)
361 * #6821 [Renamed OSD SW and LEDLOW to OSD/LEDS OFF](https://github.com/iNavFlight/inav/pull/6821)
362 * #6812 [DShot Beeper](https://github.com/iNavFlight/inav/pull/6812)
363 * #6807 [ZEEZF7V2 target](https://github.com/iNavFlight/inav/pull/6807)
364 * #6806 [Fix int32_t microseconds overflow in navigation.](https://github.com/iNavFlight/inav/pull/6806)
365 * #6805 [Cell detection fix](https://github.com/iNavFlight/inav/pull/6805)
366 * #6802 [Serial interface for BNO055 IMU](https://github.com/iNavFlight/inav/pull/6802)
367 * #6801 [Add raw rangefinder distance to OSD](https://github.com/iNavFlight/inav/pull/6801)
368 * #6800 [Increase loiter max radius to 300m](https://github.com/iNavFlight/inav/pull/6800)
369 * #6796 [OSD: display power >1000W in kW](https://github.com/iNavFlight/inav/pull/6796)
370 * #6795 [Altitude debug mode](https://github.com/iNavFlight/inav/pull/6795)
371 * #6794 [Increase max cell count to 12](https://github.com/iNavFlight/inav/pull/6794)
372 * #6792 [Added rangefinder "GY-US42(v2) Ultrasonic Range Sensor"](https://github.com/iNavFlight/inav/pull/6792)
373 * #6783 [Homogenize OSD AHI settings prefix](https://github.com/iNavFlight/inav/pull/6783)
374 * #6782 [canvas: Honor ahi_max_pitch when drawing the horizon line](https://github.com/iNavFlight/inav/pull/6782)
375 * #6758 [HGLRCF722 add additional MC_MOTORS](https://github.com/iNavFlight/inav/pull/6758)
376 * #6757 [Version bump to 3.0](https://github.com/iNavFlight/inav/pull/6757)
377 * #6750 [Add GPS valid fix to programming](https://github.com/iNavFlight/inav/pull/6750)
378 * #6748 [fix incorrect sdmmc_sdio_f4xx error state](https://github.com/iNavFlight/inav/pull/6748)
379 * #6738 [RC via MAVLink & MAVLink V2 Support](https://github.com/iNavFlight/inav/pull/6738)
380 * #6737 [Add "prearm was reset" flag to prevent rearming without resetting prearm & add prearm timeout](https://github.com/iNavFlight/inav/pull/6737)
381 * #6727 [Set failsafe procedure from OSD](https://github.com/iNavFlight/inav/pull/6727)
382 * #6726 [Detect launch on gps speed](https://github.com/iNavFlight/inav/pull/6726)
383 * #6720 [Enable report_cell_voltage support for CRSF telemetry](https://github.com/iNavFlight/inav/pull/6720)
384 * #6704 [Arming screen changes](https://github.com/iNavFlight/inav/pull/6704)
385 * #6699 [Add modulus operator support](https://github.com/iNavFlight/inav/pull/6699)
386 * #6696 [Fix the timer and DMA conflicts in the target, resolves #6303](https://github.com/iNavFlight/inav/pull/6696)
387 * #6695 [Do not slow down in WP mission when approaching a waypoint](https://github.com/iNavFlight/inav/pull/6695)
388 * #6693 [Add support for GHST GPS Telemetry](https://github.com/iNavFlight/inav/pull/6693)
389 * #6692 [Fix compiler warnings when #define use_lights, fix F3 targets compilation](https://github.com/iNavFlight/inav/pull/6692)
390 * #6687 [Fix Serial RX and ICM20689 Target YUPIF7](https://github.com/iNavFlight/inav/pull/6687)
391 * #6685 [Flip over after crash aka TURTLE MODE](https://github.com/iNavFlight/inav/pull/6685)
392 * #6678 [Remove the OPFLOW_PMW3901 opflow hardware option](https://github.com/iNavFlight/inav/pull/6678)
393 * #6676 [Update Docs to correct LC VBAT scale](https://github.com/iNavFlight/inav/pull/6676)
394 * #6674 [Separate D and CD/FF adjustments](https://github.com/iNavFlight/inav/pull/6674)
395 * #6671 [Small docs update](https://github.com/iNavFlight/inav/pull/6671)
396 * #6669 [Add D-term to control loop on fixed wing](https://github.com/iNavFlight/inav/pull/6669)
397 * #6664 [Add an ability not to slow down when switching to the next waypoint](https://github.com/iNavFlight/inav/pull/6664)
398 * #6662 [WP mission sealevel altitude datum](https://github.com/iNavFlight/inav/pull/6662)
399 * #6660 [Limit the size of OSD DEBUG element](https://github.com/iNavFlight/inav/pull/6660)
400 * #6658 [Change PIDFF settings in CMS to UINT16](https://github.com/iNavFlight/inav/pull/6658)
401 * #6655 [Delayed safehome](https://github.com/iNavFlight/inav/pull/6655)
402 * #6646 [Update docs for Lua telemetry](https://github.com/iNavFlight/inav/pull/6646)
403 * #6644 [Adds heading target logic condition](https://github.com/iNavFlight/inav/pull/6644)
404 * #6625 [Add ability to read Programming PID status via MSP](https://github.com/iNavFlight/inav/pull/6625)
405 * #6623 [Add MATEKF405CAN board; Add support for RM3100 compass on SPI bus](https://github.com/iNavFlight/inav/pull/6623)
406 * #6616 [Camera uptilt AHI compensation](https://github.com/iNavFlight/inav/pull/6616)
407 * #6610 [Allow to configure speed source for DJI OSD](https://github.com/iNavFlight/inav/pull/6610)
408 * #6604 [CRSF SNR Range](https://github.com/iNavFlight/inav/pull/6604)
409 * #6598 [Add OSD Stats pages and some crsf formatting fixes](https://github.com/iNavFlight/inav/pull/6598)
410 * #6595 [Get setting default values from settings.yaml](https://github.com/iNavFlight/inav/pull/6595)
411 * #6588 [Increase the number or mode ranges](https://github.com/iNavFlight/inav/pull/6588)
412 * #6581 [Increased fw loiter radius default](https://github.com/iNavFlight/inav/pull/6581)
413 * #6578 [Removed mc_ from airmode CLI variables](https://github.com/iNavFlight/inav/pull/6578)
414 * #6572 [Feature/rangefinder vl53l1x](https://github.com/iNavFlight/inav/pull/6572)
415 * #6568 [Ability to trim pitch angle for level flight](https://github.com/iNavFlight/inav/pull/6568)
416 * #6566 [Extract navigation PID controller to separate module](https://github.com/iNavFlight/inav/pull/6566)
417 * #6562 [[FEATURE] Prearm](https://github.com/iNavFlight/inav/pull/6562)
418 * #6556 [Remove duplicate waypoints messages in the OSD/Hud](https://github.com/iNavFlight/inav/pull/6556)
419 * #6544 [build: Use -Os for F7 targets with flash <= 512K](https://github.com/iNavFlight/inav/pull/6544)
420 * #6543 [Allow 20 second compass calibration](https://github.com/iNavFlight/inav/pull/6543)
421 * #6537 [Update Buzzer.md](https://github.com/iNavFlight/inav/pull/6537)
422 * #6510 [Add a new MSP2_INAV_MISC2 message type](https://github.com/iNavFlight/inav/pull/6510)
423 * #6501 [Pan servo home direction offset](https://github.com/iNavFlight/inav/pull/6501)
424 * #6495 [FLYWOOF411_V2 based on target files from vendor](https://github.com/iNavFlight/inav/pull/6495)
425 * #6493 [report launch flight mode with higher priority](https://github.com/iNavFlight/inav/pull/6493)
426 * #6492 [ZEEZF7 Add VTX power on/off via PINIO on pin PB11](https://github.com/iNavFlight/inav/pull/6492)
427 * #6488 [Blink osd power on current draw alarm](https://github.com/iNavFlight/inav/pull/6488)
428 * #6487 [Remove unused UAV_INTERCONNECT](https://github.com/iNavFlight/inav/pull/6487)
429 * #6486 [Fix "maybe uninitialised" variables with MinSizeRel](https://github.com/iNavFlight/inav/pull/6486)
430 * #6479 [GPS failure indication improvements](https://github.com/iNavFlight/inav/pull/6479)
431 * #6473 [Add section for Omnibus Corner Nano to Omnibus F4 board doc](https://github.com/iNavFlight/inav/pull/6473)
432 * #6470 [Do not show efficiency on osd when ground speed is below 1 m/s](https://github.com/iNavFlight/inav/pull/6470)
433 * #6469 [Option for local plus codes on osd](https://github.com/iNavFlight/inav/pull/6469)
434 * #6464 [ZEEZF7 MSP-based GPS, magnetometer and barometer](https://github.com/iNavFlight/inav/pull/6464)
435 * #6458 [added vtx_smartaudio_early_akk_workaround option](https://github.com/iNavFlight/inav/pull/6458)
436 * #6437 [Fixed wing RTH Spiral Climb Option](https://github.com/iNavFlight/inav/pull/6437)
437 * #6434 [Correct test for Galileo capability](https://github.com/iNavFlight/inav/pull/6434)
438 * #6433 [Set default gyro LPF to 256Hz](https://github.com/iNavFlight/inav/pull/6433)
439 * #6431 [update EGNOS PRN mask to latest EGSA definition, fix SBAS for non-Galileo usage.](https://github.com/iNavFlight/inav/pull/6431)
440 * #6430 [Fix Nav Launch detection related bugs](https://github.com/iNavFlight/inav/pull/6430)
441 * #6420 [add MSP for setting and getting safe homes](https://github.com/iNavFlight/inav/pull/6420)
442 * #6419 [update `Cmake usage.md` for `src/main/CMakeLists.txt`.](https://github.com/iNavFlight/inav/pull/6419)
443 * #6407 [TURN ASSIST improvements for Fixed Wing](https://github.com/iNavFlight/inav/pull/6407)
444 * #6404 [Do not run tests for docs-only PRs](https://github.com/iNavFlight/inav/pull/6404)
445 * #6403 [Trigger docs CI on PRs](https://github.com/iNavFlight/inav/pull/6403)
446 * #6395 [Add note about Google Maps coordinates in Safehomes docs](https://github.com/iNavFlight/inav/pull/6395)
447 * #6391 [Added pitch2thr smoothing defaults to pg_reset_template](https://github.com/iNavFlight/inav/pull/6391)
448 * #6387 [Freeze yaw I-term above bank angle threshold](https://github.com/iNavFlight/inav/pull/6387)
449 * #6384 [Fix EEPROM loading code](https://github.com/iNavFlight/inav/pull/6384)
450 * #6383 [Enable DSHOT support on FF_F35/WINGFC](https://github.com/iNavFlight/inav/pull/6383)
451 * #6376 [Improve nav_overrides_motor_stop documentation](https://github.com/iNavFlight/inav/pull/6376)
452 * #6375 [[BUILD] Update the toolchain to gcc-9.3.1](https://github.com/iNavFlight/inav/pull/6375)
453 * #6374 [build: deduplicate version number](https://github.com/iNavFlight/inav/pull/6374)
454 * #6373 [Bump cmake version](https://github.com/iNavFlight/inav/pull/6373)
455 * #6372 [update NAV_PERSISTENT_ID_RTH_HOVER_ABOVE_HOME so the IDs are really unique](https://github.com/iNavFlight/inav/pull/6372)
456 * #6370 [Increase version to 2.7.0](https://github.com/iNavFlight/inav/pull/6370)
457 * #6369 [Back-merge release 2.6.0 branch into master](https://github.com/iNavFlight/inav/pull/6369)
458 * #6368 [Improve virtual current sensor for Nav modes with throttle stop override](https://github.com/iNavFlight/inav/pull/6368)
459 * #6365 [Add user programmable PID controllers to a Programming Framework](https://github.com/iNavFlight/inav/pull/6365)
460 * #6361 [Changed default settings for fixed wing throttle smoothing in navigation modes](https://github.com/iNavFlight/inav/pull/6361)
461 * #6357 [Cleanup unused SPI receivers](https://github.com/iNavFlight/inav/pull/6357)
462 * #6356 [[MATEKF405] Add the possibility of MC servo on S7](https://github.com/iNavFlight/inav/pull/6356)
463 * #6353 [[Target] Matek F411WSE: Softserial1 Full Duplex](https://github.com/iNavFlight/inav/pull/6353)
464 * #6345 [Always use rxGetChannelValue instead of rxGetRawChannelValue](https://github.com/iNavFlight/inav/pull/6345)
465 * #6344 [Add version to osd](https://github.com/iNavFlight/inav/pull/6344)
466 * #6341 [Allow Logic Conditions to override RC channels](https://github.com/iNavFlight/inav/pull/6341)
467 * #6337 [automatically raise BIDIR flag on softserial port if RX and TX pins are set to the same pin](https://github.com/iNavFlight/inav/pull/6337)
468 * #6333 [Add safehome_max_distance option. Choose nearest safehome.](https://github.com/iNavFlight/inav/pull/6333)
469 * #6329 [TPA OSD element bugfix](https://github.com/iNavFlight/inav/pull/6329)
470 * #6323 [Disable all F3 targets](https://github.com/iNavFlight/inav/pull/6323)
471 * #6322 [Dynamic gyro LPF](https://github.com/iNavFlight/inav/pull/6322)
472 * #6321 [Precompute k for PT1 filter](https://github.com/iNavFlight/inav/pull/6321)
473 * #6297 [Rename NAV CRUISE mode to NAV COURSE HOLD](https://github.com/iNavFlight/inav/pull/6297)
474 * #6180 [Add driver for BMI088 IMU](https://github.com/iNavFlight/inav/pull/6180)
475 * #6179 [Switched RTH Preset Altitude Override](https://github.com/iNavFlight/inav/pull/6179)
476 * #6166 [Add MATEKF411SE_PINIO target](https://github.com/iNavFlight/inav/pull/6166)
477 * #6106 [Added option to output servos on PWM and SBUS](https://github.com/iNavFlight/inav/pull/6106)
478 * #6050 [Added state NAV_STATE_WAYPOINT_HOVER_ABOVE_HOME](https://github.com/iNavFlight/inav/pull/6050)
479 * #5827 [[H7] Initial cut on H7 MCU support](https://github.com/iNavFlight/inav/pull/5827)
480 * #5100 [BNO055 Secondary IMU](https://github.com/iNavFlight/inav/pull/5100)
483 [@shellixyz]: https://github.com/shellixyz
484 [@digitalentity]: https://github.com/digitalentity
485 [@DzikuVx]: https://github.com/DzikuVx
486 [@stronnag]: https://github.com/stronnag
487 [@nmaggioni]: https://github.com/nmaggioni
488 [@tonyyng]: https://github.com/tonyyng
489 [@breadoven]: https://github.com/breadoven
490 [@avsaase]: https://github.com/avsaase
491 [@harry1453]: https://github.com/harry1453
492 [@MrD-RC]: https://github.com/MrD-RC
493 [@RomanLut]: https://github.com/RomanLut
494 [@IVData]: https://github.com/IVData
495 [@fiam]: https://github.com/fiam
496 [@Airwide]: https://github.com/Airwide
497 [@kernel-machine]: https://github.com/kernel-machine
498 [@bkleiner]: https://github.com/bkleiner
499 [@Jetrell]: https://github.com/jetrell
501 ## Recommended hardware
503 ### Flight controllers
504 * [Matek F722-SE](https://inavflight.com/shop/p/MATEKF722SE)
505 * [Matel F722-WPS](https://inavflight.com/shop/s/bg/1778068)
506 * [Matek F411-WSE](https://inavflight.com/shop/s/bg/1546243)
507 * [Matek F765-WING](https://inavflight.com/shop/s/bg/1557661)
508 * [Matek F722-MiniSE](https://inavflight.com/shop/s/bg/1707404)
509 * [Holybro Kakute F7](https://inavflight.com/shop/s/bg/1315723)
511 ### Airplane models
512 * [AR Wing Pro](https://inavflight.com/shop/s/bg/1756841)
513 * [AtomRC Dolphin](https://inavflight.com/shop/s/bg/1758430)
514 * [C1 Chaser](https://inavflight.com/shop/s/bg/1102080)
515 * [SonicModell Binary](https://inavflight.com/shop/s/bg/1473014)
516 * [Volantex Ranger 2000](https://inavflight.com/shop/s/bg/1151700)
517 * [Mini AR Wing](https://inavflight.com/shop/s/bg/1341528)
519 ### Radios
520 * [Radiomaster TX16S](https://inavflight.com/shop/s/bg/1746075)
521 * [Jumper T18 Pro](https://inavflight.com/shop/s/bg/1680526)
522 * [FrSky Q X7](https://inavflight.com/shop/s/bg/1196246)
523 * [FlySky FS-i6X](https://inavflight.com/shop/s/bg/1090406) 
525 ### Long range radio systems
526 * [Radiomaster TX16S + TBS Crossfire Starter Set](https://inavflight.com/shop/s/bg/1735618)
527 * [ImmersionsRC Ghost](https://inavflight.com/shop/s/bg/1722555)
528 * [SIYI FM30](https://inavflight.com/shop/s/bg/1776430)
529 * [FrSky R9M 2019 + R9MX](https://inavflight.com/shop/s/bg/1707906)
531 ### GPS & Sensors
532 * [Beitian BN180 GPS](https://inavflight.com/shop/p/BN180)
533 * [Beitian BN880Q GPS+COMPASS](https://inavflight.com/shop/s/bg/1450469)
534 * [Beitian BN880 GPS+COMPASS ](https://inavflight.com/shop/p/BN880)
535 * [Matek M8Q-5883](https://inavflight.com/shop/s/bg/1337288)
536 * [Matek Lidar+OpFlow board](https://inavflight.com/shop/s/bg/1604930)
537 * [Matek Digital Airspeed Sensor](https://inavflight.com/shop/s/bg/1710131)
538 * [Benewake TFmini Lidar](https://inavflight.com/shop/s/bg/1449740)
539 * [VL53L0X Lidar](https://inavflight.com/shop/s/bg/1103114)
541 ### FPV
542 * [Foxeer T-Rex FPV camera](https://inavflight.com/shop/s/bg/1756536)
543 * [RunCam Eagle 3 FPV camera](https://inavflight.com/shop/s/bg/1723926)
544 * [Caddx Ratel 2 FPV camera](https://inavflight.com/shop/s/bg/1779714)
545 * [Caddx Vista HD](https://inavflight.com/shop/s/bg/1625165)
546 * [Rush Tank Ultimate](https://inavflight.com/shop/s/bg/1707214)
547 * [Matek 1G3 video transmitter and receiver](https://inavflight.com/shop/s/bg/1745975)
548 * [Eachine Cobra X FPV goggles](https://inavflight.com/shop/s/bg/1778518)
549 * [Skyzone SKY04X FPV goggles](https://inavflight.com/shop/s/bg/1755006)
551 ### Other
552 * [ViFly ShortSaver 2](https://inavflight.com/shop/s/bg/1788341)
553 * [ViFly Finer buzzer](https://inavflight.com/shop/s/bg/1329066)
555 You can get more suggestions following this [link](https://github.com/iNavFlight/inav/wiki/Welcome-to-INAV,-useful-links-and-products) too.