Created Firmware recovery with dfu-util (markdown)
[inav.wiki.git] / 2.2.0-Release-Notes.md
bloba45adbbad633287f8a1ca926b1e86fa6d7ff146e
2 ![](http://static.rcgroups.net/forums/attachments/6/1/0/3/7/6/a9088858-102-inav.png)
4 **Hello and welcome to INAV 2.2.0 Release!**
6 Please carefully read all of this document for the best possible experience and safety.
8 Get in touch with other pilots, share experiences, suggestions and ask for help on:
10 <table>
11   <tbody>
12     <tr>
13       <td><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Telegram_logo.svg/1024px-Telegram_logo.svg.png" width="48"></td>
14       <td><a href="https://t.me/INAVFlight">INAV Official on Telegram</a></td>
15     </tr>
16     <tr>
17       <td><img src="https://upload.wikimedia.org/wikipedia/commons/c/cd/Facebook_logo_%28square%29.png" width="48"></td>
18       <td><a href="https://www.facebook.com/groups/INAVOfficial">INAV Official on Facebook</a></td>
19     </tr>
20   </tbody>
21 </table>
23 Please continue to support developers, for free, by checking out from the following stores after having clicked on the following links:
25 <table>
26   <tbody>
27     <tr>
28       <td><img src="https://lh3.googleusercontent.com/TiHXyUiZ2COk7OmceBgo1qeRN2APAjWL5qUydGc-U3LqkJb3n13EhYEJ8Dpz_IACNHU" width="55"></td>
29       <td><a href="https://inavflight.com/shop/u/bg">Support us on Banggood</a></td>
30     </tr>
31   </tbody>
32 </table>
34 Your contribution from the past month has been very welcome! Thanks!
36 Tested and suggested hardware can be found [here](https://github.com/iNavFlight/inav/wiki/Welcome-to-INAV,-useful-links-and-products) 
38 ## Important Notes
40 1. Arming with sticks is being removed since it is not safe to use. You must use a switch to ARM.
41 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.
43 ## Upgrading from 2.1.0
45 0. Download and install the new [configurator](https://github.com/iNavFlight/inav-configurator/releases)
46 1. Save to a file the current _diff all_ from the CLI.
47 2. Upgrade to INAV 2.2 using the Full Erase option in the configurator.
48 3. Upload your OSD font of choice from the OSD tab.
49 4. Go the CLI again and paste the contents on the file you previously create and write _save_ , press ENTER and done!
50 5. If you armed with via sticks, add an arming switch in the Modes tab in the configurator.
51 6. If you are upgrading a multi rotor, POS XY PID I and D have now specific settings, respectively `nav_mc_pos_deceleration_time` and `nav_mc_pos_expo` . So if you don't use defaults, when restoring, move yours to the new settings.
52 7. You should be ready, explore new 2.2 features and enjoy!
54 ## Upgrading from 2.0.0
56 0. Please follow the upgrade guide to 2.1.0 and then step to the previous section.
58 ## New targets:
60 * [MAMBA F405](https://inavflight.com/shop/s/bg/1345001) (For Fixed Wings: Motors on S1/S4 Servos S2/S3)
61 * OMNIBUSF4V3_SFTSRL2 (OMNIBUSF4V3 with two software serial)
62 * [KAKUTE F7 MINI](https://inavflight.com/shop/s/bg/1449223)
63 * [MATEKF411_FD_SFTS](https://inavflight.com/shop/p/MATEKF411WING) (F411-WING with a full duplex soft serial)
65 ## CLI:
67 ### New
69 | Setting | Description |
70 | ----    | ------ |
71 | `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. |
72 | `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 |
73 | `nav_mc_pos_expo` | Expo for PosHold control |
74 | `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** |
75 |  `osd_gforce_alarm`     | Value above which the OSD g force indicator will blink (g) |
76 |  `osd_gforce_axis_alarm_min` | Value under which the OSD axis g force indicators will blink (g) |
77 |  `osd_gforce_axis_alarm_max`  | Value above which the OSD axis g force indicators will blink (g) |
78 | 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. | 
79 | `mc_airmode_threshold` | Defines airmode THROTTLE activation threshold when `mc_airmode_type` **THROTTLE_THRESHOLD** is used | 
80 |  `osd_current_alarm` | Value above which the OSD current consumption element will start blinking. Measured in full Amperes. |
81 | `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. |
82 | `sim_transmit_interval` | Text message transmission interval in seconds for SIM module. Minimum value: 10 |
83 | `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 |
84 | `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. |
85 | `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. |
86 | `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. |
87 | `sim_low_altitude` | Threshold for low altitude warning messages sent by SIM module when the 'L' transmit flag is set in `sim_transmit_flags`.|
88 |  `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 |
89 ### Removed
92 | Setting | Description |
93 | ----    | ------ |
94 | `auto_disarm_delay ` | |
96 ## STM32F7 optimizations
98 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. 
100 > 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. 
102 If **I2C** magnetometer or barometer are to be used, switch to 4kHz mode!
104 ## Logic Conditions
106 **Logic conditions** is a new function framework that in INAV 2.2 allows to activate and deactivate specific servo mixer rules.
108 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:
109 * automatically deploy flaps when speed is too low
110 * activate servo when distance or altitude has been reached
111 * flaps/spoilers with different throws
113 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 
115 ## Optic flow calibration
117 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.
119 ## Accelerometer vibration mitigation
121 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.
123 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.
125 ## Cellular telemetry via text messages
127 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.
128 Modules like [this](https://inavflight.com/shop/s/bg/1062819) one should work flawlessly.
131 ## Support for INAV Radar 
133 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.
134 More infos can be found in the dedicated wiki page here: [here](https://github.com/iNavFlight/inav/wiki/OSD-Hud-and-ESP32-radars) 
136 ## All changes:
137 * New mixer inputs for stabilized axises  ([@DzikuVx] , [#4148])
138 * STM32F7 Optimizations  ([@DzikuVx] , [#4263], [#4483])
139 * LTM Improvements ([@stronnag] ,[#4423])
140 * Temperature Sensing Improvements ([@shellixyz] ,[#4416])
141 * Optimizing CMS to save FLASH ([@fiam] ,[#4380])
142 * Enforcing Board Allignment Limits  ([@fiam] ,[#4420])
143 * Logic conditions framework ([@DzikuVx] , [#4144], [#4561], [#4555], [#4551])
144 * MSP on VPC Fixes  ([@digitalentity] ,[#4468])
145 * PT1 Filter option for Acc/Gyro ([@giacomo892] ,[#4454],[#4676])
146 * Use imperial units for altitude for UK ([@shellixyz] ,[#4445])
147 * Convert NAV POS/VEL PID to PIDFF ([@DzikuVx] , [#4326], [#4624])
148 * PH Settings aren't anymore inside PID conf. but have dedicated settings ([@DzikuVx] , [#4484])
149 * Fixed Wing FF PIDFF setting now is no more "D" in the configurator ([@DzikuVx] , [#4482])
150 * Make Dterm FIR filter configurable ([@DzikuVx] , [#4475] ,  [#4538])
151 * Update temperature related MSP messages  ([@shellixyz] ,[#4449])
152 * Set default home reset to FIRST ARM ([@DzikuVx] , [#4499])
153 * Added Servo output logging in BB ([@hali9] , [#4501])
154 * Fixing the left-right arrow mismatch in the OSD fonts ([@OlivierC-FR] , [#4502])
155 * Add dedicated OSD elements for map scale and reference ([@fiam] ,[#4386])
156 * Manage WPs from CLI ([@hali9] , [#4473])
157 * Remove all MAX7456 specific code, replace it with generic interfaces ([@fiam] ,[#4384])
158 * Refactor handling of RC input data  ([@fiam] ,[#4232])
159 * Replace DEBUG_TRACE with LOG ([@fiam] ,[#4385])
160 * Add MAMBAF405 target ([@shellixyz] ,[#4521])
161 * Fix emergency landing not engaging from initial RTH climb ([@digitalentity] ,[#4582])
162 * SmartAudio 2.1 Support ([@digitalentity] ,[#4596])
163 * DSHOT Timers Fixes ([@digitalentity] ,[#4607])
164 * GPS distance from home can be > 65km ([@giacomo892] ,[#4617])
165 * OMNIBUSF4V3_SFTSRL2 target ([@shellixyz] ,[#4626])
166 * Iterm Relax ([@DzikuVx] , [#4630])
167 * Remove Sticks  Arming ([@DzikuVx] , [#4640])
168 * serial CLI command improvements (+n -n)  ([@fiam] ,[#4232])
169 * Support for bypassing extra arming safety  ([@fiam] ,[#4623])
170 * Airmode improvements ([@DzikuVx] , [#4634])
171 * Optic flow & surface improvements ([@digitalentity] ,[#3795],[#4680])
172 * Ignore acceleration in estimated position when clipping or high vibration ([@digitalentity] ,[#4681])
173 * Implement RTH Straight ([@shellixyz] ,[#4188])
174 * g-force OSD items and stats ([@shellixyz] ,[#4696])
175 * Automatic magnetic declination improvements  ([@fiam] , [@giacomo892] , [#4713])
176 * Current consumption alarm in OSD ([@nmaggioni] ,[#4715])
177 * Virtual pitot sensor (EXPERIMENTAL) ([@hali9] ,[#4712])
178 * Added Matek Serialshot ([@digitalentity] ,[#4646])
179 * GSM Telemetry SIMCom modules ([@potater1] ,[#4388])
180 * Added option to continue mission out of radio range ([@shellixyz] ,[#4731])
181 * Smarter RoC/RoD acceleration limit ([@digitalentity] ,[#4448])
182 * I2C: Reduce timeout on F7 from 10s to 10ms ([@fiam] ,[#4753])
183 * Make INAV 2.1 servo mixing rules compatible with 2.2 ([@shellixyz] ,[#4763])
184 * OSD new icons for the Gforce ([@OlivierC-FR] ,[#4772])
185 * add FW servos to FURYF4 / MAMBAF405 ([@giacomo892] ,[#4769])
186 * Add MATEKF411 target with one full duplex softserial: MATEKF411_FD_SFTS ([@shellixyz] ,[#4754])
187 * RTH Improvements ([@digitalentity] , [@shellixyz] , [#4769])
188 * CMS: Add support for editing FF term in the PID tuning menu ([@fiam] , [#4801])
189 * Improve LEDSTRIP clock ([@digitalentity] ,[#4805])
190 * Add vario sensor to CRSF telemetry ([@shellixyz] , [#4791])
191 * Increase default FW max bank angle from 20 to 35° ([@shellixyz] , [#4785])
192 * Change VTX power level via switch ([@L4ky] , [#4717])
193 * OSD: Added VTX power indicator ([@shellixyz] , [#4730])
195 [@digitalentity]: https://github.com/digitalentity 
196 [@DzikuVx]: https://github.com/DzikuVx
197 [@eephyne]: https://github.com/eephyne
198 [@fiam]: https://github.com/fiam
199 [@giacomo892]: https://github.com/giacomo892
200 [@hali9]: https://github.com/hali9
201 [@nmaggioni]: https://github.com/nmaggioni
202 [@nyway]: https://github.com/nyway
203 [@shellixyz]: https://github.com/shellixyz
204 [@stronnag]: https://github.com/stronnag
205 [@mluessi]: https://github.com/mluessi
206 [@Garogat]: https://github.com/Garogat
207 [@teckel12]: https://github.com/teckel12
208 [@bnn1044]: https://github.com/bnn1044
209 [@krzysztofmatula]: https://github.com/krzysztofmatula
210 [@danarrib]: https://github.com/danarrib
211 [@marbalon]: https://github.com/marbalon
212 [@OlivierC-FR]: https://github.com/OlivierC-FR
213 [@potater1]: https://github.com/potater1
214 [@L4ky]: https://github.com/L4ky
217 [#486]: https://github.com/iNavFlight/inav/issues/486
218 [#4148]: https://github.com/iNavFlight/inav/pull/4148
219 [#4263]: https://github.com/iNavFlight/inav/pull/4263
220 [#4483]: https://github.com/iNavFlight/inav/pull/4483
221 [#4423]: https://github.com/iNavFlight/inav/pull/4423
222 [#4416]: https://github.com/iNavFlight/inav/pull/4416
223 [#4380]: https://github.com/iNavFlight/inav/pull/4380
224 [#4420]: https://github.com/iNavFlight/inav/pull/4420
225 [#4144]: https://github.com/iNavFlight/inav/pull/4144
226 [#4561]: https://github.com/iNavFlight/inav/pull/4561
227 [#4555]: https://github.com/iNavFlight/inav/pull/4555
228 [#4551]: https://github.com/iNavFlight/inav/pull/4551
229 [#4468]: https://github.com/iNavFlight/inav/pull/4468
230 [#4454]: https://github.com/iNavFlight/inav/pull/4454
231 [#4676]: https://github.com/iNavFlight/inav/pull/4676
232 [#4445]: https://github.com/iNavFlight/inav/pull/4445
233 [#4326]: https://github.com/iNavFlight/inav/pull/4326
234 [#4624]: https://github.com/iNavFlight/inav/pull/4624
235 [#4484]: https://github.com/iNavFlight/inav/pull/4484
236 [#4482]: https://github.com/iNavFlight/inav/pull/4482
237 [#4475]: https://github.com/iNavFlight/inav/pull/4475
238 [#4449]: https://github.com/iNavFlight/inav/pull/4449
239 [#4499]: https://github.com/iNavFlight/inav/pull/4499
240 [#4501]: https://github.com/iNavFlight/inav/pull/4501
241 [#4502]: https://github.com/iNavFlight/inav/pull/4502
242 [#4386]: https://github.com/iNavFlight/inav/pull/4386
243 [#4473]: https://github.com/iNavFlight/inav/pull/4473
244 [#4384]: https://github.com/iNavFlight/inav/pull/4384
245 [#4384]: https://github.com/iNavFlight/inav/pull/4384
246 [#4385]: https://github.com/iNavFlight/inav/pull/4385
247 [#4521]: https://github.com/iNavFlight/inav/pull/4521
248 [#4538]: https://github.com/iNavFlight/inav/pull/4538
249 [#4582]: https://github.com/iNavFlight/inav/pull/4582
250 [#4607]: https://github.com/iNavFlight/inav/pull/4607
251 [#4596]: https://github.com/iNavFlight/inav/pull/4596
252 [#4617]: https://github.com/iNavFlight/inav/pull/4617
253 [#4626]: https://github.com/iNavFlight/inav/pull/4626
254 [#4630]: https://github.com/iNavFlight/inav/pull/4630
255 [#4640]: https://github.com/iNavFlight/inav/pull/4640
256 [#4232]: https://github.com/iNavFlight/inav/pull/4232
257 [#4623]: https://github.com/iNavFlight/inav/pull/4623
258 [#4634]: https://github.com/iNavFlight/inav/pull/4634
259 [#3795]: https://github.com/iNavFlight/inav/pull/3795
260 [#4680]: https://github.com/iNavFlight/inav/pull/4680
261 [#4681]: https://github.com/iNavFlight/inav/pull/4681
262 [#4188]: https://github.com/iNavFlight/inav/pull/4188
263 [#4696]: https://github.com/iNavFlight/inav/pull/4696
264 [#4713]: https://github.com/iNavFlight/inav/pull/4713
265 [#4715]: https://github.com/iNavFlight/inav/pull/4715
266 [#4712]: https://github.com/iNavFlight/inav/pull/4712
267 [#4646]: https://github.com/iNavFlight/inav/pull/4646
268 [#4338]: https://github.com/iNavFlight/inav/pull/4338
269 [#4731]: https://github.com/iNavFlight/inav/pull/4731
270 [#4448]: https://github.com/iNavFlight/inav/pull/4448
271 [#4753]: https://github.com/iNavFlight/inav/pull/4753
272 [#4763]: https://github.com/iNavFlight/inav/pull/4763
273 [#4772]: https://github.com/iNavFlight/inav/pull/4772
274 [#4769]: https://github.com/iNavFlight/inav/pull/4769
275 [#4754]: https://github.com/iNavFlight/inav/pull/4754
276 [#4388]: https://github.com/iNavFlight/inav/pull/4388
277 [#4769]: https://github.com/iNavFlight/inav/pull/4769
278 [#4801]: https://github.com/iNavFlight/inav/pull/4801
279 [#4805]: https://github.com/iNavFlight/inav/pull/4805
280 [#4791]: https://github.com/iNavFlight/inav/pull/4791
281 [#4785]: https://github.com/iNavFlight/inav/pull/4785
282 [#4717]: https://github.com/iNavFlight/inav/pull/4717
283 [#4730]: https://github.com/iNavFlight/inav/pull/4730