diff --git a/static/img/content/209.png b/static/img/content/209.png new file mode 100644 index 0000000..93c6ebc Binary files /dev/null and b/static/img/content/209.png differ diff --git a/versioned_docs/version-8.0.1/1.7.3-Release-notes.md b/versioned_docs/version-8.0.1/1.7.3-Release-notes.md new file mode 100644 index 0000000..17bd32b --- /dev/null +++ b/versioned_docs/version-8.0.1/1.7.3-Release-notes.md @@ -0,0 +1,83 @@ +--- +title: 1.7.3 Release Notes +--- + +Please read the release notes carefully and upgrade INAV Configurator available at [Chrome Store](https://chrome.google.com/webstore/detail/inav-configurator/fmaidjmgkdkpafmbnmigkpdnpdhopgel). You can also use [Configurator built as a native MacOS or Windows application](https://github.com/iNavFlight/inav-configurator/releases/tag/1.7.3). + +INAV is and will remain open-source and free, but you are more than welcome to [support the development](https://inavflight.github.io/supporting-inav/). + +This release was supported by our awesome sponsors [CarbonBird.com](http://www.CarbonBird.com), [Airbot](http://shop.myairbot.com/) and [ADPM Drones](http://www.adpm.pro/). + +## Known bugs + +- OSD blinking doesn't work [#2088] +- No I2C available on Matek F405-OSD [#2047] + +## EOL announcement + +This release is the last release featuring F1-based boards (NAZE, CC3D, AirHero32). They don't have enough memory and CPU power to make use of new code. Support is not removed from source tree, DIY-ers are welcome to build their own setups. + +Bugs that are related to limited memory and/or CPU power on those boards won't be fixed. Functionality issues will only be fixed if they would be reproducible on more powerful F3/F4/F7 targets. + +## CLI parameter renaming / new parameters + +New parameters have been introduced. Some CLI parameters were renamed to support new features or to better reflect their meaning: + +| Old name | New name(s) | +|------------------------|----------------------------------------------------------------| +| `i2c_overclock` | `i2c_speed` | +| - | `cpu_underclock` | +| - | `smartport_fuel_percent` | + +## I2C bus speed selection + +Some sensors (especially cloned barometer/compass sensors) are reported to work unreliably on default 400kHz speed. New `i2c_speed` setting allows to reduce I2C clock rate to 200kHz and 100kHz to allow these picky sensors to function properly. Overclocking to 800kHz is also possible but not recommended. + +If on your board compass/baro sensor is not recognized or hangs (usually indicated by rapidly increasing I2C error count) please try setting `i2c_speed` to 200KHZ before reporting a bug. + +## Underclocking for F1/F3 targets + +F1/F3 boards are working on 72MHz clock which may interfere with 433MHz long range RC control systems. A new CLI option (`cpu_underclock`) for F1 and F3-based targets allows user to select between 72MHz (default) and 48MHz CPU clock. Should theoretically reduce interference to 433MHz LRS systems. + +Other clock speeds are not possible because native USB will only function with 72/48MHz system clock speed. + +Use caution - lower CPU speed means that you'll probably have to slow down looptime as well to keep CPU usage within sane limits. + +## New boards + +- [Omnibus F7 - highly experimental](https://store.myairbot.com/flight-controller/omnibus-f7/omnibusf7.html) +- [SPRACINGF4EVO](http://seriouslypro.com/spracingf4evo) + +## New features + +- Support for MTK GPS automatic configuration +- New experimental DIY sonar-to-I2C converter support (https://github.com/iNavFlight/INAV-Rangefinder-I2C-interface) +- MatekF405 boards now support common I2C baro/compass sensors. Note that MatekF405 OSD board doesn't have I2C outputs so only MatekF405 AIO board can benefit from the change +- Add airspeed indication to OSD +- Add analog pitot sensor support for all F3/F4 targets +- Support for VL53L0X laser rangefinder (short range) +- Add RunCam Split control via RC radio +- MSPv2 protocol +- AIRMODE now available as a feature to have it always enabled (recommended for airplanes) +- QMC5883 compass support (pin-to-pin compatible to HMC5883L sensor, used in some Chinese GPS modules) +- Multiple Smartport telemetry improvements +- Add support for UK mode units in the OSD (Show the speed in mp/h while using metric for other values) +- Speed up blackbox downloading. Now downloading full 8Mb dataflash takes mere minutes. + +## Bugs fixed + +- Fix ledstrip on Omnibus target +- Fix HEX6X mixer +- Fix OSD crosshair blinking +- Fix OSD ghost AHI +- Fix feature bits being reset when exiting CMS +- Fix bug with UK units in OSD +- Fix horizon drift bug on some boards with OSD +- Fix altitude control not working under 5m altitude on airplanes +- Fix swapped values for `frsky_unit` in CLI. Dumps from previous versions should be modified to change `IMPERIAL` to `METRIC` and viceversa before restoring them on INAV >= 1.7.3. +- Fix auto re-arm after landing issue when using switch-arming and landing with zero throttle in RTH & auto-disarm +- Fix BlueJayF4 gyro not detected + +## Kudos + +@martinbudden, @stronnag, @fiam, @DzikuVx, @oleost, @Schalonsus, @adtinnis, @sambas, @teckel12 diff --git a/versioned_docs/version-8.0.1/1.8.0-Release-notes.md b/versioned_docs/version-8.0.1/1.8.0-Release-notes.md new file mode 100644 index 0000000..79f5608 --- /dev/null +++ b/versioned_docs/version-8.0.1/1.8.0-Release-notes.md @@ -0,0 +1,125 @@ +--- +title: 1.8.0 Release Notes +--- + +Please read the release notes carefully and upgrade INAV Configurator available at [Chrome Store](https://chrome.google.com/webstore/detail/inav-configurator/fmaidjmgkdkpafmbnmigkpdnpdhopgel). You can also use [Configurator built as a native MacOS or Windows application](https://github.com/iNavFlight/inav-configurator/releases/tag/1.8.0). + +INAV is and will remain open-source and free, but you are more than welcome to [support the development](https://inavflight.github.io/supporting-inav/). + +This release was supported by our awesome sponsors [CarbonBird.com](http://www.CarbonBird.com), [Airbot](http://shop.myairbot.com/), [ADPM Drones](http://www.adpm.pro/) and a number of supporters on [Patreon](https://www.patreon.com/inavflight). + +## WARNINGS + +* We've changed the way you select the receiver. Please make sure to select correct receiver after upgrading! +* On OMNIBUS F4 targets LEDSTRIP is now moved to where it belongs - dedicated LEDSTRIP connector. + +## Known bugs +* OSD blinking not always working + +## CLI parameter renaming / new parameters + +New parameters have been introduced. Some CLI parameters were renamed to support new features or to better reflect their meaning: + +| Name | Description | +|------------------------|----------------------------------------------------------------| +| `feature RX_*` | RX type definition as been moved from a `FEATURE` to a setting `receiver_type`, with values of `NONE`, `PWM`, `PPM`, `SERIAL`, `MSP`, `SPI`. | +| `nav_rth_allow_landing` | This now takes values of `NEVER`, `ALWAYS` (default), `FS_ONLY`. The latter is primarily for fixed wing, where an emergency landing is a better option than have the 'plane fall from altitude as the battery expires under failsafe. | +| - | `totally_new_setting` | +| `tz_offset` | Time zone offset from UTC, in minutes. This is applied to the GPS time for logging and time-stamping of Blackbox logs | +| `failsafe_min_distance` | If failsafe happens when craft is closer than this distance in centimetres from home, failsafe will not execute regular failsafe_procedure, but will execute procedure specified in failsafe_min_distance_procedure instead. 0 = Normal failsafe_procedure always taken. | +| `failsafe_min_distance_procedure` | The failsafe procedure to initiate in Stage 2 when craft is closer to home than failsafe_min_distance. with values of `SET-THR`, `DROP`, `RTH`, `NONE`. See the Failsafe documentation. | +| `smartport_fuel_percent` | Along with `battery_capacity` variable allows sending SmartPort telemetry Fuel as available battery percentage | + +## New boards + +* Omnibus F4 Pro Corner +* DYS F4 Pro +* Matek F405 OSD. This requires slightly different firmware to the (also supported) Matek F405 AIO. Please see the board documentation. +* CLRACINGF4 AIR board +* Omnibus F7 V2 +* FuriousFPV WingF4 + +## Discontinued boards + +- CC3D +- NAZE (all revisions) + +## Receiver type changes + +For 1.7.3 and below receiver was chosen as a `feature` which was not very user friendly. In 1.8 this have changed to a single setting (`receiver_type`). Bear in mind that restoring pre-1.8 dumps will reset `receiver_type` to `NONE` leaving this to you to fix manually. + +## OSD related featured and fixes + +OSD includes numerous updates, fixes as well as improvements and has received quite significant work for this update, so we're dedicating a whole section in the release notes to it. + +Users **must to update the OSD font from the configurator** after upgrading to 1.8. Failing to do so will result in incorrectly displayed indicators, since a lot of new symbols have been added (a clear symptom will be blank spaces in the OSD where a decimal separator should appear). + +### General improvements and fixes + +* Improved refresh rate. +* Significantly reduced memory and CPU usage by the OSD subsystem. +* Made all OSD numeric fields fixed width. +* Make all OSD indicator previews look exactly the same in the configurator and in the actual OSD. This allows easily configuring all OSD indicators in a way they don't overlap. +* Added support for hardware based blinking. Makes all elements blink in sync. +* Screen is correctly cleared after exiting CMS and after hiding the stats shown after disarming. +* Enabling GPS will draw the GPS indicators even if the GPS hardware hasn't been detected. This allows configuring GPS related fields in the OSD even if the GPS module is not powered on. +* Improve artificial horizon drawing performance and fix flashing home direction arrow in its default position due to overlapping with the area cleared (but not actually used) by the indicator. +* Flight modes which can be combined with ANGLE, HORIZON and ACRO are now displayed in a separate indicator. This includes ALTHOLD in multirotors (in fixed wing ALTHOLD implies ANGLE) and HEADFREE modes. +* OSD now shows RTH (Return To Home) rather than RTL (Return To Launch) when RTH mode is active. + +### New OSD indicators + +* Combined "On time" / "Fly time" indicator shows "On time" while the aircraft is unarmed and "Fly time" while it's armed. This indicator is now on by default and the old separated indicators are disabled (can still be enabled in the configurator in the OSD tab). +* System messages indicator. Shows messages from several topics, including: additional flight mode information (AUTOTUNE and AUTOTRIM modes) reasons for not being able to arm, failsafe status when failsafe mode is active and navigation stages when the navigation system is controlling the aircraft. +* Average cell voltage shows the average voltage of each cell rather than the voltage of the whole battery. +* Time of the day indicator shows the current time. Use the new `tz_config` CLI variable to set your current timezone. It will show UTC time otherwise. +* Throttle / Automatic Throttle indicator shows the stick throttle position when the user is directly controlling the throttle while showing the actual throttle value sent to the motors while the navigation system is controlling the throttle output. +* Heading graph indicator shows the heading using a moving graph with the cardinal points rather than heading degrees. +* VTX channel displays the VTX current band and channel. Requires a VTX with SmartAudio or Tramp support. +* Efficiency indicator displays the current map drawn per travelled km. Requires a current sensor. + +* Artificial horizon roll direction can now be reversed. This is an experimental feature not available in the configurator and must be enabled using the `osd_artificial_horizon_reverse_roll` CLI variable. Feedback regarding this feature is highly appreciated. +* Artificial horizon crosshairs now has two different styles: the default crosshair or an aircraft symbol. This is an experimental feature not available in the configurator and must be configured using the `osd_crosshairs_style` CLI variable. Feedback regarding this feature is highly appreciated. +* Artificial horizon sidebars now support scrolling. Each bar can be made to scroll depending on variations on either ground speed, altitude or distance to home. Also, optional arrows can be enabled on top/bottom of the sidebar while it's scrolling. This is an experimental feature not available in the configurator and must be enabled using the `osd_left_sidebar_scroll`, `osd_right_sidebar_scroll` and `osd_sidebar_scroll_arrows` CLI variables. Feedback regarding this feature is highly appreciated. + +### Alarms + +* Added home distance alarm. Makes the home distance indicator blink over a certain distance. +* Negative altitude alarm. Makes the altitude indicator blink when negative altitude becomes greater than a certain value. Useful when taking off from elevated places (like the top of a mountain). + +### New statistics + +* Show current time and GPS home position in the armed screen (if available). Allows easily organising DVR recordings and matching them with BlackBox logs. +* Total fly time added to stats screen. +* Reason for disarming added to the stats screen. Can help diagnose hardware failures or other problems that might cause the aircraft to disarm automatically during a flight. + +## Other new features + +* [SYSTEM] SmartAudio and Trump VTX support. Band, channel and transmitter power can be changed from CMS +* [SYSTEM] Software emulated I2C made available for MATEK405 OSD board +* [GPS] GPS time is handled by the FC, with the option of a user-defined time-zone correction (either statically from configuration, or dynamically applied via MSP from ground station software) +* [RC] RC channels naming simplification. `AUX 1` renamed to `CH 5`, `AUX 2` to `CH 6` and so on. This means that restoring old `map` settings from the CLI will not work, for example TAER1234 is now TAER5678. The Configurator handles this transparently. +* [TELEMETRY] Multiple SmartPort improvements including MSP over SmartPort to allow configuration from TX (requires support from LUA scrips) +* [NAVIGATION] Automated navigation modes (RTH and WP) now override MOTOR_STOP. Regardless of user throttle stick position motors will remain running in automated modes. This is intended to prevent disarm during failsafe RTH. +* [RSSI] Change RSSI scale to be applicable to all RSSI sources +* [BATTERY] Allowed setting `current_meter_offset` to negative values +* [FAILSAFE] Add a minimum failsafe distance behavior that applies when the craft is close to home (distance configurable) +* [BLACKBOX] Log raw rcData to blackbox +* [BLACKBOX] Blackbox logs are automatically stamped with creation time from GPS data where available +* [OMNIBUS F4] Moved LED_STRIP to a dedicated connector available on these boards. + +## Bugs fixed + +* Fixed blinking in OSD indicators. +* Fixed ghosting of OSD indicators when moving them around in the configurator. The video was showing at the same time the new element at the new position while not erasing it from its old position. +* Fix bug with incorrect SPI bus speed causing suboptimal hardware performance +* Non-working AIRPLANE/TRICOPTER/GIMBAL on SPRacingF4 EVO board +* Fix drop out of the sky if RTH was initiated with throttle stick at zero (see new features) +* Fix bug with CRSF telemetry now showing consumed mAh +* Fix non-detected failsafe on KFC32 board with eLeReS receiver +* Fix incorrect RTH initial climb condition + +## Development Environment +* As introduced in 1.7.3, a ruby interpreter is required to build INAV +* On Cygwin, it is advisable not to have spaces in the compiler path +* The build environment is only tested on modern compilers (arm-none-eabi-gcc 6.3 and later). Use of older compilers such as 4.8 is not recommended, and may not even be possible. diff --git a/versioned_docs/version-8.0.1/1.9.0-Release-notes.md b/versioned_docs/version-8.0.1/1.9.0-Release-notes.md new file mode 100644 index 0000000..57e10a1 --- /dev/null +++ b/versioned_docs/version-8.0.1/1.9.0-Release-notes.md @@ -0,0 +1,183 @@ +--- +title: 1.9.0 Release Notes +--- + +Please read the release notes carefully and upgrade [INAV Configurator application](https://github.com/iNavFlight/inav-configurator/releases/tag/1.9.0). + +INAV is and will remain open-source and free, but you are more than welcome to [support the development](https://inavflight.github.io/supporting-inav/). + +This release was supported by our awesome sponsors [CarbonBird.com](http://www.CarbonBird.com), [Airbot](http://shop.myairbot.com/), [ADPM Drones](http://www.adpm.pro/) and a number of supporters on [Patreon](https://www.patreon.com/inavflight). + +## WARNINGS + +* If you are using HMC5883/HMC5983 compass it is advised to recalibrate. Please don't restore the old settings from the dump/diff script. + +## Known bugs +* todo + +## Renamed `PASSTHROUGH` flight mode (fixed wing) + +The `PASSTHROUGH` flight mode has been renamed to `MANUAL`. New settings also have been added to allow the use of different servo rates (or control weight) for the servos when flying without stabilization without using a programmable remote control. The exponential settings for roll/pitch and yaw controls are now also also independent from the exponential settings used for stabilized flight modes. See the `manual_*` settings in the CLI settings table below. The default settings make the `MANUAL` flight mode behave exactly as the old `PASSTHROUGH` flight mode. + +## Increased VBAT resolution + +The battery voltage resolution has been increased from 100mV to 10mV. In consequence the `vbat_scale`, `vbat_max_cell_voltage`, `vbat_warning_cell_voltage` and `vbat_min_cell_voltage` settings resolution has also been increased 10 fold allowing more precise battery voltage calibration and battery voltage thresholds. To restore old configuration settings users need to multiply their old setting values by 10. + +New defaults for these settings: +* `vbat_scale`: 1100 (was 110) +* `vbat_max_cell_voltage`: 424 (was 43) or 4.24V/cell +* `vbat_warning_cell_voltage`: 350 (was 35) or 3.5V/cell +* `vbat_min_cell_voltage`: 330 (was 33) or 3.3V/cell + +Users who were using the old defaults should not use the settings from their `dump` but use the new defaults instead. + +Users now have the option to display 1 or 2 decimals for battery voltages in the OSD display (see `osd_main_voltage_decimals` in the CLI settings table below). + +## Battery capacity monitoring + +It is now possible to display the remaining battery capacity in the OSD and also use the battery capacity thresholds (`battery_capacity_warning` and `battery_capacity_critical`) for battery alarms. + +For the capacity monitoring to work you need a current sensor (`CURRENT_METER` feature). For monitoring energy in milliWatt hour you also need voltage measurement (`VBAT` feature). For best results the current and voltage readings have to be calibrated. + +For the remaining battery capacity to be displayed users need to set the `battery_capacity` setting (>0) and the battery to be full when plugged in. If the `battery_capacity` setting is set to 0 the remaining battery capacity item in the OSD will display `NA` and the battery gauge will use an estimation based on the battery voltage (like it used to be) otherwise it will display the remaining battery capacity down to the `battery_capacity_critical` setting (battery considered empty). For the capacity thresholds to be used for alarms the `battery_capacity_warning` and `battery_capacity_critical` settings also needs to be set (>0) and the battery to be full the moment it is plugged in. The value are absolute meaning that `battery_capacity_warning` is the battery capacity left when the battery is entering the `warning` state and `battery_capacity_critical` is the battery capacity left when the battery is considered empty and entering the `critical` state. + +For the battery to be considered full the mean cell voltage of the battery needs to be above `vbat_max_cell_voltage - 140mV` (by default 4.1V). So a 3S battery will be considered full above 12.3V and a 4S battery above 16.24V. If the battery plugged in is not considered full the remaining battery capacity OSD item will show `NF` (Not Full). + +For the remaining battery capacity and battery gauge to be the most precise (linear relative to throttle from full to empty) when using battery capacity monitoring users should use the milliWatt hour unit for the battery capacity settings. The battery capacity settings unit can be set using the `battery_capacity_unit` setting (see the CLI parameters table below). + +## NAV Launch (airplane launch assistant) available as feature + +The mode can now be permanently enabled via the configurator or the CLI using `feature FW_LAUNCH` in this case `NAV LAUNCH` doesn't need to be enabled via a transmitter switch prior to arming freeing a switch for other uses. If you inadvertently disarm mid-air, `NAV LAUNCH` will be active again after arming again so, before raising the throttle again (you should lower the throttle to arm again) move pitch/roll stick and you will have full control back. If you have this feature enabled and for some reason you want to launch the plane manually just move pitch/roll stick right after arming and you have back full control for a manual launch. + +## CLI parameter renaming / new parameters + +New parameters have been introduced. Some CLI parameters were renamed to support new features or to better reflect their meaning: + +| Name | Description | +|------------------------|----------------------------------------------------------------| +| `rangefinder_median_filter` | Default is OFF | +| `failsafe_lights` | Enable or disable the lights when the `FAILSAFE` flight mode is enabled. The target needs to be compiled with `USE_LIGHTS` [ON/OFF]. Default is ON | +| `failsafe_lights_flash_period` | Time in milliseconds between two flashes when `failsafe_lights` is ON and `FAILSAFE` flight mode is enabled [40-65535]. Default is 1000ms. | +| `failsafe_lights_flash_on_time` | Flash lights ON time in milliseconds when `failsafe_lights` is ON and `FAILSAFE` flight mode is enabled. [20-65535]. Default is 100ms. | +| `battery_capacity` | Set the battery capacity in mAh or mWh (see `battery_capacity_unit`). Used to calculate the remaining battery capacity. Default is 0 | +| `battery_capacity_warning` | If the remaining battery capacity goes below this threshold the beeper will emit short beeps and the relevant OSD items will blink. Default is 0 | +| `battery_capacity_critical` | If the remaining battery capacity goes below this threshold the battery is considered empty and the beeper will emit long beeps. Default is 0 | +| `battery_capacity_unit` | Unit used for `battery_capacity`, `battery_capacity_warning` and `battery_capacity_critical` [MAH/MWH] (milliAmpere hour / milliWatt hour). Default is MAH | +| `manual_rc_expo` | Exponential value used for the PITCH/ROLL axes by the `MANUAL` flight mode [0-100]. Default is 70 | +| `manual_rc_yaw_expo` | Exponential value used for the YAW axis by the `MANUAL` flight mode. Default is 20 | +| `manual_pitch_rate` | Servo travel multiplier for the PITCH axis in `MANUAL` flight mode [0-100]%. Default is 100% | +| `manual_roll_rate` | Servo travel multiplier for the ROLL axis in `MANUAL` flight mode [0-100]%. Default is 100% | +| `manual_yaw_rate` | Servo travel multiplier for the YAW axis in `MANUAL` flight mode [0-100]%. Default is 100% | +| `gps_ublox_use_galileo` | Enable use of Galileo satellites. This is at the expense of other regional constellations, so benefit may also be regional. Requires M8N and Ublox firmware 3.x (or later) [OFF/ON]. Default is OFF | +| `smartport_fuel_unit` | Unit of the value sent with the `FUEL` ID through the S.Port telemetry. Replaces the `smartport_fuel_percent` setting [PERCENT/MAH/MWH]. Default is PERCENT | +| `osd_stats_energy_unit` | Unit used for the drawn energy in the OSD stats [MAH/WH] (milliAmpere hour/ Watt hour). Default is MAH | +| `osd_main_voltage_decimals` | Number of decimals for the battery voltages displayed in the OSD [1-2]. Default is 1 | +| `osd_wh_drawn_pos` | | +| `osd_bat_remaining_capacity_pos` | | +| `osd_bat_remaining_percent_pos` | | +| `osd_efficiency_mah_pos` | | +| `osd_efficiency_wh_pos` | | +| `display_force_sw_blink` | | +| `mag_to_use` | Allow to chose between built-in and external compass sensor if they are connected to separate buses. Currently only for REVO target | +| `nav_fw_launch_min_time` | Allow launch mode to execute at least this time (ms) and ignore stick movements [0-60000]. Default is 0 | +| `nav_fw_launch_max_altitude` | Altitude (centimeters) at which LAUNCH mode will be turned off and regular flight mode will take over [0-60000]. Default is 0 | + + +## New boards + +* Betaflight F3 +* Betaflight F4 +* FuriousFPV F35 Lightning (former FuriousFPV WingF4) +* Matek F722 +* Matek F405-CTR +* Holybro KAKUTE F4 +* Holybro KAKUTE F4 V2 +* Fortini F4 + +## New features + +* [COMPASS] Allow to chose between internal and external compass on REVO target ([@digitalentity], [#2522]) +* [COMPASS] Support for QMC5883 compass chips that incorrectly mimic the HMC58883 ([@digitalentity], [#2809]) +* [SYSTEM] Migrate to busDevice abstraction layer for better device access abstraction ([@digitalentity], [#2290]) +* [SYSTEM] Create dedicated F427 startup file ([@digitalentity], [#2559]) +* [MOTOLAB] Allow MOTOLAB target to be used for airplanes ([@shellixyz], [#2502]) +* [GPS] Enables use of Galileo satellites for NEO-M8N GPS units ([@stronnag], [#2583]) +* [CALIBRATION] Add API for Calibration tab in Configurator +* [OSD] Allow OSD mode to disable OSD ([@shellixyz], [#2676]) +* [OSD] Increase odometer accuracy ([@digitalentity], [#2757]) +* [OSD] Add more battery-related indicators (including efficiency) +* [LIGHTS] Add LIGHTS flight mode to enable/disable GPIO-driven equipment ([@shellixyz], [#2675]) +* [LAUNCH] Allow LAUNCH mode to ignore sticks for certain amount of time ([@shellixyz], [#2677]) +* [LAUNCH] Allow LAUNCH mode to be permanently enabled as FW_LAUNCH feature ([@giacomo892], [#2731]) +* [MSP] API to support smix/mmix configuration via Configurator ([@DzikuVx], [#2693]) +* [MSP] Add no-reply flag to allow MSP messages that don't need a response ([@digitalentity], [#2762]) +* [COMPASS] Enable QMC5883, MAG3110 and IST8310 on most of the targets ([@digitalentity], [#2699]) +* [AIRPLANE] Replace PASSTHROUGH with MANUAL flight mode ([@shellixyz], [#2661]) +* [BATTERY] Improve battery monitoring and resolution ([@shellixyz], [#2705]) +* [SYSTEM] Remove SoftSPI implementation since it's not used ([@DzikuVx], [#2726]) +* [SYSTEM] Allow in-flight adjustments of board alignment, cruise throttle and pitch2thr ([@shellixyz], [#2768]) +* [SYSTEM] Trace messages output for easier debugging ([@digitalentity], [#2691]) + +## Bugfixes + +* Fix flash overflow on F7 targets due to usage of flash_split ([@digitalentity], [#2535]) +* Update BLHeli passthrough to support BLHeli_32 +* Fix AK8963 compass support ([@digitalentity], [#2551]) +* Fix timer clash between motors and servos on PIKOBLX ([@shellixyz], [#2513]) +* Fix non-working UART7/8 +* Fix non-booting OMNIBUSF4 (some variants with MPU6500-family gyro) ([@shellixyz], [#2575]) +* Fix support for dataflash chips larger than 16MiB ([@digitalentity], [#2633]) +* Fix VCP issues on F7 targets ([@digitalentity], [#2647]) +* Fix potential buffer overflow in MSPv2 parsing ([@digitalentity], [#2689]) +* Fix OSD statistics displaying issues on NTSC screens ([@krzysztofmatula], [#2721]) +* Fix RCSplit not being detected (increase timeout) ([@digitalentity], [#2767]) +* Fix OSD blinking on some flawed OSD hardware (allow software blinking) ([@fiam], [#2452]) +* Fix P gains for Heading Hold not available in CLI ([@DzikuVx], [#2669]) +* Fix arming with AUTOTRIM enabled ([@giacomo892], [#2756]) +* Fix hardfault in ledstrip driver due to division by zero ([@digitalentity], [#2790]) +* Fix non-working channel forwarding on REVO ([@digitalentity], [#2870]) +* Fix midrc MSP min/max checks preventing to set midrc outside of 1401:1599 from the configurator ([@shellixyz], [#2865]) + +[@digitalentity]: https://github.com/digitalentity +[@DzikuVx]: https://github.com/DzikuVx +[@fiam]: https://github.com/fiam +[@giacomo892]: https://github.com/giacomo892 +[@shellixyz]: https://github.com/shellixyz +[@stronnag]: https://github.com/stronnag +[@shellixyz]: https://github.com/shellixyz +[@krzysztofmatula]: https://github.com/krzysztofmatula + +[#2290]: https://github.com/iNavFlight/inav/pull/2290 +[#2452]: https://github.com/iNavFlight/inav/pull/2452 +[#2583]: https://github.com/iNavFlight/inav/pull/2583 +[#2677]: https://github.com/iNavFlight/inav/pull/2677 +[#2691]: https://github.com/iNavFlight/inav/pull/2691 +[#2693]: https://github.com/iNavFlight/inav/pull/2693 +[#2726]: https://github.com/iNavFlight/inav/pull/2726 +[#2762]: https://github.com/iNavFlight/inav/pull/2762 +[#2731]: https://github.com/iNavFlight/inav/pull/2731 +[#2661]: https://github.com/iNavFlight/inav/pull/2661 +[#2705]: https://github.com/iNavFlight/inav/pull/2705 +[#2757]: https://github.com/iNavFlight/inav/pull/2757 +[#2675]: https://github.com/iNavFlight/inav/pull/2675 +[#2715]: https://github.com/iNavFlight/inav/pull/2715 +[#2559]: https://github.com/iNavFlight/inav/pull/2559 +[#2699]: https://github.com/iNavFlight/inav/pull/2699 +[#2522]: https://github.com/iNavFlight/inav/pull/2522 +[#2502]: https://github.com/iNavFlight/inav/pull/2502 +[#2676]: https://github.com/iNavFlight/inav/pull/2676 +[#2669]: https://github.com/iNavFlight/inav/pull/2669 +[#2756]: https://github.com/iNavFlight/inav/pull/2756 +[#2551]: https://github.com/iNavFlight/inav/pull/2551 +[#2535]: https://github.com/iNavFlight/inav/pull/2535 +[#2513]: https://github.com/iNavFlight/inav/pull/2513 +[#2575]: https://github.com/iNavFlight/inav/pull/2575 +[#2633]: https://github.com/iNavFlight/inav/pull/2633 +[#2647]: https://github.com/iNavFlight/inav/pull/2647 +[#2689]: https://github.com/iNavFlight/inav/pull/2689 +[#2721]: https://github.com/iNavFlight/inav/pull/2721 +[#2767]: https://github.com/iNavFlight/inav/pull/2767 +[#2790]: https://github.com/iNavFlight/inav/pull/2790 +[#2768]: https://github.com/iNavFlight/inav/pull/2768 +[#2809]: https://github.com/iNavFlight/inav/pull/2809 +[#2865]: https://github.com/iNavFlight/inav/pull/2865 diff --git a/versioned_docs/version-8.0.1/1.9.1-Release-notes.md b/versioned_docs/version-8.0.1/1.9.1-Release-notes.md new file mode 100644 index 0000000..73a155e --- /dev/null +++ b/versioned_docs/version-8.0.1/1.9.1-Release-notes.md @@ -0,0 +1,112 @@ +--- +title: 1.9.1 Release Notes +--- + +Please read the release notes carefully and upgrade [INAV Configurator application](https://github.com/iNavFlight/inav-configurator/releases/tag/1.9.3). + +INAV is and will remain open-source and free, but you are more than welcome to [support the development](https://inavflight.github.io/supporting-inav/). + +This release was supported by our awesome sponsors [CarbonBird.com](http://www.CarbonBird.com), [Airbot](http://shop.myairbot.com/), [ADPM Drones](http://www.adpm.pro/) and a number of supporters on [Patreon](https://www.patreon.com/inavflight). + +## WARNINGS + +* comparing to INAV 1.8 and below, scaling of `nav_mc_vel_xy_p` has been lowered by a factor of 5. Previous default was `200`, current default is `40`. When restoring configuration from INAV 1.8, divide `nav_mc_vel_xy_p` by **5**. The default value from INAV 1.9 (and a 1.9 setting that works for your machine) can be used without any change in 1.9.1. _Do not restore blindly from backup!_ + +## Known bugs +* todo + +## CLI parameter renaming / new parameters + +| Name | Description | +|------------------------|----------------------------------------------------------------| +| `align_mag_roll` | Set the external mag alignment on the roll axis (in 0.1 degree steps). If this value is non-zero, the compass is assumed to be externally mounted and both the board and on-board compass alignent (align_mag) are ignored. See also align_mag_pitch and align_mag_yaw. | +| `align_mag_pitch` | Same as align_mag_roll, but for the pitch axis. | +| `align_mag_yaw` | Same as align_mag_roll, but for the yaw axis. | +| `fw_tpa_time_constant ` | TPA smoothing and delay time constant to reflect non-instant speed/throttle response of the plane. Planes with low thrust/weight ratio generally need higher time constant. Default is zero for compatibility with old setups | +| `report_cell_voltage` | Makes telemetry in all protocols send the average cell voltage rather than full battery voltage. Replaces `frsky_vfas_cell_voltage` with the same semantics. | +| `serialrx_inverted` | Reverse the serial inversion of the serial RX protocol. When this value is OFF, each protocol will use its default signal. ON should be used only for custom or hacked receivers. Replaces the `sbus_inversion`, but it's applied to more protocols. | +| `telemetry_inverted` | Determines if the telemetry protocol default signal inversion is reversed. This should be OFF in most cases unless a custom or hacked RX is used. Replaces `telemetry_inversion`, which needed per protocol adjustments. + +## New boards + +* MATEKF405-WING (MATEKF405SE target) +* AIRBOT ASGARD32 F4 +* AIRBOT FIREWORKS V2 +* AIRBOT OMNIBUS F7 NXT + +## New features + +* Add support for arbitrarily aligned external compasses ([@fiam], [#2833]) +* Add SOFTSERIAL support on RX4/TX4 for MATEKF405 ([@shellixyz], [#2842]) +* Add MSP message for reading air speed ([@shellixyz], [#2853]) +* Add LEDSTRIP support to KAKUTEF4 target ([@digitalentity], [#2862]) +* Add trip distance element to OSD ([@shellixyz], [#2887]) +* Add FPort support ([@fiam], [#2915]) +* Simplify channel mapping ([@shellizyx], [#2947]) +* TPA smoothing and delayed response of throttle-based TPA ([@digitalentity], [#2966]) +* Allow TRICOPTER mix on AIRHEROF3 board ([@digitalentity], [#3067]) + +## Improvements + +* Bulk gyro/acc reads for better performance ([@digitalentity], [#2846]) +* Improve stats - reformat + add total energy and average efficiency ([@shellixyz], [#2852]) +* Save almost 7kB of RAM by reworking CMS ([@fiam], [#2881]) +* Quaternion IMU conversion ([@digitalentity], [#2894]) +* Current calculation is now more precise ([@shellixyz], [#2941]) +* Make MSP processing more robust ([@shellixyz], [#2948]) +* Move servo from S1 to S6 pin for MATEKF405 ([@alexeystn], [#2954]) +* Gyro sync denominator parameter has been deprecated ([@digitalentity], [#2958]) +* VCP Port driver improvements ([@digitalentity], [#3046]) +* IBUS telemetry reporting cell voltage ([@hali9], [#3041]) +* Decreased RC latency by removing unnecessary filtering ([@giacomo892], [#3057]) + +## Bugfixes + +* Fix ESC double initialization ([@shellixyz], [#2884]) +* Fix incorrect PWM output initialization on F7 causing no output on S6 on MatekF722 ([@digitalentity], [#2891]) +* Make FS mode take priority over any other modes in OSD display ([@fiam], [#2899]) +* Fix bug in MPU6500 accelerometer detection ([@digitalentity], [#2930]) +* Fix current not being correctly logged into BlackBox ([@shellixyz], [#2940]) +* Fix bug when saving servo params causing the servos not freeze ([@shellixyz], [#2950]) +* Fix flaperon mode incorrect direction of flaps ([@shellixyz], [#2961]) +* Fix OSD summary screen not displayed after long flight ([@shellixyz], [#2974]) +* Fix LTM scheduler not being set if telemetry port is shared ([@giacomo892], [#3030]) + +[@digitalentity]: https://github.com/digitalentity +[@DzikuVx]: https://github.com/DzikuVx +[@fiam]: https://github.com/fiam +[@giacomo892]: https://github.com/giacomo892 +[@shellixyz]: https://github.com/shellixyz +[@stronnag]: https://github.com/stronnag +[@hali9]: https://github.com/hali9 +[@alexeystn]: https://github.com/alexeystn + +[#2833]: https://github.com/iNavFlight/inav/pull/2833 +[#2842]: https://github.com/iNavFlight/inav/pull/2842 +[#2846]: https://github.com/iNavFlight/inav/pull/2846 +[#2852]: https://github.com/iNavFlight/inav/pull/2852 +[#2853]: https://github.com/iNavFlight/inav/pull/2853 +[#2862]: https://github.com/iNavFlight/inav/pull/2862 +[#2884]: https://github.com/iNavFlight/inav/pull/2884 +[#2887]: https://github.com/iNavFlight/inav/pull/2887 +[#2881]: https://github.com/iNavFlight/inav/pull/2881 +[#2891]: https://github.com/iNavFlight/inav/pull/2891 +[#2894]: https://github.com/iNavFlight/inav/pull/2894 +[#2899]: https://github.com/iNavFlight/inav/pull/2899 +[#2915]: https://github.com/iNavFlight/inav/pull/2915 +[#2930]: https://github.com/iNavFlight/inav/pull/2930 +[#2940]: https://github.com/iNavFlight/inav/pull/2940 +[#2941]: https://github.com/iNavFlight/inav/pull/2941 +[#2947]: https://github.com/iNavFlight/inav/pull/2947 +[#2948]: https://github.com/iNavFlight/inav/pull/2948 +[#2950]: https://github.com/iNavFlight/inav/pull/2950 +[#2954]: https://github.com/iNavFlight/inav/pull/2954 +[#2958]: https://github.com/iNavFlight/inav/pull/2958 +[#2961]: https://github.com/iNavFlight/inav/pull/2961 +[#2966]: https://github.com/iNavFlight/inav/pull/2966 +[#2974]: https://github.com/iNavFlight/inav/pull/2974 +[#3057]: https://github.com/iNavFlight/inav/pull/3057 +[#3030]: https://github.com/iNavFlight/inav/pull/3030 +[#3041]: https://github.com/iNavFlight/inav/pull/3041 +[#3046]: https://github.com/iNavFlight/inav/pull/3046 +[#3067]: https://github.com/iNavFlight/inav/pull/3067 diff --git a/versioned_docs/version-8.0.1/2.0.0-Release-Notes.md b/versioned_docs/version-8.0.1/2.0.0-Release-Notes.md new file mode 100644 index 0000000..a0d5259 --- /dev/null +++ b/versioned_docs/version-8.0.1/2.0.0-Release-Notes.md @@ -0,0 +1,493 @@ +--- +title: 2.0.0 Release Notes +--- + +Hello and welcome to INAV 2.0.0 Release! + +Please carefully read all of this document for the best possibile 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
INAV Official on Slack
+ +## Sponsors and supporters + +Ongoing development would be impossible without ongoing cooperation with manufacturers and support from the following businesses: + +- CarbonBird Robotics http://www.carbonbird.com/ +- Airbot https://store.myairbot.com/ +- ADPM Drones http://www.adpmdrones.com/ +- Matek Systems http://www.mateksys.com +- AKK https://www.akktek.com +- FuriousFPV http://furiousfpv.com/ + +## Important Notes + +* **DO NOT RESTORE ACCELEROMETER CALIBRATION VALUES FROM AN OLDER RELEASE (\<2.0)** Doing that will led to poor attitude estimation performance and may cause troubles. + +* When upgrading a full chip erase (when flashing) / `defaults` from CLI is advised. Be sure to backup your configuration and restore it wisely. + +* OSD layout configuration from releases < 2.0 is not compatible with the current one. Take a screenshot of your current OSD layout before upgrading and restore it manually from the configurator. + +* `current_meter_offset` setting changed scale. Need to be multiplied by 10 if it's value is coming from < INAV 2.0.0 + +* Position Hold 2D (only keeping horizontal position with GPS aid) has been dropped. Now Position Hold is only 3D and it will hold position and altitude. + +* **STM32F1 boards support has been dropped. NAZE/CC3D targets are no longer supported.** Please upgrade to F4/F7 board. F3 boards are not recommended since their flash space is almost full and they are likely to not receive all features on the next release. + +* **AIRMODE now excludes feature MOTOR_STOP in multicopters** This means that if you have AIRMODE enabled on a multi-rotor, the motors will most likely spin on arming, even with `feature MOTOR_STOP` (or the configurator "Don't spin the motors when armed") set. + +## Upgrading from 1.9.X + +1. Be sure to run the latest INAV 2.0 Configuration release. Download from [here] +2. Go to the CLI tab and copy and paste the `diff` output to a text file for later usage. +3. Go to the OSD tab and take a screenshot of the current layout +4. Flash INAV 2.0 enabling **full chip erase** . Now you FC should run INAV 2.0. Connect again and check firmware version. +5. Go to the Mixer tab and load and apply your desidered mixer. +6. Go back to your configuration text file and delete all lines starting with: mixer acczero accgain magzero osd. Adjust values to be adjusted noted in the release notes. +7. Open the CLI tab in the configurator and paste your cleaned up configuration in the text box and type `save` and press enter. The flight controller will now reboot. +8. Calibrate the accelerometer following the steps in the dedicated tab. Only first two steps needs to be made in the right order. +9. Calibration of the magnetometer should be done at the field. The magnetic field indoors can be distorted and led to a bad calibration. +10. Restore manually your OSD layout using the screenshot and upload the font you like using the dedicated button. +11. Carefully check all the configuration and check on the bench without installed propellers if everything looks good. In particular check if the model preview behave correctly when you are moving your model and check surfaces movements for an airplane. +12. Enjoy INAV 2.0.0 and explore its new features! + +## Walk through if TL;DR + +[https://www.youtube.com/watch?v=sHvItS2qKfk](https://www.youtube.com/watch?v=sHvItS2qKfk) + +## Known bugs + +* RadioLink R9DS (an possibly all RadioLink receivers) SBUS output cannot be used . They are not complying with standards and this results in them sending invalid SBUS packets to the FC ([#3563]) +* If INAV Configurator starts minimized, you have to manually remove content of `C:\Users%Your_UserNname%\AppData\Local\inav-configurator` [https://www.youtube.com/watch?v=XMoULyiFDp4](https://www.youtube.com/watch?v=XMoULyiFDp4) +* When running async (GYRO or ALL), gyro update will stick to PID loop frequency even if the configurator reports an higher frequency. You can check this via `tasks` command in CLI. It's strongly recommended not to run async and synchronize looptime to gyroscope. ([#3628]) + + +## New mixer and mixer GUI + +Starting from INAV 2.0.0, there are no predefined mixers on the firmware side: CLI command `mixer QUADX` will just not work. Mixer has to be configured using INAV Configurator 2.0 with __Mixer__ tab. + +Restoring from previous releases via CLI will not work correctly. Please use _Configurator 2.0_ mixer tab to configure it from scratch. + +See [https://www.youtube.com/watch?v=0cLFu-5syi0](https://www.youtube.com/watch?v=0cLFu-5syi0) + +It is no longer necessary to use `smix reverse` to reverse a tricopter tail servo; this can be done in the 2.0 Configurator or with the CLI `smix 0 5 2 -100 0`. + + +## Added `NAV CRUISE` flight mode (fixed wing) + +This release introduces the new `NAV CRUISE` flight mode. When enabled the machine will try to maintain the current heading and compensate for any external disturbances (2D CRUISE). User can adjust the flight direction directly with ROLL stick or with the YAW stick ( `nav_fw_cruise_yaw_rate` set the yawing rate at full stick deflection ). The latter will offer a smoother way to adjust the flight direction. If the mode is enabled in conjunction with `NAV ALTHOLD` also the current altitude will be maintained (3D CRUISE). Altitude can be adjusted, as usual, via the pitch stick. In both modes `ANGLE` mode is active and the plane will stay leveled. + +## OSD improvements + +OSD functionally got overhauled and improved. Now it is possible to have three OSD layouts and switch between them via an RC channel. Furthermore new two modes have been added: `map` and `radar`. + +* `map` mode draws the home centered, while the craft moves around. There are two available maps: one with the North pointing up and another one with the takeoff direction pointing up. +* `radar` mode draws the craft in the center and the home moving around. + +Those modes will enable the display of other aircraft flying in the vicinity in a future releases. + +It is now possible to display a lot of new data on the OSD: +- All the values adjustable in flight via RC. When a value is selected for adjustment it starts blinking. This means it is possible to select a lot of adjustments with a pot for example and know easily which one is being adjusted. +- Wind estimation +- Numeric attitude angles +- Cruise mode heading info +- Numeric heading to home +- New battery related data: estimated remaining time and distance before having to head home, sag compensated battery voltage, estimated battery impedance +- Outputs of the PID controllers + +## Added full VTX control via Smart Audio / TRAMP + +User can now select VTX settings from the configurator or via the OSD CMS. Furthermore `vtx_low_power_disarm` setting has been added. Setting it to `ON` will set the power to its minimum value on startup (usually 25mW) and increase it to `vtx_power` when arming and change it back to its lowest setting after disarming. Note that this setting can jeopardize the ability to find a lost quad using a strong signal coming from the VTX but on the other way it can prevent the VTX to overheat if you do quick flight cycles on the same battery. + `UNTIL_FIRST_ARM` will set the VTX to its minimum power, but once the craft is armed it will increase the output power to `vtx_power` and it will never decrease until the craft is power cycled. `OFF` will make the power output always to be set to the `vtx_power` setting. + +## Wind Estimation for Fixed Wing + +It is possible to show estimated wind speed and direction on the OSD. In particular both lateral and vertical indicators are present. This is an experimental feature, you are encouraged to use it and report any anomalies in the estimated wind speed. + +## Battery management related features + +These features have been added for helping with the battery management: +- Battery profile with optional automatic switching +- Sag compensated battery voltage and battery impedance calculation +- Estimation of the remaining flight time and distance before having to head home +- Automatic compensation of throttle command based on battery voltage to help maintain constant thrust regardless of the battery voltage +- The current sensor can be calibrated more accurately (increased offset voltage resolution: 0.1mV instead of 1mV). If you'd like to keep your `current_meter_offset` value from an old config you need to multiply it by 10). + +You can read more about these feature in the [battery documentation](https://github.com/iNavFlight/inav/blob/development/docs/Battery.md) + +## CLI parameter renaming / new parameters + +| Name | Description | +|------------------------|----------------------------------------------------------------| +| `nav_fw_cruise_yaw_rate` | Max YAW rate when NAV CRUISE mode is enabled (0=disable control via yaw stick) [dps] | +| `gyro_stage2_lowpass_hz` | Software based second stage lowpass filter for gyro. Value is cutoff frequency (Hz). Currently experimental +| `name` | The craft name is now a `set` value. `name MYCRAFT` is replaced by `set name = MYCRAFT`. +| `switch_disarm_delay` | Defines a delay for switch disarming setting (default 150ms, PR #3118) **For better safety, a value of at least 250ms is recommended** +| `inav_reset_home` | Defines when the home position is automatically reset, default is `EACH_ARM`. Allowed values: `NEVER`, `FIRST_ARM`, `EACH_ARM` +| `model_preview_type` | Defines the aircraft type. This is advisory for display purposes only (Configurator, Ground Control Stations) and has no affect on aircraft behaviour. This setting takes the numeric values equivalent to the old 'mixer'. | +| `platform_type` | Defines the aircraft (vehicle) type. This value affects the vehicle performance. Default is `MULTIROTOR`, allowed values: `MULTIROTOR`, `AIRPLANE`, `HELICOPTER`, `TRICOPTER`, `ROVER`, `BOAT`. Only `MULTIROTOR`, `AIRPLANE` and `TRICOPTER` are implemented in INAV 2.0. | +| has_flaps | Defines is UAV is capable of having flaps. If ON and AIRPLANE `platform_type` is used, **FLAPERON** flight mode will be available for the pilot | +| vtx_band | Configure the VTX band. Set to zero to use `vtx_freq`. Bands: 1: A, 2: B, 3: E, 4: F, 5: Race. | +| vtx_channel | Channel to use within the configured `vtx_band`. Valid values are [1, 8]. | +| vtx_freq | Set the VTX frequency using raw MHz. This parameter is ignored unless `vtx_band` is 0. | +| vtx_halfduplex | Use half duplex UART to communicate with the VTX, using only a TX pin in the FC. | +| vtx_low_power_disarm | When the craft is disarmed, set the VTX to its lowest power. `ON` will set the power to its minimum value on startup, increase it to `vtx_power` when arming and change it back to its lowest setting after disarming. `UNTIL_FIRST_ARM` will start with minimum power, but once the craft is armed it will increase to `vtx_power` and it will never decrease until the craft is power cycled. | +| vtx_pit_mode_freq | Frequency to use (in MHz) when the VTX is in pit mode. | +| vtx_power | VTX RF power level to use. The exact number of mw depends on the VTX hardware. | +| nav_rth_home_altitude | Aircraft will climb/descend to this altitude after reaching home if landing is not enabled. Set to 0 to stay at `nav_rth_altitude` (default) [cm] | +| nav_fw_cruise_speed | Speed for the plane/wing at cruise throttle used for remaining flight time/distance estimation in cm/s | +| cruise_power | Power draw at cruise throttle used for remaining flight time/distance estimation in 0.01W unit | +| idle_power | Power draw at zero throttle used for remaining flight time/distance estimation in 0.01W unit | +| rth_energy_margin | Energy margin wanted after getting home (percent of battery energy capacity). Use for the remaining flight time/distance calculation | +| osd_estimations_wind_compensation | Use wind estimation for remaining flight time/distance estimation | +| nav_fw_allow_manual_thr_increase | Enable the possibility to manually increase the throttle in auto throttle controlled modes for fixed wing | +| bat_voltage_src | Chose between raw and sag compensated battery voltage to use for battery alarms and telemetry. Possible values are `RAW` and `SAG_COMP` | +| bat_cells | Number of cells of the battery (0 = autodetect), see battery documentation | +| vbat_cell_detect_voltage | Maximum voltage per cell, used for auto-detecting the number of cells of the battery in 0.01V units, default is 4.30V | +| align_opflow | Optical flow module alignment (default CW0_DEG_FLIP) | +| fw_min_throttle_down_pitch | Automatic pitch down angle when throttle is at 0 in angle mode. Progressively applied between cruise throttle and zero throttle | +| tz_automatic_dst | Automatically add Daylight Saving Time to the GPS time when needed or simply ignore it. Includes presets for EU and the USA - if you live outside these areas it is suggested to manage DST manually via `tz_offset`. | +| motor_accel_time | Minimum time for the motor(s) to accelerate from 0 to 100% throttle (ms) [0-1000] | +| motor_decel_time | Minimum time for the motor(s) to deccelerate from 100 to 0% throttle (ms) [0-1000] | +| thr_comp_weight | Weight used for the throttle compensation based on battery voltage. | +| nav_overrides_motor_stop | Setting to OFF combined with MOTOR_STOP feature will allow user to stop motor when in autonomous modes. On most planes this setting is likely to cause a stall. Use caution | + +## New boards + +* Added support for MATEKF411 mini and MATEKF411-WING ([@fiam], [#3146]) +* Added support for DALRCF405 ([@nyway], [#3184]) +* Add CLRACINGF4AIRV3 to CLRACINGF4AIR target ([@bnn1044], [#3239]) + +## New features + +* Added support for wind estimation on fixed wing aircrafts ([@fiam] [@giacomo892], [#2450] [#3522]) +* Added support for multiple OSD layouts, make all OSD items and alarms configurable via CMS ([@fiam], [#2955] [#3264] [#3420] [#3351] [#3330] [#3305]) +* Added Automatic Daylight Saving Time support ([@nmaggioni], [#3072] [#3262]) +* Added Map and Radar modes to OSD ([@fiam], [#3178] [#3196] [#3241] [#3385] [#3337]) +* New SBUS driver compatible with FrSky R9 receivers ( [@digitalentity] , [#3110] ) +* Gyro stage 2 filter (FIR2) ported from Betaflight ( [@DzikuVx] , [#3191] [#3208] ) +* __Experimental__ Terrain Following mode (aka `SURFACE` mode). If `AltHold` mode is enabled together with `SURFACE` mode, UAV will try to keep ground altitude reported by rangefinder instead of baro/GPS absolute altitude. ([@digitalentity], [#3202]) +* __Experimental__ OPFLOW mode, which allows navigation for by tracking the floor rather than using GPS ([@digitalentity], [#3164]) +* Added `NAV CRUISE` flight mode (fixed wing) ( [@giacomo892] , [@shellixyz] , [#3311] [#3458]) +* New VTX features, like automatic power switching when arm/disarm ([@fiam] , [#3401]) +* Battery profiles ([@shellixyz], [#2749] [#3366]) +* Display of estimated remaining flight time and distance on the OSD ([@shellixyz], [#2863] [#3465]) +* FW: Allow manual throttle increase in auto controlled modes ([@shellixyz], [#3278]) +* FW: Automatically pitch down in angle mode when throttle is bellow cruise throttle ([@shellixyz], [#3290]) +* FW: Disable ALTHOLD on user motor stop request (throttle bellow `min_check`) ([@shellixyz], [#3298]) +* Sag compensated battery voltage and voltage based throttle compensation ([@shellixyz], [#3319] [#3364] [#3365] [#3367] [#3375] [#3377] [#3414] [#3481] [#3486]) +* Detect accelerometer vibration ([@digitalentity], [#3210]) +* Possibility to stop motor manually (aka MOTOR_STOP) in navigation modes ([@digitalentity], [#3349]) +* Add support for LIS3MDL compass sensor ([@bforbort], [#3683]) +* Check settings for respecting min/max values at boot time ([@fiam], [#3619]) + +## Improvements + +* Replace rssi_scale and rssi_invert with rssi_min and rssi_max ([@fiam] , [#3613]) +* Multirotor acro performance improved ([@digitalentity] , [#2893]) +* Increased current sensor voltage offset resolution ([@shellixyz], [#2945]) +* Add driver for BOSCH BMI180 gyro ([@digitalentity], [#2951]) +* Mixer refactoring - FC is now unaware of anything besides mixer rules ( [@DzikuVx] , [#2978] ) +* Added support for IST8308 compass ([@McGiverGim], [#3039]) +* Fixed wing Autotrim does not dive /climb /roll after Autotrim is done ( [@DzikuVx] , [#3104] ) +* Modify FrSky D-series telemetry for compatibility with Lua script ([@alexeystn], [#3116]) +* Refactor timer drivers to simplify target definitions ([@digitalentity], [#3120]) +* Make the delay for disarming via switch configurable ([@digitalentity] [@stronnag], [#3118] [#3478]) +* Add `watts` symbol to OSD font ([@alexeystn], [#3132]) +* Make cell count detection more robust ([@shellixyz], [#3166]) +* Stop the battery alarm after disarming ([@shellixyz], [#3168]) +* Add pitch and roll angles to the OSD ([@shellixyz], [#3169]) +* gcc 8 support ([@stronnag], [#3172]) +* Prepend home icon to the distance to home in the OSD ([@fiam], [#3173]) +* Add new parameter for controlling how the home position is reset ([@fiam], [#3183]) +* Add driver for LPS25HB barometers ([@digitalentity], [#3192]) +* Add support for displaying the debug[] array in the OSD ([@fiam], [#3197]) +* Configure accelerometers in 16G mode ([@digitalentity], [#3203]) +* Send GPS related sensors via Smarport and FPort even before a GPS fix is acquired ([@fiam], [#3207]) +* Add SOFTSERIAL support on TX6 for OMNIBUSF4V3 target ([@krzysztofmatula], [#3222]) +* Increase maximum value displayed by the OSD efficiency indicator ([@shellixyz], [#3237]) +* Make the ROLL/PITCH/YAW PID values blink in the OSD when the corresponding RC adjustment is selected ([@shellixyz] [@fiam], [#3252] [#3454] [#3408] [#3409]) +* Added support for limiting throttle rate ([@digitalentity], [#3257]) +* make isAmperageConfigured respect FEATURE_CURRENT_METER and not just current_meter_type ([@teckel12], [#3265]) +* tidy up blackbox formatting of dterm_setpoint_weight ([@stronnag], [#3266]) +* ADC samples averaging ([@mluessi], [#3268]) +* Fix NAV_STATE enum values ([@fiam], [#3274]) +* Move build-stamp and generated files to obj/main/$(TARGET) ([@fiam], [#3275]) +* Improve attitude angle OSD display ([@shellixyz], [#3281]) +* Add MPU6000 support to FIREWORKSV2 target ([@digitalentity], [#3294]) +* NAV_LAUNCH extra safety ([@giacomo892], [#3303]) +* Disable arming in AH for FW unless launch mode is enabled ([@giacomo892], [#3304]) +* Disable RC adjustments while in FAILSAFE mode ([@shellixyz], [#3318]) +* Add BB logging of FW navigation PIDs ([@shellixyz], [#3326] [#3396] [#3492]) +* Fix ALTHOLD initial climb when enabled ([@shellixyz], [#3327]) +* I2C rangefinder rename and docs update ([@DzikuVx], [#3328]) +* Cleanup of unused functions ([@DzikuVx], [#3331]) +* Round rather than truncate when updating GPS_directionToHome ([@fiam], [#3336]) +* Refactor position estimation code. Add support for optic flow for position estimation ([@digitalentity], [#3350]) +* FW: Require turn assistant for nav modes using NAV_CTL_ALT ([@shellixyz], [#3379]) +* Add cruise mode heading adjustment and heading error OSD indicators ([@shellixyz], [#3380]) +* nav_fw_pitch2thr description adjustment ([@danarrib], [#3382]) +* Make the OSD home arrow closer to the actual home direction ([@fiam], [#3387]) +* Improve video system selection ([@shellixyz], [#3392]) +* Add adjustments and corresponding OSD items ([@shellixyz] [@fiam], [#3393] [#3410]) +* Lighten OMNIBUS (F3) target ([@shellixyz], [#3394]) +* Add OSD items to display nav PIDs outputs ([@shellixyz], [#3395]) +* Add OSD item to show heading correction to go home ([@shellixyz], [#3411]) +* Add support for string settings, make "name" a setting rather an a CLI command ([@fiam], [#3428] [#3461]) +* Implement the nav_rth_home_altitude setting ([@shellixyz], [#3431]) +* When editing PID profiles from CMS, change the profile immediately ([@fiam], [#3433]) +* Disable RC adjustments when the trigger channel goes out of the range ([@fiam], [#3443]) +* Better GPS accuracy reading for FrSky telemetry ([@teckel12], [#3446]) +* MATEKF722 updates from @MATEKSYS ([@fiam], [#3452]) +* Add support for builds with a version suffix ([@fiam], [#3460]) +* Add LEDSTRIP support to SPRACINGF3NEO target ([@Garogat], [#3475]) +* Fix broken tests, require them to pass in Travis checks ([@fiam], [#3504]) +* Replace feature(FEATURE_CURRENT_METER) by isAmperageConfigured() where it makes sense ([@shellixyz], [#3510]) +* The `failsafe_throttle_low_delay` setting default is now 0 ([@shellixyz], [#3512]) +* Remove posZ constrain to int16 for BB ([@giacomo892], [#3513]) +* Log estimated wind to blackbox ([@giacomo892], [#3522]) + +## Removed features: + +* Feature `CHANNEL_FORWARDING` has been removed, it can be implemented using new mixer GUI in Configurator +* Feature `SERVO_GIMBAL` has been removed, it can be implemented using new mixer GUI in Configurator +* The `mid_rc` CLI variable has been removed, and the setting removed from the configurator. If necessary (e.g.Futaba TX), the same effect can be achieved using `rxrange` settings. + +## Bugfixes + +* Avoid to delete navigation modes if MAG is not available ([@shellixyz], [#2984]) +* Prevent out of time ARMED message in the OSD when arming with the OSD disabled ([@shellixyz], [#3098]) +* Allow using CMS while OSD is disabled ([@shellixyz], [#3099]) +* Fix current sensor overflow ([@shellixyz], [#3131]) +* Remove YAW inversion in 3D mode for vehicles that don't need it ([@eephyne], [#3128]) +* Fix vertical alignment of ARMED screen in OSD when using NTSC ([@fiam], [#3149]) +* Make the total trip distance OSD item work when no current sensor is present ([@shellixyz], [#3163]) +* Add missing OSD alarm settings from CLI ([@shellixyz], [#3182]) +* Fix "sensor lost" problems when using FPort telemetry ([@fiam], [#3206]) +* MATEKF405: As requested in #3223 S5 is no longer used for FW servos ([@DzikuVx], [#3224]) +* Fix outputs 5 and 6 in SPRACINGF3 ([@shellixyz], [#3236]) +* Correct home yaw when a valid heading is acquired ([@fiam], [#3247]) +* Fix logging of negative altitudes in BlackBox logs ([@stronnag], [#3250]) +* Properly round servo values after applying servo filtering ([@fiam], [#3276]) +* Fix and simplify `applyFixedWingPitchRollThrottleController()` ([@shellixyz], [#3297]) +* change year base for RTC time_t to correct leap processing ([@stronnag], [#3307]) +* Make FPort stop one sensor cycle every 3 ([@fiam], [#3308]) +* Fix RTH hover above home (can't keep altitude) ([@shellixyz], [#3332]) +* Fix FF_PIKOF4 and FF_PIKOF4OSD targets ([@shellixyz], [#3333]) +* remove unneeded rxConfig from sbusChannelsInit and fix up callers ([@stronnag], [#3338]) +* Fix potential overflow in energy metering ([@shellixyz], [#3342]) +* Reset disarm reason at moment of arming ([@digitalentity], [#3360]) +* Fix support for AK8975 MAG ([@fiam], [#3413]) +* Gyro SPI bus fix according to OmnibusF4-nano v8 schematics ([@digitalentity], [#3426]) +* Fix VTX device type reported via MSP ([@fiam], [#3429]) +* Add missing break when adjusting ADJUSTMENT_RC_YAW_EXPO ([@fiam], [#3430]) +* Work around compiler bug, fix MSP2_INAV_ANALOG and convert amperage from int32_t to int16_t ([@shellixyz], [#3469]) +* Prevent time comparison overflow in S.Port driver ([@fiam], [#3536]) +* Fix automatic DST support ([@fiam], [#3542]) +* PWM driver - startup value fix (fixes servo twitching at startup) ([@marbalon], [#3540]) +* Fix FrSky HDOP range ([@teckel12], [#3519]) +* Fix division by 0 in generateThrottleCurve() ([@shellixyz], [#3502]) +* Fix current BB logging and improve battery code ([@shellixyz], [#3490]) +* Add definition for MAX_SPI_SPEED to limit spi seed if defined for target ([@marbalon], [#3532]) +* Fix incorrect axis convention (incompliance with datasheet) for IST8310 compass ([@digitalentity], [#3546]) +* Fix a rare edge case where RC receiver failsafe channel values may leak into AUX mode switching and cause a disarm ([@digitalentity], [#3482]) +* Add workaround for AKK VTX with S.Audio bug ([@fiam], [#3633]) +* Fix orientation of the drivers for AK8963, AK8975 and MPU9250 MAG ([@fiam], [#3447]) +* Fix PCA9685 support ([@DzikuVx], [#3744]) + +## Developer Notes + +Due to a beneficial change in the build environment (generated files are stored per target, not in a common area), it is necessary to remove a couple of files from any older branches (these files are generated automatically by the build). +``` +# on a Posix O/S +rm -f src/main/fc/settings_generated.[ch] +``` + +[@alexeystn]: https://github.com/alexeystn +[@digitalentity]: https://github.com/digitalentity +[@DzikuVx]: https://github.com/DzikuVx +[@eephyne]: https://github.com/eephyne +[@fiam]: https://github.com/fiam +[@giacomo892]: https://github.com/giacomo892 +[@hali9]: https://github.com/hali9 +[@nmaggioni]: https://github.com/nmaggioni +[@nyway]: https://github.com/nyway +[@shellixyz]: https://github.com/shellixyz +[@stronnag]: https://github.com/stronnag +[@mluessi]: https://github.com/mluessi +[@Garogat]: https://github.com/Garogat +[@teckel12]: https://github.com/teckel12 +[@bnn1044]: https://github.com/bnn1044 +[@krzysztofmatula]: https://github.com/krzysztofmatula +[@danarrib]: https://github.com/danarrib +[@marbalon]: https://github.com/marbalon + +[#2450]: https://github.com/iNavFlight/inav/pull/2450 +[#2893]: https://github.com/iNavFlight/inav/pull/2893 +[#2951]: https://github.com/iNavFlight/inav/pull/2951 +[#2955]: https://github.com/iNavFlight/inav/pull/2955 +[#2978]: https://github.com/iNavFlight/inav/pull/2978 +[#2995]: https://github.com/iNavFlight/inav/pull/2995 +[#3039]: https://github.com/iNavFlight/inav/pull/3039 +[#3072]: https://github.com/iNavFlight/inav/pull/3072 +[#3098]: https://github.com/iNavFlight/inav/pull/3098 +[#3099]: https://github.com/iNavFlight/inav/pull/3099 +[#3104]: https://github.com/iNavFlight/inav/pull/3104 +[#3110]: https://github.com/iNavFlight/inav/pull/3110 +[#3118]: https://github.com/iNavFlight/inav/pull/3118 +[#3120]: https://github.com/iNavFlight/inav/pull/3120 +[#3128]: https://github.com/iNavFlight/inav/pull/3128 +[#3131]: https://github.com/iNavFlight/inav/pull/3131 +[#3132]: https://github.com/iNavFlight/inav/pull/3132 +[#3146]: https://github.com/iNavFlight/inav/pull/3146 +[#3149]: https://github.com/iNavFlight/inav/pull/3149 +[#3163]: https://github.com/iNavFlight/inav/pull/3163 +[#3164]: https://github.com/iNavFlight/inav/pull/3164 +[#3166]: https://github.com/iNavFlight/inav/pull/3166 +[#3169]: https://github.com/iNavFlight/inav/pull/3169 +[#3173]: https://github.com/iNavFlight/inav/pull/3173 +[#3178]: https://github.com/iNavFlight/inav/pull/3178 +[#3183]: https://github.com/iNavFlight/inav/pull/3183 +[#3184]: https://github.com/iNavFlight/inav/pull/3184 +[#3191]: https://github.com/iNavFlight/inav/pull/3191 +[#3192]: https://github.com/iNavFlight/inav/pull/3192 +[#3196]: https://github.com/iNavFlight/inav/pull/3196 +[#3202]: https://github.com/iNavFlight/inav/pull/3202 +[#3203]: https://github.com/iNavFlight/inav/pull/3203 +[#3206]: https://github.com/iNavFlight/inav/pull/3206 +[#3207]: https://github.com/iNavFlight/inav/pull/3207 +[#3208]: https://github.com/iNavFlight/inav/pull/3208 +[#3236]: https://github.com/iNavFlight/inav/pull/3236 +[#3237]: https://github.com/iNavFlight/inav/pull/3237 +[#3241]: https://github.com/iNavFlight/inav/pull/3241 +[#3250]: https://github.com/iNavFlight/inav/pull/3250 +[#3257]: https://github.com/iNavFlight/inav/pull/3257 +[#3262]: https://github.com/iNavFlight/inav/pull/3262 +[#3264]: https://github.com/iNavFlight/inav/pull/3264 +[#3276]: https://github.com/iNavFlight/inav/pull/3276 +[#3311]: https://github.com/iNavFlight/inav/pull/3311 +[#2984]: https://github.com/iNavFlight/inav/pull/2984 +[#3512]: https://github.com/iNavFlight/inav/pull/3512 +[#2749]: https://github.com/iNavFlight/inav/pull/2749 +[#2863]: https://github.com/iNavFlight/inav/pull/2863 +[#2945]: https://github.com/iNavFlight/inav/pull/2945 +[#3168]: https://github.com/iNavFlight/inav/pull/3168 +[#3182]: https://github.com/iNavFlight/inav/pull/3182 +[#3252]: https://github.com/iNavFlight/inav/pull/3252 +[#3268]: https://github.com/iNavFlight/inav/pull/3268 +[#3278]: https://github.com/iNavFlight/inav/pull/3278 +[#3290]: https://github.com/iNavFlight/inav/pull/3290 +[#3298]: https://github.com/iNavFlight/inav/pull/3298 +[#3318]: https://github.com/iNavFlight/inav/pull/3318 +[#3319]: https://github.com/iNavFlight/inav/pull/3319 +[#3326]: https://github.com/iNavFlight/inav/pull/3326 +[#3327]: https://github.com/iNavFlight/inav/pull/3327 +[#3332]: https://github.com/iNavFlight/inav/pull/3332 +[#3333]: https://github.com/iNavFlight/inav/pull/3333 +[#3342]: https://github.com/iNavFlight/inav/pull/3342 +[#3364]: https://github.com/iNavFlight/inav/pull/3364 +[#3365]: https://github.com/iNavFlight/inav/pull/3365 +[#3366]: https://github.com/iNavFlight/inav/pull/3366 +[#3367]: https://github.com/iNavFlight/inav/pull/3367 +[#3375]: https://github.com/iNavFlight/inav/pull/3375 +[#3377]: https://github.com/iNavFlight/inav/pull/3377 +[#3379]: https://github.com/iNavFlight/inav/pull/3379 +[#3380]: https://github.com/iNavFlight/inav/pull/3380 +[#3392]: https://github.com/iNavFlight/inav/pull/3392 +[#3393]: https://github.com/iNavFlight/inav/pull/3393 +[#3394]: https://github.com/iNavFlight/inav/pull/3394 +[#3395]: https://github.com/iNavFlight/inav/pull/3395 +[#3396]: https://github.com/iNavFlight/inav/pull/3396 +[#3411]: https://github.com/iNavFlight/inav/pull/3411 +[#3414]: https://github.com/iNavFlight/inav/pull/3414 +[#3431]: https://github.com/iNavFlight/inav/pull/3431 +[#3454]: https://github.com/iNavFlight/inav/pull/3454 +[#3458]: https://github.com/iNavFlight/inav/pull/3458 +[#3465]: https://github.com/iNavFlight/inav/pull/3465 +[#3469]: https://github.com/iNavFlight/inav/pull/3469 +[#3481]: https://github.com/iNavFlight/inav/pull/3481 +[#3486]: https://github.com/iNavFlight/inav/pull/3486 +[#3492]: https://github.com/iNavFlight/inav/pull/3492 +[#3510]: https://github.com/iNavFlight/inav/pull/3510 +[#3197]: https://github.com/iNavFlight/inav/pull/3197 +[#3504]: https://github.com/iNavFlight/inav/pull/3504 +[#3478]: https://github.com/iNavFlight/inav/pull/3478 +[#3443]: https://github.com/iNavFlight/inav/pull/3443 +[#3475]: https://github.com/iNavFlight/inav/pull/3475 +[#3446]: https://github.com/iNavFlight/inav/pull/3446 +[#3460]: https://github.com/iNavFlight/inav/pull/3460 +[#3428]: https://github.com/iNavFlight/inav/pull/3428 +[#3461]: https://github.com/iNavFlight/inav/pull/3461 +[#3452]: https://github.com/iNavFlight/inav/pull/3452 +[#3239]: https://github.com/iNavFlight/inav/pull/3239 +[#3222]: https://github.com/iNavFlight/inav/pull/3222 +[#3413]: https://github.com/iNavFlight/inav/pull/3413 +[#3426]: https://github.com/iNavFlight/inav/pull/3426 +[#3433]: https://github.com/iNavFlight/inav/pull/3433 +[#3430]: https://github.com/iNavFlight/inav/pull/3430 +[#3429]: https://github.com/iNavFlight/inav/pull/3429 +[#3410]: https://github.com/iNavFlight/inav/pull/3410 +[#3420]: https://github.com/iNavFlight/inav/pull/3420 +[#3385]: https://github.com/iNavFlight/inav/pull/3385 +[#3387]: https://github.com/iNavFlight/inav/pull/3387 +[#3116]: https://github.com/iNavFlight/inav/pull/3116 +[#3408]: https://github.com/iNavFlight/inav/pull/3408 +[#3409]: https://github.com/iNavFlight/inav/pull/3409 +[#3382]: https://github.com/iNavFlight/inav/pull/3382 +[#3281]: https://github.com/iNavFlight/inav/pull/3281 +[#3210]: https://github.com/iNavFlight/inav/pull/3210 +[#3294]: https://github.com/iNavFlight/inav/pull/3294 +[#3336]: https://github.com/iNavFlight/inav/pull/3336 +[#3360]: https://github.com/iNavFlight/inav/pull/3360 +[#3350]: https://github.com/iNavFlight/inav/pull/3350 +[#3351]: https://github.com/iNavFlight/inav/pull/3351 +[#3224]: https://github.com/iNavFlight/inav/pull/3224 +[#3297]: https://github.com/iNavFlight/inav/pull/3297 +[#3308]: https://github.com/iNavFlight/inav/pull/3308 +[#3172]: https://github.com/iNavFlight/inav/pull/3172 +[#3266]: https://github.com/iNavFlight/inav/pull/3266 +[#3337]: https://github.com/iNavFlight/inav/pull/3337 +[#3338]: https://github.com/iNavFlight/inav/pull/3338 +[#3307]: https://github.com/iNavFlight/inav/pull/3307 +[#3330]: https://github.com/iNavFlight/inav/pull/3330 +[#3331]: https://github.com/iNavFlight/inav/pull/3331 +[#3247]: https://github.com/iNavFlight/inav/pull/3247 +[#3305]: https://github.com/iNavFlight/inav/pull/3305 +[#3328]: https://github.com/iNavFlight/inav/pull/3328 +[#3265]: https://github.com/iNavFlight/inav/pull/3265 +[#3303]: https://github.com/iNavFlight/inav/pull/3303 +[#3304]: https://github.com/iNavFlight/inav/pull/3304 +[#3274]: https://github.com/iNavFlight/inav/pull/3274 +[#3275]: https://github.com/iNavFlight/inav/pull/3275 +[#3401]: https://github.com/iNavFlight/inav/pull/3401 +[#3536]: https://github.com/iNavFlight/inav/pull/3536 +[#3542]: https://github.com/iNavFlight/inav/pull/3542 +[#3519]: https://github.com/iNavFlight/inav/pull/3519 +[#3490]: https://github.com/iNavFlight/inav/pull/3490 +[#3502]: https://github.com/iNavFlight/inav/pull/3502 +[#3522]: https://github.com/iNavFlight/inav/pull/3522 +[#3532]: https://github.com/iNavFlight/inav/pull/3532 +[#3513]: https://github.com/iNavFlight/inav/pull/3513 +[#3546]: https://github.com/iNavFlight/inav/pull/3546 +[#3522]: https://github.com/iNavFlight/inav/pull/3522 +[#3563]: https://github.com/iNavFlight/inav/issues/3563 +[#3349]: https://github.com/iNavFlight/inav/pull/3349 +[#3628]: https://github.com/iNavFlight/inav/issues/3628 + +[here]: https://github.com/iNavFlight/inav-configurator/releases diff --git a/versioned_docs/version-8.0.1/2.1.0-Release-Notes.md b/versioned_docs/version-8.0.1/2.1.0-Release-Notes.md new file mode 100644 index 0000000..d02c7ad --- /dev/null +++ b/versioned_docs/version-8.0.1/2.1.0-Release-Notes.md @@ -0,0 +1,241 @@ +--- +title: 2.1.0 Release Notes +--- + +Hello and welcome to INAV 2.1.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
+ +Support developers for free by checking out from the following stores after having clicked on the following links: + + + + + + + + +
Support us on Banggood
+ +## Important Notes + +1. INAV 2.1 is the last release of INAV that fully supports **F3** and especially **Omnibus F3** boards. Due to the lack of flash and RAM, future versions of INAV will either remove functions on F3 or not support those boards at all. STM32F3 are strongly discouraged for new builds and existing builds should be upgraded to F7 boards +2. Feature **AIRMODE** is enabled by default on all targets! There is no need to change that on _Fixed Wings_ at all. On _Multirotors_, if there a need to do so, users might disable it and enable _AIRMODE_ as a flight mode on a switch like before. In the majority of the cases, _AIRMODE_ can be enabled on _Multirotors_ all the time. The two cases when a user might make it conditional are: usage of MOTOR_STOP or disabling for landing. +3. ASYNC processing is gone. Gyro/Acc updates now happens in sync with the control loop. +4. **DSHOT** is one of the new features of INAV 2.1. A digital protocol, like what DSHOT is, can substain a certain amount of noise with no performance degradation and allows a very smooth motor output. This comes at the cost of not offering a way in between a perfectly working setup or a not working one! (Think for instance to you Digital Television!). +DSHOT requires a very clean setup and short ESC signal wires run. You might find your DSHOT setup perfectly working on the bench and failing when flying. If you are unsure about your setup just stick with analog protocols like ONESHOT or MULTISHOT. More on the topic can be found [here](https://www.youtube.com/watch?v=TVkBNhii9sw) +5. On fixed wing aircrafts, if a compass is present and enabled, it will used as the only source of heading ignoring GPS course on ground information. + +## Upgrading from 2.0.0 + +1. Be sure to run the latest INAV 2.1 Configuration release. Download from [here](https://github.com/iNavFlight/inav-configurator/releases). +2. Go to the CLI tab and copy and paste the `diff` output to a text file for later usage. +3. Flash INAV 2.1.0 enabling **full chip erase** . Now you FC should run INAV 2.1.0 Connect again and check the firmware version. +4. Go to CLI tab and paste all the contents you previously saved into a text file and press enter. Wait for it to finish. Type `save` and you should be good to go! +5. Go to the OSD tab, Font Manager and upload a new font to the board if you use the OSD feature. +6. Enjoy INAV 2.1.0 and explore its new features! + +## Upgrading from 1.9.X + +1. Be sure to run the latest INAV 2.1 Configuration release. Download from [here](https://github.com/iNavFlight/inav-configurator/releases). +2. Go to the CLI tab and copy and paste the `diff` output to a text file for later usage. +3. Go to the OSD tab and take a screenshot of the current layout +4. Flash INAV 2.1.0 enabling **full chip erase** . Now you FC should run INAV 2.0. Connect again and check the firmware version. +5. Go to the Mixer tab and load and apply your desired mixer. +6. Go back to your configuration text file and delete all lines starting with: mixer acczero accgain magzero osd. Adjust values to be adjusted noted in the release notes. +7. Open the CLI tab in the configurator and paste your cleaned up configuration in the text box and type `save` and press enter. The flight controller will now reboot. +8. Calibrate the accelerometer following the steps in the dedicated tab. Only first two steps need to be made in the right order. +9. Calibration of the magnetometer should be done at the field. The magnetic field indoors can be distorted and led to a bad calibration. +10. Restore manually your OSD layout using the screenshot and upload the font you like using the dedicated button. +11. Carefully check all the configuration and check on the bench without installed propellers if everything looks good. In particular, check if the model preview behaves correctly when you are moving your model and check surfaces movements for an airplane. +12. Enjoy INAV 2.1.0 and explore its new features! + +## New targets: + +* [Omnibus F4 Nano v6](https://inavflight.com/shop/s/bg/1320256) +* [Matek F722SE](https://inavflight.com/shop/s/bg/1379603) +* [Matek F722-WING](https://inavflight.com/shop/s/bg/1408793) +* [DYS F4Pro v2](https://inavflight.com/shop/s/bg/1136875) +* [Kakute F7](https://inavflight.com/shop/s/bg/1317570) +* [Matek F411 RSSI](https://inavflight.com/shop/p/MATEKF411WING) +* [Matek F411 with second software serial](https://inavflight.com/shop/p/MATEKF411WING) +* [Foxeer F405 AIO](https://inavflight.com/shop/s/bg/1309796) +* [Foxeer F722 DUAL](https://inavflight.com/shop/s/bg/1379605) +* [Betaflight F4 Nox](https://inavflight.com/shop/s/bg/1310419) +* [Wing FC](https://inavflight.com/shop/s/bg/1318626) +* SP Racing F7 Dual +* Kiss FC + +## Temperature sensors support + +It is now possible to measure temperatures with the help of the I²C LM75 and 1-Wire DS18B20 chips. The temperature values can be displayed on the OSD and also logged. Up to 8 sensors supported. The support is enabled by default on F4 and F7 FCs. To use with F3 FCs you need to build a custom firmware. See the [documentation](https://github.com/iNavFlight/inav/blob/master/docs/Temperature%20sensors.md) for more information. + +## Servo mixer + +The maximum rate for a servo mixer rule is now 1000% instead of 125% + +## CLI: + +### New + +| Setting | Description | +| ---- | ------ | +| `rc_filter_frequency` | RC data biquad filter cutoff frequency. Lower cutoff frequencies result in smoother response at expense of command control delay. Practical values are 20-50. Set to zero to disable entirely and use unsmoothed RC stick values | +|`fw_iterm_limit_stick_position` |Iterm is not allowed to grow when stick position is above threshold. This solves the problem of bounceback or followthrough when full stick deflection is applied on poorely tuned fixed wings. In other words, stabilization is partialy disabled when pilot is actively controlling the aircraft and active when sticks are not touched. 0 mean stick is in center position, 1 means it is fully deflected to either side | +| `nav_mc_braking_speed_threshold` | min speed in cm/s above which braking can happen | +| `nav_mc_braking_disengage_speed` | braking is disabled when speed goes below this value | +| `nav_mc_braking_timeout` | timeout in ms for braking | +| `nav_mc_braking_boost_factor` | acceleration factor for BOOST phase | +| `nav_mc_braking_boost_timeout` |how long in ms BOOST phase can happen | +| `nav_mc_braking_boost_speed_threshold` | BOOST can be enabled when speed is above this value| +| `nav_mc_braking_boost_disengage_speed` | BOOST will be disabled when speed goes below this value | +| `nav_mc_braking_bank_angle` | max angle that MR is allowed to bank in BOOST mode | +| `osd_artificial_horizon_max_pitch` | Max pitch, in degrees, for OSD artificial horizon | +| `osd_failsafe_switch_layout` | If enabled the OSD automatically switches to the first layout during failsafe | +| `osd_imu_temp_alarm_min` | Temperature under which the IMU temperature OSD element will start blinking (decidegrees centigrade) | +| `osd_imu_temp_alarm_max` | Temperature above which the IMU temperature OSD element will start blinking (decidegrees centigrade) | +| `osd_baro_temp_alarm_min` | Temperature under which the baro temperature OSD element will start blinking (decidegrees centigrade) | +| `osd_baro_temp_alarm_max` | Temperature above which the baro temperature OSD element will start blinking (decidegrees centigrade) | +| `osd_temp_label_align` | Allows to chose between left and right alignment for the OSD temperature sensor labels | + +### Removed + +| Setting | Description | +| ---- | ------ | +| `acc_task_frequency` | | +| `attitude_task_frequency` | | +| `async_mode` | | +| `smix reverse` | input reverse can be done on the mixer level | + +## Main changes + +### DSHOT + +INAV 2.1 supports DSHOT ESC protocol. It can be configured using `motor_pwm_protocol` CLI setting. The following versions of DSHOT are supported: + +* DSHOT150 +* DSHOT300 +* DSHOT600 +* DSHOT1200 + +There is no DSHOT telemetry or DSHOT commands support yet! + +Be advised that DSHOT is not well tested on INAV and because of being digital protocol can totally fail on setups with high electrical noise without giving any sign of degradation or motor stuttering. + +DSHOT is enabled on following targets: +* AIRBOTF4 +* ASGARD32F4 +* ASGARD32F7 +* COLIBRI_RACE +* FIREWORKSV2 +* FOXEERF405 +* FOXEERF722DUAL +* SPRACINGF7DUAL +* MATEKF405 (CTR, STD, not WING) +* MATEKF722 +* MATEKF722SE +* OMNIBUSF4 +* OMNIBUSF7NXT +* REVO + +### Multirotor braking mode + +#### Requirements and setup + +1. Multirotor has to be capable of running 3D Position Hold: GPS, Compass, and Baro are required +1. `MC BRAKING` flight mode has to be enabled +1. UAV has to be put into User Control Mode ***CRUISE*** + +![01](https://user-images.githubusercontent.com/966811/45925090-1c005a80-bf0f-11e8-85a1-fce9537ee3b8.PNG) + +![02](https://user-images.githubusercontent.com/966811/45925091-1dca1e00-bf0f-11e8-8f20-416eb603107b.PNG) + +#### Settings + +* `nav_mc_braking_speed_threshold` - min speed in cm/s above which braking can happen +* `nav_mc_braking_disengage_speed` - braking is disabled when speed goes below this value +* `nav_mc_braking_timeout` - timeout in ms for braking +* `nav_mc_braking_boost_factor` - acceleration factor for `BOOST` phase +* `nav_mc_braking_boost_timeout` - how long in ms `BOOST` phase can happen +* `nav_mc_braking_boost_speed_threshold` - `BOOST` can be enabled when speed is above this value +* `nav_mc_braking_boost_disengage_speed` - `BOOST` will be disabled when speed goes below this value +* `nav_mc_braking_bank_angle` - max angle that MR is allowed to bank in BOOST mode + +#### How it works: + +1. There are two phases `BRAKE` and `BOOST` +1. `BRAKE` can be started then `MC BRAKING` mode is enabled, MR is in `CRUISE` mode, `3D PosHold` is enabled, MR is traveling above `nav_mc_braking_speed_threshold` and pilot releases sticks +1. INAV will store new PosHold position only when copter will stop, not when stricks are released +1. On top of that, `BOOST` phase can be enabled if MR is traveling above `nav_mc_braking_boost_speed_threshold` +1. in `BOOST` phase, MR is allowed to use higher acceleration and banking angle than normal. +1. Because `BOOSTS` is limited in time, banking angle much higher than default should be fine + +#### Tuning + +Default values should be pretty safe to use. My 6" machine using following values: + +``` +set nav_mc_braking_speed_threshold = 100 +set nav_mc_braking_disengage_speed = 50 +set nav_mc_braking_timeout = 2000 +set nav_mc_braking_boost_factor = 150 +set nav_mc_braking_boost_timeout = 1000 +set nav_mc_braking_boost_speed_threshold = 120 +set nav_mc_braking_boost_disengage_speed = 75 +set nav_mc_braking_bank_angle = 40 +``` + +## All changes: + +* [Run-time calibration more accurate and more reliable](https://github.com/iNavFlight/inav/pull/4202) +* [Temperature sensor improvements and BB logging](https://github.com/iNavFlight/inav/pull/4282) +* [Make VL53L0X rangefinder init more reliable](https://github.com/iNavFlight/inav/pull/4276) +* [Fix altitude drop bug when initiating failsafe-RTH](https://github.com/iNavFlight/inav/pull/4245) +* [Improve TIM/DMA reliability](https://github.com/iNavFlight/inav/pull/4235) +* [Fix non-working AGL altitude estimation](https://github.com/iNavFlight/inav/pull/4196) +* [Speed up GPS autobaud on UBLOX GPS modules](https://github.com/iNavFlight/inav/pull/4193) +* [FPV camera tilt compensation](https://github.com/iNavFlight/inav/pull/3037) +* [Support for FFPV 2.4GHz VTX protocol](https://github.com/iNavFlight/inav/pull/4147) +* [Pitot sensor improvements](https://github.com/iNavFlight/inav/pull/3977) +* [Make sure failsafe RTH is exited when failsafe condition ends](https://github.com/iNavFlight/inav/pull/4166) +* [RC Lowpass filtering replaces interpolation](https://github.com/iNavFlight/inav/pull/3740) +* [1.5s Throttle Rampup for Autolaunch](https://github.com/iNavFlight/inav/pull/4082) +* [option to switch to default OSD layout during failsafe](https://github.com/iNavFlight/inav/pull/4064) +* [debug raw accelerometer readouts](https://github.com/iNavFlight/inav/pull/4045) +* [log GPS velNED in Blackbox logs](https://github.com/iNavFlight/inav/pull/4044) +* [3D GPS speed in OSD](https://github.com/iNavFlight/inav/pull/3941) +* [On fixed wings limit Iterm based on stick position](https://github.com/iNavFlight/inav/pull/4023) +* [PINIO support](https://github.com/iNavFlight/inav/pull/4011) +* [fix power level 5 to be a valid setting - allow setting max power on all VTXes](https://github.com/iNavFlight/inav/pull/4008) +* [default GPS baud rate bumped to 115200](https://github.com/iNavFlight/inav/pull/3995) +* [refactored SPI/SDCARD support](https://github.com/iNavFlight/inav/pull/3984) +* Gyro temperature in [OSD](https://github.com/iNavFlight/inav/pull/3978) and [Blackbox](https://github.com/iNavFlight/inav/pull/3979) +* [AK8975 enabled on OmnibusF4](https://github.com/iNavFlight/inav/pull/3966) +* [gyro_sync enabled by default on all supporting targets](https://github.com/iNavFlight/inav/pull/3931) +* [async gyro/acc/attitude tasks removed](https://github.com/iNavFlight/inav/pull/3930) +* [Crossfire telemetry updates](https://github.com/iNavFlight/inav/pull/3912) +* [DSHOT support](https://github.com/iNavFlight/inav/pull/3879) +* [Refactored Timer/DMA framework](https://github.com/iNavFlight/inav/pull/3833) +* [battery percentage based on sag compensated voltage](https://github.com/iNavFlight/inav/pull/3804) +* [CAMSTAB servo logic fixed](https://github.com/iNavFlight/inav/pull/3800) +* [refactored OSD flight time logic](https://github.com/iNavFlight/inav/pull/3790) +* [NMEA altitude bug fix](https://github.com/iNavFlight/inav/pull/3778) +* [Benewake TFmini lidar support](https://github.com/iNavFlight/inav/pull/3725) +* [Improved AHI](https://github.com/iNavFlight/inav/pull/3641) +* [Multirotor braking mode](https://github.com/iNavFlight/inav/pull/3159) +* [Increase servo mix max rate](https://github.com/iNavFlight/inav/pull/4306) diff --git a/versioned_docs/version-8.0.1/2.2.0-Release-Notes.md b/versioned_docs/version-8.0.1/2.2.0-Release-Notes.md new file mode 100644 index 0000000..35e2941 --- /dev/null +++ b/versioned_docs/version-8.0.1/2.2.0-Release-Notes.md @@ -0,0 +1,287 @@ +--- +title: 2.2.0 Release Notes +--- + + +![](http://static.rcgroups.net/forums/attachments/6/1/0/3/7/6/a9088858-102-inav.png) + +**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](./quickstart/Welcome-to-INAV,-useful-links-and-products.md) + +## 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 + +0. Download and install the new [configurator](https://github.com/iNavFlight/inav-configurator/releases) +1. Save to a file the current _diff all_ from the CLI. +2. Upgrade to INAV 2.2 using the Full Erase option in the configurator. +3. Upload your OSD font of choice from the OSD tab. +4. Go the CLI again and paste the contents on the file you previously create and write _save_ , press ENTER and done! +5. If you armed with via sticks, add an arming switch in the Modes tab in the configurator. +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. +7. You should be ready, explore new 2.2 features and enjoy! + +## Upgrading from 2.0.0 + +0. Please follow the upgrade guide to 2.1.0 and then step to the previous section. + +## New targets: + +* [MAMBA F405](https://inavflight.com/shop/s/bg/1345001) (For Fixed Wings: Motors on S1/S4 Servos S2/S3) +* OMNIBUSF4V3_SFTSRL2 (OMNIBUSF4V3 with two software serial) +* [KAKUTE F7 MINI](https://inavflight.com/shop/s/bg/1449223) +* [MATEKF411_FD_SFTS](https://inavflight.com/shop/p/MATEKF411WING) (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. +Modules like [this](https://inavflight.com/shop/s/bg/1062819) 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](./advanced/OSD-Hud-and-ESP32-radars.md) + +## 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]) + +[@digitalentity]: https://github.com/digitalentity +[@DzikuVx]: https://github.com/DzikuVx +[@eephyne]: https://github.com/eephyne +[@fiam]: https://github.com/fiam +[@giacomo892]: https://github.com/giacomo892 +[@hali9]: https://github.com/hali9 +[@nmaggioni]: https://github.com/nmaggioni +[@nyway]: https://github.com/nyway +[@shellixyz]: https://github.com/shellixyz +[@stronnag]: https://github.com/stronnag +[@mluessi]: https://github.com/mluessi +[@Garogat]: https://github.com/Garogat +[@teckel12]: https://github.com/teckel12 +[@bnn1044]: https://github.com/bnn1044 +[@krzysztofmatula]: https://github.com/krzysztofmatula +[@danarrib]: https://github.com/danarrib +[@marbalon]: https://github.com/marbalon +[@OlivierC-FR]: https://github.com/OlivierC-FR +[@potater1]: https://github.com/potater1 +[@L4ky]: https://github.com/L4ky + + +[#486]: https://github.com/iNavFlight/inav/issues/486 +[#4148]: https://github.com/iNavFlight/inav/pull/4148 +[#4263]: https://github.com/iNavFlight/inav/pull/4263 +[#4483]: https://github.com/iNavFlight/inav/pull/4483 +[#4423]: https://github.com/iNavFlight/inav/pull/4423 +[#4416]: https://github.com/iNavFlight/inav/pull/4416 +[#4380]: https://github.com/iNavFlight/inav/pull/4380 +[#4420]: https://github.com/iNavFlight/inav/pull/4420 +[#4144]: https://github.com/iNavFlight/inav/pull/4144 +[#4561]: https://github.com/iNavFlight/inav/pull/4561 +[#4555]: https://github.com/iNavFlight/inav/pull/4555 +[#4551]: https://github.com/iNavFlight/inav/pull/4551 +[#4468]: https://github.com/iNavFlight/inav/pull/4468 +[#4454]: https://github.com/iNavFlight/inav/pull/4454 +[#4676]: https://github.com/iNavFlight/inav/pull/4676 +[#4445]: https://github.com/iNavFlight/inav/pull/4445 +[#4326]: https://github.com/iNavFlight/inav/pull/4326 +[#4624]: https://github.com/iNavFlight/inav/pull/4624 +[#4484]: https://github.com/iNavFlight/inav/pull/4484 +[#4482]: https://github.com/iNavFlight/inav/pull/4482 +[#4475]: https://github.com/iNavFlight/inav/pull/4475 +[#4449]: https://github.com/iNavFlight/inav/pull/4449 +[#4499]: https://github.com/iNavFlight/inav/pull/4499 +[#4501]: https://github.com/iNavFlight/inav/pull/4501 +[#4502]: https://github.com/iNavFlight/inav/pull/4502 +[#4386]: https://github.com/iNavFlight/inav/pull/4386 +[#4473]: https://github.com/iNavFlight/inav/pull/4473 +[#4384]: https://github.com/iNavFlight/inav/pull/4384 +[#4384]: https://github.com/iNavFlight/inav/pull/4384 +[#4385]: https://github.com/iNavFlight/inav/pull/4385 +[#4521]: https://github.com/iNavFlight/inav/pull/4521 +[#4538]: https://github.com/iNavFlight/inav/pull/4538 +[#4582]: https://github.com/iNavFlight/inav/pull/4582 +[#4607]: https://github.com/iNavFlight/inav/pull/4607 +[#4596]: https://github.com/iNavFlight/inav/pull/4596 +[#4617]: https://github.com/iNavFlight/inav/pull/4617 +[#4626]: https://github.com/iNavFlight/inav/pull/4626 +[#4630]: https://github.com/iNavFlight/inav/pull/4630 +[#4640]: https://github.com/iNavFlight/inav/pull/4640 +[#4232]: https://github.com/iNavFlight/inav/pull/4232 +[#4623]: https://github.com/iNavFlight/inav/pull/4623 +[#4634]: https://github.com/iNavFlight/inav/pull/4634 +[#3795]: https://github.com/iNavFlight/inav/pull/3795 +[#4680]: https://github.com/iNavFlight/inav/pull/4680 +[#4681]: https://github.com/iNavFlight/inav/pull/4681 +[#4188]: https://github.com/iNavFlight/inav/pull/4188 +[#4696]: https://github.com/iNavFlight/inav/pull/4696 +[#4713]: https://github.com/iNavFlight/inav/pull/4713 +[#4715]: https://github.com/iNavFlight/inav/pull/4715 +[#4712]: https://github.com/iNavFlight/inav/pull/4712 +[#4646]: https://github.com/iNavFlight/inav/pull/4646 +[#4338]: https://github.com/iNavFlight/inav/pull/4338 +[#4731]: https://github.com/iNavFlight/inav/pull/4731 +[#4448]: https://github.com/iNavFlight/inav/pull/4448 +[#4753]: https://github.com/iNavFlight/inav/pull/4753 +[#4763]: https://github.com/iNavFlight/inav/pull/4763 +[#4772]: https://github.com/iNavFlight/inav/pull/4772 +[#4769]: https://github.com/iNavFlight/inav/pull/4769 +[#4754]: https://github.com/iNavFlight/inav/pull/4754 +[#4388]: https://github.com/iNavFlight/inav/pull/4388 +[#4769]: https://github.com/iNavFlight/inav/pull/4769 +[#4801]: https://github.com/iNavFlight/inav/pull/4801 +[#4805]: https://github.com/iNavFlight/inav/pull/4805 +[#4791]: https://github.com/iNavFlight/inav/pull/4791 +[#4785]: https://github.com/iNavFlight/inav/pull/4785 +[#4717]: https://github.com/iNavFlight/inav/pull/4717 +[#4730]: https://github.com/iNavFlight/inav/pull/4730 diff --git a/versioned_docs/version-8.0.1/2.2.1-Release-Notes.md b/versioned_docs/version-8.0.1/2.2.1-Release-Notes.md new file mode 100644 index 0000000..acb5d57 --- /dev/null +++ b/versioned_docs/version-8.0.1/2.2.1-Release-Notes.md @@ -0,0 +1,317 @@ +--- +title: 2.2.1 Release Notes +--- + + +![](http://static.rcgroups.net/forums/attachments/6/1/0/3/7/6/a9088858-102-inav.png) + +**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](./quickstart/Welcome-to-INAV,-useful-links-and-products.md) + +## 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 + +0. Download and install the new [configurator](https://github.com/iNavFlight/inav-configurator/releases) +1. Save to a file the current _diff all_ from the CLI. +2. Upgrade to INAV 2.2.1 using the Full Erase option in the configurator. +3. Upload your OSD font of choice from the OSD tab. +4. Go the CLI again and paste the contents on the file you previously create and write _save_ , press ENTER and done! +5. If you armed with via sticks, add an arming switch in the Modes tab in the configurator. +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. +7. You should be ready, explore new 2.2.1 features and enjoy! + +## Upgrading from 2.0.0 + +0. Please follow the upgrade guide to 2.1.0 and then step to the previous section. + +## New targets: + +* [MAMBA F405](https://inavflight.com/shop/s/bg/1345001) (For Fixed Wings: Motors on S1/S4 Servos S2/S3) +* OMNIBUSF4V3_SFTSRL2 (OMNIBUSF4V3 with two software serial) +* [KAKUTE F7 MINI](https://inavflight.com/shop/s/bg/1449223) +* [MATEKF411_FD_SFTS](https://inavflight.com/shop/p/MATEKF411WING) (F411-WING with a full duplex soft serial) +* [IFLIGHTF7_TWING](https://inavflight.com/shop/s/bg/1433720) + +## 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](https://inavflight.com/shop/s/bg/1062819) 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](./advanced/OSD-Hud-and-ESP32-radars.md) + +## 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]) + +[@digitalentity]: https://github.com/digitalentity +[@DzikuVx]: https://github.com/DzikuVx +[@eephyne]: https://github.com/eephyne +[@fiam]: https://github.com/fiam +[@giacomo892]: https://github.com/giacomo892 +[@hali9]: https://github.com/hali9 +[@nmaggioni]: https://github.com/nmaggioni +[@nyway]: https://github.com/nyway +[@shellixyz]: https://github.com/shellixyz +[@stronnag]: https://github.com/stronnag +[@mluessi]: https://github.com/mluessi +[@Garogat]: https://github.com/Garogat +[@teckel12]: https://github.com/teckel12 +[@bnn1044]: https://github.com/bnn1044 +[@krzysztofmatula]: https://github.com/krzysztofmatula +[@danarrib]: https://github.com/danarrib +[@marbalon]: https://github.com/marbalon +[@OlivierC-FR]: https://github.com/OlivierC-FR +[@potater1]: https://github.com/potater1 +[@L4ky]: https://github.com/@L4ky +[@yarreg]: https://github.com/yarreg + +[#486]: https://github.com/iNavFlight/inav/issues/486 +[#4148]: https://github.com/iNavFlight/inav/pull/4148 +[#4263]: https://github.com/iNavFlight/inav/pull/4263 +[#4483]: https://github.com/iNavFlight/inav/pull/4483 +[#4423]: https://github.com/iNavFlight/inav/pull/4423 +[#4416]: https://github.com/iNavFlight/inav/pull/4416 +[#4380]: https://github.com/iNavFlight/inav/pull/4380 +[#4420]: https://github.com/iNavFlight/inav/pull/4420 +[#4144]: https://github.com/iNavFlight/inav/pull/4144 +[#4561]: https://github.com/iNavFlight/inav/pull/4561 +[#4555]: https://github.com/iNavFlight/inav/pull/4555 +[#4551]: https://github.com/iNavFlight/inav/pull/4551 +[#4468]: https://github.com/iNavFlight/inav/pull/4468 +[#4454]: https://github.com/iNavFlight/inav/pull/4454 +[#4676]: https://github.com/iNavFlight/inav/pull/4676 +[#4445]: https://github.com/iNavFlight/inav/pull/4445 +[#4326]: https://github.com/iNavFlight/inav/pull/4326 +[#4624]: https://github.com/iNavFlight/inav/pull/4624 +[#4484]: https://github.com/iNavFlight/inav/pull/4484 +[#4482]: https://github.com/iNavFlight/inav/pull/4482 +[#4475]: https://github.com/iNavFlight/inav/pull/4475 +[#4449]: https://github.com/iNavFlight/inav/pull/4449 +[#4499]: https://github.com/iNavFlight/inav/pull/4499 +[#4501]: https://github.com/iNavFlight/inav/pull/4501 +[#4502]: https://github.com/iNavFlight/inav/pull/4502 +[#4386]: https://github.com/iNavFlight/inav/pull/4386 +[#4473]: https://github.com/iNavFlight/inav/pull/4473 +[#4384]: https://github.com/iNavFlight/inav/pull/4384 +[#4384]: https://github.com/iNavFlight/inav/pull/4384 +[#4385]: https://github.com/iNavFlight/inav/pull/4385 +[#4521]: https://github.com/iNavFlight/inav/pull/4521 +[#4538]: https://github.com/iNavFlight/inav/pull/4538 +[#4582]: https://github.com/iNavFlight/inav/pull/4582 +[#4607]: https://github.com/iNavFlight/inav/pull/4607 +[#4596]: https://github.com/iNavFlight/inav/pull/4596 +[#4617]: https://github.com/iNavFlight/inav/pull/4617 +[#4626]: https://github.com/iNavFlight/inav/pull/4626 +[#4630]: https://github.com/iNavFlight/inav/pull/4630 +[#4640]: https://github.com/iNavFlight/inav/pull/4640 +[#4232]: https://github.com/iNavFlight/inav/pull/4232 +[#4623]: https://github.com/iNavFlight/inav/pull/4623 +[#4634]: https://github.com/iNavFlight/inav/pull/4634 +[#3795]: https://github.com/iNavFlight/inav/pull/3795 +[#4680]: https://github.com/iNavFlight/inav/pull/4680 +[#4681]: https://github.com/iNavFlight/inav/pull/4681 +[#4188]: https://github.com/iNavFlight/inav/pull/4188 +[#4696]: https://github.com/iNavFlight/inav/pull/4696 +[#4713]: https://github.com/iNavFlight/inav/pull/4713 +[#4715]: https://github.com/iNavFlight/inav/pull/4715 +[#4712]: https://github.com/iNavFlight/inav/pull/4712 +[#4646]: https://github.com/iNavFlight/inav/pull/4646 +[#4338]: https://github.com/iNavFlight/inav/pull/4338 +[#4731]: https://github.com/iNavFlight/inav/pull/4731 +[#4448]: https://github.com/iNavFlight/inav/pull/4448 +[#4753]: https://github.com/iNavFlight/inav/pull/4753 +[#4763]: https://github.com/iNavFlight/inav/pull/4763 +[#4772]: https://github.com/iNavFlight/inav/pull/4772 +[#4769]: https://github.com/iNavFlight/inav/pull/4769 +[#4754]: https://github.com/iNavFlight/inav/pull/4754 +[#4388]: https://github.com/iNavFlight/inav/pull/4388 +[#4769]: https://github.com/iNavFlight/inav/pull/4769 +[#4801]: https://github.com/iNavFlight/inav/pull/4801 +[#4805]: https://github.com/iNavFlight/inav/pull/4805 +[#4791]: https://github.com/iNavFlight/inav/pull/4791 +[#4785]: https://github.com/iNavFlight/inav/pull/4785 +[#4717]: https://github.com/iNavFlight/inav/pull/4717 +[#4730]: https://github.com/iNavFlight/inav/pull/4730 + +[#4870]: https://github.com/iNavFlight/inav/pull/4870 +[#4873]: https://github.com/iNavFlight/inav/pull/4873 +[#4874]: https://github.com/iNavFlight/inav/pull/4874 +[#4875]: https://github.com/iNavFlight/inav/pull/4875 +[#4888]: https://github.com/iNavFlight/inav/pull/4888 +[#4883]: https://github.com/iNavFlight/inav/pull/4883 diff --git a/versioned_docs/version-8.0.1/2.3.0-Release-Notes.md b/versioned_docs/version-8.0.1/2.3.0-Release-Notes.md new file mode 100644 index 0000000..8f91123 --- /dev/null +++ b/versioned_docs/version-8.0.1/2.3.0-Release-Notes.md @@ -0,0 +1,132 @@ +--- +title: 2.3.0 Release Notes +--- + + +![](http://static.rcgroups.net/forums/attachments/6/1/0/3/7/6/a9088858-102-inav.png) + +**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](./quickstart/Welcome-to-INAV,-useful-links-and-products.md) + +## Important Notes + +## Upgrading from 2.2.0 + +0. Download and install the new [configurator](https://github.com/iNavFlight/inav-configurator/releases) +1. Save to a file the current _diff all_ from the CLI. +2. Upgrade to INAV 2.3 using the Full Erase option in the configurator. +3. Upload your OSD font of choice from the OSD tab. +4. Go the CLI again and paste the contents on the file you previously create and write _save_ , press ENTER and done! +5. You should be ready, explore new 2.3 features and enjoy! + +## Upgrading from 2.1.0 + +0. Please follow the upgrade guide to 2.2.0 and then step to the previous section. + +## New targets: + +* [Aikon F4](https://inavflight.com/shop/s/bg/1421715) +* [iFlight F4 TwinG](https://inavflight.com/shop/s/bg/1467377) +* [Matek F411 WING SE aka F411 WSE](https://inavflight.com/shop/s/bg/1546243) +* [Matek F765 WING](https://inavflight.com/shop/s/bg/1557661) + +## 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](https://youtu.be/sPktdBh2Gcw) + +## 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](https://youtu.be/2YFkDsnPnqE) + +## 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. diff --git a/versioned_docs/version-8.0.1/2.4.0-Release-Notes.md b/versioned_docs/version-8.0.1/2.4.0-Release-Notes.md new file mode 100644 index 0000000..8c7f933 --- /dev/null +++ b/versioned_docs/version-8.0.1/2.4.0-Release-Notes.md @@ -0,0 +1,148 @@ +--- +title: 2.4.0 Release Notes +--- + + +![](http://static.rcgroups.net/forums/attachments/6/1/0/3/7/6/a9088858-102-inav.png) + +**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](./quickstart/Welcome-to-INAV,-useful-links-and-products.md) + +## Important Notes + +## Upgrading from 2.3.0 or 2.2.0 + +0. Download and install the new [configurator](https://github.com/iNavFlight/inav-configurator/releases) +1. Save to a file the current _diff all_ from the CLI. +2. Upgrade to INAV 2.4 using the Full Erase option in the configurator. +3. Upload your OSD font of choice from the OSD tab. +4. Find on your _diff all_ result the `min_throttle` line, and replace it by `throttle_idle`, setting the percentage of the idle throttle. The default is 15. +5. Go the CLI again and paste the contents on the file you previously create and write _save_ , press ENTER and done! +6. 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](./quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md) page. + +## New targets: + +* [Matek F722-PX](https://inavflight.com/shop/s/bg/1625181) +* [Holybro Kakute F7 HDV](https://inavflight.com/shop/s/bg/1541453) +* Mamba F405US Stack +* [Mamba F722S Stack](https://inavflight.com/shop/s/bg/1490805) +* 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]) + +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](https://inavflight.com/shop/s/bg/1540481) 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). + + + +[@shellixyz]: https://github.com/shellixyz +[@digitalentity]: https://github.com/digitalentity +[@DzikuVx]: https://github.com/DzikuVx +[@fiam]: https://github.com/fiam +[@giacomo892]: https://github.com/giacomo892 +[@hali9]: https://github.com/hali9 +[@stronnag]: https://github.com/stronnag +[@hydra]: https://github.com/hydra diff --git a/versioned_docs/version-8.0.1/2.5.0-Release-Notes.md b/versioned_docs/version-8.0.1/2.5.0-Release-Notes.md new file mode 100644 index 0000000..2d15ce5 --- /dev/null +++ b/versioned_docs/version-8.0.1/2.5.0-Release-Notes.md @@ -0,0 +1,203 @@ +--- +title: 2.5.0 Release Notes +--- + +![](http://static.rcgroups.net/forums/attachments/6/1/0/3/7/6/a9088858-102-inav.png) + +**Hello and welcome to INAV 2.5.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](./quickstart/Welcome-to-INAV,-useful-links-and-products.md) + +## 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 the `diff` / `dump` and recreate them in inav 2.5; or +* Use the [box2perm](https://github.com/stronnag/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](https://github.com/stronnag/box2perm#additional-information). + + +### Removal of PWM RX + +All traces of `PWM` RX have finally been removed. Please check that your receiver type is correctly assigned before raising bogus issues that your RX no longer works. + +### 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 + +0. Download and install the new [configurator](https://github.com/iNavFlight/inav-configurator/releases) +1. Save to a file the current _diff all_ from the CLI. +2. Modify the `diff` to update or remove the `aux` statements +3. Upgrade to INAV 2.5 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. You should be ready, explore new 2.5 features and enjoy! + +## Upgrading from 2.3 or older version + +Please follow the instructions on [this](./quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md) 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` | Replaces `yaw_motor_direction` | +| `nav_fw_control_smoothness` | Controls smoothness of navigation control (0-9). 0 gives legacy behaviour, non-zero values give increasing smoothness. | +| `nav_fw_pos_hdg_p` | P gain of heading PID controller. | +| `nav_fw_pos_hdg_i` | I gain of heading PID controller. | +| `nav_fw_pos_hdg_d` | D gain of heading PID controller. | +| `nav_fw_pos_hdg_pidsum_limit` | Output limit for heading trajectory PID controller. (Fixedwing, rovers, boats) | +| `nav_use_fw_yaw_control` | Enables or Disables the use of the heading PID controller on fixed wing | +| `nav_fw_yaw_deadband` | Deadband for heading trajectory PID controller. When heading error is below the deadband, controller assumes that vehicle is on course | +| `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` | Controls display of the next waypoints in the HUD. See description below | +| `osd_ahi_style` | Sets OSD Artificial Horizon style "DEFAULT" or "LINE" for the FrSky Graphical OSD | +| `telemetry_halfduplex` | 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` | Replaced by `telemetry_halfduplex` | +| `yaw_motor_direction` | 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](https://www.youtube.com/watch?v=w0QsVIXYWCE) 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](./advanced/MSP-Navigation-Messages.md) 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 + +[@shellixyz]: https://github.com/shellixyz +[@digitalentity]: https://github.com/digitalentity +[@DzikuVx]: https://github.com/DzikuVx +[@fiam]: https://github.com/fiam +[@giacomo892]: https://github.com/giacomo892 +[@hali9]: https://github.com/hali9 +[@stronnag]: https://github.com/stronnag +[@hydra]: https://github.com/hydra +[@OlivierC-FR]: https://github.com/OlivierC-FR +[@Jacky2k]: https://github.com/Jacky2k +[@gereic]: https://github.com/gereic diff --git a/versioned_docs/version-8.0.1/2.5.1-Release-notes.md b/versioned_docs/version-8.0.1/2.5.1-Release-notes.md new file mode 100644 index 0000000..8fa54ac --- /dev/null +++ b/versioned_docs/version-8.0.1/2.5.1-Release-notes.md @@ -0,0 +1,59 @@ +--- +title: 2.5.1 Release Notes +--- + +![](http://static.rcgroups.net/forums/attachments/6/1/0/3/7/6/a9088858-102-inav.png) + +**Hello and welcome to INAV 2.5.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](./quickstart/Welcome-to-INAV,-useful-links-and-products.md) + +## Release Notes + +This is a bug-fix release. Notable changes: + +### Allow override of max power capability for buggy VTXes + +Since 2.5.1 TRAMP protocol detects max power that VTX is reporting and caps the max setting to that power. Some VTXes don't report that properly. A new CLI setting `vtx_max_power_override` allows to set the max power manually in such cases. Use caution! + +### ESC telemetry fix + +Due to a regression bug in 2.5.0 DSHOT ESC telemetry was not working. This is now fixed. + +### Always process VTX driver updates, regardless of arming state + +Legacy condition that limited VTX updates to unarmed state only is now removed. VTX settings changes in flight are not working reliably. + +[@digitalentity]: https://github.com/digitalentity +[@DzikuVx]: https://github.com/DzikuVx +[@giacomo892]: https://github.com/giacomo892 diff --git a/versioned_docs/version-8.0.1/2.6.0-Release-Notes.md b/versioned_docs/version-8.0.1/2.6.0-Release-Notes.md new file mode 100644 index 0000000..53e27c8 --- /dev/null +++ b/versioned_docs/version-8.0.1/2.6.0-Release-Notes.md @@ -0,0 +1,247 @@ +--- +title: 2.6.0 Release Notes +--- + +![](http://static.rcgroups.net/forums/attachments/6/1/0/3/7/6/a9088858-102-inav.png) + +**Hello and welcome to INAV 2.6.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](./quickstart/Welcome-to-INAV,-useful-links-and-products.md) + +## Important Notes + +**Compass has to be recalibrated**. Do not import from previous INAV releases + +**Do not migrate Multirotor PID and filter settings** from previous releases of INAV. Use Multirotor default preset (3"-7") instead and make required changes on top of that + +### 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. + +**INAV 2.6 will be the last release that supports F3-based boards.** The supporting code will be retained for a few more releases, but will not be maintained and is not guarantee to build or work properly in future releases. + +## Safehome replaces RTH offset distance and direction + +A new feature `safehome` (see [below](#safehome-tonyyng)) replaces `nav_rth_home_offset_distance` and `nav_rth_home_offset_direction`, offering a safer and much more flexible function. If you were using the `nav_rth_home_offset_*` settings, please migrate to `safehome`as these settings are removed. + +## Upgrading from 2.5 + +0. Download and install the new [configurator](https://github.com/iNavFlight/inav-configurator/releases) +1. Save to a file the current _diff all_ from the CLI. +2. Upgrade to INAV 2.5 using the Full Erase option in the configurator. +3. Upload your OSD font of choice from the OSD tab. +4. Go the CLI again and paste the contents on the file you previously create and write _save_ , press ENTER and done! +5. You should be ready, explore new 2.6 features and enjoy! + +## Upgrading from 2.4 or older version + +Please follow the instructions on [this](./quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md) page. + +## New targets: + +* IFLIGHTF4_SUCCEXD ([@digitalentity]) +* FLYWOOF411, FLYWOOF7DUAL ([@digitalentity]) +* KAKUTEF7MINIV3 +* MATEKF722WPX +* FRSKYPILOT +* FRSKY_ROVERF7 + +## CLI: + +### New commands + +| Command | Description | +| ------- | ----------- | +| `safehome` | List of home locations, see [Safehomes.md](https://github.com/iNavFlight/inav/blob/master/docs/Safehomes.md) and [summary](#safehome-tonyyng) | +| `bind_rx` | Initiate binding for RX_SPI or SRXL2 receivers | + +### Changed Settings + +| Setting | Description | +| ------- | ----------- | +| `mag_hardware` | New option added `MSP`| +| `baro_hardware` | New options added `DPS310` and `MSP` | +| `pitot_hardware` | New options added `MSP`| +| `serialrx_provider` | New options added `FPORT2` and `SRXL2` | +| `gps_provider` | New options added `MSP` | +| `debug_mode` | New options added `CD`, `KALMAN_GAIN`, `PID_MEASUREMENT`, `SPM_CELLS`, `SPM_VS600`, `SPM_VARIO`, `PCF8574` | +| `airmode_type` | New option added `STICK_CENTER_ONCE` | +| `nav_overrides_motor_stop` | Modified values `OFF`, `AUTO_ONLY`, `ALL_NAV`. When set OFF the navigation system will not take over the control of the motor if the throttle is low (motor will stop). 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 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. | +| `motor_pwm_protocol` | The default is now ONESHOT125 (previously STANDARD). | + +### New Settings + +| Setting | Description | +| ------- | ----------- | +| `gyro_notch_hz` | Replaces `gyro_notch1_hz` and `gyro_notch2_hz` | +| `gyro_notch_cutoff` | Replaces `gyro_notch1_cutoff` and `gyro_notch2_cutoff` | +| `maggain_x`, `maggain_y`, `maggain_z` | Calibrated values replacing fixed values. **Compass re-calibration is required.** | +| `srxl2_unit_id` | Values 0 - 15, default 1 | +| `srxl2_baud_fast` | Values `OFF`, `ON`, default `ON` | +| `mc_cd_pitch` | Multicopter Control Derivative gain for PITCH, values 0 - 200, default 60 | +| `mc_cd_roll` | Multicopter Control Derivative gain for ROLL, values 0 - 200, default 60 | +| `mc_cd_yaw` | Multicopter Control Derivative gain for YAW, values 0 - 200, default 60 | +| `fw_turn_assist_pitch_gain` | Gain required to keep constant pitch angle during coordinated turns (in TURN_ASSIST mode). Value significantly different from 1.0 indicates a problem with the airspeed calibration (if present) or value of `fw_reference_airspeed` parameter. Values 0 - 2, default 1 | +| `nav_mc_vel_xy_dterm_attenuation` | Maximum D-term attenution percentage for horizontal velocity PID controller (Multirotor). It allows to smooth the PosHold CRUISE, WP and RTH when Multirotor is traveling at full speed. Dterm is not attenuated at low speeds, breaking and accelerating. Values 0 - 100, default 90 | +| `nav_mc_vel_xy_dterm_attenuation_start` | A point (in percent of both target and current horizontal velocity) where `nav_mc_vel_xy_dterm_attenuation` begins. Values 0 - 100, default 10 | +| `nav_mc_vel_xy_dterm_attenuation_end` | A point (in percent of both target and current horizontal velocity) where `nav_mc_vel_xy_dterm`_attenuation reaches maximum. Values 0-100, default 60 | +| `mc_cd_lpf_hz` | Cutoff frequency for Control Derivative. Lower value smoother reaction on fast stick movements. With higher values, response will be more aggressive and jerky. Values 0 - 200, default 30 | +| `setpoint_kalman_enabled` | Enable Kalman filter on the PID controller setpoint. Values `OFF`, `ON`, default `OFF` | +| `setpoint_kalman_q` | Quality factor of the setpoint Kalman filter. Higher values means less filtering and lower phase delay. On 3-7 inch multirotors can be usually increased to 200-300 or even higher on clean builds. Values 1 - 16000, default 100 | +| `setpoint_kalman_w` | Window size for the setpoint Kalman filter. Wider the window, more samples are used to compute variance. In general, wider window results in smoother filter response. Values 1 - 40, default 4 | +| `setpoint_kalman_sharpness` | Dynamic factor for the setpoint Kalman filter. In general, the higher the value, the more dynamic Kalman filter gets. Values 1 - 16000, default 100 | +| `inav_use_gps_no_baro` | Values `OFF`, `ON`, default `OFF` | +| `nav_fw_pitch2thr_smoothing` | How smoothly the autopilot makes pitch to throttle correction inside a deadband defined by `nav_fw_pitch2thr_threshold`. Values 0 - 9, default 0 | +| `nav_fw_pitch2thr_threshold` | Threshold from average pitch where momentary pitch_to_throttle correction kicks in. [decidegrees]. Values 0 - 900, default 0 | +| `nav_fw_launch_end_time` | Time for the transition of throttle and pitch angle, between the launch state and the subsequent flight mode [ms]. Values 0 - 5000, default 2000 | +| `mavlink_extra3_rate` | Values 0 - 255, default 1 | +| `osd_snr_alarm` | Value below which Crossfire SNR Alarm pops-up. (dB). Values -12 - 8, default 4 | +| `osd_link_quality_alarm` | LQ % indicator blinks below this value. For Crossfire use 70%, for Tracer use 50%". Values 0 - 100, default 70 | +| `osd_crsf_lq_format` | OSD display format for CRSF LQ. Values `TYPE1` or `TYPE2`| +| `osd_force_grid` | Force OSD to work in grid mode even if the OSD device supports pixel level access (mainly used for development). Default `OFF` | +| `osd_ahi_bordered` | Shows a border/corners around the AHI region (pixel OSD only). Default `OFF` | +| `osd_ahi_width` | AHI width in pixels (pixel OSD only). Values 0 - 255, default 132 | +| `osd_ahi_height` | AHI width in pixels (pixel OSD only). Values 0 - 255, default 162 | +| `osd_ahi_vertical_offset` | AHI vertical offset from center (pixel OSD only). Values -128 - 127, default 0 | +| `osd_sidebar_horizontal_offset` | Sidebar horizontal offset from default position. Positive values move the sidebars closer to the edges. Values -128 - 127, default 0 | +| `osd_left_sidebar_scroll_step` | How many units each sidebar step represents. 0 means the default value for the scroll type. Values 0 - 255, default 0 | +| `osd_right_sidebar_scroll_step` | How many units each sidebar step represents. 0 means the default value for the scroll type. Values 0 - 255, default 0 | +| `smartport_master_halfduplex` | Values `OFF`, `ON`, default `ON` | +| `smartport_master_inverted` | Values `OFF`, `ON`, default `OFF` | +| `dji_esc_temp_source` | Re-purpose the ESC temperature field for IMU/BARO temperature. Values `ESC`, `IMU`, `BARO`, default `ESC` | +| `dji_workarounds` | Enables workarounds for different versions of MSP protocol used. Values 0 - 255, default 1. May be set to 0 for non-DJI rigs, otherwise leave at default. | +| `dji_use_name_for_messages` | Re-purpose the craft name field for messages. Replace craft name with :WTSED for Warnings, Throttle, Speed, Efficiency, Trip distance. Values `OFF`, `ON`, default `ON` | + +### Removed settings + +| Setting | Description | +| ------- | ----------- | +| `nav_rth_home_offset_distance` | Replaced by `safehome` | +| `nav_rth_home_offset_direction` | Replaced by `safehome` | +| `gyro_notch1_hz` and `gyro_notch2_hz` | Replaced by `gyro_notch_hz` | +| `gyro_notch1_cutoff` and `gyro_notch2_cutoff` | Replaced by `gyro_notch_cutoff` | +| `use_dterm_fir_filter` | | +| `dterm_setpoint_weight` | | +| `dterm_notch_hz` | | +| `dterm_notch_cutoff` | | +| `mc_iterm_relax_type` | | + +## New drivers and protocols + +* DPS310 barometer ([@digitalentity]) + +## New waypoint types support: SET_HEAD and SET_POI ([@stronnag]) + +The `SET_POI` WP type defines a location for a point of interest (POI). The craft will fly the mission (until a SET_HEAD) with the nose pointing at the POI, which might be useful for aerial photography. Note that the craft does NOT fly to the POI. [Wiki description and example](./advanced/MSP-Navigation-Messages.md#set-poi-multirotor-only-multiwii-inav-26-and-later). + +The `SET_HEAD` type sets the craft's heading (where it 'looks', not the direction of travel). This may be useful for useful for aerial photography. A value of `-1` causing the heading to be 'straight ahead', i.e. the direction of travel. Thus, `SET_POI` `-1` may used to cancel a previous valid `SET_HEAD` or `SET_POI`. A `SET_HEAD` remains in force until cancelled by `SET_HEAD` with `p1` of `-1`, or modified by a subsequent `SET_HEAD` or `SET_POI`. [Wiki description and example](./advanced/MSP-Navigation-Messages.md#set_head-multirotor-only-multiwii-inav-26-and-later). + +For now, this new waypoint types works only for multirotors, as this type of aircraft can fly "looking" to a different direction than it's flying. Different of an airplane, which can only fly forward and thus can only look forward when flying. + +## Safehome ([@tonyyng]) + +Safehome replaces the `nav_rth_home_offset_*` settings, and allows the pilot to define up to 8 alternative home locations as absolute positions (lat, lon as decimal degress * 10,000,000). If a `safehome` is within 200m of the arming point, it will be used as the home location for RTH etc. Please see the separate document [Safehomes.md](https://github.com/iNavFlight/inav/blob/master/docs/Safehomes.md). + +## Improvements to RTH/WP handling ([@digitalentity]). + +WP mode activation with no mission loaded previously kept the current flight mode which may be counter-intuitive to the pilot. OSD will show that the mode is kept, however WP missions are generally not FPV. This PR creates a fallback in such case and will execute RTH instead which is safer than let the drone drift away. Also fixes a bug when RTH procedure may get interrupted in case of a brief sensor loss and switch out to ANGLE, ACRO or MANUAL instead of EMERGENCY. On airplanes with a certain RTH settings a brief GPS loss is tolerated in the navigation state machine, while the RTH activation bug would still bail out. This PR fixes this by making RTH procedure sticky, similar to other navigation flight modes. + +## cmake Development environment ([@fiam]) + +inav 2.6 updates the build environment to use `cmake` as the build management tool. The developer build documentation has been updated for all platforms (MacOS, Linux, Windows, FreeBSD). Please see the [platform specific documentation](https://github.com/iNavFlight/inav/tree/master/docs/development). + +## extend DJI OSD elements through craft_name + +inav 2.6 can populate warnings and multiple (by DJI unsupported) OSD elements into the craft_name field. +Enable the feature via `set dji_use_name_for_messages = ON` and configure the elements through the `name`, considering: +- name must starts with ":" to enable workaround +- each configurable elements is represented by 1 capital letter like: + - (W)arnings, trip (D)istance, 3D (S)peed, (T)hrottle, (E)fficiency + - example: `set name = :WDSTE` +- to use warnings, W must be the first character (although warnings are still optional) +- each non-warning element will iterate for 3 seconds +- invalid characters will be handled and shown as UNKOWN_ELEM +- if warnings are present, other elements will be overriden +- warning elements are shortend due to character limitation of the craft_name in DJI + + +## Small improvements + +* **New Azimuth OSD element** ([@danarrib]) - Shows the direction of the aircraft from home. It's useful to keep the aircraft flying on the correct path in front of a high gain directional antenna. +* **Automatic CLI documentation** ([@nmaggioni]) - Now the [CLI.md](https://github.com/iNavFlight/inav/blob/master/docs/Cli.md) document is auto-generated based on actual source code. It means that now this documentation is much more accurate and always updated. +* **Removed "AIR" flight mode on the OSD** ([@MrD-RC]) - Airmode is not a flight mode itself, it's just ACRO. + +## Main features +* [SRXL2 RX protocol](https://github.com/iNavFlight/inav/pull/5791) +* [Improved compass calibration](https://github.com/iNavFlight/inav/pull/4446) +* [Smoother autonomous flight on Multirotors: CRUISE, WP, RTH](https://github.com/iNavFlight/inav/pull/5338) +* [Allow Multirotor baro-less operations](https://github.com/iNavFlight/inav/pull/5880) +* [SET_HEAD and SET_POI WP types](https://github.com/iNavFlight/inav/pull/5851) +* [Removed gyro notch 2](https://github.com/iNavFlight/inav/pull/5736) +* [Multirotor Control Derivative - an equivalent of Betaflight FeedForward - Dterm is always computed from measurement](https://github.com/iNavFlight/inav/pull/5642) +* [Gyro Kalman Filter aka Unicorn Filter](https://github.com/iNavFlight/inav/pull/5519) +* [Safehomes](https://github.com/iNavFlight/inav/pull/5995) +* [F.port2](https://github.com/iNavFlight/inav/pull/5976) +* [Global Functions and Logic Conditions unification](https://github.com/iNavFlight/inav/pull/5971) +* [IO expander based on PCF8574 support](https://github.com/iNavFlight/inav/pull/5959) see [here for details](https://github.com/iNavFlight/hardware/tree/master/IO%20Expander) +* [Change OSD layout with Logic Conditions](https://github.com/iNavFlight/inav/pull/5934) +* [Logic Conditions sin, cos, tan and range scaling](https://github.com/iNavFlight/inav/pull/6108) +* [Improved airplane airmode handling](https://github.com/iNavFlight/inav/pull/6076) +* [OneShot125 is now a default ESC protocol](https://github.com/iNavFlight/inav/pull/6029) +* [Iterm Relax simplification](https://github.com/iNavFlight/inav/pull/6006) +* Improved OSD CMS [PID mechanics](https://github.com/iNavFlight/inav/pull/6193) [filters](https://github.com/iNavFlight/inav/pull/6174) +* Improved Crossfire support: SNR, LQ and alarms +* [Blackbox is not allowed to log faster than 1kHz](https://github.com/iNavFlight/inav/pull/6127) +* [Allow smoother smooth transition of throttle and pitch angle between the launch climb and the subsequent flight mode](https://github.com/iNavFlight/inav/pull/5988) +* [Allow smoother throttle change in flight modes that maintain altitude](https://github.com/iNavFlight/inav/pull/6104) +* [Add ESC/IMU/BARO temperature to DJI OSD](https://github.com/iNavFlight/inav/pull/6287) +* [Update flight modes map to match Arduplane/Arducopter MAVLink telemetry for compatibility with OpenHD](https://github.com/iNavFlight/inav/pull/5950) +* Support UBLOX M9N GPS and more GPS baud rates [#6182](https://github.com/iNavFlight/inav/pull/6182), [#6269](https://github.com/iNavFlight/inav/pull/6269) +* [Additional TURN_ASSIST pitch gain for coordinated turns - allowing smoother turns in automated modes on tailless airplanes](https://github.com/iNavFlight/inav/pull/6101) +* [Support for additional MSP-based GPS, BARO, COMPASS and PITOT sensors based on AP_Periph or custom firmwares](https://github.com/iNavFlight/inav/pull/6090) + +[@shellixyz]: https://github.com/shellixyz +[@digitalentity]: https://github.com/digitalentity +[@DzikuVx]: https://github.com/DzikuVx +[@fiam]: https://github.com/fiam +[@giacomo892]: https://github.com/giacomo892 +[@hali9]: https://github.com/hali9 +[@stronnag]: https://github.com/stronnag +[@hydra]: https://github.com/hydra +[@OlivierC-FR]: https://github.com/OlivierC-FR +[@Jacky2k]: https://github.com/Jacky2k +[@gereic]: https://github.com/gereic +[@danarrib]: https://github.com/danarrib +[@nmaggioni]: https://github.com/nmaggioni +[@MrD-RC]: https://github.com/MrD-RC +[@tonyyng]: https://github.com/tonyyng diff --git a/versioned_docs/version-8.0.1/3.0.0-Release-Notes.md b/versioned_docs/version-8.0.1/3.0.0-Release-Notes.md new file mode 100644 index 0000000..72bd6bd --- /dev/null +++ b/versioned_docs/version-8.0.1/3.0.0-Release-Notes.md @@ -0,0 +1,559 @@ +--- +title: 3.0.0 Release Notes +--- + +![](http://static.rcgroups.net/forums/attachments/6/1/0/3/7/6/a9088858-102-inav.png) + +**Hello and welcome to INAV 3.0.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](./quickstart/Welcome-to-INAV,-useful-links-and-products.md) + +## Important Notes + +### F3 Removal + +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. + +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. + +### Adjustments +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. + +### Font update required +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. + +# Upgrading from previous releases + +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. + +## Upgrading from 2.6, 2.6.1 + +0. Download and install the new [configurator](https://github.com/iNavFlight/inav-configurator/releases) +1. Save to a file the current _diff all_ from the CLI. +2. Upgrade to INAV 3.0 using the Full Erase option in the configurator. +3. Upload your OSD font of choice from the OSD tab. +4. Go to the CLI again and paste the above-described contents from the file you previously created and write _save_ , press ENTER. +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. +6. You should be ready, explore new 3.0 features and enjoy! + +## Upgrading from 2.5 or older version + +Please follow the instructions on [this](./quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md) page. + +## New targets: + +* Diatone MambaF405US_I2C +* FLYWOOF411_V2 +* Mamba F722_I2C + +## CLI: + +### New commands + +| Setting | Description | +| ------- | ----------- | +| imu2 | Display current status of the Secondary IMU | +| imu2 fetch | Get calibration data from the Secondary IMU | +| pid | Configure general purpose PID controllers. Refer to [docs](https://github.com/iNavFlight/inav/blob/master/docs/Programming%20Framework.md#programming-pid) | + +### Changed Settings + +| Setting | Description | +| ------- | ----------- | +| blackbox_device | Default: target | +| log_level | Default: ERROR | +| 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 | +| nav_rth_climb_first | New: `ON_FW_SPIRAL` | +| platform_type | Default: MULTIROTOR | +| receiver_type | Default: target | +| rssi_source | Default: AUTO | + +### New Settings + +| Setting | Description | +| ------- | ----------- | +| dji_speed_source | Sets the speed type displayed by the DJI OSD: GROUND, 3D, AIR Default: GROUND | +| dshot_beeper_enabled | Whether using DShot motors as beepers is enabled Default: TRUE | +| dshot_beeper_tone | Sets the DShot beeper tone Values: 1 - 5 Default: 1 | +| fw_d_pitch | Fixed wing rate stabilisation D-gain for PITCH Default: 0 | +| fw_d_roll | Fixed wing rate stabilisation D-gain for ROLL Default: 0 | +| fw_d_yaw | Fixed wing rate stabilisation D-gain for YAW Default: 0 | +| 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 | +| 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 | +| gyro_abg_alpha | Alpha factor for Gyro Alpha-Beta-Gamma filter Values: 0 - 1 Default: 0 | +| gyro_abg_boost | Boost factor for Gyro Alpha-Beta-Gamma filter Values: 0 - 2 Default: 0.35 | +| gyro_abg_half_life | Sample half-life for Gyro Alpha-Beta-Gamma filter Values: 0 - 10 Default: 0.5 | +| 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 | +| gyro_anti_aliasing_lpf_type | Specifies the type of the software LPF of the gyro signals. Default: PT1 | +| gyro_dyn_lpf_curve_expo | Expo value for the throttle-to-frequency mapping for Dynamic LPF Values: 1 - 10 Default: 5 | +| gyro_dyn_lpf_max_hz | Maximum frequency of the gyro Dynamic LPF Values: 40 - 1000 Default: 500 | +| gyro_dyn_lpf_min_hz | Minimum frequency of the gyro Dynamic LPF Values: 40 - 400 Default: 200 | +| gyro_main_lpf_hz | Software based gyro main lowpass filter. Value is cutoff frequency (Hz) Values: 0 - 500 Default: 60 | +| 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 | +| 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 | +| imu2_align_pitch | Pitch alignment for Secondary IMU. 1/10 of a degree Values: -1800 - 3600 Default: 0 | +| imu2_align_roll | Roll alignment for Secondary IMU. 1/10 of a degree Values: -1800 - 3600 Default: 0 | +| imu2_align_yaw | Yaw alignment for Secondary IMU. 1/10 of a degree Values: -1800 - 3600 Default: 0 | +| imu2_gain_acc_x | Secondary IMU ACC calibration data Values: -32768 - 32767 Default: 0 | +| imu2_gain_acc_y | Secondary IMU ACC calibration data Values: -32768 - 32767 Default: 0 | +| imu2_gain_acc_z | Secondary IMU ACC calibration data Values: -32768 - 32767 Default: 0 | +| imu2_gain_mag_x | Secondary IMU MAG calibration data Values: -32768 - 32767 Default: 0 | +| imu2_gain_mag_y | Secondary IMU MAG calibration data Values: -32768 - 32767 Default: 0 | +| imu2_gain_mag_z | Secondary IMU MAG calibration data Values: -32768 - 32767 Default: 0 | +| imu2_hardware | Selection of a Secondary IMU hardware type. NONE disables this functionality Default: NONE, values `NONE`, `BNO055`, `BNO055_SERIAL` | +| imu2_radius_acc | Secondary IMU MAG calibration data Values: -32768 - 32767 Default: 0 | +| imu2_radius_mag | Secondary IMU MAG calibration data Values: -32768 - 32767 Default: 0 | +| imu2_use_for_osd_ahi | If set to ON, Secondary IMU data will be used for Analog OSD Artificial Horizon Default: FALSE | +| imu2_use_for_osd_heading | If set to ON, Secondary IMU data will be used for Analog OSD heading Default: FALSE | +| 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 | +| mavlink_version | Version of MAVLink to use Values: 1 - 2 Default: 2 | +| nav_land_maxalt_vspd | Vertical descent velocity above nav_land_slowdown_maxalt during the RTH landing phase. [cm/s] Values: 100 - 2000 Default: 200 | +| nav_land_minalt_vspd | Vertical descent velocity under nav_land_slowdown_minalt during the RTH landing phase. [cm/s] Values: 50 - 500 Default: 50 | +| 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 | +| 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 | +| 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 | +| 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 | +| 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 | +| 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 | +| osd_sidebar_height | Height of sidebars in rows. 0 leaves only the level indicator arrows (Not for pixel OSD) Values: 0 - 5 Default: 3 | +| 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` | +| osd_telemetry | To enable OSD telemetry for antenna tracker. Possible values are `OFF`, `ON` and `TEST` Default: OFF | +| 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 | +| 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 | +| 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 | +| 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 | +| smith_predictor_delay | Expected delay of the gyro signal. In milliseconds Values: 0 - 8 Default: 0 | +| smith_predictor_lpf_hz | Cutoff frequency for the Smith Predictor Low Pass Filter Values: 1 - 500 Default: 50 | +| smith_predictor_strength | The strength factor of a Smith Predictor of PID measurement. In percents Values: 0 - 1 Default: 0.5 | +| turtle_mode_power_factor | Turtle mode power factor Values: 0 - 100 Default: 55 | +| vtx_smartaudio_early_akk_workaround | Enable workaround for early AKK SAudio-enabled VTX bug. Default: TRUE | +| osd_rssi_dbm_alarm | RSSI in dBm alarm for Crossfire. Default: 0 | +| nav_wp_load_on_boot | If set to ON, waypoints will be automatically loaded from EEPROM to the FC during startup. Default: OFF | + +### Removed settings + +| Setting | Description | +| ------- | ----------- | +| gyro_sync | | +| nav_landing_speed | replaced by `nav_land_minalt_vspd` and `nav_land_maxalt_vspd` | + +### Renamed settings + +| Old name | New name | +| -------- | -------- | +| gyro_lpf_hz | Replaced with `gyro_main_lpf_hz` | +| gyro_lpf_type | Replaced with `gyro_main_lpf_type` | +| gyro_stage2_lowpass_hz | Replaced with `gyro_anti_aliasing_lpf_hz` | +| gyro_stage2_lowpass_type | Replaced with `gyro_anti_aliasing_lpf_type` | +| mc_airmode_threshold | airmode_threshold | +| mc_airmode_type | airmode_type | +| osd_artificial_horizon_max_pitch | osd_ahi_max_pitch | +| osd_artificial_horizon_reverse_roll | osd_ahi_reverse_roll | + +## New drivers and protocols + +* Rangefinder "GY-US42(v2) Ultrasonic Range Sensor +* Rangefinder vl53l1x +* BNO055 Secondary IMU +* BMI088 IMU + +## New features + +### Turtle mode aka Flip Over after crash ([@kernel-machine]) + +INAV now has a "Turtle Mode". + +* Requires DSHOT ESC protocol +* Assign a switch to TURTLE mode +* Ensure you can arm at any angle + +### WP mission sealevel altitude datum ([@breadoven]) + +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](./advanced/MSP-Navigation-Messages.md#waypoint-and-action-attributes) for details (WP `paramater 3`) + +### WP Mission Landing Elevation Setting ([@breadoven]) + +The relative / absolute ground altitude of a `LAND` waypoint may be set as WP `paramater 2` (m). See the [inav wiki](./advanced/MSP-Navigation-Messages.md#waypoint-and-action-attributes) for details. + +### DShot Beeper ([@harry1453]) + +Nothing to add. If DSHOT is enabled, DSHOT beeper will be used. + +### RC via MAVLink & MAVLink V2 Support ([@harry1453]) + +MAVLink is still only a downlink from UAV to the ground station, but now allows to use RC-Over-MAVLink + +### Prearm Mode ([@harry1453]) + +Prearm offers a two-stage arming process as an optional additional safety feature. + +* Activate prearm (normally a button or momentary switch) +* Activate arm + +### Initial cut on H7 MCU support ([@digitalentity], [@bkleiner], [@DzikuVx]) + +H7 is available in the source repository; target Hex files will be released as targets mature, probably in the future point releases. + +### Add D-term to control loop on fixed wing aircraft ([@avsaase]) + +### Improved AUTOTUNE for fixed wing ([@avsaase]) +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. + +### Continuously trim servos on fixed wing ([@avsaase]) +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. + +## Improvements and updates + +### Gyro processing improvements ([@DzikuVx]) + +As part of gyro processing updates, the following changes were made: +1. `gyro_sync` is gone, INAV no longer does a wait cycle trying to get the next set of data from the gyro. +1. Gyro data acquisition is no longer part of the main PID task +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 +1. All the other filters are running as part of the main PID task as before +1. The gyro low-pass filter `gyro_lpf_hz` was renamed to `gyro_main_lpf_hz` + +### New experimental features for Multirotors + +* 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 +* 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. +* 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` + +### Update EGNOS PRN mask to latest EGSA definition, fix SBAS for non-Galileo usage ([@stronnag]) + +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. + +### Make CW270FLIP default MAG alignment ([@DzikuVx]) + +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. + +### Rename NAV CRUISE mode to NAV COURSE HOLD and add CRUISE mode which is equivalent to CRSH+AH ([@shellixyz]) + +To more clearly state what they do and how they work. It's a subtle, but worth it change for sure! + +### Bump OSD font min version to 2 ([@shellixyz]) + +Users must upgrade OSD Fonts to Version 2 (or later). + +### Delayed safehome ([@tonyyng]) + +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. + +### Switched RTH Preset Altitude Override ([@breadoven]) + +Provides stick options to override configured RTH climb and/or turn behaviour. See the `nav_rth_alt_control_override` setting description for details. + +### Renamed OSD SW and LEDLOW to OSD/LEDS OFF ([@MrD-RC]) + +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. + +### Fixed wing RTH Spiral Climb Option ([@breadoven]) + +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 + +### Do not slow down in WP mission when approaching a waypoint ([@DzikuVx]) + +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. + +### Configure speed source for DJI OSD ([@DzikuVx]) + +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 + +### Ability to trim pitch angle for level flight ([@DzikuVx]) + +1. The flight controller trimming for level flight on Fixed Wings is no longer a recommended way to do so +1. Board ROLL and PITCH setting should be changed only when the flight controller is not installed parallel to the wings plane +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 +1. Flight mode `AUTO LEVEL` will automatically trim the pitch angle when ANGLE or HORIZON flight modes are used + +### vtx_smartaudio_early_akk_workaround option ([@RomanLut]) + +If your old AKK VTX is not working, use `vtx_smartaudio_early_akk_workaround` to fix it! + +### Added option to output servos on PWM and SBUS ([@IVData]) + +### Option for local plus codes on osd ([@avsaase]) +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. + +### Changed default settings for fixed wing throttle smoothing in navigation modes ([@Airwide]) +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. + +### Improved flight performance on planes with rudder ([@avsaase]) +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. + +### Secondary IMU + +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! + +### Altitude limit + +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 + +### General Purpose PID controllers + +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. + +## All Changes since 2.6.1 + +* #6937 [Set correct I2C bus for rangefinders on SpeeedyBeedF4](https://github.com/iNavFlight/inav/pull/6937) +* #6936 [Fix mistake in #6904](https://github.com/iNavFlight/inav/pull/6936) +* #6935 [Fix Mamba I2C targets](https://github.com/iNavFlight/inav/pull/6935) +* #6930 [CMS: fix some and add missing items in OSD menu](https://github.com/iNavFlight/inav/pull/6930) +* #6929 [Add power limits](https://github.com/iNavFlight/inav/pull/6929) +* #6928 [Make CW270FLIP default MAG alignment](https://github.com/iNavFlight/inav/pull/6928) +* #6923 [Correct a typo in Navigation.md](https://github.com/iNavFlight/inav/pull/6923) +* #6914 [Update H743 pin mapping in MC mode](https://github.com/iNavFlight/inav/pull/6914) +* #6913 [Update launch docs to clarify climb angle](https://github.com/iNavFlight/inav/pull/6913) +* #6912 [h7: fix vcp on cold boot & dfu reset](https://github.com/iNavFlight/inav/pull/6912) +* #6905 [H7 timer/pwm output support](https://github.com/iNavFlight/inav/pull/6905) +* #6904 [Add CRUISE mode which is equivalent to CRSH+AH](https://github.com/iNavFlight/inav/pull/6904) +* #6902 [Alpha-Beta-Gamma filter for gyro](https://github.com/iNavFlight/inav/pull/6902) +* #6900 [Smith Compensator on PID measurement](https://github.com/iNavFlight/inav/pull/6900) +* #6896 [OSD sidebar height option](https://github.com/iNavFlight/inav/pull/6896) +* #6887 [Antenna tracking - video telemetry](https://github.com/iNavFlight/inav/pull/6887) +* #6878 [Enforce limits from setting.yaml in RC adjustments and add the possib…](https://github.com/iNavFlight/inav/pull/6878) +* #6876 [settings.rb: enforce min/max for default_value when possible](https://github.com/iNavFlight/inav/pull/6876) +* #6867 [Diatone MambaF405US_I2C target](https://github.com/iNavFlight/inav/pull/6867) +* #6866 [Mamaba F722_I2C target](https://github.com/iNavFlight/inav/pull/6866) +* #6864 [Fixes 0 dBm at disarm page when using crsf](https://github.com/iNavFlight/inav/pull/6864) +* #6863 [Turtle mode optimization](https://github.com/iNavFlight/inav/pull/6863) +* #6862 [OSD efficiency units](https://github.com/iNavFlight/inav/pull/6862) +* #6858 [Add option to display min cell voltage instead of min pack voltage on the disarm screen](https://github.com/iNavFlight/inav/pull/6858) +* #6857 [OSD: Fix bug in font metadata handling](https://github.com/iNavFlight/inav/pull/6857) +* #6856 [Bump OSD font min version to 2](https://github.com/iNavFlight/inav/pull/6856) +* #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) +* #6852 [Fix WP mode Set Head not resetting when starting new WP mission](https://github.com/iNavFlight/inav/pull/6852) +* #6846 [Drop gyro_sync](https://github.com/iNavFlight/inav/pull/6846) +* #6845 [Turtle mode issue fix](https://github.com/iNavFlight/inav/pull/6845) +* #6842 [Fix DSHOT beeper reset template](https://github.com/iNavFlight/inav/pull/6842) +* #6838 [Stats pages fix](https://github.com/iNavFlight/inav/pull/6838) +* #6830 [Fix error handling in settings.rb:Generator#resolve_types](https://github.com/iNavFlight/inav/pull/6830) +* #6828 [Gyro processing improvements](https://github.com/iNavFlight/inav/pull/6828) +* #6827 [Minor F7 optimization](https://github.com/iNavFlight/inav/pull/6827) +* #6826 [Move Lagacy Boards from docs to Wiki](https://github.com/iNavFlight/inav/pull/6826) +* #6822 [WP Mission Landing Elevation Setting](https://github.com/iNavFlight/inav/pull/6822) +* #6821 [Renamed OSD SW and LEDLOW to OSD/LEDS OFF](https://github.com/iNavFlight/inav/pull/6821) +* #6812 [DShot Beeper](https://github.com/iNavFlight/inav/pull/6812) +* #6807 [ZEEZF7V2 target](https://github.com/iNavFlight/inav/pull/6807) +* #6806 [Fix int32_t microseconds overflow in navigation.](https://github.com/iNavFlight/inav/pull/6806) +* #6805 [Cell detection fix](https://github.com/iNavFlight/inav/pull/6805) +* #6802 [Serial interface for BNO055 IMU](https://github.com/iNavFlight/inav/pull/6802) +* #6801 [Add raw rangefinder distance to OSD](https://github.com/iNavFlight/inav/pull/6801) +* #6800 [Increase loiter max radius to 300m](https://github.com/iNavFlight/inav/pull/6800) +* #6796 [OSD: display power >1000W in kW](https://github.com/iNavFlight/inav/pull/6796) +* #6795 [Altitude debug mode](https://github.com/iNavFlight/inav/pull/6795) +* #6794 [Increase max cell count to 12](https://github.com/iNavFlight/inav/pull/6794) +* #6792 [Added rangefinder "GY-US42(v2) Ultrasonic Range Sensor"](https://github.com/iNavFlight/inav/pull/6792) +* #6783 [Homogenize OSD AHI settings prefix](https://github.com/iNavFlight/inav/pull/6783) +* #6782 [canvas: Honor ahi_max_pitch when drawing the horizon line](https://github.com/iNavFlight/inav/pull/6782) +* #6758 [HGLRCF722 add additional MC_MOTORS](https://github.com/iNavFlight/inav/pull/6758) +* #6757 [Version bump to 3.0](https://github.com/iNavFlight/inav/pull/6757) +* #6750 [Add GPS valid fix to programming](https://github.com/iNavFlight/inav/pull/6750) +* #6748 [fix incorrect sdmmc_sdio_f4xx error state](https://github.com/iNavFlight/inav/pull/6748) +* #6738 [RC via MAVLink & MAVLink V2 Support](https://github.com/iNavFlight/inav/pull/6738) +* #6737 [Add "prearm was reset" flag to prevent rearming without resetting prearm & add prearm timeout](https://github.com/iNavFlight/inav/pull/6737) +* #6727 [Set failsafe procedure from OSD](https://github.com/iNavFlight/inav/pull/6727) +* #6726 [Detect launch on gps speed](https://github.com/iNavFlight/inav/pull/6726) +* #6720 [Enable report_cell_voltage support for CRSF telemetry](https://github.com/iNavFlight/inav/pull/6720) +* #6704 [Arming screen changes](https://github.com/iNavFlight/inav/pull/6704) +* #6699 [Add modulus operator support](https://github.com/iNavFlight/inav/pull/6699) +* #6696 [Fix the timer and DMA conflicts in the target, resolves #6303](https://github.com/iNavFlight/inav/pull/6696) +* #6695 [Do not slow down in WP mission when approaching a waypoint](https://github.com/iNavFlight/inav/pull/6695) +* #6693 [Add support for GHST GPS Telemetry](https://github.com/iNavFlight/inav/pull/6693) +* #6692 [Fix compiler warnings when #define use_lights, fix F3 targets compilation](https://github.com/iNavFlight/inav/pull/6692) +* #6687 [Fix Serial RX and ICM20689 Target YUPIF7](https://github.com/iNavFlight/inav/pull/6687) +* #6685 [Flip over after crash aka TURTLE MODE](https://github.com/iNavFlight/inav/pull/6685) +* #6678 [Remove the OPFLOW_PMW3901 opflow hardware option](https://github.com/iNavFlight/inav/pull/6678) +* #6676 [Update Docs to correct LC VBAT scale](https://github.com/iNavFlight/inav/pull/6676) +* #6674 [Separate D and CD/FF adjustments](https://github.com/iNavFlight/inav/pull/6674) +* #6671 [Small docs update](https://github.com/iNavFlight/inav/pull/6671) +* #6669 [Add D-term to control loop on fixed wing](https://github.com/iNavFlight/inav/pull/6669) +* #6664 [Add an ability not to slow down when switching to the next waypoint](https://github.com/iNavFlight/inav/pull/6664) +* #6662 [WP mission sealevel altitude datum](https://github.com/iNavFlight/inav/pull/6662) +* #6660 [Limit the size of OSD DEBUG element](https://github.com/iNavFlight/inav/pull/6660) +* #6658 [Change PIDFF settings in CMS to UINT16](https://github.com/iNavFlight/inav/pull/6658) +* #6655 [Delayed safehome](https://github.com/iNavFlight/inav/pull/6655) +* #6646 [Update docs for Lua telemetry](https://github.com/iNavFlight/inav/pull/6646) +* #6644 [Adds heading target logic condition](https://github.com/iNavFlight/inav/pull/6644) +* #6625 [Add ability to read Programming PID status via MSP](https://github.com/iNavFlight/inav/pull/6625) +* #6623 [Add MATEKF405CAN board; Add support for RM3100 compass on SPI bus](https://github.com/iNavFlight/inav/pull/6623) +* #6616 [Camera uptilt AHI compensation](https://github.com/iNavFlight/inav/pull/6616) +* #6610 [Allow to configure speed source for DJI OSD](https://github.com/iNavFlight/inav/pull/6610) +* #6604 [CRSF SNR Range](https://github.com/iNavFlight/inav/pull/6604) +* #6598 [Add OSD Stats pages and some crsf formatting fixes](https://github.com/iNavFlight/inav/pull/6598) +* #6595 [Get setting default values from settings.yaml](https://github.com/iNavFlight/inav/pull/6595) +* #6588 [Increase the number or mode ranges](https://github.com/iNavFlight/inav/pull/6588) +* #6581 [Increased fw loiter radius default](https://github.com/iNavFlight/inav/pull/6581) +* #6578 [Removed mc_ from airmode CLI variables](https://github.com/iNavFlight/inav/pull/6578) +* #6572 [Feature/rangefinder vl53l1x](https://github.com/iNavFlight/inav/pull/6572) +* #6568 [Ability to trim pitch angle for level flight](https://github.com/iNavFlight/inav/pull/6568) +* #6566 [Extract navigation PID controller to separate module](https://github.com/iNavFlight/inav/pull/6566) +* #6562 [[FEATURE] Prearm](https://github.com/iNavFlight/inav/pull/6562) +* #6556 [Remove duplicate waypoints messages in the OSD/Hud](https://github.com/iNavFlight/inav/pull/6556) +* #6544 [build: Use -Os for F7 targets with flash \<= 512K](https://github.com/iNavFlight/inav/pull/6544) +* #6543 [Allow 20 second compass calibration](https://github.com/iNavFlight/inav/pull/6543) +* #6537 [Update Buzzer.md](https://github.com/iNavFlight/inav/pull/6537) +* #6510 [Add a new MSP2_INAV_MISC2 message type](https://github.com/iNavFlight/inav/pull/6510) +* #6501 [Pan servo home direction offset](https://github.com/iNavFlight/inav/pull/6501) +* #6495 [FLYWOOF411_V2 based on target files from vendor](https://github.com/iNavFlight/inav/pull/6495) +* #6493 [report launch flight mode with higher priority](https://github.com/iNavFlight/inav/pull/6493) +* #6492 [ZEEZF7 Add VTX power on/off via PINIO on pin PB11](https://github.com/iNavFlight/inav/pull/6492) +* #6488 [Blink osd power on current draw alarm](https://github.com/iNavFlight/inav/pull/6488) +* #6487 [Remove unused UAV_INTERCONNECT](https://github.com/iNavFlight/inav/pull/6487) +* #6486 [Fix "maybe uninitialised" variables with MinSizeRel](https://github.com/iNavFlight/inav/pull/6486) +* #6479 [GPS failure indication improvements](https://github.com/iNavFlight/inav/pull/6479) +* #6473 [Add section for Omnibus Corner Nano to Omnibus F4 board doc](https://github.com/iNavFlight/inav/pull/6473) +* #6470 [Do not show efficiency on osd when ground speed is below 1 m/s](https://github.com/iNavFlight/inav/pull/6470) +* #6469 [Option for local plus codes on osd](https://github.com/iNavFlight/inav/pull/6469) +* #6464 [ZEEZF7 MSP-based GPS, magnetometer and barometer](https://github.com/iNavFlight/inav/pull/6464) +* #6458 [added vtx_smartaudio_early_akk_workaround option](https://github.com/iNavFlight/inav/pull/6458) +* #6437 [Fixed wing RTH Spiral Climb Option](https://github.com/iNavFlight/inav/pull/6437) +* #6434 [Correct test for Galileo capability](https://github.com/iNavFlight/inav/pull/6434) +* #6433 [Set default gyro LPF to 256Hz](https://github.com/iNavFlight/inav/pull/6433) +* #6431 [update EGNOS PRN mask to latest EGSA definition, fix SBAS for non-Galileo usage.](https://github.com/iNavFlight/inav/pull/6431) +* #6430 [Fix Nav Launch detection related bugs](https://github.com/iNavFlight/inav/pull/6430) +* #6420 [add MSP for setting and getting safe homes](https://github.com/iNavFlight/inav/pull/6420) +* #6419 [update `Cmake usage.md` for `src/main/CMakeLists.txt`.](https://github.com/iNavFlight/inav/pull/6419) +* #6407 [TURN ASSIST improvements for Fixed Wing](https://github.com/iNavFlight/inav/pull/6407) +* #6404 [Do not run tests for docs-only PRs](https://github.com/iNavFlight/inav/pull/6404) +* #6403 [Trigger docs CI on PRs](https://github.com/iNavFlight/inav/pull/6403) +* #6395 [Add note about Google Maps coordinates in Safehomes docs](https://github.com/iNavFlight/inav/pull/6395) +* #6391 [Added pitch2thr smoothing defaults to pg_reset_template](https://github.com/iNavFlight/inav/pull/6391) +* #6387 [Freeze yaw I-term above bank angle threshold](https://github.com/iNavFlight/inav/pull/6387) +* #6384 [Fix EEPROM loading code](https://github.com/iNavFlight/inav/pull/6384) +* #6383 [Enable DSHOT support on FF_F35/WINGFC](https://github.com/iNavFlight/inav/pull/6383) +* #6376 [Improve nav_overrides_motor_stop documentation](https://github.com/iNavFlight/inav/pull/6376) +* #6375 [[BUILD] Update the toolchain to gcc-9.3.1](https://github.com/iNavFlight/inav/pull/6375) +* #6374 [build: deduplicate version number](https://github.com/iNavFlight/inav/pull/6374) +* #6373 [Bump cmake version](https://github.com/iNavFlight/inav/pull/6373) +* #6372 [update NAV_PERSISTENT_ID_RTH_HOVER_ABOVE_HOME so the IDs are really unique](https://github.com/iNavFlight/inav/pull/6372) +* #6370 [Increase version to 2.7.0](https://github.com/iNavFlight/inav/pull/6370) +* #6369 [Back-merge release 2.6.0 branch into master](https://github.com/iNavFlight/inav/pull/6369) +* #6368 [Improve virtual current sensor for Nav modes with throttle stop override](https://github.com/iNavFlight/inav/pull/6368) +* #6365 [Add user programmable PID controllers to a Programming Framework](https://github.com/iNavFlight/inav/pull/6365) +* #6361 [Changed default settings for fixed wing throttle smoothing in navigation modes](https://github.com/iNavFlight/inav/pull/6361) +* #6357 [Cleanup unused SPI receivers](https://github.com/iNavFlight/inav/pull/6357) +* #6356 [[MATEKF405] Add the possibility of MC servo on S7](https://github.com/iNavFlight/inav/pull/6356) +* #6353 [[Target] Matek F411WSE: Softserial1 Full Duplex](https://github.com/iNavFlight/inav/pull/6353) +* #6345 [Always use rxGetChannelValue instead of rxGetRawChannelValue](https://github.com/iNavFlight/inav/pull/6345) +* #6344 [Add version to osd](https://github.com/iNavFlight/inav/pull/6344) +* #6341 [Allow Logic Conditions to override RC channels](https://github.com/iNavFlight/inav/pull/6341) +* #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) +* #6333 [Add safehome_max_distance option. Choose nearest safehome.](https://github.com/iNavFlight/inav/pull/6333) +* #6329 [TPA OSD element bugfix](https://github.com/iNavFlight/inav/pull/6329) +* #6323 [Disable all F3 targets](https://github.com/iNavFlight/inav/pull/6323) +* #6322 [Dynamic gyro LPF](https://github.com/iNavFlight/inav/pull/6322) +* #6321 [Precompute k for PT1 filter](https://github.com/iNavFlight/inav/pull/6321) +* #6297 [Rename NAV CRUISE mode to NAV COURSE HOLD](https://github.com/iNavFlight/inav/pull/6297) +* #6180 [Add driver for BMI088 IMU](https://github.com/iNavFlight/inav/pull/6180) +* #6179 [Switched RTH Preset Altitude Override](https://github.com/iNavFlight/inav/pull/6179) +* #6166 [Add MATEKF411SE_PINIO target](https://github.com/iNavFlight/inav/pull/6166) +* #6106 [Added option to output servos on PWM and SBUS](https://github.com/iNavFlight/inav/pull/6106) +* #6050 [Added state NAV_STATE_WAYPOINT_HOVER_ABOVE_HOME](https://github.com/iNavFlight/inav/pull/6050) +* #5827 [[H7] Initial cut on H7 MCU support](https://github.com/iNavFlight/inav/pull/5827) +* #5100 [BNO055 Secondary IMU](https://github.com/iNavFlight/inav/pull/5100) + + +[@shellixyz]: https://github.com/shellixyz +[@digitalentity]: https://github.com/digitalentity +[@DzikuVx]: https://github.com/DzikuVx +[@stronnag]: https://github.com/stronnag +[@nmaggioni]: https://github.com/nmaggioni +[@tonyyng]: https://github.com/tonyyng +[@breadoven]: https://github.com/breadoven +[@avsaase]: https://github.com/avsaase +[@harry1453]: https://github.com/harry1453 +[@MrD-RC]: https://github.com/MrD-RC +[@RomanLut]: https://github.com/RomanLut +[@IVData]: https://github.com/IVData +[@fiam]: https://github.com/fiam +[@Airwide]: https://github.com/Airwide +[@kernel-machine]: https://github.com/kernel-machine +[@bkleiner]: https://github.com/bkleiner +[@Jetrell]: https://github.com/jetrell + +## Recommended hardware + +### Flight controllers +* [Matek F722-SE](https://inavflight.com/shop/p/MATEKF722SE) +* [Matel F722-WPS](https://inavflight.com/shop/s/bg/1778068) +* [Matek F411-WSE](https://inavflight.com/shop/s/bg/1546243) +* [Matek F765-WING](https://inavflight.com/shop/s/bg/1557661) +* [Matek F722-MiniSE](https://inavflight.com/shop/s/bg/1707404) +* [Holybro Kakute F7](https://inavflight.com/shop/s/bg/1315723) + +### Airplane models +* [AR Wing Pro](https://inavflight.com/shop/s/bg/1756841) +* [AtomRC Dolphin](https://inavflight.com/shop/s/bg/1758430) +* [C1 Chaser](https://inavflight.com/shop/s/bg/1102080) +* [SonicModell Binary](https://inavflight.com/shop/s/bg/1473014) +* [Volantex Ranger 2000](https://inavflight.com/shop/s/bg/1151700) +* [Mini AR Wing](https://inavflight.com/shop/s/bg/1341528) + +### Radios +* [Radiomaster TX16S](https://inavflight.com/shop/s/bg/1746075) +* [Jumper T18 Pro](https://inavflight.com/shop/s/bg/1680526) +* [FrSky Q X7](https://inavflight.com/shop/s/bg/1196246) +* [FlySky FS-i6X](https://inavflight.com/shop/s/bg/1090406) + +### Long range radio systems +* [Radiomaster TX16S + TBS Crossfire Starter Set](https://inavflight.com/shop/s/bg/1735618) +* [ImmersionsRC Ghost](https://inavflight.com/shop/s/bg/1722555) +* [SIYI FM30](https://inavflight.com/shop/s/bg/1776430) +* [FrSky R9M 2019 + R9MX](https://inavflight.com/shop/s/bg/1707906) + +### GPS & Sensors +* [Beitian BN180 GPS](https://inavflight.com/shop/p/BN180) +* [Beitian BN880Q GPS+COMPASS](https://inavflight.com/shop/s/bg/1450469) +* [Beitian BN880 GPS+COMPASS ](https://inavflight.com/shop/p/BN880) +* [Matek M8Q-5883](https://inavflight.com/shop/s/bg/1337288) +* [Matek Lidar+OpFlow board](https://inavflight.com/shop/s/bg/1604930) +* [Matek Digital Airspeed Sensor](https://inavflight.com/shop/s/bg/1710131) +* [Benewake TFmini Lidar](https://inavflight.com/shop/s/bg/1449740) +* [VL53L0X Lidar](https://inavflight.com/shop/s/bg/1103114) + +### FPV +* [Foxeer T-Rex FPV camera](https://inavflight.com/shop/s/bg/1756536) +* [RunCam Eagle 3 FPV camera](https://inavflight.com/shop/s/bg/1723926) +* [Caddx Ratel 2 FPV camera](https://inavflight.com/shop/s/bg/1779714) +* [Caddx Vista HD](https://inavflight.com/shop/s/bg/1625165) +* [Rush Tank Ultimate](https://inavflight.com/shop/s/bg/1707214) +* [Matek 1G3 video transmitter and receiver](https://inavflight.com/shop/s/bg/1745975) +* [Eachine Cobra X FPV goggles](https://inavflight.com/shop/s/bg/1778518) +* [Skyzone SKY04X FPV goggles](https://inavflight.com/shop/s/bg/1755006) + +### Other +* [ViFly ShortSaver 2](https://inavflight.com/shop/s/bg/1788341) +* [ViFly Finer buzzer](https://inavflight.com/shop/s/bg/1329066) + +You can get more suggestions following this [link](./quickstart/Welcome-to-INAV,-useful-links-and-products.md) too. diff --git a/versioned_docs/version-8.0.1/4.0.0-Release-Notes.md b/versioned_docs/version-8.0.1/4.0.0-Release-Notes.md new file mode 100644 index 0000000..84597ec --- /dev/null +++ b/versioned_docs/version-8.0.1/4.0.0-Release-Notes.md @@ -0,0 +1,290 @@ +--- +title: 4.0.0 Release Notes +--- + +![](https://quadmeup.com/assets/winged-inav.png) + +## Hello and welcome to INAV 4.0 "Red Kite" + +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 Discord Server
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](./quickstart/Welcome-to-INAV,-useful-links-and-products.md) + +# Important Notes + +## PPM receivers are no longer supported +If you use a PPM receiver, these are no longer supported by INAV. We recommend that you use serial based receivers. + +## F411 and F722 feature reduction +Due to the storage space on these flight controllers. Features have started to be dropped. See [PR #7297](https://github.com/iNavFlight/inav/pull/7297) for details + +## Font update required +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. + +## INAV LUA Script +If you are using the INAV LUA script and Crossfire, you should update to the latest [INAV LUA script](https://github.com/iNavFlight/OpenTX-Telemetry-Widget/releases). + +## Upgrading from a previous release + + +### Upgrading from INAV 3 + +You can copy `osd`, `led`, `servo`, `aux`, `serial`, and mixer settings, from INAV 3.0.2 _diff all_, but other settings should be tuned again. + +0. Download and install the new [configurator](https://github.com/iNavFlight/inav-configurator/releases) +1. Save to a file the current _diff all_ from the CLI. +2. Upgrade to INAV 4.0 using the Full Erase option in the configurator. +3. Upload your OSD font of choice from the OSD tab. +4. Go to the CLI again and paste the above-described contents from the file you previously created and write _save_ , press ENTER. +5. There are a large number of new, changed, and removed settings. Check carefully that the settings are correct and fix any unrecognized or out-of-range items from the saved configuration. +6. You should be ready, explore new 4.0 features, and enjoy! + +### Upgrading from older versions + +Please follow the instructions on [this](./quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md) page. + +# Important changes + +## Filtering changes + +With INAV 4.0 there are a couple of important changes in how gyro and D-term are filtered. They mostly affect Multirotor pilots. + +1. Kalman filter aka Unicorn Filter is enabled by default +1. Unicorn Filter setup is simplified: you only tune Q factor. Window size and sharpness settings are removed +1. Dynamic Notch aka Matrix Filter is enabled by default +1. Matrix filter has been reworked and simplified. Now you only set minimum frequency and Q factor +1. Matrix filter resolution is now 4 times higher than with INAV 3 +1. Static gyro notch was removed +1. First D-term LPF type changed to PT2 and second D-term LPF is disabled - this gives the same filtering as previously but with less settings to worry about +1. The Alpha-Beta-Gamma filter removed +1. The Smith Predictor is enabled by default by the new Configurator defaults + +## H743 support + +INAV 4.0 comes with the full support of all H7 boards compatible with **MATEKH743** target. This includes the SD Card and MSC mode support. Bear in mind, CAN and UAVCAN are still not supported by INAV and currently, there are no plans to implement them. + +## Blackbox improvements + +Blackbox now always logs the **Control Derivative** and **Feed Forward** components, as well as rate target in degrees-per-seconds. +The latest INAV Blackbox Explorer is required to fully use those features. + +New command `blackbox` allows setting which Blackbox fields are recorded to conserve space and bandwidth. Possible fields are: + +* NAV_ACC - Navigation accelerometer readouts +* NAV_PID - Navigation PID debug +* NAV_POS - Current and target position and altitude +* MAG - Magnetometer raw values +* ACC - Accelerometer raw values +* ATTI - Attitude as computed by INAV position estimator +* RC_DATA - RC channels 1-4 as returned by the radio receiver +* RC_COMMAND - RC_DATA converted to [-500:500] scale with expo and headband +* MOTORS - motor output + +Usage + +* `blackbox` currently enabled Blackbox fields +* `blackbox list` all available fields +* `blackbox -MOTORS` disable MOTORS logging +* `blackbox MOTOR` enable MOTORS logging + +## Rate Dynamics + +INAV 4.0 adds a port of the EmuFlight Rate Dynamics system. It modifies stick input to change the flight feeling. To find out more refer to: +1. [https://www.youtube.com/watch?v=8WyJx2FcLzI](https://www.youtube.com/watch?v=8WyJx2FcLzI) +1. [https://github.com/emuflight/EmuFlight/wiki/Rate-Dynamics](https://github.com/emuflight/EmuFlight/wiki/Rate-Dynamics) + +Below are some presets you might want to try + +### Default +``` +set rate_dynamics_center_sensitivity = 100 +set rate_dynamics_center_correction = 10 +set rate_dynamics_center_weight = 0 +set rate_dynamics_end_sensitivity = 100 +set rate_dynamics_end_correction = 10 +set rate_dynamics_end_weight = 0 +``` + +### Cinematic +``` +set rate_dynamics_center_sensitivity = 80 +set rate_dynamics_center_correction = 20 +set rate_dynamics_center_weight = 85 +set rate_dynamics_end_sensitivity = 90 +set rate_dynamics_end_correction = 10 +set rate_dynamics_end_weight = 50 +``` +### Freestyle +``` +set rate_dynamics_center_sensitivity = 80 +set rate_dynamics_center_correction = 10 +set rate_dynamics_center_weight = 35 +set rate_dynamics_end_sensitivity = 130 +set rate_dynamics_end_correction = 10 +set rate_dynamics_end_weight = 35 +``` +### Freestyle Less bounceback +``` +set rate_dynamics_center_sensitivity = 80 +set rate_dynamics_center_correction = 10 +set rate_dynamics_center_weight = 35 +set rate_dynamics_end_sensitivity = 130 +set rate_dynamics_end_correction = 30 +set rate_dynamics_end_weight = 35 +``` +### Racing +``` +set rate_dynamics_center_sensitivity = 130 +set rate_dynamics_center_correction = 35 +set rate_dynamics_center_weight = 30 +set rate_dynamics_end_sensitivity = 115 +set rate_dynamics_end_correction = 20 +set rate_dynamics_end_weight = 10 +``` + +## Battery Profiles + +Some settings have moved from the `# master` section of the CLI in to `# battery profiles`. These include: +- `throttle_idle` +- `fw_min_throttle_down_pitch` +- `nav_fw_cruise_thr` +- `nav_fw_min_thr` +- `nav_fw_pitch2thr` +- `nav_fw_launch_thr` +- `nav_fw_launch_idle_thr` +- `failsafe_throttle` +- `nav_mc_hover_thr` + +These settings will be automatically added to the current battery profile when importing a `diff`. You will need to replicate them on any other battery profiles you use. + +## WP Mission Enhancements + +### Multi-Mission + +Multiple missions may be uploaded to the flight controller and a mission selected for execution by OSD, [Stick Command](https://github.com/iNavFlight/inav/blob/release_4.0.0/docs/Controls.md#stick-positions) or Mission Planner. Multi-Mission is supported by the inav Configurator and mwp mission planners. + +### Number of Waypoints + +The maximum number of WPs is now 120. + +### On the fly missions + +Inav 4.0 adds the capability to generate an "on the fly" mission while flying using aircraft positions. + +### Fly By Home Waypoints + +Inav 4.0 adds Fly-by-home waypoints. This is a way point whose location is set to the home position at arm time. + +## Fixed wing changes + +### [Soaring mode](https://github.com/iNavFlight/inav/pull/7250) + +Soaring mode comes to INAV 4.0. The addition is great for people who fly gliders. Soaring mode adds a modifier that you can use to change how Course Hold, Cruise, or Position Hold (loiter) behave. When enabled, it disables altitude control and allows Angle mode to free float in pitch, allows the plane to soar freely. + +### [Two-stage climb first for RTH](https://github.com/iNavFlight/inav/pull/7323) + +This change allows the climb phase of a climb first RTH to have two separate parts. This is useful for pilots who want to climb first, to clear potential obstacles. But, don't want to be wasting energy flying away from home. This allows you to set a first climb stage altitude. Once it meets or exceeds that altitude, the plane will turn to home and continue climbing to the RTH altitude. See the [INAV Wiki](./features/Navigation-Mode-Return-to-Home.md) for more information. + +### [Autotune no longer tunes P and I](https://github.com/iNavFlight/inav/pull/7461) + +There were often autotunes in INAV 3.0 which resulted in too high P and I. Also, D was not tuned at all. New default PIDs, that will work reasonably on all sizes of planes ([#1390](https://github.com/iNavFlight/inav-configurator/pull/1390)) have been added. This should give good results with an autotune, which can then be fine tuned to your plane. + +## OSD Units + +If you previously used the _UK_ units in your OSD. You will now find that your units are set to _Metric + MPH_. This is the new name for the old _UK_ units. There is also a new _UK_ units set, that better represents transportation units used in the UK. Full details can be found in the [pull release](https://github.com/iNavFlight/inav/pull/7195). + +There is also a new units set aimed at _General Aviation_ pilots. This set uses Knots, Feet, Nautical Miles, 100 Feet per Minute, and Celsius for their respective values. + +# Changelist + +* H7: usb msc support for sdio #7572 - This enables SD card support on H7 boards +* Improve leading space handing in craft name in CLI #6056 +* Ability to store multiple missions and select before arming #6765 +* Unicorn Filter improvements #6819 #7132 #7523 +* Rate dynamics #6823 +* Mission restart option #6938 +* Other Missions improvements #6920 +* On the fly WP Mission Planner #6967 +* OSD Improvements #6979 #6993 #6995 #7068 #7104 #7126 #7427 #7371 #7367 #7355 #7515 #7518 #7519 #7441 +* SmartSudio on SoftwareSerial fixed #6986 +* DJI FPV OSD improvements - craft name hack no longer necessary #7098 #7138 +* Autotune improvements #7180 +* Don't change P, I and D during FW autotune #7461 +* PT2 and PT3 Low Pass Filters for D-term #7165 #7310 +* Dboost 2 - dynamic Dterm management #7149 +* Fix name clashes in FAT filesystem #7155 +* Add proper % RSSI for CRSF [0..99%] #7173 +* Two Stage Climb First RTH #7323 +* Rangefinder cleanup #7318 #7316 #7312 +* VCM5883 magnetometer driver #7301 +* Remove motor rate limiting #7296 +* Cleanup not used ESC protocols #7295 +* Multirotor Auto Speed Change #7293 +* Add support for TOF10120 i2c rangefinder #7291 +* Enable MPU6000 on kakute F4 v2 #7258 +* Added General aviation OSD units - includes a fair amount of work and fixes on the OSD & Fonts #7255 +* Fixed wing soaring mode #7250 +* Fix i2c errors after 72 min of FC launch #7226 +* Added PID Profiles to Programming framework #7432 +* Add average speed to OSD stats #7428 +* Emergency Landing Fix #7421 +* Add 50mW CRSF tx power level #7397 +* Drop PPM receivers #7393 +* Decrease acc and mag P-gains in AHRS #7392 +* Control Derivative improvements #7391 +* Blackbox improvements #7390 #7378 #7440 +* Failsafe Emergency Landing change #7376 +* Add support for Bosch Sensortec BMI270 Accelerometer / Gyro #7356 +* Fixed wing emergency landing vertical rate control addition #7364 +* Nav Emergency landing code fixes and refactor #7339 +* IMU2 BNO055 improvements #7335 +* Set manual rc expo to 35% #7491 +* BMI270: support for reading IMU temperature #7501 +* Dynamic Notch aka Matrix Filter Improvements #7521 #7522 #7544 +* Drop ABG filtering #7524 +* Fix buffer is accessed out of bounds #7545 +* Drop the last static gyro notch #7560 +* Fix MSC on windows with F7 and H7 #7573 +* Added PINIO and USER1 mode to FLYWOOF745 and FLYWOOF745 #7574 +* Remove old and unused IMU #7453 +* Fix emergency landing during failsafe #7460 +* Add min and max airspeed alarms #7467 +* Fixed issue #7194, The DSHOT direction command not working in STM32F405 #7477 +* fix array overflow with 11S-14S battery in Mavlink #7478 +* Adding loiter radius to programming #7480 +* WP mission RTH failsafe fix #7487 +* Enable FW motors and servos on ZEEZF7V2 #7490 + +The full list of changes is available [here](https://github.com/iNavFlight/inav/pulls?page=1&q=is%3Apr+milestone%3A4.0+is%3Aclosed) diff --git a/versioned_docs/version-8.0.1/4.1.0-Release-Notes.md b/versioned_docs/version-8.0.1/4.1.0-Release-Notes.md new file mode 100644 index 0000000..13456b5 --- /dev/null +++ b/versioned_docs/version-8.0.1/4.1.0-Release-Notes.md @@ -0,0 +1,75 @@ +--- +title: 4.1.0 Release Notes +--- + +![](https://quadmeup.com/assets/winged-inav.png) + +## Hello and welcome to INAV 4.1 "Red Kite" + +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 Discord Server
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](./quickstart/Welcome-to-INAV,-useful-links-and-products.md) + +# Important notes + +> This release is fully supported only with [INAV Configurator 4.1](https://github.com/iNavFlight/inav-configurator/releases). When an older version of Configurator is used, the OSD tab will not work! + +# Upgrading from a previous release + +## Upgrading from INAV 4.0 + +1. Use INAV Configurator 4.0 CLI to make a `diff` of the current configuration +2. Store the `diff` output +3. Download INAV Configurator 4.1 and flash INAV 4.1 firmware with `FULL CHIP ERASE` +4. Connect with INAV Configurator and restore the `diff` with the CLI tab + +## Upgrading from older versions + +Please follow the instructions on [this](./quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md) page. + +# Important changes + +1. HDzero OSD canvas mode support +1. SD card support on Kakute H7 flight controllers +1. Improved Matrix filter tracks now 3 gyro noise peaks instead of only 1 +1. Lowered Airmode threshold to improve Airmode handling on powerful multirotors +1. Fixed RTH Sanity Checking +1. RTH MAX mode uses RTH Altitude. If not 0, MAX mode will use RTH Altitude as the minimum altitude + +## What's Changed + +The full list of changes is available [here](https://github.com/iNavFlight/inav/pulls?q=is%3Apr+milestone%3A4.1+is%3Aclosed) + +## New Contributors +* @jimsynz made their first contribution in https://github.com/iNavFlight/inav/pull/6981 +* @jeffhendrix made their first contribution in https://github.com/iNavFlight/inav/pull/7587 +* @serg-2 made their first contribution in https://github.com/iNavFlight/inav/pull/7655 +* @geoffsim made their first contribution in https://github.com/iNavFlight/inav/pull/7668 diff --git a/versioned_docs/version-8.0.1/5.0.0-Release-Notes.md b/versioned_docs/version-8.0.1/5.0.0-Release-Notes.md new file mode 100644 index 0000000..3cc2faa --- /dev/null +++ b/versioned_docs/version-8.0.1/5.0.0-Release-Notes.md @@ -0,0 +1,342 @@ +--- +title: 5.0.0 Release Notes +--- + +![INAV 5 Ballistic Buzzard](https://quadmeup.com/assets/inav_5_buzzard.png) + +# Hello and welcome to INAV 5.0 "Ballistic Buzzard" + +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 Discord Server
INAV Official on Facebook
+ +Please continue to support developers, for free, by checking out 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](./quickstart/Welcome-to-INAV,-useful-links-and-products.md) + +# Important Notes + +## PCA9685 PWM driver no longer supported + +The I2C PCA9685 servo driver is no longer supported as obsolete and not widely adopted. All PCA9685 setups are advised to upgrade to **SBUS** output and `SBUS to PWM` decoders + +## Gyro and Acc alignment settings removed + +The `align_acc` and `align_gyro` settings are removed. Gyro/Acc orientation should always be set with `align_board_yaw` + +## GPS Glitch Detection + +The `NAV_GPS_GLITCH_DETECTION` was removed as not suitable for modern aircraft. There is no user action required + +## Removal of depreciated MSP frames + +INAV 5 removed the support for the following MSP frames: +* `MSP_IDENT` +* `MSP_PID` +* `MSP_PID_CONTROLLER` +* `MSP_BF_CONFIG` +* `MSP_BF_BUILD_INFO` +* `MSP_SET_PID_CONTROLLER` +* `MSP_SET_PID` +* `MSP_SET_BF_CONFIG` +* `MSP_CF_SERIAL_CONFIG` +* `MSP_SET_CF_SERIAL_CONFIG` + +No user action is required in the case of the INAV Configurator or mwptools (mwp etc.). In the case of 3rd party INAV configuration apps, this change might break the compatibility if the app was using any of those frames. `SpeedyBee` developers have been notified, other apps have to adjust accordingly. + +## Strict MSP payload length checking + +In order to help mitigate the "randomly changed settings" bug, strict MSP payload length checking has been implemented. Fixed size MSP frames that do not specify the correct payload size will be rejected. The INAV Configurator and mwptools (mwp etc.) are compliant. In the case of 3rd party INAV configuration / mission planning / monitoring apps, this change might break interoperability if the app was not correctly setting the payload size. `SpeedyBee` developers have been notified, other apps may have to adjust accordingly. + +# Upgrading from a previous release + +## Upgrading from INAV 4 and 4.1 + +0. Download and install the new [configurator](https://github.com/iNavFlight/inav-configurator/releases) +1. Save to a file the current _diff all_ from the CLI. +2. Upgrade to INAV 5.0 using the Full Erase option in the configurator. +3. Upload your OSD font of choice from the OSD tab. +4. Go to the CLI again and paste the above-described contents from the file you previously created and write _save_ , press ENTER. +5. There are a large number of new, changed, and removed settings. Check carefully that the settings are correct and fix any unrecognized or out-of-range items from the saved configuration. +6. You should be ready, explore new 5.0 features, and enjoy! + +## Upgrading from older versions + +Please follow the instructions on [this](./quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md) page. + +# Important changes + +## Configurable outputs mode + +INAV allows changing the function assignment of **ALL** PWM outputs. Bear in mind, that it's not resource mapping! This function allows assigning all outputs as motors or all outputs as servos. It's driven by CLI `output_mode` setting + +* `AUTO` assigns outputs according to the default mapping +* `SERVOS` assigns all outputs to servos +* `MOTORS` assigns all outputs to motors + +## Improved landing detection + +Updates landing detection for multirotor and add detection for fixed-wing. Detects when flying and activates landing detection from that point. Multirotor detection was added for non-autonomous landing as well as RTH. Fixed-wing detection is based on velocity, axis rates, and finally absolute movement in roll and pitch (so it probably wouldn't work if stuck in a tree being blown around by the wind). For details see https://github.com/iNavFlight/inav/pull/7270 + +## Add the ability to adjust LED Strip color with RC channel + +LED hue can be updated with an RC channel. For example, CLI `led 7 8,10::H:6` will adjust hue of LED number 7 based on RC channel 6. For details see https://github.com/iNavFlight/inav/pull/7618 + +## An option to not calibrate the gyro during boot + +This feature allows to arm of INAV aircraft on a boat or any other moving vehicle, as it allows to use of stored gyro calibration value instead of calibrating on every boot. + +* `init_gyro_cal` If defined to OFF, it will ignore the gyroscope calibration done at each startup. Instead, the gyroscope's last calibration from when you calibrated will be used. It also means you don't have to keep the UAV stationary during a startup. +* `gyro_zero_x` gyro X calibration stored +* `gyro_zero_y` gyro Y calibration stored +* `gyro_zero_z` gyro Z calibration stored + +## WP mission waypoint enforce altitude option + +Provides an option to force mission waypoint altitude to be achieved before moving on to the next waypoint. If the set altitude hasn't been achieved when the craft arrives at the waypoint it will hold and adjust the altitude as required with a target margin of 100cm. Planes use a spiral loiter whilst changing altitude. The option is set for the whole mission and applicable to basic and timed hold waypoints. For details see https://github.com/iNavFlight/inav/pull/7644 + +## Improved Altitude Hold controller + +INAV will now use the `SQRT` controller for Altitude Control on Multirotors. No extra pilot action required. For details see https://github.com/iNavFlight/inav/pull/7845 + +## TBS Sixty9 SA2.1 UART Configuration + +Adds the `vtx_smartaudio_stopbits` setting that when set to `1` fixes the TBS Sixty9 SmartAudio 2.1 issues. + +## Rangefinder in Logic Conditions + +Adds following value as Logic Conditions Operands: + +* `AGL_STATUS` boolean `1` when AGL can be trusted, `0` when AGL estimate can not be trusted +* `AGL` integer Above The Groud Altitude in `cm` +* `RANGEFINDER_RAW` integer raw distance provided by the rangefinder in `cm` + +## Matek 1G3SE control via IRC Tramp + +To use the Matek 1G3SE with IRC Tramp. You will need to enter the CLI command set `vtx_frequency_group = FREQUENCYGROUP_1G3`. You must also make sure that the initial VTx settings in the configuration tab are in a valid range. They are: + +* `vtx_band` 1 or 2 +* `vtx_channel` between 1 and 9 +As part of this change. + +The default VTx band has been changed from 4 to 1. If you are updating, please check that the band is still correct for your setup. + +For details see https://github.com/iNavFlight/inav/pull/7949 + +## Motor update frequency changes + +`motor_pwm_rate` setting is right now used only in case on `BRUSHED` motor output. `STANDARD`, `ONESHOT125`, `MULTISHOT` and all `DSHOT` protocols use predefined update rate that can not be changed + +## PWM function mapping change for some targets + +`KAKUTEH7`, `MAMBAF722_2022A` and `MAMBAH743` have now 4 motor and 4 servo outputs by default. To enable `X8` mode, CLI `set output_mode=MOTORS` command has to be used. + +`SPEEDYBEEF4` has now the following pin assignment in the fixed wing mode: +* S1-S4 - Servo +* S5-S6 - Motor +* S7 - Servo + +# New targets + +* Holybro Kakute H7 Mini **KAKUTEH7MINI** +* Diatone Mamba F405_2022A **MAMBAF405_2022A** +* Diatone Mamba F722_2022A **MAMBAF722_2022A** +* Mateksys F411TE **MATEKF411TE** +* Mateksys F405TE **MATEKF405TE** and **MATEKF405TE_SD** +* Foxeer F745 AIO **FOXEERF745AIO** +* AOCODARCF7DUAL + +# CLI + +## Changed settings + +| Name | Values | +| ---- | ------ | +| debug_modes | New: `LANDING` | +| servo_protocol | Removed: `SERVO_DRIVER` | + +## New Settings +| Name | Description | +| ---- | ------ | +| ground_test_mode | For developer ground test use. Disables motors, sets heading status = Trusted on FW. Default: FALSE | +| gyro_zero_x | Calculated gyro zero calibration of axis X Values: -32768 - 32767 Default: 0 | +| gyro_zero_y | Calculated gyro zero calibration of axis Y Values: -32768 - 32767 Default: 0 | +| gyro_zero_z | Calculated gyro zero calibration of axis Z Values: -32768 - 32767 Default: 0 | +| init_gyro_cal | If defined to 'OFF', it will ignore the gyroscope calibration done at each startup. Instead, the gyroscope last calibration from when you calibrated will be used. It also means you don't have to keep the UAV stationary during a startup. Default: TRUE | +| ins_gravity_cmss | Calculated 1G of Acc axis Z to use in INS Values: 0 - 2000 Default: 0.0 | +| nav_fw_auto_disarm_delay | Delay before plane disarms when `nav_disarm_on_landing` is set (ms) Values: 100 - 10000 Default: 2000 | +| nav_wp_enforce_altitude | Forces craft to achieve the set WP altitude as well as position before moving to next WP. Position is held and altitude adjusted as required before moving on. Default: FALSE | +| osd_mah_used_precision | Number of digits used to display mAh used. Values: 4 - 6 Default: 4 | +| osd_switch_indicator_one_channnel | RC Channel to use for OSD switch indicator 1. Default: 5 | +| osd_switch_indicator_one_name | Character to use for OSD switch incicator 1. Values: 0 - 5 Default: GEAR | +| osd_switch_indicator_three_channnel | RC Channel to use for OSD switch indicator 3. Default: 5 | +| osd_switch_indicator_three_name | Character to use for OSD switch incicator 3. Values: 0 - 5 Default: LIGT | +| osd_switch_indicator_two_channnel | RC Channel to use for OSD switch indicator 2. Default: 5 | +| osd_switch_indicator_two_name | Character to use for OSD switch incicator 2. Values: 0 - 5 Default: CAM | +| osd_switch_indicator_zero_channnel | RC Channel to use for OSD switch indicator 0. Default: 5 | +| osd_switch_indicator_zero_name | Character to use for OSD switch incicator 0. Values: 0 - 5 Default: FLAP | +| osd_switch_indicators_align_left | Align text to left of switch indicators Default: TRUE | +| osd_system_msg_display_time | System message display cycle time for multiple messages (milliseconds). Values: 500 - 5000 Default: 1000 | +| output_mode | Output function assignment mode. AUTO assigns outputs according to the default mapping, SERVOS assigns all outputs to servos, MOTORS assigns all outputs to motors Default: AUTO | +| vtx_frequency_group | VTx Frequency group to use. Frequency groups: FREQUENCYGROUP_5G8: 5.8GHz, FREQUENCYGROUP_2G4: 2.4GHz, FREQUENCYGROUP_1G3: 1.3GHz. Values: 0 - 2 Default: FREQUENCYGROUP_5G8 | +| vtx_smartaudio_stopbits | Set stopbit count for serial (TBS Sixty9 SmartAudio 2.1 require value of 1 bit) Values: 1 - 2 Default: 2 | +| vtx_softserial_shortstop | Enable the 3x shorter stopbit on softserial. Need for some IRC Tramp VTXes. Default: FALSE | + +## Removed Items + +| Name | Description | +| ---- | ------ | +| align_acc | Use `align_board_yaw` | +| align_gyro | Use `align_board_yaw` | + +# Changelist + +* Add FOXEER F745 AIO Target by @giacomo892 in https://github.com/iNavFlight/inav/pull/7764 +* Update Battery.md by @MrD-RC in https://github.com/iNavFlight/inav/pull/7800 +* Added some comparative operations to Programming by @MrD-RC in https://github.com/iNavFlight/inav/pull/7803 +* [fc_core.c] Make use of macro US2S by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/7777 +* Fix compilation when USE_SECONDARY_IMU not defined by @mluessi in https://github.com/iNavFlight/inav/pull/7770 +* Change Power to Square by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/7727 +* Mode availability improvements by @breadoven in https://github.com/iNavFlight/inav/pull/7694 +* Battery cells in logic condition by @kernel-machine in https://github.com/iNavFlight/inav/pull/7814 +* Add macros to multicopter land detector by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/7768 +* [maths.h] Add Macro to convert Celsius to Kelvin by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/7767 +* Remove duplicate semicolon by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/7806 +* Release 4.1 by @DzikuVx in https://github.com/iNavFlight/inav/pull/7681 +* Reversible ESC's for rovers: Don't start motor with high throttle in the mid of the stick by @yajo10 in https://github.com/iNavFlight/inav/pull/7714 +* [cli.c] Fix external Flash Memory by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/7695 +* System message variable display time + setting option by @breadoven in https://github.com/iNavFlight/inav/pull/6850 +* [gyro.c] An option to not calibrate the gyro during boot by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/7624 +* WP mission waypoint enforce altitude option by @breadoven in https://github.com/iNavFlight/inav/pull/7644 +* SpeedyBeeF7 No led strip #7234 by @andreapede in https://github.com/iNavFlight/inav/pull/7753 +* Crsf power states redo by @OptimusTi in https://github.com/iNavFlight/inav/pull/7811 +* Docker build script shebang fix and extended usage notes by @krasiyan in https://github.com/iNavFlight/inav/pull/7793 +* Add ADC3 support on H7 by @dawr68 in https://github.com/iNavFlight/inav/pull/7824 +* Add support for Omron 2SMPB-02B barometer by @mluessi in https://github.com/iNavFlight/inav/pull/7755 +* Omnibus F7.md - mention OMNIBUSF7NXT by @MorrisR2 in https://github.com/iNavFlight/inav/pull/7751 +* [maths.c] Add 2D and 3D Pythagorean functions by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/7746 +* Dzikuvx depreciated MSP frames by @DzikuVx in https://github.com/iNavFlight/inav/pull/7854 +* Update AUTHORS by @MrD-RC in https://github.com/iNavFlight/inav/pull/7848 +* Add ability to adjust LED Strip color with RC channel by @jeffhendrix in https://github.com/iNavFlight/inav/pull/7618 +* Drop MSP_CF_SERIAL_CONFIG and MSP_SET_CF_SERIAL_CONFIG frames by @DzikuVx in https://github.com/iNavFlight/inav/pull/7852 +* Add macros to active box and reset boxes count by @DzikuVx in https://github.com/iNavFlight/inav/pull/7844 +* Fix ins_gravity_cmss out of range error by @DzikuVx in https://github.com/iNavFlight/inav/pull/7859 +* [navigation for multirotor] Sqrt Controller for Alt-Hold and improvements by @DzikuVx in https://github.com/iNavFlight/inav/pull/7845 +* BMI270: Fix acc alignment by @mluessi in https://github.com/iNavFlight/inav/pull/7769 +* update Cli.md for 4.1/5.0 usage by @stronnag in https://github.com/iNavFlight/inav/pull/7870 +* [navigation.c] Replace the position estimate check by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/7698 +* Nav launch abort improvements by @breadoven in https://github.com/iNavFlight/inav/pull/7642 +* Landing detection revamp by @breadoven in https://github.com/iNavFlight/inav/pull/7270 +* apply stricter payload size checks by @stronnag in https://github.com/iNavFlight/inav/pull/7891 +* Adjust CMS and statistics page layout for HD OSD by @geoffsim in https://github.com/iNavFlight/inav/pull/7871 +* Blackbox fields selection on GUI by @kernel-machine in https://github.com/iNavFlight/inav/pull/7896 +* Add support to BMI270 for IFLIGHT BLITZ F722 by @Guidus93 in https://github.com/iNavFlight/inav/pull/7890 +* Update to the Telemetry.md docs by @DzikuVx in https://github.com/iNavFlight/inav/pull/7903 +* Remove "USE_NAV" define by @breadoven in https://github.com/iNavFlight/inav/pull/7909 +* remove NAV_GPS_GLITCH_DETECTION by @stronnag in https://github.com/iNavFlight/inav/pull/7907 +* Add LANDING debug by @breadoven in https://github.com/iNavFlight/inav/pull/7904 +* update target hardware platforms for 4.1 by @stronnag in https://github.com/iNavFlight/inav/pull/7912 +* RTH sanity checking emergency landing fix by @breadoven in https://github.com/iNavFlight/inav/pull/7790 +* Replace Sqrt Initialization by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/7925 +* Add BMI270 to HGLRCF722 by @DzikuVx in https://github.com/iNavFlight/inav/pull/7939 +* Configurable outputs mode by @DzikuVx in https://github.com/iNavFlight/inav/pull/7928 +* document use of `ninja` as build manager by @stronnag in https://github.com/iNavFlight/inav/pull/7942 +* Update Blackbox.md by @Dope-johnny in https://github.com/iNavFlight/inav/pull/7943 +* serial: fix compile error when both GPS_UART and SMARTAUDIO_UART are defined by @snaewe in https://github.com/iNavFlight/inav/pull/7911 +* Hardware Debugging from VSCode and WSL manual by @erstec in https://github.com/iNavFlight/inav/pull/7945 +* Update Windows 11 - VS Code - WSL2 - Hardware Debugging.md by @erstec in https://github.com/iNavFlight/inav/pull/7946 +* Update of project files by @erstec in https://github.com/iNavFlight/inav/pull/7951 +* Ground test mode by @breadoven in https://github.com/iNavFlight/inav/pull/7921 +* RTH sanity checking safehome fix by @breadoven in https://github.com/iNavFlight/inav/pull/7917 +* Hardware Debugging in Visual Studio Code and WSL (Method 2) by @Scavanger in https://github.com/iNavFlight/inav/pull/7950 +* BLE Support by @Scavanger in https://github.com/iNavFlight/inav/pull/7931 +* Added missing notes by @MrD-RC in https://github.com/iNavFlight/inav/pull/7966 +* Enable MPU6500 on MambaF722_I2C by @DzikuVx in https://github.com/iNavFlight/inav/pull/7965 +* Re-fix for up/down arrows of the relative altitude (ESP32 radar) by @OlivierC-FR in https://github.com/iNavFlight/inav/pull/7914 +* MAMBAF722_2022A target by @DzikuVx in https://github.com/iNavFlight/inav/pull/7968 +* MAMBAF405_2022A target by @DzikuVx in https://github.com/iNavFlight/inav/pull/7970 +* Allow Flight Axis stabilization targets from Logic Conditions by @DzikuVx in https://github.com/iNavFlight/inav/pull/7964 +* Add switch position indicators to the OSD by @MrD-RC in https://github.com/iNavFlight/inav/pull/7734 +* Add MatekF411TE Target by @MATEKSYS in https://github.com/iNavFlight/inav/pull/7947 +* Add MatekF405TE and MatekF405TE_SD Targets by @MATEKSYS in https://github.com/iNavFlight/inav/pull/7924 +* Fixing the missing commands to ESC by @Odin263 in https://github.com/iNavFlight/inav/pull/7733 +* Add ICM42688p in MatekH743 by @MATEKSYS in https://github.com/iNavFlight/inav/pull/7974 +* update Telemetry.md by @stronnag in https://github.com/iNavFlight/inav/pull/7978 +* Update Programming Framework.md by @Jullibach in https://github.com/iNavFlight/inav/pull/7980 +* Fix for MambaH743 DMA assignment by @DzikuVx in https://github.com/iNavFlight/inav/pull/7989 +* Fix KakuteH7 DMA ADC/LED Conflict by @DzikuVx in https://github.com/iNavFlight/inav/pull/7990 +* TMOTORF7V2 BlackBox fix by @erstec in https://github.com/iNavFlight/inav/pull/7955 +* VTX SoftSerial StopBit Time by @erstec in https://github.com/iNavFlight/inav/pull/7969 +* Change fallback ESC protocol to Multishot when DSHOT is not available by @DzikuVx in https://github.com/iNavFlight/inav/pull/7977 +* Docs update by @DzikuVx in https://github.com/iNavFlight/inav/pull/7992 +* Failsafe RC adjustment bug fix by @breadoven in https://github.com/iNavFlight/inav/pull/7829 +* Target output mapping update by @DzikuVx in https://github.com/iNavFlight/inav/pull/7993 +* [DOC] update Development.md building / running unit tests by @stronnag in https://github.com/iNavFlight/inav/pull/7997 +* Add new target AOCODARCF7DUAL by @dlt2018 in https://github.com/iNavFlight/inav/pull/7994 +* Matek 1G3SE control via IRC Tramp by @MrD-RC in https://github.com/iNavFlight/inav/pull/7949 +* ESP32 Radar: Added support for missing OSD unit types by @MrD-RC in https://github.com/iNavFlight/inav/pull/7972 +* Enhance mAh Used OSD Element by @MrD-RC in https://github.com/iNavFlight/inav/pull/7868 +* New target JHEMCU GH743AIO / iFlight Beast H7 55A AIO by @dawr68 in https://github.com/iNavFlight/inav/pull/7889 +* iFlight Beast H7 V2 I2C2 on UART 3 by @ltwin8 in https://github.com/iNavFlight/inav/pull/7962 +* Dzikuvx add rangefinder to logic conditions by @DzikuVx in https://github.com/iNavFlight/inav/pull/7984 +* Docs update by @DzikuVx in https://github.com/iNavFlight/inav/pull/8013 +* Pitot Tube:Add, Move and Rename macros by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/8011 +* Drop gyro and acc alignment settings by @DzikuVx in https://github.com/iNavFlight/inav/pull/8016 +* TBS Sixty9 SA2.1 UART Configuration by @erstec in https://github.com/iNavFlight/inav/pull/7985 +* Increase Logic Conditions to 64 by @MrD-RC in https://github.com/iNavFlight/inav/pull/8022 +* Added Fixed Wing TPA Time Constant to in flight adjustments by @MrD-RC in https://github.com/iNavFlight/inav/pull/8023 +* Update dynamic_gyro_notch_min_hz range by @DzikuVx in https://github.com/iNavFlight/inav/pull/8021 +* Update VTx.md by @erstec in https://github.com/iNavFlight/inav/pull/8030 +* Drop PCA9685 support by @DzikuVx in https://github.com/iNavFlight/inav/pull/8032 +* Added FW level trim to in flight adjustments by @MrD-RC in https://github.com/iNavFlight/inav/pull/8028 +* Kakute H7 Mini target by @DzikuVx in https://github.com/iNavFlight/inav/pull/8033 +* Add Pos Control Jerk Limit Macro by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/8038 +* Update PG version for logic conditions by @MrD-RC in https://github.com/iNavFlight/inav/pull/8039 +* [DOC] minor updates to Blackbox.md by @stronnag in https://github.com/iNavFlight/inav/pull/8040 +* Add detail to airspeed sensor data by @MrD-RC in https://github.com/iNavFlight/inav/pull/8043 +* Fix RTH Climb First enum ambiguity by @breadoven in https://github.com/iNavFlight/inav/pull/8069 +* Refactor u-blox hardware version detection; Add support for u-blox 10 series [#8058](https://github.com/iNavFlight/inav/pull/8058) +* short_stop bit misassignment fix by @erstec in https://github.com/iNavFlight/inav/pull/8091 +* Fix issue with MSP Baro (Box enum only) by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/8083 +* BMI270 Gyro added for target SKYSTARSF405HD by @erstec in https://github.com/iNavFlight/inav/pull/8087 +* SpeedyBee F4 output mapping change by @DzikuVx in https://github.com/iNavFlight/inav/pull/8100 +* Refactor ESC refresh rate by @DzikuVx in https://github.com/iNavFlight/inav/pull/8099 + +# New Contributors +* @yajo10 made their first contribution in https://github.com/iNavFlight/inav/pull/7714 +* @andreapede made their first contribution in https://github.com/iNavFlight/inav/pull/7753 +* @krasiyan made their first contribution in https://github.com/iNavFlight/inav/pull/7793 +* @dawr68 made their first contribution in https://github.com/iNavFlight/inav/pull/7824 +* @Guidus93 made their first contribution in https://github.com/iNavFlight/inav/pull/7890 +* @Dope-johnny made their first contribution in https://github.com/iNavFlight/inav/pull/7943 +* @Odin263 made their first contribution in https://github.com/iNavFlight/inav/pull/7733 +* @Jullibach made their first contribution in https://github.com/iNavFlight/inav/pull/7980 +* @dlt2018 made their first contribution in https://github.com/iNavFlight/inav/pull/7994 +* @ltwin8 made their first contribution in https://github.com/iNavFlight/inav/pull/7962 + +The full list of changes is available [here](https://github.com/iNavFlight/inav/pulls?q=is%3Apr+milestone%3A5.0+is%3Aclosed) +The full list of INAV Configurator changes is available [here](https://github.com/iNavFlight/inav-configurator/pulls?q=is%3Apr+milestone%3A5.0+is%3Aclosed) diff --git a/versioned_docs/version-8.0.1/5.1-Release-notes.md b/versioned_docs/version-8.0.1/5.1-Release-notes.md new file mode 100644 index 0000000..590a9ce --- /dev/null +++ b/versioned_docs/version-8.0.1/5.1-Release-notes.md @@ -0,0 +1,124 @@ +--- +title: 5.1 Release Notes +--- + +![INAV 5 Ballistic Buzzard](https://quadmeup.com/assets/inav_5_buzzard.png) + +# Hello and welcome to INAV 5.1 "Ballistic Buzzard" + +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 Discord Server
INAV Official on Facebook
+ +Please continue to support developers, for free, by checking out 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](./quickstart/Welcome-to-INAV,-useful-links-and-products.md) + +# Important Notes + +## Config wipe mitigation + +INAV 5.1 lowers the probablity of a full config wipe on reboot. Bear in mind, technically it's not a bug. When FC is disconnected during EEPROM write, checksum will not updated and INAV will erase flash on next boot as a safety measure. To prevent this from happening, always wait until INAV fully reboots before disconnecting the flight controller. + +## Mamba H743 and ZEEZF7 V2 external flash + +INAV 5.1 supports 128Mbit W25N01G flash memory that can be found on Mamba H743 and ZEEZF7 V2. + +## Horizon Drift mitigation + +To improve AHI drift on fixed wings, apply following settings via CLI: + +### For airplanes without a tail (wings, delta, etc) +``` +set imu_acc_ignore_rate = 9 +set imu_acc_ignore_slope = 5 +set nav_fw_pos_z_p = 35 +set nav_fw_pos_z_i = 5 +set nav_fw_pos_z_d = 10 +set nav_fw_pos_xy_p = 70 +set imu_dcm_kp = 1000 +set imu_dcm_ki = 0 +``` + +### For airplanes with a tail (dedicated elevator) +``` +set imu_acc_ignore_rate = 7 +set imu_acc_ignore_slope = 4 +set nav_fw_pos_z_p = 25 +set nav_fw_pos_z_i = 5 +set nav_fw_pos_z_d = 7 +set nav_fw_pos_xy_p = 55 +set imu_dcm_kp = 1000 +set imu_dcm_ki = 0 +``` + +# Upgrading from a previous release + +## Upgrading from INAV 5 + +0. Download and install the new [configurator](https://github.com/iNavFlight/inav-configurator/releases) +1. Save to a file the current _diff all_ from the CLI. +2. Upgrade to INAV 5.1 using the Full Erase option in the configurator. +3. Upload your OSD font of choice from the OSD tab. +4. Go to the CLI again and paste the above-described contents from the file you previously created and write _save_ , press ENTER. +6. You should be ready, explore new 5.1 features, and enjoy! + +## Upgrading from older versions + +Please follow the instructions on [this](./quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md) page. + +# Important changes + +# New targets + +* SpeedyBee F7 V3 +* AtomRC F405 NAVI +* iFlight JB F7 Pro +* iFlight Blitz F7 Pro + +# CLI + +## New Settings + +* `nav_fw_launch_abort_deadband` Launch abort stick deadband in [r/c points], applied after r/c deadband and expo. The Roll/Pitch stick needs to be deflected beyond this deadband to abort the launch. + +## What's Changed +* Do not automatically persist the gyro calibration by @DzikuVx in https://github.com/iNavFlight/inav/pull/8216 +* Add PINIO support to Matek F405 SE by @MrD-RC in https://github.com/iNavFlight/inav/pull/8256 +* Make programming framework CLI safe by @MrD-RC in https://github.com/iNavFlight/inav/pull/8266 +* Fix esc temperature sensor maxing out by @MrD-RC in https://github.com/iNavFlight/inav/pull/8299 +* Speedybee F7 V3 by @DzikuVx in https://github.com/iNavFlight/inav/pull/8317 +* AtomRC F405 NAVI target by @DzikuVx in https://github.com/iNavFlight/inav/pull/8321 +* iFlight BLITZF7PRO target by @nmaggioni in https://github.com/iNavFlight/inav/pull/8335 +* iFlight JBF7PRO target by @nmaggioni in https://github.com/iNavFlight/inav/pull/8334 + + +**Full Changelog**: https://github.com/iNavFlight/inav/compare/5.0.0...5.1.0 + +The full list of changes is available [here](https://github.com/iNavFlight/inav/pulls?q=is%3Apr+milestone%3A5.1+is%3Aclosed) + +The full list of INAV Configurator changes is available [here](https://github.com/iNavFlight/inav-configurator/pulls?q=is%3Apr+milestone%3A5.1+is%3Aclosed) diff --git a/versioned_docs/version-8.0.1/6.0.0-Release-Notes.md b/versioned_docs/version-8.0.1/6.0.0-Release-Notes.md new file mode 100644 index 0000000..9a549b7 --- /dev/null +++ b/versioned_docs/version-8.0.1/6.0.0-Release-Notes.md @@ -0,0 +1,278 @@ +--- +title: 6.0.0 Release Notes +--- + +![INAV 6 Horizon Hawk](https://quadmeup.com/assets/inav_5_buzzard.png) + +# Hello and welcome to INAV 6 "Horizon Hawk" + +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 Discord Server
INAV Official on Facebook
+ +Tested and suggested hardware can be found [here](./quickstart/Welcome-to-INAV,-useful-links-and-products.md) + +# Important Notes + +* The STM32 F3 code was removed from repository, it's no longer possible to compile F3 locally + +# Upgrading from a previous release + +## Upgrading from INAV 5 and 5.1 + +0. Download and install the new [configurator](https://github.com/iNavFlight/inav-configurator/releases) +1. Save to a file the current _diff all_ from the CLI. +2. Upgrade to INAV 6 using the Full Erase option in the configurator. +3. Upload your OSD font of choice from the OSD tab. +4. Run your INAV 5.x _diff_ through [this tool](https://www.mrd-rc.com/iNav/INAV-6.0-CLI-Update.php). It will update some of the changed CLI parameters _(See these release notes)_. Please pay special attention to the `ahrs_inertia_comp_method` parameter, as this must be correct for your platform. See the release notes below. +5. Go to the CLI again and paste the above-described contents from the file you previously created and write _save_ , press ENTER. +6. There are a large number of new, changed, and removed settings. Check carefully that the settings are correct and fix any unrecognized or out-of-range items from the saved configuration. +7. You should be ready, explore new 6.0 features, and enjoy! + +## Upgrading from older versions + +Please follow the instructions on [this](./quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md) page. + +# Important changes + +## **New AHRS (Attitude & Heading Reference System)** +----------------------------- +INAV 6.0 includes a complete rework of the AHRS for Attitude Estimation, to make sure INAV always knows its correct attitude relative to the ground. This should once and for all fix the issue, known as "Horizon Drift" and makes any navigation mode as well as self-levelling modes like ANGLE fully reliable and allows much more precise GPS-Navigation. This affects Fixed Wing as well as Multirotor. + +The best results are given if the craft is equipped with GPS and in the case of Multirotor also with a compass. But also for pure LOS Craft that have no GPS on board, the AHI stability is noticeably improved in most situations. To work best with non-GPS Fixed Wings, the Reference Airspeed has to be set according the average cruise speed of the craft. + +--------------------------- +### When Updating from INAV 5.1 or older + +If you load a diff file from INAV 5.1 or older, it is safe to ignore errors related to `imu_acc_ignore_rate`, `imu_acc_ignore_slope`, `imu_dcm_kp`, `imu_dcm_kp_map`, or `imu_dcm_ki_mag`. These variables behave differently in 6.0 and have been renamed. You should use the default values of the new parameter first. Below are the new parameter defaults. + +``` +set ahrs_acc_ignore_rate = 15 +set ahrs_acc_ignore_slope = 5 +set ahrs_dcm_kp = 2000 +set ahrs_dcm_ki = 50 +set ahrs_dcm_kp_mag = 2000 +set ahrs_dcm_ki_mag = 50 +``` + +#### ahrs_inertia_comp_method +If you have used the Feature Preview release, your diff, you may have the parameter `imu_inertia_comp_method`. If not and you are coming from INAV 5.0 or 5.1, you may need to add the new parameter shown below. Firstly, if you have `imu_inertia_comp_method` in your diff, you can remove that line. + +If you are using fixed wing, you should add this new parameter to the `# master` section of your diff: + +``` +set ahrs_inertia_comp_method = ADAPTIVE +``` + +For all other platforms, you do not need to add anything. The default value of `VELNED` is correct for non-fixed wing platforms. + +### For Fixed Wing Craft with no GPS +set fw_reference_airspeed = _(set this in cm/s. Set this to airspeed at which PIDs were tuned. Usually should be set to cruise airspeed. Also used for coordinated turn calculation if airspeed sensor is not present.)_ + +## HUD Offset change +The operation of `osd_horizon_offset` has been reversed, to make it more intuitive. If you have a non-zero value for `osd_horizon_offset` it will need to be inverted. For example, `osd_horizon_offset = 1` would become `osd_horizon_offset = -1`. Positive values move the HUD up, and negative values move it down. This is corrected with the CLI Update tool. + +## RTH Trackback + +When triggered the craft returns along the trackback route until the end is reached at which point it reverts to normal RTH heading directly home. It doesn't perform the RTH climb phase but instead uses the track point altitude but with altitude never allowed below the altitude of the start point so it can climb but never descend below the start point. + +`OFF` by default, adjust `nav_rth_trackback_mode` to enable. For details see #7988 + +## Accelerometer calibration is optional + +Accelerometer calibration is required only if any of the Accelerometer Based Flight Modes or Failsafe procedures is configured. For example, ACC calibration will be needed when Failsafe RTH is enabled, or any GPS assisted flight modes is configured. Acro only multirotor and fixed wings do not require calibration. + +## nav_extra_arming_safety OFF option + +The `off` option has been removed from `nav_extra_arming_safety`. Instead, the `allow_bypass` can be used for with the same effect. To allow the bypass, yaw right and arm. The extra arming safety features will be disabled until the next power cycle of the battery. Please update your diff if you use this parameter; either manually, or using [this tool](https://www.mrd-rc.com/iNav/INAV-6.0-CLI-Update.php). + +## Improved fixed wing waypoint course tracking + +Attempts to improve fixed wing WP course tracking accuracy by adding a couple of options: + +1. Tracking accuracy option that forces craft toward the waypoint course line as quickly as possible and actively tracks the line thereafter. A single setting adjusts the strength of the tracking behaviour. Works for WP mode and RTH trackback. Option is disabled by default. + +1. Turn smoothing option for waypoint turns. Sets a loiter point within the turn such that the craft follows a loiter turn path that either passes through the waypoint or cuts the turn missing the waypoint (2 settings possible). Only works for WP mode. Option is disabled by default. + +See #8234 for details + +## Support for Hardware In The Loop simulator in X-Plane 11 + +INAV flight controller can be used with X-Plane 11 flight simulator. Very useful for training, testing and debugging. Requires X-Plane 11 and HITL Plugin https://github.com/RomanLut/INAV-X-Plane-HITL + +## Waypoint multi-mission in flight mission change + +Allows WP multi-missions to be changed in flight using new mission change mode. With mode active the required mission index can be selected by cycling through missions using the WP mode switch. Selected mission is loaded when mission change mode is switched off. Mission index can also be changed through addition of a new Mission Index adjustment function which should be useful for DJI users unable to use the normal OSD mission related fields. See #8354 for details + +## MSP DisplayPort fixes and updates + +INAV has now support for various flavours of the MSP DisplayPort protocol used by HDZero, DJI Goggles 2, Walksnail Avatar or WTFOS. Based on the `osd_video_system` setting different canvas sizes and glyphs are used. Available options are: + +* `AUTO` - for analogue systems only +* `PAL` +* `NTSC` +* `HDZERO` +* `DJIWTF` +* `AVATAR` +* `BF43COMPAT` - keep the compatibility with Betaflight 4.3 implementation by lowering canvas size, lowering the number of OSD glyphs and matching to Betaflight character mapping. Required for DJI MSP DisplayPort with DJI O3 Air Unit + +## Enhance programming options for waypoint missions + +**NOTE: Please read this section if you are using the Programming Framework (Programming tab).** + +The programming framework surrounding waypoints has changed. This has caused a conflict in compatibility with previous versions of INAV. If you use anything in the programming tab. Please run your diff through [this conversion tool](https://www.mrd-rc.com/iNav/INAV-6.0-CLI-Update.php), to keep your logic conditions working. Please feel free to check out the new waypoint related logical switch operands in the [Programming Framework document](https://github.com/iNavFlight/inav/blob/master/docs/Programming%20Framework.md). + +## Increase nav_wp_safe_distance maximum + +`nav_wp_safe_distance` has been replaced with `nav_wp_max_safe_distance`. This setting uses metres, and used to define the maximum distance away that the first waypoint can be. Please update your diff if you use this parameter; either manually, or using [this tool](https://www.mrd-rc.com/iNav/INAV-6.0-CLI-Update.php). + +## Stop allowing navigation modes to be active while arming + +The ability to arm the craft while in a navigation mode has been removed. The only people who this will effect are those who use permanently enabled autolaunch. Pre-6.0 you could arm while in a navigation mode. However this is dangerous, as it is easy to not realise, arm, disable the launch, then have the motor go to the cruise throttle. You will still be able to use a navigation mode as the exit mode from a launch. You just need to use the correct procedure for initiating the launch: +1. Be in a non-navigation mode +2. Arm +3. Select the flight mode that you want to use on launch exit +4. Raise the throttle to the level you want on launch exit +5. The motor will enter idle if idle throttle is used, or await being thrown +6. Throw the plane in to the air, and autolaunch will trigger + +## Disarm on land by default + +The disarm on landing flag is now set to `ON` by default. This means, after successful automated landing your aircraft should disarm and stop the motors automatically! + +## Automated landing manual activation + +Allows an emergency landing to be triggered manually as required. +Landing started or ended by rapid toggling of PosHold mode, at least 5 times at a minimum rate of 1Hz. +Emergency landing position hold added which will work for all emergency landings regardless of cause so long as a valid position is available. +Failsafe inhibited during manual emergency landing to allow landing to continue if Failsafe triggered whilst active. + +## Other changes + +* Gyro noise peaks are now logged into blackbox as separate fields, not debug options. [Setting documentation](https://github.com/iNavFlight/inav/blob/master/docs/Blackbox.md#configuring-the-blackbox) +* Raw gyro signal is now logged into blackbox as separate field, not debug options. [Setting documentation](https://github.com/iNavFlight/inav/blob/master/docs/Blackbox.md#configuring-the-blackbox) +* Adds auto smoothing of RC input based on RX refresh rate. Disabled by default, can be enabled with `SET rc_filter_auto=ON` +* Wind Estimator is now giving proper results +* 3D Matrix filter improves PID tuning on noisy Multirotors. See #8253 +* Strobe lights support. See #8536 +* Kakute H7 V2 Invert PINIO2 so VTX is ON by default See #8628 + +## Other removed functions + +* MTK GPS protocol support +* NAZA GPS protocol support +* BNO055 Secondary IMU function +* MPU6050 gyro support +* SPI RX protocol support +* JR XBUS RX protocol support +* SUMH RX protocol support + +# New targets + +* Foxeer F722 V4 +* Foxeer F745 AIO V3 +* Kakute H7 V2 +* SpeedyBee F745 AIO +* Zeez F7 V3 +* Diatone Mamba F722 WING +* AocodaRC F4 V2 +* HakRC F722D +* HakRC F411 AIO +* HakRC F405 DJI + +# CLI + +## Changed settings + +Note: `nav_extra_arming_safety` The `OFF` option has been removed. `ON` and `ALLOW_BYPASS` are now the only valid options. `ALLOW_BYPASS` permits arming in "navigation unsafe" condition by temporally applying full right yaw when operating the arm switch. + +| Name | Values | +| ---- | ------ | +| acc_hardware | Removed: `MPU6050` | +| debug_modes | New: `POS_EST`, Removed: `GYRO`, `SBUS`, `FPORT`, `ERPM`, `RPM_FILTER`, `RPM_FREQ`, `DYNAMIC_FILTER`, `DYNAMIC_FILTER_FREQUENCY`, `IRLOCK`, `KALMAN_GAIN`, `PID_MEASUREMENT`, `SPM_CELLS`, `SPM_VS600`, `SPM_VARIO`, `IMU2`, `SMITH_PREDICTOR` | +| gps_provider | Removed: `UNUSED`, `NAZA`, `MTK` | +| mag_hardware | Removed: `GPSMAG` | +| nav_extra_arming_safety | Removed: `OFF` | +| osd_video_system | New: `HDZERO`, `DJIWTF`, `AVATAR`, `BF43COMPAT` | +| receiver_type | Removed: `SPI` | +| serial_rx | Removed: `SUMH`, `XB-B`, `XB-B-RJ01` | + +## New Items + +| Name | Description | +| ---- | ------ | +| dynamic_gyro_notch_3d_q | Q factor for 3D dynamic notches Values: 1 - 1000 Default: 200 | +| dynamic_gyro_notch_mode | Gyro dynamic notch type Default: 2D | +| failsafe_mission_delay | Applies if failsafe occurs when a WP mission is in progress. Sets the time delay in seconds between failsafe occurring and the selected failsafe procedure activating. If set to -1 the failsafe procedure won't activate at all and the mission will continue until the end. Values: -1 - 600 Default: 0 | +| imu_gps_yaw_windcomp | Wind compensation in heading estimation from gps groundcourse(fixed wing only) Default: TRUE | +| imu_inertia_comp_method | Inertia force compensation method when gps is avaliable, VELNED use the accleration from gps, TURNRATE calculates accleration by turnrate multiplied by speed, ADAPTIVE choose best result from two in each ahrs loop Default: VELNED | +| nav_auto_disarm_delay | Delay before craft disarms when `nav_disarm_on_landing` is set (ms) Values: 100 - 10000 Default: 1000 | +| nav_fw_launch_abort_deadband | Launch abort stick deadband in [r/c points], applied after r/c deadband and expo. The Roll/Pitch stick needs to be deflected beyond this deadband to abort the launch. Values: 2 - 250 Default: 100 | +| nav_fw_launch_manual_throttle | Allows launch with manually controlled throttle. INAV only levels wings and controls climb pitch during launch. Throttle is controlled directly by throttle stick movement. IF USED WITHOUT A GPS LOCK plane must be launched immediately after throttle is increased to avoid issues with climb out stabilisation and the launch ending sooner than expected (launch end timer starts as soon as the throttle stick is raised). Default: FALSE | +| nav_fw_wp_tracking_accuracy | Waypoint tracking accuracy forces the craft to quickly head toward and track along the waypoint course line as closely as possible. Settings 1 to 10 adjust the course tracking response. Higher values dampen the response reducing possible overshoot. A value of 5 is a good starting point. Set to 0 to disable. Values: 0 - 10 Default: 0 | +| nav_fw_wp_tracking_max_angle | Sets the maximum allowed alignment convergence angle to the waypoint course line when nav_fw_wp_tracking_accuracy is active [degrees]. Lower values result in smoother alignment with the course line but will take more distance until this is achieved. Values: 30 - 80 Default: 60 | +| nav_fw_wp_turn_smoothing | Smooths turns during WP missions by switching to a loiter turn at waypoints. When set to ON the craft will reach the waypoint during the turn. When set to ON-CUT the craft will turn inside the waypoint without actually reaching it (cuts the corner). Default: OFF | +| nav_land_detect_sensitivity | Changes sensitivity of landing detection. Higher values increase speed of detection but also increase risk of false detection. Default value should work in most cases. Values: 1 - 15 Default: 5 | +| nav_rth_trackback_distance | Maximum distance allowed for RTH trackback. Normal RTH is executed once this distance is exceeded [m]. Values: 50 - 2000 Default: 500 | +| nav_rth_trackback_mode | Useage modes for RTH Trackback. OFF = disabled, ON = Normal and Failsafe RTH, FS = Failsafe RTH only. Default: OFF | +| nav_wp_max_safe_distance | First waypoint in the mission should be closer than this value [m]. A value of 0 disables this check. Values: 0 - 1500 Default: 100 | +| osd_ahi_pitch_interval | Draws AHI at increments of the set pitch interval over the full pitch range. AHI line is drawn with ends offset when pitch first exceeds interval with offset increasing with increasing pitch. Offset direction changes between climb and dive. Set to 0 to disable (Not for pixel OSD) Values: 0 - 30 Default: 0 | +| osd_msp_displayport_fullframe_interval | Full Frame redraw interval for MSP DisplayPort [deciseconds]. This is how often a full frame update is sent to the DisplayPort, to cut down on OSD artifacting. The default value should be fine for most pilots. Though long range pilots may benefit from increasing the refresh time, especially near the edge of range. -1 = disabled (legacy mode) , 0 = every frame (not recommended) , default = 10 (1 second) Values: -1 - 600 Default: 10 | +| pilot_name | Pilot name Default: | +| rc_filter_auto | When enabled, INAV will set RC filtering based on refresh rate and smoothing factor. Default: FALSE | +| rc_filter_lpf_hz | RC data biquad filter cutoff frequency. Lower cutoff frequencies result in smoother response at expense of command control delay. Practical values are 20-50. Set to zero to disable entirely and use unsmoothed RC stick values Values: 15 - 250 Default: 50 | +| rc_filter_smoothing_factor | The RC filter smoothing factor. The higher the value, the more smoothing but also the more delay in response. Value 1 sets the filter at half the refresh rate. Value 100 sets the filter to aprox. 10% of the RC refresh rate Values: 1 - 100 Default: 30 | + +## Removed Items + +| Name | Description | +| ---- | ------ | +| baro_median_filter | | +| eleres_freq | | +| eleres_loc_delay | | +| eleres_loc_en | | +| eleres_loc_power | | +| eleres_signature | | +| eleres_telemetry_en | | +| eleres_telemetry_power | | +| failsafe_mission | see new `failsafe_mission_delay` | +| imu2_align_pitch | | +| imu2_align_roll | | +| imu2_align_yaw | | +| imu2_gain_acc_x | | +| imu2_gain_acc_y | | +| imu2_gain_acc_z | | +| imu2_gain_mag_x | | +| imu2_gain_mag_y | | +| imu2_gain_mag_z | | +| imu2_hardware | | +| imu2_radius_acc | | +| imu2_radius_mag | | +| imu2_use_for_osd_ahi | | +| imu2_use_for_osd_heading | | +| imu2_use_for_stabilized | | +| nav_fw_auto_disarm_delay | See generic `nav_auto_disarm_delay` | +| nav_mc_auto_disarm_delay | See generic `nav_auto_disarm_delay` | +| nav_wp_safe_distance | see `nav_wp_max_safe_distance` | +| rc_filter_frequency | | +| rx_spi_id | | +| rx_spi_protocol | | +| rx_spi_rf_channel_count | | + +# Changelist + +The full list of changes is available [here](https://github.com/iNavFlight/inav/pulls?q=is%3Apr+milestone%3A6.0+is%3Aclosed) +The full list of INAV Configurator changes is available [here](https://github.com/iNavFlight/inav-configurator/pulls?q=is%3Apr+milestone%3A6.0+is%3Aclosed) diff --git a/versioned_docs/version-8.0.1/7.0.0-Release-Notes.md b/versioned_docs/version-8.0.1/7.0.0-Release-Notes.md new file mode 100644 index 0000000..03bcc20 --- /dev/null +++ b/versioned_docs/version-8.0.1/7.0.0-Release-Notes.md @@ -0,0 +1,461 @@ +--- +title: 7.0.0 Release Notes +--- + +![INAV 7 Ferocious Falcon](https://quadmeup.com/assets/inav_7_falcon.png) + +# Hello and welcome to INAV 7 "Ferocious Falcon" + +Please carefully read all of this document for the best possible experience and safety. + +Contact other pilots, share experiences, suggestions and ask for help on: + + + + + + + + + + + + +
INAV Discord Server
INAV Official on Facebook
+ +# Important Notes + +> INAV 7 is the last INAV official release available for F411 based flight controllers. The next milestone, INAV 8 will not be available for F411 boards. + +> The GPS NMEA protocol is no longer supported. All pilots are required to switch to UBLOX protocol. All modern GPS modules (even as old as from 2015 and earlier) support UBLOX protocol and there is not a single good reason to stick to NMEA nowadays + +> The FrSky D-series telemetry support has been removed. This applies to legacy D4R receivers and some 3rd party whoop boards + +> Make sure to remove props and check your motor and servo outputs before powering your upgraded flight controller with a battery for the first time. The changes to enable flexible motor and servo allocation may change what outputs your configuration uses by default. + +# Upgrading from a previous release + +## Upgrading from INAV 6 and 6.1 + +1. Download and install the new [INAV Configurator 7](https://github.com/iNavFlight/inav-configurator/releases) +1. Save to a file the current _diff all_ from the CLI. +1. Upgrade to INAV 7 using the **Full Erase** option in the configurator. +1. In case of Analog FPV, upload your OSD font of choice from the OSD tab. +1. Go to the CLI again and paste the above-described contents from the file you previously created and write _save_ , press ENTER. +1. There are many new, changed, and removed settings. Check carefully that the settings are correct and fix any unrecognized or out-of-range items from the saved configuration. +1. You should be ready, explore new 7.0 features, and enjoy! + +## Upgrading from older versions + +Please follow the instructions on [this](./quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md) page. + +# Major changes + +## Flexible motor and servo output allocation + +INAV now was a function that allows to flexibly assign functions to PWM outputs directly from INAV Configurator. +Specific function `AUTO`, `MOTORS` or `SERVOS` can be assigned to each Timer Group. Then, all outputs from this group will perform this function. +Thanks to this, it's possible to use servos and motors in ways that previously required building a custom targets. + +![INAV output assignment](https://quadmeup.com/assets/inav/inav_output_assignment.png) + +Bear in mind: +* In some rare cases, output assignment might be different than in INAV 6. **This makes it even more important to remove your props and double check your outputs before you power your flight controller with batteries for the first time after applying your old settings or enabling outputs.** +* It is not possible to assign function to individual outputs. It's a hardware, not software limitation. + +## Mixer profiles and VTOL support + +This has been a frequent request since PNP VTOL models started becoming more common. + +Read more in [Mixer Profile INAV docs](https://github.com/iNavFlight/inav/blob/master/docs/MixerProfile.md) and [VTOL INAV docs](https://github.com/iNavFlight/inav/blob/master/docs/VTOL.md) + +## Ez Tune + +The **Ez Tune** is a simplified tuning framework similar to Betalight's Simplified Slider Tuning. Instead of setting each PID controller gain, rate, and filter setting separately, Pilot is presented with 8 sliders for: + +* Axis ratio +* Main filter frequency +* Response +* Damping +* Stability +* Aggressiveness +* Rate +* Expo + +![INAV Ez Tune](https://quadmeup.com/assets/inav/inav_ez_tune.png) + +> Ez Tune settings are not compatible with Betaflight Slider Tuning setting and cannot be migrated directly. + +Read the description in Configurator's Ez Tune tab on what each setting does and how it should be used. + +More on the topic of **Ez Tune** can be found [here](https://youtu.be/94foP_mxBLk) + +## In-flight Emergency Rearm + +With INAV 7.0 came the ability to **Emergency Rearm**. This allows you to rearm in flight when you accidentally disarm. You need to do this within 5 seconds of disarming. Which sounds short, but is actually a pretty long time. Emergency Rearm can be used after a launch and while the aircraft still believes it's flying. It bypasses safety checks (including the throttle position) and doesn't trigger auto launch. Multirotors will also briefly switch to Angle to stabilise and level the flight. You can read all about it at [https://github.com/iNavFlight/inav/pull/9254](https://github.com/iNavFlight/inav/pull/9254?fbclid=IwAR2MDYh2PSmDsxgc58qjcDcNLkOQyzvltO6J4vDPs5ISQsr4jFwQX2h2VzE) + +## Timer DMA Burst + +INAV 7 adds the DMA Burst mode to selected target as ultimately fixes the problem of DSHOT protocol not working on some boards. Pilots do not have to take any actions, DSHOT is just available on previously affected flight controllers. This applies to: + +* Matek F405 TE +* SpeedyBee F405 V3 + +## JETI EXBUS fixed + +The JETI EXBUS protocol should now not hang the flight controller during operation. The issue was originally fixed in https://github.com/betaflight/betaflight/pull/13130 . Thank you @SteveCEvans and @klutvott123 + +## Multirotor Cruise Mode + +The Cruise Mode for Multirotors allows pilots to let go the radio sticks while UAV flies on a predefined course with predefined speed. Just like with regular PosHold, Throttle stick sets the altitude and course, while the pitch stick is used to set the horizontal speed. When released INAV will hold set speed, altitude, and course. More information available in here https://youtu.be/4pgDxexuSnU + +## NMEA Protocol no longer available + +As mentioned in the `Important Notes` section, INAV 7 no longer supports the GPS NMEA protocol. All modern GPS module support one of the UBLOX protocols and as a result pilots must switch to either `UBLOX` or `UBLOX7` protocol. + +## GPS Improvements + +A number of improvements have been made to GPS support in INAV 7. + +It is now possible to select multiple GPS constellations, and not only Galileo. If your GPS modules does not support a particular combination, it will fallback to no extra constellations. + +M10 GPS units will now default to 10Hz, like M8 units and a new cli setting has been added to allow overriding the update rate of your `UBLOX7` GPS (`gps_ublox_nav_hz`). This should allow you to fall back to 5Hz or bump it up to the limits of what is supported by your GPS module. + +![INAV GPS Improvements](https://quadmeup.com/assets/inav/inav_gps_improvements.png) + +## MSP VTX support + +INAV now support MSP VTX when using MSP DisplayPort OSD. + +Now it is possible to change VTX power levels and channels via INAV's OSD menu or ELRS backpack without connecting the SmartAudio wire on HD-Zero VTXs. + +If you MSP DisplayPort OSD is working, no extra configuration is needed. + +## Linear Descent RTH mode changed + +`AT_LEAST_LINEAR_DESCENT` is no longer a method for RTH. It has been replaced with a more flexible linear descent option that will work with any RTH method. If previously using `AT_LEAST_LINEAR_DESCENT`, you should now just use `AT_LEAST` as the RTH type. Linear Descent is now a separate option that can be used with any other RTH method. To make this possible, the target altitude of the descent is now the `nav_rth_home_altitude`. In some cases, if flying below the home position, this will work as a linear ascent. + +You can also decide when the linear descent will start. Set the `nav_rth_linear_descent_start_distance` parameter to the distance (metres) from the home point, where you want to start descending. Set to `0`, the default setting; the descent will start immediately, as with the pre-7.0 implementation. + +These options are available in Configurator. + +See the [Navigation Mode: Return to Home wiki](./features/Navigation-Mode-Return-to-Home.md#linear-descent) for more details. + +## Pilot Logos + +You can now have custom pilot logos on your OSD and arming screen (HD Only). You will need to create a custom font with your logos to show them on screen. The OSD logo is a 3x1 character symbol. This can be used with both analogue and HD. The arming screen logo is a 10x4 character image, and only works with HD systems. + +More details are available in the [OSD Document](https://github.com/iNavFlight/inav/blob/master/docs/OSD.md#pilot-logos). + +# Other changes + +* The `AUTOLEVEL` mode is renamed to `AUTO LEVEL TRIM`. The functionality remains the same. +* The `osd_mah_used_precision` parameter has been renamed `osd_mah_precision`. +* 24 channels available for Jeti systems (not available with F411 or F722 flight controllers). +* Virtual pitot is enabled by default. + +# Other removed functions + +* FrSky D-series telemetry +* `output_mode` setting that allows to reassign all PWM outputs to either MOTORS or SERVOS + +# New targets + +* SDmodel H7V1 +* Matek H743HD +* SpeedyBee F405 V4 +* SpeedeBee F405 Mini +* SpeedyBee F7 Mini V2 +* GEPRCF405 +* GEPRCF722 +* NEUTRONRC F435 Mini AIO +* DAKEFPV F405 +* DAKEFPV F722 +* AtomRC F405 NAVI Delux + +# CLI + +## Changed settings + +| Name | Description | +| ---- | ------ | +| gps_provider | Removed: `NMEA` | +| gps_sbas_mode | New: `SPAN` | +| nav_rth_alt_mode | Removed: `AT_LEAST_LINEAR_DESCENT` | +| pitot_hardware | New: `DLVR-L10D` | + +## New Items + +| Name | Description | +| ---- | ------ | +| ez_aggressiveness | EzTune aggressiveness Values: 0 - 200 Default: 100 | +| ez_axis_ratio | EzTune axis ratio Values: 25 - 175 Default: 110 | +| ez_damping | EzTune damping Values: 0 - 200 Default: 100 | +| ez_enabled | Enables EzTune feature Default: FALSE | +| ez_expo | EzTune expo Values: 0 - 200 Default: 100 | +| ez_filter_hz | EzTune filter cutoff frequency Values: 10 - 300 Default: 110 | +| ez_rate | EzTune rate Values: 0 - 200 Default: 100 | +| ez_response | EzTune response Values: 0 - 200 Default: 100 | +| ez_stability | EzTune stability Values: 0 - 200 Default: 100 | +| gps_auto_baud_max_supported | Max baudrate supported by GPS unit. This is used during autobaud. M8 supports up to 460400, M10 supports up to 921600 and 230400 is the value used before INAV 7.0 Default: 230400 | +| gps_ublox_nav_hz | Navigation update rate for UBLOX7 receivers. Some receivers may limit the maximum number of satellites tracked when set to a higher rate or even stop sending navigation updates if the value is too high. Some M10 devices can do up to 25Hz. 10 is a safe value for M8 and newer. Values: 5 - 200 Default: 10 | +| gps_ublox_use_beidou | Enable use of Beidou satellites. This is at the expense of other regional constellations, so benefit may also be regional. Requires gps hardware support [OFF/ON]. Default: FALSE | +| gps_ublox_use_glonass | Enable use of Glonass satellites. This is at the expense of other regional constellations, so benefit may also be regional. Requires gps haardware support [OFF/ON]. Default: FALSE | +| led_pin_pwm_mode | PWM mode of LED pin. Values: `SHARED_LOW`, `SHARED_HIGH`, `LOW`, `HIGH`. Default: `SHARED_LOW` | +| mixer_automated_switch | If set to on, This mixer_profile will try to switch to another mixer_profile when 1.RTH heading home is requested and distance to home is lager than 3*nav_fw_loiter_radius on mixer_profile is a MULTIROTOR or TRICOPTER platform_type. 2. RTH landing is requested on this mixer_profile is a AIRPLANE platform_type Default: FALSE | +| mixer_pid_profile_linking | If enabled, pid profile_index will follow mixer_profile index. Set to OFF(default) if you want to handle PID profile by your self. Recommend to set to ON on all mixer_profiles to let the mixer_profile handle the PID profile switching on a VTOL or mixed platform type setup. Default: FALSE | +| mixer_switch_trans_timer | If switch another mixer_profile is scheduled by mixer_automated_switch or mixer_automated_switch. Activate Mixertransion motor/servo mixing for this many decisecond(0.1s) before the actual mixer_profile switch. Values: 0 - 200 Default: 0 | +| motorstop_on_low | If enabled, motor will stop when throttle is low on this mixer_profile Default: FALSE | +| nav_cruise_yaw_rate | Max YAW rate when NAV COURSE HOLD/CRUISE mode is enabled. Set to 0 to disable on fixed wing (Note: On multirotor setting to 0 will disable Course Hold/Cruise mode completely) [dps] Values: 0 - 120 Default: 20 | +| nav_landing_bump_detection | Allows immediate landing detection based on G bump at touchdown when set to ON. Requires a barometer and currently only works for multirotors. Default: FALSE | +| nav_mc_althold_throttle | If set to STICK the FC remembers the throttle stick position when enabling ALTHOLD and treats it as the neutral midpoint for holding altitude. If set to MID_STICK or HOVER the neutral midpoint is set to the mid stick position or the hover throttle position respectively. Default: STICK | +| nav_rth_linear_descent_start_distance | The distance [m] away from home to start the linear descent. 0 = immediately (original linear descent behaviour) Values: 0 - 10000 Default: 0 | +| nav_rth_use_linear_descent | If enabled, the aircraft will gradually descent to the nav_rth_home_altitude en route. The distance from home to start the descent can be set with `nav_rth_linear_descent_start_distance`. Default: FALSE | +| osd_arm_screen_display_time | Amount of time to display the arm screen [ms] Values: 1000 - 5000 Default: 1500 | +| osd_inav_to_pilot_logo_spacing | The space between the INAV and pilot logos, if `osd_use_pilot_logo` is `ON`. This number may be adjusted so that it fits the odd/even col width displays. For example, if using an odd column width display, such as Walksnail, and this is set to 4. 1 will be added so that the logos are equally spaced from the centre of the screen. Values: 0 - 20 Default: 8 | +| osd_joystick_down | PWM value for DOWN key Values: 0 - 100 Default: 0 | +| osd_joystick_enabled | Enable OSD Joystick emulation Default: FALSE | +| osd_joystick_enter | PWM value for ENTER key Values: 0 - 100 Default: 75 | +| osd_joystick_left | PWM value for LEFT key Values: 0 - 100 Default: 63 | +| osd_joystick_right | PWM value for RIGHT key Values: 0 - 100 Default: 28 | +| osd_joystick_up | PWM value for UP key Values: 0 - 100 Default: 48 | +| osd_mah_precision | Number of digits used for mAh precision. Currently used by mAh Used and Battery Remaining Capacity Values: 4 - 6 Default: 4 | +| osd_use_pilot_logo | Use custom pilot logo with/instead of the INAV logo. The pilot logo must be characters 473 to 511 Default: FALSE | +| pid_iterm_limit_percent | Limits max/min I-term value in stabilization PID controller. It solves the problem of servo saturation before take-off/throwing the airplane into the air. Or multirotors with low authority. By default, error accumulated in I-term can not exceed 33% of total pid throw (around 165us on deafult pidsum_limit of pitch/roll). Set 0 to disable completely. Values: 0 - 200 Default: 33 | +| tpa_on_yaw | Throttle PID attenuation also reduces influence on YAW for multi-rotor, Should be set to ON for tilting rotors. Default: FALSE | + +## Removed Items + +| Name | Description | +| ---- | ------ | +| dterm_lpf2_hz | | +| dterm_lpf2_type | | +| frsky_coordinates_format | | +| frsky_default_latitude | | +| frsky_default_longitude | | +| frsky_unit | | +| frsky_vfas_precision | | +| fw_iterm_throw_limit | | +| moron_threshold | | +| nav_fw_cruise_yaw_rate | | +| nav_use_midthr_for_althold | | +| osd_mah_used_precision | | +| output_mode | | + +# Changelist + +The full list of changes is available [here](https://github.com/iNavFlight/inav/pulls?q=is%3Apr+milestone%3A7.0+is%3Aclosed) +The full list of INAV Configurator changes is available [here](https://github.com/iNavFlight/inav-configurator/pulls?q=is%3Apr+milestone%3A7.0+is%3Aclosed) + +## What's Changed from INAV 6.1.1 + +* INAV 7 by @DzikuVx in https://github.com/iNavFlight/inav/pull/8886 +* Enable USE_SERVO_SBUS on all targets by @DzikuVx in https://github.com/iNavFlight/inav/pull/8876 +* Release 6.0 by @DzikuVx in https://github.com/iNavFlight/inav/pull/8763 +* Drop D-term LPF2 as no longer used by @DzikuVx in https://github.com/iNavFlight/inav/pull/8875 +* Drop FrDky D-series telemetry support by @DzikuVx in https://github.com/iNavFlight/inav/pull/8878 +* Allow scheduler to go down to 10us period by @DzikuVx in https://github.com/iNavFlight/inav/pull/8877 +* Drop moron_threshold setting by @DzikuVx in https://github.com/iNavFlight/inav/pull/8859 +* Release 6.0.0 by @DzikuVx in https://github.com/iNavFlight/inav/pull/8912 +* Add target BLACKPILL_F411 by @HKR1987 in https://github.com/iNavFlight/inav/pull/8902 +* Update GCC to 10.3.1 by @DzikuVx in https://github.com/iNavFlight/inav/pull/8917 +* Release 6.1.0 by @DzikuVx in https://github.com/iNavFlight/inav/pull/8887 +* docs: fix documentation of gvar set by @sensei-hacker in https://github.com/iNavFlight/inav/pull/8955 +* Update Building in MSYS2 Doc by @pwnept in https://github.com/iNavFlight/inav/pull/8934 +* Add osd menu option to preview font file by @mmosca in https://github.com/iNavFlight/inav/pull/8932 +* Jh update usb flash doc by @stronnag in https://github.com/iNavFlight/inav/pull/8974 +* Add the "GEPRCF722_BT_HD" target by @YI-BOYANG in https://github.com/iNavFlight/inav/pull/8943 +* Recognize MPU9255 as a valid IMU by @VasilKalchev in https://github.com/iNavFlight/inav/pull/8927 +* Cleanup m25p16 flash detection code by @mmosca in https://github.com/iNavFlight/inav/pull/8985 +* Update from master by @MrD-RC in https://github.com/iNavFlight/inav/pull/8987 +* Add IFLIGHT_BLITZ_F7_AIO target by @mmosca in https://github.com/iNavFlight/inav/pull/8977 +* Mark IFLIGHT_BLITZ_F7_AIO as SKIP_RELEASES by @mmosca in https://github.com/iNavFlight/inav/pull/8988 +* Have you ever wished INAV had a mute switch? by @mmosca in https://github.com/iNavFlight/inav/pull/8989 +* Enhance Linear Descent RTH feature by @MrD-RC in https://github.com/iNavFlight/inav/pull/8810 +* updated battery profile documentation by @RomanLut in https://github.com/iNavFlight/inav/pull/9002 +* INAV capitalization by @ryet9 in https://github.com/iNavFlight/inav/pull/9001 +* Rename AUTO LEVEL by @MrD-RC in https://github.com/iNavFlight/inav/pull/8972 +* fixed pitot sensor by @RomanLut in https://github.com/iNavFlight/inav/pull/9019 +* modify servo and motor and magnetometer for AocodaRC F4V2 by @dlt2018 in https://github.com/iNavFlight/inav/pull/9040 +* Release 6.1.0 mergeback by @DzikuVx in https://github.com/iNavFlight/inav/pull/8957 +* Fix: SpeedyBee F405 V3 uSD card vs OSD interference by @shirase in https://github.com/iNavFlight/inav/pull/9028 +* Update Navigation.md by @RomanLut in https://github.com/iNavFlight/inav/pull/9058 +* Update Aocodarcf7mini by @dlt2018 in https://github.com/iNavFlight/inav/pull/9056 +* Add MPU6000 and MPU6500 support to Foxeer F7 V4 target by @DzikuVx in https://github.com/iNavFlight/inav/pull/9070 +* Cleanup abandoned EXTI code by @DzikuVx in https://github.com/iNavFlight/inav/pull/9071 +* Multirotor WP speed fix when altitude enforce enabled by @breadoven in https://github.com/iNavFlight/inav/pull/9067 +* Update target.h by @pgp69 in https://github.com/iNavFlight/inav/pull/9037 +* updated controls documentation by @RomanLut in https://github.com/iNavFlight/inav/pull/9024 +* remove obsolete static_assert by @stronnag in https://github.com/iNavFlight/inav/pull/9077 +* [SITL OSX] Fix some of the warnings and add macosx SITL build to workflows by @mmosca in https://github.com/iNavFlight/inav/pull/9063 +* Add QUADSPI Support for H7 and M25P16 Flash Driver by @mluessi in https://github.com/iNavFlight/inav/pull/8915 +* Fix bug for DJI O3's altitude when using imperial by @MrD-RC in https://github.com/iNavFlight/inav/pull/9076 +* Switch sensor infrastructure to be float internally by @DzikuVx in https://github.com/iNavFlight/inav/pull/9075 +* [SITL] disable nagle for UART TCP by @stronnag in https://github.com/iNavFlight/inav/pull/9079 +* [SITL OSX] Fix lldb debugging in OSX and improve OSX detection by @mmosca in https://github.com/iNavFlight/inav/pull/9082 +* [SITL] consolidate IP helpers into target.c by @stronnag in https://github.com/iNavFlight/inav/pull/9080 +* [SITL] add missing BSD header from IP consolidation by @stronnag in https://github.com/iNavFlight/inav/pull/9085 +* [Docs] Readme updates by @stronnag in https://github.com/iNavFlight/inav/pull/9090 +* Speedybee F405 WING fixes by @DzikuVx in https://github.com/iNavFlight/inav/pull/9094 +* fix conflicting types by @stronnag in https://github.com/iNavFlight/inav/pull/9097 +* allow HITL to run with HW baro failure by @RomanLut in https://github.com/iNavFlight/inav/pull/9021 +* Set 10Hz update rate for M9 and M10 gps devices by default and allow higher refresh rates by @mmosca in https://github.com/iNavFlight/inav/pull/9103 +* Add board Aocodarcf405aio by @dlt2018 in https://github.com/iNavFlight/inav/pull/9089 +* Update Borad Aocodarch7dual by @dlt2018 in https://github.com/iNavFlight/inav/pull/9100 +* DSP based gyro operations by @DzikuVx in https://github.com/iNavFlight/inav/pull/9078 +* Acc processing with DSP by @DzikuVx in https://github.com/iNavFlight/inav/pull/9116 +* Remove brew update step for SITL mac build by @mmosca in https://github.com/iNavFlight/inav/pull/9127 +* ICM42605 gyro parsing fix by @erstec in https://github.com/iNavFlight/inav/pull/9125 +* Release 6.1.1 by @MrD-RC in https://github.com/iNavFlight/inav/pull/9106 +* Fix version check and apply GNSS configuration for M8+ gps by @mmosca in https://github.com/iNavFlight/inav/pull/9128 +* Multirotor landing bump detection by @breadoven in https://github.com/iNavFlight/inav/pull/8744 +* Add configuration of Beidou and Glonass to M8, M9 and M10 gps modules by @mmosca in https://github.com/iNavFlight/inav/pull/9124 +* update gpsConfig_t PG version by @stronnag in https://github.com/iNavFlight/inav/pull/9131 +* It looks like UBLOX ROM version 2.01 omits the = sign from PROTVER by @mmosca in https://github.com/iNavFlight/inav/pull/9132 +* reenable LTO for MacOS firmware builds by @stronnag in https://github.com/iNavFlight/inav/pull/9136 +* Flycolor F7 mini by @DzikuVx in https://github.com/iNavFlight/inav/pull/9122 +* updated buzzer documentation by @RomanLut in https://github.com/iNavFlight/inav/pull/9148 +* fixed beeper -ON_USB for 1S setup, fixed beeper -SYSTEM_INIT by @RomanLut in https://github.com/iNavFlight/inav/pull/9147 +* Enable possibility to simulate HW sensor failures in HITL by @RomanLut in https://github.com/iNavFlight/inav/pull/8858 +* Kakute H7 Wing by @erstec in https://github.com/iNavFlight/inav/pull/9145 +* Update target.h by @dlt2018 in https://github.com/iNavFlight/inav/pull/9151 +* fix target's by @dlt2018 in https://github.com/iNavFlight/inav/pull/9149 +* Improve OSD stats page avg efficiency value scaling by @rmaia3d in https://github.com/iNavFlight/inav/pull/9109 +* Fix AOCODARCH7DUAL Buzzer continous beeping issue by @lida2003 in https://github.com/iNavFlight/inav/pull/9143 +* [SITL] suppress spurious linker warning with gcc12+ by @stronnag in https://github.com/iNavFlight/inav/pull/9163 +* How to test a pull request.md - two minor typos by @sensei-hacker in https://github.com/iNavFlight/inav/pull/9170 +* Add some documentation on how to test a PR by @mmosca in https://github.com/iNavFlight/inav/pull/9168 +* fixed enter/exit camera osd stick positions docs by @RomanLut in https://github.com/iNavFlight/inav/pull/9165 +* Fix: Inav 7.0.0 last build not working on SPEEDYBEEF405V3 by @shirase in https://github.com/iNavFlight/inav/pull/9162 +* Foxeer H743 target by @DzikuVx in https://github.com/iNavFlight/inav/pull/9171 +* Add new OSD document by @MrD-RC in https://github.com/iNavFlight/inav/pull/9177 +* Kakute H7 Wing Defaults altered by @erstec in https://github.com/iNavFlight/inav/pull/9185 +* Add more baud rates to auto baud, as listed in m10 integration manual by @mmosca in https://github.com/iNavFlight/inav/pull/9174 +* Use all 8 motor outputs on AXISFLYINGF7PRO by @nmaggioni in https://github.com/iNavFlight/inav/pull/9179 +* MSP VTX support by @mmosca in https://github.com/iNavFlight/inav/pull/9166 +* Repair led strip by @dlt2018 in https://github.com/iNavFlight/inav/pull/9190 +* Get rid of some not needed floating point divisions by @DzikuVx in https://github.com/iNavFlight/inav/pull/9207 +* Restore autobaud for m8 gps by @mmosca in https://github.com/iNavFlight/inav/pull/9219 +* Update SPEEDYBEEF7V3. Fix Sensor VL53L1X by @druckgott in https://github.com/iNavFlight/inav/pull/9221 +* Extend from 4 ADC channels to 6 (Matek H743 and others) by @sensei-hacker in https://github.com/iNavFlight/inav/pull/9180 +* Nav altitude control improvements by @breadoven in https://github.com/iNavFlight/inav/pull/8920 +* fix neutronrcf435mini aio motor2 output bug by @shanggl in https://github.com/iNavFlight/inav/pull/9226 +* Try to set vscode to play nice with formating style by @mmosca in https://github.com/iNavFlight/inav/pull/9223 +* Fix for #9225, some OSD elements are skipped incorrectly, when GPS is not present. by @mmosca in https://github.com/iNavFlight/inav/pull/9229 +* Block by Runtime calibration of ACC only when ACC is required by @DzikuVx in https://github.com/iNavFlight/inav/pull/9227 +* Fix ADC on FOXEERH743 by @DzikuVx in https://github.com/iNavFlight/inav/pull/9230 +* Update speedybeef405v3 docs, with some common issues by @mmosca in https://github.com/iNavFlight/inav/pull/9231 +* Let M10 GPS disable SBAS and some small fixes changes by @mmosca in https://github.com/iNavFlight/inav/pull/9232 +* Multicopter emergency landing improvement/fix by @breadoven in https://github.com/iNavFlight/inav/pull/9169 +* Fix SITL memory leaks by @psmitty7373 in https://github.com/iNavFlight/inav/pull/9235 +* Add constrain for DynLPF computation by @DzikuVx in https://github.com/iNavFlight/inav/pull/9242 +* Multirotor Althold throttle hover option + altitude adjustment indication by @breadoven in https://github.com/iNavFlight/inav/pull/9220 +* OSD Altitude field fix by @breadoven in https://github.com/iNavFlight/inav/pull/9261 +* Add blackbox target heading + missing Nav auto enabled flight modes by @breadoven in https://github.com/iNavFlight/inav/pull/9249 +* SKYSTARSH743HD remove non-existent S9 & S10. Add servos target by @sensei-hacker in https://github.com/iNavFlight/inav/pull/9214 +* [doc] update serial_printf document iaw current implementation by @stronnag in https://github.com/iNavFlight/inav/pull/9266 +* Change motor/servo assignements for RUSH_BLADE_F7 targets by @mmosca in https://github.com/iNavFlight/inav/pull/9262 +* Pitot DLVR-L10D sensor by @jmajew in https://github.com/iNavFlight/inav/pull/9216 +* Add GEPRCF405 and GEPRCF722 targets by @YI-BOYANG in https://github.com/iNavFlight/inav/pull/9260 +* Multi function OSD utility by @breadoven in https://github.com/iNavFlight/inav/pull/8698 +* Timer DMA burst by @shirase in https://github.com/iNavFlight/inav/pull/9265 +* Add mup6500 for mambaf405us by @jianwwpro in https://github.com/iNavFlight/inav/pull/8827 +* Programming Frameword.md: Update to match Configurator renaming by @sensei-hacker in https://github.com/iNavFlight/inav/pull/9275 +* SpeedyBee F7 Mini V2 target by @DzikuVx in https://github.com/iNavFlight/inav/pull/9272 +* Speedybee F405 mini by @DzikuVx in https://github.com/iNavFlight/inav/pull/9273 +* Multirotor course hold/cruise mode by @breadoven in https://github.com/iNavFlight/inav/pull/9213 +* Bump navConfig PG that was forgotten in #9220 by @DzikuVx in https://github.com/iNavFlight/inav/pull/9278 +* Switch MatekF405TE to use burst DMA by @DzikuVx in https://github.com/iNavFlight/inav/pull/9277 +* Update Building in Windows 10 or 11 with Linux Subsystem.md by @wchnflr in https://github.com/iNavFlight/inav/pull/9279 +* BETAFPVF435 unofficial target by @mmosca in https://github.com/iNavFlight/inav/pull/9281 +* Make PWM allocation a bit smarter. by @mmosca in https://github.com/iNavFlight/inav/pull/9268 +* [sitl] add --version, add git commit to version output by @stronnag in https://github.com/iNavFlight/inav/pull/9286 +* docs/programming user21 typo by @sensei-hacker in https://github.com/iNavFlight/inav/pull/9289 +* Failsafe fixes by @breadoven in https://github.com/iNavFlight/inav/pull/9283 +* Mixer throttle fixes/improvements + more OSD Throttle changes by @breadoven in https://github.com/iNavFlight/inav/pull/9274 +* Ignore tasks.json and use tabs in C files by @MrD-RC in https://github.com/iNavFlight/inav/pull/9295 +* Enable the virtual pitot by default by @MrD-RC in https://github.com/iNavFlight/inav/pull/9299 +* Add DPS310 by @dlt2018 in https://github.com/iNavFlight/inav/pull/9284 +* Drop output_mode setting by @DzikuVx in https://github.com/iNavFlight/inav/pull/9300 +* Throttle related refactor/clean up by @breadoven in https://github.com/iNavFlight/inav/pull/9287 +* docs/ipf: Fix typos and clarify wording by @sensei-hacker in https://github.com/iNavFlight/inav/pull/9298 +* Further simplify timer usage flags. by @mmosca in https://github.com/iNavFlight/inav/pull/9288 +* Bulk update targets with new pwm output assignments by @mmosca in https://github.com/iNavFlight/inav/pull/9309 +* Remove timer compatibility define, since all targets have been updated by @mmosca in https://github.com/iNavFlight/inav/pull/9318 +* DSHOT delay fix by @shirase in https://github.com/iNavFlight/inav/pull/9321 +* [docs] modernise Serial and RX documents by @stronnag in https://github.com/iNavFlight/inav/pull/9322 +* Mixer profile to open the posibility for vtol/mixed platform by @shota3527 in https://github.com/iNavFlight/inav/pull/8555 +* Add SouthPAN SBAS for all my friends in AU/NZ. by @mmosca in https://github.com/iNavFlight/inav/pull/9320 +* Drop NMEA protocol by @DzikuVx in https://github.com/iNavFlight/inav/pull/9302 +* SpeedyBee F405 V4 by @DzikuVx in https://github.com/iNavFlight/inav/pull/9324 +* SpeedyBEEF405WING Change S11 timer, since TIM1 is used by LED by @mmosca in https://github.com/iNavFlight/inav/pull/9325 +* Remove info about F3 mcus from Temperature sensors documentation by @mmosca in https://github.com/iNavFlight/inav/pull/9337 +* Add Rate Dynamics to MSP by @DzikuVx in https://github.com/iNavFlight/inav/pull/9336 +* Update PR test instructions by @mmosca in https://github.com/iNavFlight/inav/pull/9338 +* Flight remaining flight distance value by @MrD-RC in https://github.com/iNavFlight/inav/pull/9333 +* Fix mixer config initialization sequence by @shota3527 in https://github.com/iNavFlight/inav/pull/9339 +* Fix for Rate dynamics MSP layer by @DzikuVx in https://github.com/iNavFlight/inav/pull/9340 +* Add myself to Authors by @mmosca in https://github.com/iNavFlight/inav/pull/9341 +* Add odometer to OSD by @MrD-RC in https://github.com/iNavFlight/inav/pull/9335 +* Update Controls.md by @MrD-RC in https://github.com/iNavFlight/inav/pull/9351 +* IPF: Add yaw operand to go with pitch and roll by @sensei-hacker in https://github.com/iNavFlight/inav/pull/9305 +* Add MatekH743HD variant by @MATEKSYS in https://github.com/iNavFlight/inav/pull/9244 +* additional fixes for mixer profile by @shota3527 in https://github.com/iNavFlight/inav/pull/9363 +* fixed HITL docs by @RomanLut in https://github.com/iNavFlight/inav/pull/9353 +* Add the Aocodarcf722aio file by @dlt2018 in https://github.com/iNavFlight/inav/pull/9314 +* Lower default hover throttle to 30% by @mmosca in https://github.com/iNavFlight/inav/pull/9361 +* Increase channels to 24 for Jeti by @MrD-RC in https://github.com/iNavFlight/inav/pull/9350 +* Add pilot logo to OSD by @MrD-RC in https://github.com/iNavFlight/inav/pull/9332 +* fixes servo output issue by @shota3527 in https://github.com/iNavFlight/inav/pull/9366 +* minor changes on ahrs by @shota3527 in https://github.com/iNavFlight/inav/pull/9360 +* Timer N channel fix by @shirase in https://github.com/iNavFlight/inav/pull/9276 +* Add ICM42605 driver for SKYSTARSF405HD by @DusKing1 in https://github.com/iNavFlight/inav/pull/9370 +* Multirotor coursehold/cruise mode fix by @breadoven in https://github.com/iNavFlight/inav/pull/9380 +* Ez Tune for Multirotors by @DzikuVx in https://github.com/iNavFlight/inav/pull/9354 +* update docker build scripts by @RomanLut in https://github.com/iNavFlight/inav/pull/9346 +* Add SYM_TOTAL and SYM_GFORCE to BFCOMPAT by @mmosca in https://github.com/iNavFlight/inav/pull/9385 +* In flight emergency rearm by @breadoven in https://github.com/iNavFlight/inav/pull/9254 +* Re-enable baro. max chip seems to cause issues by @mmosca in https://github.com/iNavFlight/inav/pull/9400 +* Make it easier to include all baro drivers to target by @mmosca in https://github.com/iNavFlight/inav/pull/9394 +* Make it easier to include all compass drivers to target by @mmosca in https://github.com/iNavFlight/inav/pull/9401 +* BFCOMPAT - improve wind and airspeed fields and labels by @rmaia3d in https://github.com/iNavFlight/inav/pull/9388 +* HITL/SITL: allow hitl/sitl to arm with uncalibrated accelerometer by @RomanLut in https://github.com/iNavFlight/inav/pull/9345 +* fix mixer_profie configurator issue by @shota3527 in https://github.com/iNavFlight/inav/pull/9364 +* flight/pid.c: fix AngleOverride(yaw) to degrees by @sensei-hacker in https://github.com/iNavFlight/inav/pull/9329 +* HITL: simulate battery voltage with any sensor by @RomanLut in https://github.com/iNavFlight/inav/pull/9212 +* HITL: hd osd support by @RomanLut in https://github.com/iNavFlight/inav/pull/9327 +* Fixed #9399 can't find baro chip on PB6/PB7 I2C1 by @lida2003 in https://github.com/iNavFlight/inav/pull/9412 +* Fix JETI EXBUS overflow by @DzikuVx in https://github.com/iNavFlight/inav/pull/9407 +* Disable ASFR function on ICM426xx driver by @DzikuVx in https://github.com/iNavFlight/inav/pull/9409 +* 16G scale range for bmi270 accelerometer by @shota3527 in https://github.com/iNavFlight/inav/pull/9410 +* tpa on yaw and i-term limit by @shota3527 in https://github.com/iNavFlight/inav/pull/9408 +* FW Auto level trim bug fix by @breadoven in https://github.com/iNavFlight/inav/pull/9393 +* Enhance mAh remaining OSD element by @MrD-RC in https://github.com/iNavFlight/inav/pull/9334 +* Allow f722 to use mixer profile by @shota3527 in https://github.com/iNavFlight/inav/pull/9416 +* Correct disarm servo throttle by @DzikuVx in https://github.com/iNavFlight/inav/pull/9413 +* SAFETY issue -- servos.c: Correct servo throttle *off* when disarmed (not full throttle at disarm) by @sensei-hacker in https://github.com/iNavFlight/inav/pull/9330 +* OSD Joystick by @RomanLut in https://github.com/iNavFlight/inav/pull/9201 +* New target: ATOMRC Exceed F405 FC V2 by @NickB1 in https://github.com/iNavFlight/inav/pull/8956 +* Add more power options for 1G3 group by @MATEKSYS in https://github.com/iNavFlight/inav/pull/9243 +* New target: SDMODELH7V1 by @sensei-hacker in https://github.com/iNavFlight/inav/pull/9114 +* Framework.md - Note about common error by @sensei-hacker in https://github.com/iNavFlight/inav/pull/9422 +* Update OSD.md by @MrD-RC in https://github.com/iNavFlight/inav/pull/9425 +* comment on how to clone specific INAV releases added by @Daniel-1276 in https://github.com/iNavFlight/inav/pull/9414 +* update vtol documents by @shota3527 in https://github.com/iNavFlight/inav/pull/9426 +* Put getConfigMixerProfile as the last byte in message by @DzikuVx in https://github.com/iNavFlight/inav/pull/9431 + +## New Contributors +* @HKR1987 made their first contribution in https://github.com/iNavFlight/inav/pull/8902 +* @VasilKalchev made their first contribution in https://github.com/iNavFlight/inav/pull/8927 +* @ryet9 made their first contribution in https://github.com/iNavFlight/inav/pull/9001 +* @shirase made their first contribution in https://github.com/iNavFlight/inav/pull/9028 +* @pgp69 made their first contribution in https://github.com/iNavFlight/inav/pull/9037 +* @lida2003 made their first contribution in https://github.com/iNavFlight/inav/pull/9143 +* @druckgott made their first contribution in https://github.com/iNavFlight/inav/pull/9221 +* @psmitty7373 made their first contribution in https://github.com/iNavFlight/inav/pull/9235 +* @jianwwpro made their first contribution in https://github.com/iNavFlight/inav/pull/8827 +* @wchnflr made their first contribution in https://github.com/iNavFlight/inav/pull/9279 +* @NickB1 made their first contribution in https://github.com/iNavFlight/inav/pull/8956 +* @Daniel-1276 made their first contribution in https://github.com/iNavFlight/inav/pull/9414 + +**Full Changelog**: https://github.com/iNavFlight/inav/compare/6.1.1...7.0.0-RC1 diff --git a/versioned_docs/version-8.0.1/7.1.0-Release-Notes.md b/versioned_docs/version-8.0.1/7.1.0-Release-Notes.md new file mode 100644 index 0000000..4fe9655 --- /dev/null +++ b/versioned_docs/version-8.0.1/7.1.0-Release-Notes.md @@ -0,0 +1,221 @@ +--- +title: 7.1.0 Release Notes +--- + +![INAV 7.1 Ferocious Falcon](https://quadmeup.com/assets/inav_7_falcon.png) + +# Hello and welcome to INAV 7.1 "Ferocious Falcon" + +Please carefully read all of this document for the best possible experience and safety. + +Contact other pilots, share experiences, suggestions and ask for help on: + + + + + + + + + + + + +
INAV Discord Server
INAV Official on Facebook
+ +# Important Notes + +> INAV 7 is the last INAV official release available for F411 based flight controllers. The next milestone, INAV 8 will not be available for F411 boards. + +> The GPS NMEA protocol is no longer supported. All pilots are required to switch to UBLOX protocol. All modern GPS modules (even as old as from 2015 and earlier) support UBLOX protocol and there is not a single good reason to stick to NMEA nowadays + +> Make sure to remove props and check your motor and servo outputs before powering your upgraded flight controller with a battery for the first time. The changes to enable flexible motor and servo allocation may change what outputs your configuration uses by default. + +# PosHold, Navigation and RTH without compass PSA + +Attention all drone pilots and enthusiasts, + +Are you ready to take your flights to new heights with INAV 7.1? We've got some important information to share with you. + +INAV 7.1 brings an exciting update to navigation capabilities. Now, you can soar through the skies, navigate waypoints, and even return to home without relying on a compass. Yes, you heard that right! But before you launch into the air, there's something crucial to consider. + +While INAV 7.1 may not require a compass for basic navigation functions, we strongly advise you to install one for optimal flight performance. Here's why: + +🛰️ Better Flight Precision: A compass provides essential data for accurate navigation, ensuring smoother and more precise flight paths. + +🌐 Enhanced Reliability: With a compass onboard, your drone can maintain stability even in challenging environments, low speeds and strong wind. + +🚀 Minimize Risks: Although INAV 7.1 can get you where you need to go without a compass, flying without one may result in a bumpier ride and increased risk of drift or inaccurate positioning. + +Remember, safety and efficiency are paramount when operating drones. By installing a compass, you're not just enhancing your flight experience, but also prioritizing safety for yourself and those around you. + +So, before you take off on your next adventure, make sure to equip your drone with a compass. It's the smart choice for smoother flights and better navigation. + +Fly safe, fly smart with INAV 7.1 and a compass by your side! + +> Currently, if you wish to fly a multirotor without a compass. You will need to enable a compass (fake is ok) to change navigational modes in Configurator. You should disable the compass after making the changes. This has been fixed for a future release. + +# Upgrading from a previous release + +## Upgrading from INAV 7.0 + +1. Backup configuration with CLI `diff all` command +2. Download and install the new [INAV Configurator 7.1](https://github.com/iNavFlight/inav-configurator/releases) +3. Flash INAV 7.1 **WITH** _Full Chip Erase_ option enabled +4. Select _Keep current settings_ from the defaults pop-up +5. Go to CLI and restore your 7.0 diff +4. Done + +## Upgrading from INAV 6 and 6.1 + +1. Download and install the new [INAV Configurator 7](https://github.com/iNavFlight/inav-configurator/releases) +1. Save to a file the current _diff all_ from the CLI. +1. Upgrade to INAV 7 using the **Full Erase** option in the configurator. +1. In case of Analog FPV, upload your OSD font of choice from the OSD tab. +1. Go to the CLI again and paste the above-described contents from the file you previously created and write _save_ , press ENTER. +1. There are many new, changed, and removed settings. Check carefully that the settings are correct and fix any unrecognized or out-of-range items from the saved configuration. +1. You should be ready, explore new 7.0 features, and enjoy! + +## Upgrading from older versions + +Please follow the instructions on [this](./quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md) page. + +# Major changes + +## Fixed wing Autoland with landing pattern +INAV supports advanced automatic landings for fixed wing aircraft from version 7.1. The procedure is based on landings for man-carrying aircraft, so that safe landings at a specific location are possible. Supported are landings at Safehome after "Return to Home" or at a defined LAND waypoint for missions. +See: [Fixed Wing Landing.md](https://github.com/Scavanger/inav/blob/73be51b3159a0f2df047f094f7d54ac0ed14f7d0/docs/Fixed%20Wing%20Landing.md) + +**IMPORTANT**: When updating from an older INAV version with a diff, please change the following settings before using Autoland for better performance. + +Plane with no tail: `set nav_wp_radius = 1000` + +Plane with tail: `set nav_wp_radius = 800` + +## Compass and Barometer changes +INAV now relies more heavily on GNSS data for navigation than before. This can provide more security if the Barometer fails, or if the multirotor is suffering from Compass interference. By still allowing it to navigate back to home. + +> From the release of INAV 7.1. The use of a compass is no longer mandatory for multirotor navigation as it once was. BUT it is still recommended for the best navigation performance, when it comes to maintaining a fixed position for an extended period of time, without heading drift. e.g. in Poshold. Or taking off and immediately starting a Waypoint mission. + +If a user does decide to omit the use of a compass for a multirotor, be mindful that any navigation mode (RTH, Failsafe, Poshold, Cruise or a Waypoint mission) will not be operational UNTIL a GPS heading is first obtained, by flying in a straight line until both - + +* The OSD Heading and Course over Ground indicators display a valid heading. Then keeping both headings closely aligned for a time. +* And the OSD Home arrow appears, showing a valid home direction. + +Example [Video](https://www.youtube.com/watch?v=iopZfH-DdTI) + +For more details see [here](./quickstart/GPS--and-Compass-setup.md#inav-71-changes) + +## Tailsitter Support for VTOL +Tailsitter builds are now natively supported to allow proper Board Orientation switching during transition. [Details](https://github.com/iNavFlight/inav/pull/9347) + +# Other changes + +## Updated ICM426xx filtering +The filtering of the ICM426xx gyros has been updated based on changes made to both Ardupilot and BetaFlight and we expect better performance, when comparing to previous INAV versions. + +## OSD Changes +Users can now customize their own OSD messages, by way of the Programming Framework. [Details](https://github.com/iNavFlight/inav/wiki/OSD-custom-messages) + +The Artificial Horizon will not properly track the real horizon in the correct way, when the craft is inverted. [Details](https://github.com/iNavFlight/inav/pull/9609) + +## New Fixedwing flight mode +The mode is called **Angle Hold**. For more details see [here](./features/Modes.md#angle-hold-fw) + +# New targets + +* FLYCOLORF7V2 + +# CLI + +## Changed settings + +| Name | Description | +| ---- | ------ | +| `gps_dyn_model` | Default: AIR_2G GPS navigation model: Pedestrian, Automotive, Air\<1g, Air\<2g, Air\<4g. Default is AIR_2G. Use pedestrian/Automotive with caution, can cause flyaways with fast flying. | + +## New Items + +| Name | Description | +| ---- | ------ | +| `ahrs_gps_yaw_weight` | Arhs gps yaw weight when mag is avaliable, 0 means no gps yaw, 100 means equal weight as compass Values: 0 - 500 Default: 100 | +| `nav_fw_land_approach_length` | Length of the final approach Values: 100 - 100000 Default: 35000 | +| `nav_fw_land_final_approach_pitch2throttle_mod` | Modifier for pitch to throttle ratio at final approach. In Percent. Values: 100 - 400 Default: 100 | +| `nav_fw_land_flare_alt` | Initial altitude of the flare phase Values: 0 - 10000 Default: 150 | +| `nav_fw_land_flare_pitch` | Pitch value for flare phase. In degrees Values: -15 - 45 Default: 8 | +| `nav_fw_land_glide_alt` | Initial altitude of the glide phase Values: 100 - 5000 Default: 200 | +| `nav_fw_land_glide_pitch` | Pitch value for glide phase. In degrees. Values: -15 - 45 Default: 0 | +| `nav_fw_land_max_tailwind` | Max. tailwind (in cm/s) if no landing direction with downwind is available Values: 0 - 3000 Default: 140 | +| `nav_fw_launch_land_abort_deadband` | Launch and landing abort stick deadband in [r/c points], applied after r/c deadband and expo. The Roll/Pitch stick needs to be deflected beyond this deadband to abort the launch or landing. Values: 2 - 250 Default: 100. Replaces `nav_fw_launch_abort_deadband` | +| `nav_min_ground_speed` | Minimum ground speed for navigation flight modes [m/s]. Default 7 m/s. Values: 6 - 50 Default: 7 | +| `nav_rth_fs_landing_delay` | If landing is active on Failsafe and this is above 0. The aircraft will hover or loiter for X seconds before performing the landing. If the battery enters the warning or critical levels, the land will proceed. Default = 0 [seconds] Values: 0 - 1800 Default: 0 | +| `tailsitter_orientation_offset` | Apply a 90 deg pitch offset in sensor aliment for tailsitter flying mode Default: FALSE | + +## Removed Items + +| Name | Description | +| ---- | ------ | +| `inav_w_xyz_acc_p` | | +| `nav_fw_launch_abort_deadband` | Replaced by `nav_fw_launch_land_abort_deadband` | + +# TL;DR + +The list of most important changes is also available in a video form: https://youtu.be/8Q8t_KwlSAQ + +# Changelist + +The full list of changes is available [here](https://github.com/iNavFlight/inav/pulls?q=is%3Apr+milestone%3A7.1+is%3Aclosed) +The full list of INAV Configurator changes is available [here](https://github.com/iNavFlight/inav-configurator/pulls?q=is%3Apr+milestone%3A7.1+is%3Aclosed) + +## What's Changed from INAV 7.0 + +* Update from master by @MrD-RC in https://github.com/iNavFlight/inav/pull/9427 +* Fixed wing attitude stabilisation mode by @breadoven in https://github.com/iNavFlight/inav/pull/9294 +* F411 PSA by @DzikuVx in https://github.com/iNavFlight/inav/pull/9459 +* updates docs, removed vtx_freq artefacts by @RomanLut in https://github.com/iNavFlight/inav/pull/9506 +* GEPRCF405 add IIC2 and change the barometer to IIC2 by @YI-BOYANG in https://github.com/iNavFlight/inav/pull/9510 +* Enable dshot for unofficial BETAFPVF435 by @mmosca in https://github.com/iNavFlight/inav/pull/9532 +* Add VTX power info for MAMBAH743_2022B target by @mmosca in https://github.com/iNavFlight/inav/pull/9539 +* Release 7.0.0 by @DzikuVx in https://github.com/iNavFlight/inav/pull/9432 +* Additional Description for Control Derivative by @MrD-RC in https://github.com/iNavFlight/inav/pull/9521 +* Make min ground speed setable a parameter by @MrD-RC in https://github.com/iNavFlight/inav/pull/9428 +* update f4 vcp in line with BF by @stronnag in https://github.com/iNavFlight/inav/pull/9544 +* Add a parameter to delay landing in the event of a Failsafe by @MrD-RC in https://github.com/iNavFlight/inav/pull/9502 +* Add ICM42688P to KAKUTEH7 by @DzikuVx in https://github.com/iNavFlight/inav/pull/9546 +* Yaw/Altitude estimation sensor fusion by @shota3527 in https://github.com/iNavFlight/inav/pull/9387 +* Navpid back calculation anti-windup can only shrink integrator by @shota3527 in https://github.com/iNavFlight/inav/pull/9224 +* Add active waypoint number to blackbox by @breadoven in https://github.com/iNavFlight/inav/pull/9507 +* SITL: OSD CMS menu does not work by @RomanLut in https://github.com/iNavFlight/inav/pull/9344 +* add some icons for O3 with integra for ESP32 Radar instead of ? by @druckgott in https://github.com/iNavFlight/inav/pull/9499 +* WP mission mode RTH and Manual mode lockout improvements 7.1.0 by @breadoven in https://github.com/iNavFlight/inav/pull/9558 +* tail sitter vtol support by @shota3527 in https://github.com/iNavFlight/inav/pull/9347 +* USB MSC: Fix SCIS mode sense write protection bit by @mluessi in https://github.com/iNavFlight/inav/pull/9572 +* [Multirotor] Fix Sqrt Controller Position Z limits by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/9575 +* Fix #9562 bmi166 acc readout by @mmosca in https://github.com/iNavFlight/inav/pull/9563 +* Add support crsf baro altitude combined vario sensor by @r1000ru in https://github.com/iNavFlight/inav/pull/9438 +* rebase and re-pr Fix at32 targets by @shanggl in https://github.com/iNavFlight/inav/pull/9618 +* Allow S9 on SpeedyBee F405 V3 by @DzikuVx in https://github.com/iNavFlight/inav/pull/9614 +* Enable Camera Control modes for MSP DisplayPort by @mmosca in https://github.com/iNavFlight/inav/pull/9626 +* Add option to use display_force_sw_blink in msp displayport by @mmosca in https://github.com/iNavFlight/inav/pull/9627 +* Fix ahi pitch when inverted by @MrD-RC in https://github.com/iNavFlight/inav/pull/9609 +* Fixed wing auto level bug fix by @breadoven in https://github.com/iNavFlight/inav/pull/9641 +* Resolving HAKRCF722V2 anomalies by @hakrc1 in https://github.com/iNavFlight/inav/pull/9650 +* Adjust SW blink interval by @mmosca in https://github.com/iNavFlight/inav/pull/9644 +* FLYCOLORF7V2 by @DzikuVx in https://github.com/iNavFlight/inav/pull/9631 +* Change LPF filter setting for accgyro_icm42605.c and enable/configure hardware AA filter by @mmosca in https://github.com/iNavFlight/inav/pull/9675 +* Delay save settings to prevent ESC lockup on emergency rearm by @MrD-RC in https://github.com/iNavFlight/inav/pull/9681 +* Add PINIO to SPEEDYBEEF405WING by @DzikuVx in https://github.com/iNavFlight/inav/pull/9686 +* Multirotor emergency landing altitude control response detuning by @breadoven in https://github.com/iNavFlight/inav/pull/9687 +* Fix odometer by @MrD-RC in https://github.com/iNavFlight/inav/pull/9716 +* Revert "Delay save settings to prevent ESC lockup on emergency rearm" by @MrD-RC in https://github.com/iNavFlight/inav/pull/9715 +* Update Odo float type by @MrD-RC in https://github.com/iNavFlight/inav/pull/9718 +* Show STOP instead of IDLE if motor stop enabled by @MrD-RC in https://github.com/iNavFlight/inav/pull/9719 +* Fixed Wing Autoland by @Scavanger in https://github.com/iNavFlight/inav/pull/9713 +* Increase the maximum number of addressable LEDs 7.1 by @MrD-RC in https://github.com/iNavFlight/inav/pull/9717 +* Osd custom by @error414 in https://github.com/iNavFlight/inav/pull/9508 + +## New Contributors +* @r1000ru made their first contribution in https://github.com/iNavFlight/inav/pull/9438 +* @hakrc1 made their first contribution in https://github.com/iNavFlight/inav/pull/9650 + +**Full Changelog**: https://github.com/iNavFlight/inav/compare/7.0.0...7.1.0-RC1 diff --git a/versioned_docs/version-8.0.1/8.0.0-Release-Notes.md b/versioned_docs/version-8.0.1/8.0.0-Release-Notes.md new file mode 100644 index 0000000..986dfe8 --- /dev/null +++ b/versioned_docs/version-8.0.1/8.0.0-Release-Notes.md @@ -0,0 +1,678 @@ +--- +title: Hello and welcome to INAV 8.0.0 "Gallant Goshawk" +--- + +![INAV 8.0.0 Gallant Goshawk](https://quadmeup.com/assets/inav_7_falcon.png) + +# Hello and welcome to INAV 8.0.0 "Gallant Goshawk" + +Please carefully read all of this document for the best possible experience and safety. + +Contact other pilots, share experiences, suggestions and ask for help on: + + + + + + + + + + + + +
INAV Discord Server
INAV Official on Facebook
+ +> INAV 8 no longer includes F411 targets as part of the official release. + +> GPS: ```UBLOX7``` and ```UBLOX``` have been merged into a single ```UBLOX``` option, and units with older firmware are now deprecated. Only M8 and newer will be supported in the future. + +> Make sure to remove props and check your motor and servo outputs before powering your upgraded flight controller with a battery for the first time. The changes to enable flexible motor and servo allocation may change what outputs your configuration uses by default. + +## Known Issues in 8.0 + +- None + +# Upgrading from a previous release + +## Upgrading from INAV 7.0 and 7.1 + +1. Backup configuration with CLI `diff all` command +4. Download and install the new [INAV Configurator 8.0](https://github.com/iNavFlight/inav-configurator/releases) +5. Flash INAV 8.0 **WITH** _Full Chip Erase_ option enabled +6. Edit the 7.x diff and apply Diff breaking changes described below, and save it as your new inav 8 diff. See **Diff breaking changes** section below. +7. Select _Keep current settings_ from the defaults pop-up +8. Go to CLI and restore your edited inav diff +9. Done + +This tool can help migrate your INAV 7.x diff over to INAV 8.0.0. It will take care of the major changes that have been highlighted in these release notes. + +## Upgrading from older versions + +Please follow the instructions on [this](./quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md) page. + +# Highlights + +## Geozones + +The Geozone feature allows pilots to define one or multiple areas on the map in Mission Control, to prevent accidental flying outside of allowed zones (Flight-Zones, FZ) or to avoid certain areas they are not allowed or not willing to fly in (No-Flight-Zone, NFZ). This type of feature might be known to many pilots as a "Geofence" and despite providing the same core functionality, INAV Geozones are significantly more versatile and provide more safety and features. [Read the Documentation for more info](https://github.com/iNavFlight/inav/blob/master/docs/Geozones.md) +IMPORTANT: Geozones will not be available for STM32F722 based Flight Controllers due to insufficient flash storage. + +## GPS Fix estimation (dead reckoning, RTH without GPS fix) for Airplanes + +This new feature allows INAV to return to its launch location, in case of a failed GPS due to hardware failure or interference. INAV will use the remaining sensors and the already calculated wind speed and direction, to blindly return towards the home location. For this feature, no extra sensors are strictly necessary, aside from the standard Accelerometer, Gyroscope and Barometer, but its highly recommended to have a compass and for best precision, to also have an Airspeed sensor. The feature will not be able to precisely return to the pilot, but it allows the Aircraft to either get out of an area with interferences, or to give the pilot time and a chance to regain control for a manual return, when the aircraft is closer. [Details here](https://github.com/iNavFlight/inav/blob/master/docs/GPS_fix_estimation.md) + +## MSP-Linkstats + +A new MSP Message that allows RC links that communicate with the Flight controller via MSP, to provide Link Information to INAV like LQ, RSSI, Power Level, SNR and more. The first RC Link to support this is the [mLRS Project](https://github.com/olliw42/mLRS) with more possibly coming in the future. [Details here](https://github.com/iNavFlight/inav/pull/10451) + +## MSP-VTX + +MSP-VTX has been updated by @geoffsim to increase compatibility with HDZero vtxs. + +## Mavlink Advancement for MavlinkRC + +The previously simple Mavlink Telemetry was extended to be compatible with flow control capable links (Thanks @MUSTARDTIGERFPV). This now allows RC Control via Mavlink and Telemetry at the same time over a Single UART. It is tested successfully with [ELRS Mavlink-RC](https://www.expresslrs.org/software/mavlink/) and [mLRS Mavlink](https://github.com/olliw42/mLRS). Additionally it allows the Use of [Mission Planner](https://ardupilot.org/planner/), [QGroundControl](https://qgroundcontrol.com/) and potentially other GCS Applications to be used for Flight Monitoring with INAV. +Note: To receive RSSI and LQ for ELRS Mavlink-RC you need to `set mavlink_radio_type=ELRS` in the CLI. [Details here](https://github.com/iNavFlight/inav/pull/10222) + +## Walksnail Serial Gimbal and Headtracker support + +INAV now also supports the Caddx / Walksnail GM Series Gimbals. These can now be controlled via a dedicated uart UART or via MSP and don't need up to 3 PWM Outputs anymore. This enables the direct Gimbal Control via Head Tracking from Walksnail goggles, without additional wiring. [Details Here](https://github.com/iNavFlight/inav/pull/10109) + +## OSD Updates + +- Users can change the precision (amount of decimal places) for Altitude and Distance https://github.com/iNavFlight/inav/pull/10431 +- Enhancements for Custom OSD Elements https://github.com/iNavFlight/inav/pull/10282 +- Update arming screen for better space utilisation https://github.com/iNavFlight/inav/pull/10300 +- OSD system message improvements https://github.com/iNavFlight/inav/pull/10090 +- Better organisation of the post flight stats screen with more stats available https://github.com/iNavFlight/inav/pull/9617 + +## ADSB Receiver Support + +It is now possible to connect an ADSB receiver to your flight controller and get OSD Warnings if any ADSB enabled Aircraft, is close by. INAV Configurator can show these Aircraft on the map for additional safety of UAV flights. ADSB is supported for generally available receivers like uAvionix pingRX (not tested) and Aerobit TT-SC1 (tested) and should also work with the upcoming [PicoADSB](https://picoadsb.com/) [Details here](https://github.com/iNavFlight/inav/pull/9355) + +## I-Term Lock for Fixed Wing + +The Fixed Wing PIDFF Controller was reworked. The PIDs are now attenuated based in the amount of Setpoint (Stick deflection in Acro Mode) for a more "Manual" flight feel during aggressive inputs while keeping the locked in feel of a PID-Assisted flight. This allows the Pilot to have a PID tune with very high P and I values for a locked in flight feel, while keeping a good manual feeling of the plane's flight characteristics, especially when flying slow. Additionally the Attenuation fixes the Bounce-Back caused by the Integral of the PID controller, after sharp roll or pitch inputs. [Details Here](https://github.com/iNavFlight/inav/pull/9905) + +## U-Blox AssistNow Support in INAV Configurator + +AssistNow is a Service that provides GPS Satellite information data for offline-applications, to dramatically increase the time to fix for GPS Devices. By Providing your own AssistNow Token, INAV Configurator can automatically download the latest data set and transfer it to any connected INAV UAV. With this, a GPS fix after cold start should merely take seconds instead of minutes. This is especially helpful for people who go fly with a big fleet of aircraft. [Details here](https://github.com/iNavFlight/inav-configurator/pull/2123) + +## Sensor ID change for SmartPort telemetry +The sensor IDs for the Modes and GNSS data have changed in SmartPort telemetry. The default settings in INAV are to now use the new sensor IDs. The INAV [OpenTX-Telemetry-Widget](https://github.com/iNavFlight/OpenTX-Telemetry-Widget/pull/141) has been updated to use these new IDs. So you will not see any issues when using the latest version of this widget. However, if you use another widget or app that uses the SmartPort telemetry. It is recommended to inform the creator of the app/widget, as **the old sensor IDs will be removed in INAV 10.0.0**. [Details here](https://github.com/iNavFlight/inav/pull/9868) + +You can change INAV to use the old sensor IDs with the CLI parameter `set frsky_use_legacy_gps_mode_sensor_ids = on`. However, it is recommended to only use this only as long as necessary. This parameter will also be removed in INAV10.0.0. + +## Improved SD Card support for F7 and H7 flight controllers using SDIO + +This version of INAV fixes some long standing bugs with the SDIO driver for H7 and F765 flight controllers. Now they share the same HAL based driver and fixes. +This affects a small number of targets, as most targets use the older and slower SPI based access to SD cards. +Moving forward, SDIO is the preferred and recommend way to implement SD Card blackbox in INAV, as it is faster than SPI and support up to 4BIT wide data access, versus SPI 1 bit. + +This change affects the following targets: + +* FLYWOOH743PRO +* IFLIGHT_BLITZ_H7_PRO +* KAKUTEH7WING +* MATEKF765 +* MATEKH743 +* MICOAIR743 +* NEUTRONRCH7BT +* PIXRACER +* TBS_LUCID_H7 + +## DJI O4 support + +DJI released a new air unit, and while rumors suggested it would include full INAV font support, that is unfortunately not true with the released firmware. There is also a bug on DJI firmware that prevents it from detecting when the flight controller is armed and leaves the air unit stuck in low power mode. + +There are two possible workaround for the arming issues: +1. Turn off low power mode This should work with older INAV versions as well +2. On INAV 8.0.0, you can type this on the cli: ```set enable_broken_o4_workaround = ON``` + +With the added workarounds, setup in INAV should be the same as O3. + +## Other important changes: + +- Multirotor inverted crash detection https://github.com/iNavFlight/inav/pull/10099 +- Waypoint tracking improvements https://github.com/iNavFlight/inav/pull/10278 (Note usage change for `nav_fw_wp_tracking_accuracy` may require change of setting) +- Fixed wing altitude velocity control https://github.com/iNavFlight/inav/pull/9471 (see know issues above related to this change) + +## Diff breaking changes + +### Profile consolidation +The `profile` CLI command has been renamed to `control_profile`. When updating from an older version of INAV. You will need to edit your `diff` with this change. For example: + +``` +# profile +profile 1 + +set fw_p_pitch = 14 +set fw_i_pitch = 5 +set fw_d_pitch = 5 +set fw_ff_pitch = 137 +... +``` +Will become +``` +# profile +control_profile 1 + +set fw_p_pitch = 14 +set fw_i_pitch = 5 +set fw_d_pitch = 5 +set fw_ff_pitch = 137 +... +``` + +### OSD Custom Elements +If you have previously used OSD Custom Elements. You will need to update the diff for these, so that they continue to work in the same way. The system has been expanded to allow the use of logic condition results and have more numerical variations. To keep your OSD Custom Elements working, you will need to change the element type IDs, if they are 4, 5, 6, or 7. The table below shows the old and new IDs. + +| Numeric format | Old name | Old ID | New name | New ID | +|-------------------|--------------------------------------------------|--------|----------------------------------------------|----------| +| 000 | CUSTOM_ELEMENT_TYPE_GV_SMALL | 6 | CUSTOM_ELEMENT_TYPE_GV_3 | 7 | +| 00000 | CUSTOM_ELEMENT_TYPE_GV | 4 | CUSTOM_ELEMENT_TYPE_GV_5 | 9 | +| 0.0 | CUSTOM_ELEMENT_TYPE_GV_SMALL_FLOAT | 7 | CUSTOM_ELEMENT_TYPE_GV_FLOAT_1_1 | 10 | +| 0000.0 | CUSTOM_ELEMENT_TYPE_GV_FLOAT | 5 | CUSTOM_ELEMENT_TYPE_GV_FLOAT_4_1 | 16 | + +Below, you can see the position of the IDs that you need to change if they are 4, 5, 6, or 7. + +``` +osd_custom_elements 0 3 0 1 0 0 0 0 0 "FLAPS" + ^ ^ ^ +``` + +# CLI + +## New / Changed Items + +| Name | Description | +| ---- | ------ | +| `geozone` | Manages the geozone data set | +| `control_profile` | `profile` has been renamed to `control_profile` | + +## Changed Settings + +| Name | Values | +| ---- | ------ | +| `blackbox_device` | New: `FILE` (for `SITL` usage) | +| `debug_modes` | New: `ADAPTIVE_FILTER`, `HEADTRACKER`, `GPS`, `LULU`, `SBUS2` | +| `dynamic_gyro_notch_mode` | Removed: `3D_R`, `3D_P`, `3D_Y`, `3D_RP`, `3D_RY`, `3D_PY` | +| `filter_type_full` | New: `LULU` | +| `gps_dyn_model` | New: `SEA`, `MOWER` | +| `gps_provider` | Removed: `UBLOX7` (Use `UBLOX`; version specific capabilities will be auto-detected) | +| `nav_fw_wp_tracking_accuracy` | Now set distance from waypoint course line in meters rather some arbitrary tracking response value | +| `rangefinder_hardware` | New: `TERARANGER_EVO`, `USD1_V0`, `NRA` | +| `serial_rx` | New: `SBUS2` | + +## New Settings + +| Name | Description | +| ---- | ------ | +| `disarm_always` | When you switch to Disarm, do so regardless of throttle position. If this Setting is `OFF`. It will only disarm only when the throttle is low. This is similar to the previous `disarm_kill_switch` option. Default setting is the same as the old default behaviour. Default: TRUE | +| `enable_broken_o4_workaround` | DJI O4 release firmware has a broken MSP DisplayPort implementation. This enables a workaround to restore ARM detection. Default: FALSE | +| `ez_snappiness` | EzTune snappiness Values: 0 - 100 Default: 0 | +| `failsafe_gps_fix_estimation_delay` | Controls whether waypoint mission is allowed to proceed with gps fix estimation. Sets the time delay in seconds between gps fix lost event and RTH activation. Minimum delay is 7 seconds. If set to -1 the mission will continue until the end. With default setting(7), waypoint mission is aborted and switched to RTH with 7 seconds delay. RTH is done with GPS Fix estimation. Values: -1 - 600 Default: 7 | +| `frsky_use_legacy_gps_mode_sensor_ids` | S.Port telemetry: If `ON`, send the legacy telemetry IDs for modes (Tmp1) and GNSS (Tmp2). These are old IDs, deprecated, and will be removed in INAV 10.0. Tools and scripts using these IDs should be updated to use the new IDs of **470** for Modes and **480** for GNSS. Default: 'OFF' Default: FALSE | +| `fw_iterm_lock_engage_threshold` | Defines error rate (in percents of max rate) when Iterm Lock is engaged when sticks are release. Iterm Lock will stay active until error drops below this number Values: 5 - 25 Default: 10 | +| `fw_iterm_lock_rate_threshold` | Defines rate percentage when full P I and D attenuation should happen. 100 disables Iterm Lock for P and D term Values: 10 - 100 Default: 40 | +| `fw_iterm_lock_time_max_ms` | Defines max time in milliseconds for how long ITerm Lock will shut down Iterm after sticks are release Values: 100 - 1000 Default: 500 | +| `geozone_avoid_altitude_range` | Altitude range in which an attempt is made to avoid a geozone upwards Values: 0 - 1000000 Default: 5000 | +| `geozone_detection_distance` | Distance from which a geozone is detected Values: 0 - 1000000 Default: 50000 | +| `geozone_mr_stop_distance` | Distance in which multirotors stops before the border Values: 0 - 100000 Default: 15000 | +| `geozone_no_way_home_action` | Action if RTH with active geozones is unable to calculate a course to home (`RTH`, `EMRG_LAND`). Default: RTH | +| `geozone_safe_altitude_distance` | Vertical distance that must be maintained to the upper and lower limits of the zone. Values: 0 - 10000 Default: 1000 | +| `geozone_safehome_as_inclusive` | Treat nearest safehome as inclusive geozone Default: FALSE | +| `geozone_safehome_zone_action` | Fence action for safehome zone (`NONE`, `AVOID`, `POS_HOLD`, `RTH`). Default: NONE | +| `gimbal_pan_channel` | Gimbal pan rc channel index. 0 is no channel. Values: 0 - 32 Default: 0 | +| `gimbal_pan_trim` | Trim gimbal pan center position. Values: -500 - 500 Default: 0 | +| `gimbal_roll_channel` | Gimbal roll rc channel index. 0 is no channel. Values: 0 - 32 Default: 0 | +| `gimbal_roll_trim` | Trim gimbal roll center position. Values: -500 - 500 Default: 0 | +| `gimbal_sensitivity` | Gimbal sensitivity is similar to gain and will affect how quickly the gimbal will react. Values: -16 - 15 Default: 0 | +| `gimbal_serial_single_uart` | Gimbal serial and headtracker device share same UART. FC RX goes to headtracker device, FC TX goes to gimbal. Default: FALSE | +| `gimbal_tilt_channel` | Gimbal tilt rc channel index. 0 is no channel. Values: 0 - 32 Default: 0 | +| `gimbal_tilt_trim` | Trim gimbal tilt center position. Values: -500 - 500 Default: 0 | +| `gyro_adaptive_filter_hpf_hz` | High pass filter cutoff frequency Values: 1 - 50 Default: 10 | +| `gyro_adaptive_filter_integrator_threshold_high` | High threshold for adaptive filter integrator Values: 1 - 10 Default: 4 | +| `gyro_adaptive_filter_integrator_threshold_low` | Low threshold for adaptive filter integrator Values: -10 - 0 Default: -2 | +| `gyro_adaptive_filter_max_hz` | Maximum frequency for adaptive filter Values: 0 - 505 Default: 150 | +| `gyro_adaptive_filter_min_hz` | Minimum frequency for adaptive filter Values: 0 - 250 Default: 50 | +| `gyro_adaptive_filter_std_lpf_hz` | Standard deviation low pass filter cutoff frequency Values: 0 - 10 Default: 2 | +| `gyro_adaptive_filter_target` | Target value for adaptive filter Values: 1 - 6 Default: 3.5 | +| `gyro_filter_mode` | Specifies the type of the software LPF of the gyro signals (`OFF`, `STATIC`, `DYNAMIC`, `ADAPTIVE`). Default: STATIC | +| `gyro_lulu_enabled` | Enable/disable gyro LULU filter Default: FALSE | +| `gyro_lulu_sample_count` | Gyro lulu sample count, in number of samples. Values: 1 - 15 Default: 3 | +| `headtracker_pan_ratio` | Head pan movement vs camera movement ratio Values: 0 - 5 Default: 1 | +| `headtracker_roll_ratio` | Head roll movement vs camera movement ratio Values: 0 - 5 Default: 1 | +| `headtracker_tilt_ratio` | Head tilt movement vs camera movement ratio Values: 0 - 5 Default: 1 | +| `headtracker_type` | Type of headtracker dervice (`NONE`, `SERIAL`, `MSP`). Default: NONE | +| `inav_allow_gps_fix_estimation` | Defines if inav will estimate GPS fix with magnetometer and barometer on GPS outages. Enables navigation and RTH without GPS fix on fixed wing. Also see failsafe_gps_fix_estimation_delay. Default: FALSE | +| `inav_default_alt_sensor` | Sets the default altitude sensor to use (`GPS`, `BARO`, `GPS_ONLY`, `BARO_ONLY`). Settings GPS and BARO always use both sensors unless there is an altitude error between the sensors that exceeds a set limit. In this case only the selected sensor will be used while the altitude error limit is exceeded. GPS error limit = 2 * inav_max_eph_epv. BARO error limit = 4 * inav_baro_epv. Settings GPS_ONLY and BARO_ONLY will use only the selected sensor even if the other sensor is working. The other sensor will only be used as a backup if the selected sensor is no longer available to use. Default: GPS | +| `inav_w_z_baro_v` | Weight of barometer climb rate measurements in estimated climb rate. Setting is used on both airplanes and multirotors. Values: 0 - 10 Default: 0.1 | +| `mavlink_min_txbuffer` | Minimum percent of TX buffer space free, before attempting to transmit telemetry. Requuires RADIO_STATUS messages to be processed. 0 = always transmits. Values: 0 - 100 Default: 33 | +| `mavlink_radio_type` | Mavlink radio type (`GENERIC`, `ELRS`, `SIK`). Affects how RSSI and LQ are reported on OSD. Default: GENERIC | +| `nav_fw_alt_control_response` | Adjusts the deceleration response of fixed wing altitude control as the target altitude is approached. Decrease value to help avoid overshooting the target altitude. Values: 5 - 100 Default: 40 | +| `nav_fw_auto_climb_rate` | Maximum climb/descent rate that UAV is allowed to reach during navigation modes. [cm/s] Values: 10 - 2000 Default: 500 | +| `nav_fw_launch_wiggle_to_wake_idle` | Trigger the idle throttle by wiggling the plane. 0 = disabled. 1 and 2 signify 1 or 2 yaw wiggles to activate. 1 wiggle has a higher detection point, for airplanes without a tail. 2 wiggles has a lower detection point, but requires the repeated action. This is intended for larger models and airplanes with tails. Values: 0 - 2 Default: 0 | +| `nav_fw_manual_climb_rate` | Maximum climb/descent rate firmware is allowed when processing pilot input for ALTHOLD control mode [cm/s] Values: 10 - 2500 Default: 300 | +| `nav_fw_pos_z_ff` | FF gain of altitude PID controller (Fixedwing) Values: 0 - 255 Default: 10 | +| `nav_mc_auto_climb_rate` | Maximum climb/descent rate that UAV is allowed to reach during navigation modes. [cm/s] Values: 10 - 2000 Default: 500 | +| `nav_mc_inverted_crash_detection` | Setting a value \> 0 enables inverted crash detection for multirotors. It will auto disarm in situations where the multirotor has crashed inverted on the ground and can't be manually disarmed due to loss of control or for some other reason. When enabled this setting defines the additional number of seconds before disarm beyond a minimum fixed time delay of 3s. Requires a barometer to work. Values: 0 - 15 Default: 0 | +| `nav_mc_manual_climb_rate` | Maximum climb/descent rate firmware is allowed when processing pilot input for ALTHOLD control mode [cm/s] Values: 10 - 2000 Default: 200 | +| `osd_adsb_distance_alert` | Distance inside which ADSB data flashes for proximity warning Values: 1 - 64000 Default: 3000 | +| `osd_adsb_distance_warning` | Distance in meters of ADSB aircraft that is displayed Values: 1 - 64000 Default: 20000 | +| `osd_adsb_ignore_plane_above_me_limit` | Ignore adsb planes above, limit, 0 disabled (meters) Values: 0 - 64000 Default: 0 | +| `osd_decimals_altitude` | Number of decimals for the altitude displayed in the OSD [3-5]. Values: 3 - 5 Default: 3 | +| `osd_decimals_distance` | Number of decimals for distance displayed in the OSD [3-5]. This includes distance from home, total distance, and distance remaining. Values: 3 - 5 Default: 3 | +| `osd_estimations_wind_mps` | Wind speed estimation in m/s Default: FALSE | +| `osd_highlight_djis_missing_font_symbols` | Show question marks where there is no symbol in the DJI font to represent the INAV OSD element's symbol. When off, blank spaces will be used. Only relevent for DJICOMPAT modes. Default: TRUE | +| `osd_radar_peers_display_time` | Time in seconds to display next peer Values: 1 - 10 Default: 3 | +| `osd_stats_show_metric_efficiency` | Enabling this option will show metric efficiency statistics on the post flight stats screen. In addition to the efficiency statistics in your chosen units. Default: FALSE | + +## Removed Settings + +| Name | Description | +| ---- | ------ | +| `control_deadband` | | +| `cpu_underclock` | | +| `disarm_kill_switch` | | +| `dji_workarounds` | | +| `fw_iterm_limit_stick_position` | | +| `gyro_anti_aliasing_lpf_type` | | +| `gyro_hardware_lpf` | | +| `gyro_main_lpf_type` | | +| `gyro_use_dyn_lpf` | | +| `inav_use_gps_no_baro` | | +| `inav_use_gps_velned` | | +| `ledstrip_visual_beeper` | | +| `max_throttle` | | +| `nav_auto_climb_rate` | | +| `nav_manual_climb_rate` | | +| `osd_stats_min_voltage_unit` | | +| `pidsum_limit` | | +| `pidsum_limit_yaw` | | + +## What's Changed +* GPS Fix estimation (dead reconing, RTH without GPS fix) for fixed wing by @RomanLut in https://github.com/iNavFlight/inav/pull/8347 +* Boards.md: Add link to full list of boards by @sensei-hacker in https://github.com/iNavFlight/inav/pull/9509 +* Dzikuvx 7.1 mergeback 1 by @DzikuVx in https://github.com/iNavFlight/inav/pull/9550 +* Skip release for all F411 boards by @DzikuVx in https://github.com/iNavFlight/inav/pull/9542 +* INAV 8 version bump by @DzikuVx in https://github.com/iNavFlight/inav/pull/9543 +* WP mission mode RTH and Manual mode lockout improvements by @breadoven in https://github.com/iNavFlight/inav/pull/9551 +* update toolchain to gcc13.2 by @stronnag in https://github.com/iNavFlight/inav/pull/9579 +* Update SPEEDYBEEF405V3.md by @mmosca in https://github.com/iNavFlight/inav/pull/9577 +* Correct wrong writing by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/9568 +* SITL: allow simulating airspeed sensor in SITL with HITL plugin by @RomanLut in https://github.com/iNavFlight/inav/pull/9570 +* [RTH TrackBack] Create .c and .h files for this feature by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/9429 +* increase default nav_cruise_yaw_rate to 60 deg/s by @DzikuVx in https://github.com/iNavFlight/inav/pull/9597 +* optimize at32 adc sample time make the current meter accure by @shanggl in https://github.com/iNavFlight/inav/pull/9578 +* Separate the nav climb rate settings for fw and mc by @shota3527 in https://github.com/iNavFlight/inav/pull/9424 +* Added Compass Calibration programmable operation by @sdellava in https://github.com/iNavFlight/inav/pull/9411 +* bf2inav.py: clearer error messages, number PWM outputs by @sensei-hacker in https://github.com/iNavFlight/inav/pull/9611 +* Update GPS_fix_estimation.md by @sys512 in https://github.com/iNavFlight/inav/pull/9622 +* [docs] update dbg-tool link in serial_printf_debugging.md by @stronnag in https://github.com/iNavFlight/inav/pull/9639 +* aligned KAKUTEH7WING target with manufacturer docs by @paulwrath1223 in https://github.com/iNavFlight/inav/pull/9640 +* Add support for SKYSTARSF722HDPRO by @DusKing1 in https://github.com/iNavFlight/inav/pull/9630 +* Adsb support pingRX / Aerobit TT-SC1 by @error414 in https://github.com/iNavFlight/inav/pull/9355 +* Update [ESC and servo outputs.md] remove output_mode by @RoboSchmied in https://github.com/iNavFlight/inav/pull/9691 +* Add GEPRCF405_BT_HD by @YI-BOYANG in https://github.com/iNavFlight/inav/pull/9683 +* Small changes to timer output docs by @mmosca in https://github.com/iNavFlight/inav/pull/9700 +* fixed dockerfile and updated docs by @RomanLut in https://github.com/iNavFlight/inav/pull/9702 +* current meter scale to 500 by @P-I-Engineer in https://github.com/iNavFlight/inav/pull/9703 +* Idle motor default change by @P-I-Engineer in https://github.com/iNavFlight/inav/pull/9695 +* update MW XML File schema definition for 7.1 Autoland by @stronnag in https://github.com/iNavFlight/inav/pull/9721 +* Update mw xsd for autoland by @stronnag in https://github.com/iNavFlight/inav/pull/9723 +* Remove GPS glitch detection by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/9709 +* Add error count to CLI batch command by @MrD-RC in https://github.com/iNavFlight/inav/pull/9712 +* Spektrum telemetry minor fix to address false Fastboot alerts on radios with latest update by @MiguelFAlvarez in https://github.com/iNavFlight/inav/pull/9743 +* 7.1 mergeback by @DzikuVx in https://github.com/iNavFlight/inav/pull/9762 +* INAV 7.1 by @DzikuVx in https://github.com/iNavFlight/inav/pull/9549 +* Update readme.md to mention AT32 on the list of mcus supported by @mmosca in https://github.com/iNavFlight/inav/pull/9779 +* [docs] update serial_printf doc by @stronnag in https://github.com/iNavFlight/inav/pull/9780 +* fix grammar in [ESC and servo outputs.md] by @RoboSchmied in https://github.com/iNavFlight/inav/pull/9784 +* fix cygwin/sitl build with cmake 3.28.3 by @stronnag in https://github.com/iNavFlight/inav/pull/9787 +* Fix missing EzTune settings in dump and diff by @DzikuVx in https://github.com/iNavFlight/inav/pull/9812 +* Update settings descriptions by @DzikuVx in https://github.com/iNavFlight/inav/pull/9808 +* Drop ledstrip_visual_beeper as not used by @DzikuVx in https://github.com/iNavFlight/inav/pull/9809 +* Betafpvf411 unofficial by @DzikuVx in https://github.com/iNavFlight/inav/pull/9815 +* Fix compiler existence checking in case if PATH contains tilde by @kubrack in https://github.com/iNavFlight/inav/pull/9760 +* Add EzTune to CMS menu by @DzikuVx in https://github.com/iNavFlight/inav/pull/9813 +* Remove unused USE_UNDERCLOCK define and related code by @DzikuVx in https://github.com/iNavFlight/inav/pull/9803 +* Master 7.1.0 by @DzikuVx in https://github.com/iNavFlight/inav/pull/9821 +* Enable spektrum bind only if spektrum is enabled by @DzikuVx in https://github.com/iNavFlight/inav/pull/9823 +* Remove setting a use local VELNED instead of GPS provided by @DzikuVx in https://github.com/iNavFlight/inav/pull/9804 +* Drop control_deadband setting by @DzikuVx in https://github.com/iNavFlight/inav/pull/9805 +* Fix motor output glitch by initializing IO after timer by @mluessi in https://github.com/iNavFlight/inav/pull/9714 +* PINIO: Fix inverted pin handling by @mluessi in https://github.com/iNavFlight/inav/pull/9559 +* Add new target TUNERC405 by @TUNERC-Aria in https://github.com/iNavFlight/inav/pull/9818 +* Update NEW_HARDWARE_POLICY.md by @mmosca in https://github.com/iNavFlight/inav/pull/9855 +* Update Fixed Wing Landing.md by @b14ckyy in https://github.com/iNavFlight/inav/pull/9857 +* Some updates to development docs by @DzikuVx in https://github.com/iNavFlight/inav/pull/9827 +* Remove killswitch by @DzikuVx in https://github.com/iNavFlight/inav/pull/9856 +* Release 7.1.0 by @DzikuVx in https://github.com/iNavFlight/inav/pull/9767 +* fix broken links to modes.md by @sensei-hacker in https://github.com/iNavFlight/inav/pull/9880 +* Wiggle to wake launch idle by @MrD-RC in https://github.com/iNavFlight/inav/pull/8511 +* Reorganise stats screens by @MrD-RC in https://github.com/iNavFlight/inav/pull/9617 +* Fixes SB F405 Wing ADC for RSSI and Aspd swapped by @b14ckyy in https://github.com/iNavFlight/inav/pull/9817 +* Update Building in Windows 10 or 11 with Linux Subsystem.md by @MrD-RC in https://github.com/iNavFlight/inav/pull/9886 +* Potential fix for GCC 13 VCP broken on H7 by @DzikuVx in https://github.com/iNavFlight/inav/pull/9882 +* Simplify matrix filter and drop all partial versions by @DzikuVx in https://github.com/iNavFlight/inav/pull/9885 +* Optimize the current meter scale and offset for AOCODARCF405AIO by @lida2003 in https://github.com/iNavFlight/inav/pull/9745 +* terarange evo lidar by @error414 in https://github.com/iNavFlight/inav/pull/9527 +* No longer require MAG to unlock GPS related flight modes by @DzikuVx in https://github.com/iNavFlight/inav/pull/9824 +* garbage is displayed (f.e. single char "+" ) instead of "FIRST WP IS TOO FAR" OSD message by @RomanLut in https://github.com/iNavFlight/inav/pull/9849 +* Feature cut for F411 and F722 by @DzikuVx in https://github.com/iNavFlight/inav/pull/9822 +* Fix cmake gcc kit detection on apple silicon macs by @mmosca in https://github.com/iNavFlight/inav/pull/9893 +* OSD Wind speed in m/s by @Yury-MonZon in https://github.com/iNavFlight/inav/pull/9652 +* Remove workarounds as not used and obsolete by @DzikuVx in https://github.com/iNavFlight/inav/pull/9898 +* Filtering simplification by @DzikuVx in https://github.com/iNavFlight/inav/pull/9897 +* Drop MSP_POSITION_ESTIMATION_CONFIG by @DzikuVx in https://github.com/iNavFlight/inav/pull/9866 +* Drop MSP_OSD_CONFIG from MSP protocol by @DzikuVx in https://github.com/iNavFlight/inav/pull/9865 +* New MSP frames for Servos by @DzikuVx in https://github.com/iNavFlight/inav/pull/9873 +* Configuration symbol for barometer address by @ht099 in https://github.com/iNavFlight/inav/pull/9902 +* Drop MSP_PIDNAMES frame as outdated by @DzikuVx in https://github.com/iNavFlight/inav/pull/9900 +* Update Fixed Wing Landing.md by @0crap in https://github.com/iNavFlight/inav/pull/9909 +* Drop MSP_FILTER_CONFIG and MSP_SET_FILTER_CONFIG commands by @DzikuVx in https://github.com/iNavFlight/inav/pull/9903 +* do not remove nav modes if connected by usb by @RomanLut in https://github.com/iNavFlight/inav/pull/9913 +* Drop MSP_PID_ADVANCED and MSP_SET_PID_ADVANCED from MSP protocol by @DzikuVx in https://github.com/iNavFlight/inav/pull/9901 +* Add GEPRC TAKERF722SE target by @YI-BOYANG in https://github.com/iNavFlight/inav/pull/9919 +* Drop MSP_MOTOR_PINS by @DzikuVx in https://github.com/iNavFlight/inav/pull/9922 +* Drop pidsum limit settings and replace with hardcoded values by @DzikuVx in https://github.com/iNavFlight/inav/pull/9911 +* Update Fixed Wing Landing.md by @b14ckyy in https://github.com/iNavFlight/inav/pull/9896 +* Add extra description to nav_min_ground_speed parameter by @MrD-RC in https://github.com/iNavFlight/inav/pull/9890 +* increased VBATT_PRESENT_THRESHOLD by @RomanLut in https://github.com/iNavFlight/inav/pull/9933 +* Add ICM for IFLIGHT_BLITZ_F722 V1.2 by @b14ckyy in https://github.com/iNavFlight/inav/pull/9939 +* Fix Aocoda-RC H743Dual motor 5-8 mis-labeled issue by @lida2003 in https://github.com/iNavFlight/inav/pull/9948 +* Add AOCODARCF4V3 target by @lida2003 in https://github.com/iNavFlight/inav/pull/9669 +* enforce rx auto smoothing in ez tune by @DzikuVx in https://github.com/iNavFlight/inav/pull/9945 +* Update deadband defaults by @DzikuVx in https://github.com/iNavFlight/inav/pull/9944 +* max_throttle adjustments by @DzikuVx in https://github.com/iNavFlight/inav/pull/9915 +* Reintroduce MSP2_INAV_SET_SERVO_CONFIG and MSP2_INAV_SERVO_CONFIG by @DzikuVx in https://github.com/iNavFlight/inav/pull/9926 +* update auto-declination generator to current IGRF13 model by @stronnag in https://github.com/iNavFlight/inav/pull/9962 +* Target: Add JHEMCUF405WING, JHEMCUF745, JHEMCUH743HD board by @jhemcu in https://github.com/iNavFlight/inav/pull/9807 +* Ez Tune snappiness by @DzikuVx in https://github.com/iNavFlight/inav/pull/9957 +* Fix ZEEZF7 output mapping by @DzikuVx in https://github.com/iNavFlight/inav/pull/9965 +* Minor Nav code improvements by @breadoven in https://github.com/iNavFlight/inav/pull/9947 +* FW Nav Auto Landing fixes by @breadoven in https://github.com/iNavFlight/inav/pull/9940 +* Prevent high throttle auto cancelling OSD stats screen on disarm by @breadoven in https://github.com/iNavFlight/inav/pull/9951 +* Fix function prototypes and macos warnings by @mmosca in https://github.com/iNavFlight/inav/pull/9980 +* [SITL] MacOS SITL, build as universal binary by @mmosca in https://github.com/iNavFlight/inav/pull/9981 +* SITL: implemented built-in serial receivers support in SITL, implemented FC proxy mode, updated SITL docs by @RomanLut in https://github.com/iNavFlight/inav/pull/9365 +* Match F745 and F745NANO motor pins to BF target by @mmosca in https://github.com/iNavFlight/inav/pull/9990 +* Revert enforcing mode on TIM3 by @DzikuVx in https://github.com/iNavFlight/inav/pull/9989 +* Fix macos builds in release_7.1.1 to fix builds by @mmosca in https://github.com/iNavFlight/inav/pull/9993 +* Cherry pick flywoof745 fixes from master by @mmosca in https://github.com/iNavFlight/inav/pull/9991 +* Use 2 bits for msp displayport font page by @mmosca in https://github.com/iNavFlight/inav/pull/9942 +* RangerFinder NRA15/24 from nanoradar by @error414 in https://github.com/iNavFlight/inav/pull/9842 +* Revert Nav hold changes by @breadoven in https://github.com/iNavFlight/inav/pull/9999 +* Create Building in Gitpod.md by @dzaro-dev in https://github.com/iNavFlight/inav/pull/10004 +* WP mode altitude enforce hold fix by @breadoven in https://github.com/iNavFlight/inav/pull/10002 +* INAV 7.1.1 by @DzikuVx in https://github.com/iNavFlight/inav/pull/9934 +* Update Building in Gitpod.md by @dzaro-dev in https://github.com/iNavFlight/inav/pull/10014 +* fix ist8308 compass local frame by @RomanLut in https://github.com/iNavFlight/inav/pull/10011 +* mavlink: send RC_CHANNELS instead of RC_CHANNELS_RAW to support 18 channels by @RomanLut in https://github.com/iNavFlight/inav/pull/8282 +* Optimize PID axis processing by @DzikuVx in https://github.com/iNavFlight/inav/pull/9956 +* Add GEPRCF745_BT_HD target by @YI-BOYANG in https://github.com/iNavFlight/inav/pull/9978 +* Fixed wing Nav altitude velocity control by @breadoven in https://github.com/iNavFlight/inav/pull/9471 +* 7.1.1. merge error trackback fix by @breadoven in https://github.com/iNavFlight/inav/pull/10028 +* BFCOMPAT: Add auto-throttle label and BF font symbols for pitch and roll by @rmaia3d in https://github.com/iNavFlight/inav/pull/10023 +* RTH trackback code cleanup by @breadoven in https://github.com/iNavFlight/inav/pull/10042 +* [DOC] Broken USB recovery by @Scavanger in https://github.com/iNavFlight/inav/pull/10045 +* Update the compatibility mode for DJI to use the actual DJI font. by @MrD-RC in https://github.com/iNavFlight/inav/pull/10046 +* Adding Crosshair Styles for DJI OSD by @dzaro-dev in https://github.com/iNavFlight/inav/pull/10056 +* Tidy up DJI crosshairs by @MrD-RC in https://github.com/iNavFlight/inav/pull/10060 +* Use letter `Q` for DJI LinkQuality OSD element by @DzikuVx in https://github.com/iNavFlight/inav/pull/10054 +* I-Term Lock for Fixed Wing by @DzikuVx in https://github.com/iNavFlight/inav/pull/9905 +* Nav altitude estimation changes by @breadoven in https://github.com/iNavFlight/inav/pull/10041 +* Reorder blackbox fields by @breadoven in https://github.com/iNavFlight/inav/pull/10068 +* Add PSA about ICM426xx changes in INAV 7.1 by @mmosca in https://github.com/iNavFlight/inav/pull/10071 +* Fix OSD mentioned twice on readme.md feature list by @fschuindt in https://github.com/iNavFlight/inav/pull/10092 +* Building a USB-Rescue firmware without editing sources by @Scavanger in https://github.com/iNavFlight/inav/pull/10073 +* Update readme.md by @mmosca in https://github.com/iNavFlight/inav/pull/10094 +* Remove unused define from DJI OSD symbols by @MrD-RC in https://github.com/iNavFlight/inav/pull/10061 +* Allow pilots the option to hide question marks from the OSD. by @MrD-RC in https://github.com/iNavFlight/inav/pull/10058 +* Make the 'declination.py' file generate Declination, Inclination and Intensity. by @JulioCesarMatias in https://github.com/iNavFlight/inav/pull/10032 +* SITL: accelerometer/mag data is not processed when using SITL with inav-HITL-plugin by @RomanLut in https://github.com/iNavFlight/inav/pull/9564 +* Allow LED pin to be reassigned as MOTOR or SERVO by @mmosca in https://github.com/iNavFlight/inav/pull/10022 +* Skip `pollVersion()` and `pollGnssCapabilities()` if `gps_auto_config = OFF` by @WizzardDr in https://github.com/iNavFlight/inav/pull/10082 +* Fix channel selection for DMA2 Stream6. by @manuelilg in https://github.com/iNavFlight/inav/pull/10029 +* Add JHEF405PRO (aka GHF405AIO-HD) support by @HishamGhosheh in https://github.com/iNavFlight/inav/pull/10070 +* Add battery profile to programming framework by @MrD-RC in https://github.com/iNavFlight/inav/pull/10100 +* Blackbox rc/flight modes update by @breadoven in https://github.com/iNavFlight/inav/pull/10093 +* Do not render INAV logo on DJI compat mode by @DzikuVx in https://github.com/iNavFlight/inav/pull/10055 +* Make `battery_capacity_unit` a global setting by @MrD-RC in https://github.com/iNavFlight/inav/pull/10103 +* Release 7.1.2 by @DzikuVx in https://github.com/iNavFlight/inav/pull/10098 +* Consolidate the old `PIDProfile` and `Profile` in to `Control Profile` by @MrD-RC in https://github.com/iNavFlight/inav/pull/10102 +* Added new targets FLYWOOF722PRO, F405HD, updated F745, F405PRO config by @flywoo in https://github.com/iNavFlight/inav/pull/10096 +* Decrease minimum launch acceleration by @MrD-RC in https://github.com/iNavFlight/inav/pull/10113 +* Adaptive gyro filter based on signal statistics experiment by @DzikuVx in https://github.com/iNavFlight/inav/pull/9879 +* Increase allowed speeds in NAV modes on multirotors by @DzikuVx in https://github.com/iNavFlight/inav/pull/9878 +* gyro_adaptive_filter_min_hz min value error by @mmosca in https://github.com/iNavFlight/inav/pull/10123 +* Increase max number of pwm outputs by 1, if a LED pin is defined by @mmosca in https://github.com/iNavFlight/inav/pull/10127 +* We already support 4 page fonts, bump max chars to 1024 by @mmosca in https://github.com/iNavFlight/inav/pull/10128 +* Change number of builds and make builds faster by @mmosca in https://github.com/iNavFlight/inav/pull/10129 +* Update github actions by @mmosca in https://github.com/iNavFlight/inav/pull/10130 +* Multirotor landing G bump detection improvements by @breadoven in https://github.com/iNavFlight/inav/pull/10138 +* Include trusted altitude for healthy position estimation by @breadoven in https://github.com/iNavFlight/inav/pull/10083 +* [crsf] move LAND flight mode into ARMED section by @stronnag in https://github.com/iNavFlight/inav/pull/10139 +* Attempt at building master on sucessfull push by @mmosca in https://github.com/iNavFlight/inav/pull/10131 +* Update dev-builds.yml by @mmosca in https://github.com/iNavFlight/inav/pull/10146 +* Change tag for nightly builds by @mmosca in https://github.com/iNavFlight/inav/pull/10149 +* Programming framework doc - loiter radius by @sensei-hacker in https://github.com/iNavFlight/inav/pull/10151 +* Update release notes with recommendation fro full chip erase. by @mmosca in https://github.com/iNavFlight/inav/pull/10152 +* OSD system message improvements by @breadoven in https://github.com/iNavFlight/inav/pull/10090 +* Remove unused and commented out function from osd.c by @rmaia3d in https://github.com/iNavFlight/inav/pull/10147 +* Update dev-builds.yml by @0crap in https://github.com/iNavFlight/inav/pull/10153 +* Add link to nightly builds by @mmosca in https://github.com/iNavFlight/inav/pull/10155 +* Walksnail Serial gimbal and headtracker support by @mmosca in https://github.com/iNavFlight/inav/pull/10109 +* Update readme.md by @0crap in https://github.com/iNavFlight/inav/pull/10160 +* Inhibit active failsafe procedures on landing detection by @breadoven in https://github.com/iNavFlight/inav/pull/10135 +* Multirotor inverted crash detection by @breadoven in https://github.com/iNavFlight/inav/pull/10099 +* Update Controls.md by @MrD-RC in https://github.com/iNavFlight/inav/pull/10163 +* Update nav config revision number by @breadoven in https://github.com/iNavFlight/inav/pull/10162 +* Don't run biulds for documentation only changes by @mmosca in https://github.com/iNavFlight/inav/pull/10164 +* Add ICM42688-G to IFLIGHTF4_SUCCEXD by @DzikuVx in https://github.com/iNavFlight/inav/pull/10161 +* Further serial gimbal/headtracker improvements by @mmosca in https://github.com/iNavFlight/inav/pull/10159 +* bind_rx cli command now supports CRSF based receivers by @mmosca in https://github.com/iNavFlight/inav/pull/10166 +* Update bind_rx cli documentation by @mmosca in https://github.com/iNavFlight/inav/pull/10170 +* Update Cli.md by @mmosca in https://github.com/iNavFlight/inav/pull/10171 +* Only generate nightly build release if the change includes code. by @mmosca in https://github.com/iNavFlight/inav/pull/10172 +* Fixed position for formation flight / inav radar by @error414 in https://github.com/iNavFlight/inav/pull/9883 +* Add msp command to send raw ublox commands to gps by @mmosca in https://github.com/iNavFlight/inav/pull/9349 +* Allow SBUS servo protocol to output 18 channels, expand mixer to up to 24 channels by @mmosca in https://github.com/iNavFlight/inav/pull/10165 +* [Targets] USE_MAG_ALL by @mmosca in https://github.com/iNavFlight/inav/pull/10176 +* Gyro LULU smoother as gyro filter alternative by @DzikuVx in https://github.com/iNavFlight/inav/pull/10177 +* LULU filter port to iNav as a single replacement for most filters in iNav, simplifying filter configuration drastically by @pjpei in https://github.com/iNavFlight/inav/pull/10145 +* [FIX] BMI088 driver: get BMI088 acc aligned by @Minderring in https://github.com/iNavFlight/inav/pull/10174 +* Add ICM-42688P to KakuteF4 by @jamming in https://github.com/iNavFlight/inav/pull/10175 +* Remove of register optimization in favor or relying on GCC optimization. by @DzikuVx in https://github.com/iNavFlight/inav/pull/10178 +* Add some docs on Serial Gimbal by @mmosca in https://github.com/iNavFlight/inav/pull/10182 +* Add flown loiter radius to programming logic by @breadoven in https://github.com/iNavFlight/inav/pull/10183 +* [GPS] Fix message rate for newer ublox devices and add some extra debugging features by @mmosca in https://github.com/iNavFlight/inav/pull/10179 +* Fixed position for formation flight / inav radar by @P-I-Engineer in https://github.com/iNavFlight/inav/pull/10190 +* mixer.h: PLATFORM_OTHER isn't valid, remove by @sensei-hacker in https://github.com/iNavFlight/inav/pull/10201 +* Fix typo in Rx doc.md by @RobertoD91 in https://github.com/iNavFlight/inav/pull/10202 +* [GPS] Fix GPS dynamic model setup for M10 GPS units by @mmosca in https://github.com/iNavFlight/inav/pull/10199 +* Add UBLOX PSA to README by @mmosca in https://github.com/iNavFlight/inav/pull/10204 +* [gps] correct version checks by @mmosca in https://github.com/iNavFlight/inav/pull/10205 +* IFLIGHT_BLITZ_ATF435 MAX_PWM_OUTPUT_PORTS should 8 by @sensei-hacker in https://github.com/iNavFlight/inav/pull/10206 +* Make LULU smoother independent from the gyro LPF by @DzikuVx in https://github.com/iNavFlight/inav/pull/10186 +* Update OSD.md - List all of the OSD-related docs by @sensei-hacker in https://github.com/iNavFlight/inav/pull/10212 +* [GPS] Add SEA and MOWER dynamic models. by @mmosca in https://github.com/iNavFlight/inav/pull/10211 +* [GPS] UBLOX and UBLOX7 have been merged into UBLOX by @mmosca in https://github.com/iNavFlight/inav/pull/10214 +* Update gps_provider documentaion by @mmosca in https://github.com/iNavFlight/inav/pull/10220 +* create single zip with all hex files, again. by @mmosca in https://github.com/iNavFlight/inav/pull/10221 +* All all baro to IFLIGHTF4_SUCCEXD by @DzikuVx in https://github.com/iNavFlight/inav/pull/10218 +* Improve MAVLink behavior with flow control capable links by @MUSTARDTIGERFPV in https://github.com/iNavFlight/inav/pull/10222 +* Add blackbox device FILE for SITL build by @bartslinger in https://github.com/iNavFlight/inav/pull/10228 +* GEPRC_F722_AIO include UART3 by @sensei-hacker in https://github.com/iNavFlight/inav/pull/10233 +* Add new targets: MicoAir405Mini, MicoAir405v2 and MicoAir743 by @Minderring in https://github.com/iNavFlight/inav/pull/10198 +* Add gyros to DakeFPV targets by @DzikuVx in https://github.com/iNavFlight/inav/pull/10242 +* Add a new target KakuteF4wing by @jamming in https://github.com/iNavFlight/inav/pull/10122 +* Inflight timer fix by @breadoven in https://github.com/iNavFlight/inav/pull/10245 +* SBUS2 telemetry support by @mmosca in https://github.com/iNavFlight/inav/pull/10169 +* Fix programming framework parameters using int16 instead of in32 by @MrD-RC in https://github.com/iNavFlight/inav/pull/10246 +* Lower sbus2 telemetry task priority by @mmosca in https://github.com/iNavFlight/inav/pull/10250 +* Make sure DEFAULT_I2C_DEVICE is always valid by @mmosca in https://github.com/iNavFlight/inav/pull/10253 +* Nav course hold yaw stick control improvement for fixed wing by @breadoven in https://github.com/iNavFlight/inav/pull/10187 +* Change MAVLink component ID to be a "proper" autopilot by @MUSTARDTIGERFPV in https://github.com/iNavFlight/inav/pull/10258 +* Increase SMARTAUDIO_MAX_POWER_COUNT to 8 by @bkleiner in https://github.com/iNavFlight/inav/pull/10261 +* add additional BBL headers for MAX SERVO increase by @stronnag in https://github.com/iNavFlight/inav/pull/10263 +* only BBL log servos defined in the mixer by @stronnag in https://github.com/iNavFlight/inav/pull/10267 +* add SERVOS to blackbox optional fields list by @stronnag in https://github.com/iNavFlight/inav/pull/10272 +* Allow serialpassthrough to set parity & stop bits by @MUSTARDTIGERFPV in https://github.com/iNavFlight/inav/pull/10271 +* Refactor sbus to support futaba's FASSTest26 sbus2 mode (Potentially 36 channels) by @mmosca in https://github.com/iNavFlight/inav/pull/10270 +* Fix mixer tab by @mmosca in https://github.com/iNavFlight/inav/pull/10277 +* Allow number of servos exceed pwm outputs, if servo protocol is sbus_pwm by @mmosca in https://github.com/iNavFlight/inav/pull/10276 +* Allow Mission Upload mid flight by @b14ckyy in https://github.com/iNavFlight/inav/pull/10273 +* cli.c: Add reason for Navigation Unsafe to status by @sensei-hacker in https://github.com/iNavFlight/inav/pull/10280 +* AOCODARCF7MINI_V1: DSHOT_DMAR and V1 output order by @sensei-hacker in https://github.com/iNavFlight/inav/pull/10260 +* Support SBUS2 FASSTest 12 channel short frame time by @mmosca in https://github.com/iNavFlight/inav/pull/10288 +* add h7 svd file by @bkleiner in https://github.com/iNavFlight/inav/pull/10289 +* Mac-OS wiki update | How to connect to configurator by @KY-S0ong in https://github.com/iNavFlight/inav/pull/10279 +* vtx: fix VTX_SETTINGS_POWER_COUNT by @bkleiner in https://github.com/iNavFlight/inav/pull/10290 +* Jh fix bbl servo logging by @stronnag in https://github.com/iNavFlight/inav/pull/10303 +* remove excessive `SD` debug from MSP processing by @stronnag in https://github.com/iNavFlight/inav/pull/10306 +* adsb enhanced by @error414 in https://github.com/iNavFlight/inav/pull/10298 +* Add AIKONF7 target by @mbainrot in https://github.com/iNavFlight/inav/pull/9603 +* Add FLYWOOH743PRO Target by @flywoo in https://github.com/iNavFlight/inav/pull/10285 +* Update Fixed Wing Landing.md by @b14ckyy in https://github.com/iNavFlight/inav/pull/10311 +* Update Fixed Wing Landing.md by @b14ckyy in https://github.com/iNavFlight/inav/pull/10312 +* add TBS_LUCID_FC target by @bkleiner in https://github.com/iNavFlight/inav/pull/10292 +* add stick_center note to vtol/mixer profile docs for 4+1 motor vtol configurations. by @P-I-Engineer in https://github.com/iNavFlight/inav/pull/10313 +* GEPRC_F722_AIO add target with UART3 instead of i2c by @sensei-hacker in https://github.com/iNavFlight/inav/pull/10310 +* MAMBAF722_2022B: use DMAR for motor 7 by @sensei-hacker in https://github.com/iNavFlight/inav/pull/10309 +* tbs-lucid: remove in-accessible servo pins by @bkleiner in https://github.com/iNavFlight/inav/pull/10332 +* Change Waypoint mode linear climb method by @breadoven in https://github.com/iNavFlight/inav/pull/10334 +* Waypoint tracking improvements by @breadoven in https://github.com/iNavFlight/inav/pull/10278 +* MSP headtracker parsing change by @mmosca in https://github.com/iNavFlight/inav/pull/10342 +* Update USB Flashing.md - mention using a hub with USB-C by @sensei-hacker in https://github.com/iNavFlight/inav/pull/10343 +* iFlight IFLIGHT_BLITZ_H7_WING changes by @DzikuVx in https://github.com/iNavFlight/inav/pull/10341 +* Update ci.yml by @mmosca in https://github.com/iNavFlight/inav/pull/10344 +* Use all cores during ci builds by @mmosca in https://github.com/iNavFlight/inav/pull/10337 +* Small fixes for serial gimbal by @mmosca in https://github.com/iNavFlight/inav/pull/10345 +* at32: add uart pinswap by @bkleiner in https://github.com/iNavFlight/inav/pull/10333 +* Added documentation about GVARs, PIDFF Controllers, & Integer Math by @trailx in https://github.com/iNavFlight/inav/pull/10335 +* Update Settings.yaml and settings.md to include units for nav_max_terrain_follow_alt by @daijoubu in https://github.com/iNavFlight/inav/pull/10352 +* Change SmartPort sensor IDs for GPS and Modes by @MrD-RC in https://github.com/iNavFlight/inav/pull/9868 +* Enhance OSD Custom Elements by @MrD-RC in https://github.com/iNavFlight/inav/pull/10282 +* fixed altitude estimator error estimation by @RomanLut in https://github.com/iNavFlight/inav/pull/10367 +* Update FLYWOOF745 config.c by @flywoo in https://github.com/iNavFlight/inav/pull/10368 +* [Fix] Potential stack smash in gforce OSD statistics by @Scavanger in https://github.com/iNavFlight/inav/pull/10358 +* tbs_lucid: mask PA13/PA14 to enable debugging by @bkleiner in https://github.com/iNavFlight/inav/pull/10365 +* lucid: use PC5 as adc, use PA13/PA14 as PINIO by @bkleiner in https://github.com/iNavFlight/inav/pull/10378 +* at32: add abilty to specify uart af by @bkleiner in https://github.com/iNavFlight/inav/pull/10366 +* Change bus for built-in compass for MICOAIR743 target by @bfmvsa in https://github.com/iNavFlight/inav/pull/10384 +* MICOARI743 Add alternative target that looks for compass on external connector by @mmosca in https://github.com/iNavFlight/inav/pull/10385 +* Further tweaks to mavlink by @mmosca in https://github.com/iNavFlight/inav/pull/10215 +* Switch parameters with battery capacity unit by @MrD-RC in https://github.com/iNavFlight/inav/pull/10389 +* Nav velocity Z estimation improvements by @breadoven in https://github.com/iNavFlight/inav/pull/10243 +* Navigation.md - Remove outdated references to inav_use_gps_no_baro by @sensei-hacker in https://github.com/iNavFlight/inav/pull/10408 +* Default altitude sensor setting fix by @breadoven in https://github.com/iNavFlight/inav/pull/10411 +* Fix lockup on disarm when wh used in post-flight stats by @MrD-RC in https://github.com/iNavFlight/inav/pull/10413 +* Add MSP command to get ESC telemetry by @jeffhendrix in https://github.com/iNavFlight/inav/pull/10388 +* Add PrincipioIoT F7 target by @DzikuVx in https://github.com/iNavFlight/inav/pull/10422 +* at32: add ability to specify uart rx/tx af independently by @bkleiner in https://github.com/iNavFlight/inav/pull/10396 +* Add feature freeze announcement by @mmosca in https://github.com/iNavFlight/inav/pull/10429 +* Fix custom OSD elements cli import by @MrD-RC in https://github.com/iNavFlight/inav/pull/10430 +* Update arming screen for better space utilisation by @MrD-RC in https://github.com/iNavFlight/inav/pull/10300 +* Allow the pilot to set the precision for altitude and distance in the OSD by @MrD-RC in https://github.com/iNavFlight/inav/pull/10431 +* Update DPS310 driver to support SPL07-003 by @DzikuVx in https://github.com/iNavFlight/inav/pull/10441 +* MSP VTX Code Updates by @geoffsim in https://github.com/iNavFlight/inav/pull/10355 +* Added IMUTemperature read function for ICM42605 by @ultrazar in https://github.com/iNavFlight/inav/pull/10423 +* Update TUNERCF405 target.h by @TUNERC-Aria in https://github.com/iNavFlight/inav/pull/10438 +* Have RSSI go from 0-100%, rather than 0-99% by @MrD-RC in https://github.com/iNavFlight/inav/pull/10450 +* Add spa06 and spl07 baro for Kakutef4/f7 FC by @jamming in https://github.com/iNavFlight/inav/pull/10458 +* Initial implementation of MSP RC stats and info messages by @MrD-RC in https://github.com/iNavFlight/inav/pull/10451 +* Revert change to MSP_SET_RAW_RC by @MrD-RC in https://github.com/iNavFlight/inav/pull/10461 +* [mspv2] pass "flags" field back to sender, define ILMI flag by @stronnag in https://github.com/iNavFlight/inav/pull/10464 +* Geozones (aka Geofence) by @Scavanger in https://github.com/iNavFlight/inav/pull/10459 +* Geozones.md by @b14ckyy in https://github.com/iNavFlight/inav/pull/10466 +* add annotated script to generate RN Changelog by @stronnag in https://github.com/iNavFlight/inav/pull/10468 +* add TBS_LUCID_H7 by @bkleiner in https://github.com/iNavFlight/inav/pull/10454 +* Add BF config to INAV target converter by @mmosca in https://github.com/iNavFlight/inav/pull/9556 +* [Fix] EZ-Tune Filter-HZ Fix by @Scavanger in https://github.com/iNavFlight/inav/pull/10467 +* Geozone RC2 Fixes by @Scavanger in https://github.com/iNavFlight/inav/pull/10471 +* Speedybee F405 AIO by @DzikuVx in https://github.com/iNavFlight/inav/pull/10444 +* gimbal_sensitivity uint8_t -> int8_t. Range is actually -16 to 15 by @mmosca in https://github.com/iNavFlight/inav/pull/10478 +* Add support for SKYSTARSSF405AIO target by @DusKing1 in https://github.com/iNavFlight/inav/pull/10469 +* Fix incorrect arming flags reporting on CLI by @mmosca in https://github.com/iNavFlight/inav/pull/10479 +* add GEPRC_TAKER_H743 target replacement by @DzikuVx in https://github.com/iNavFlight/inav/pull/10484 +* Fix nightly build by @mmosca in https://github.com/iNavFlight/inav/pull/10485 +* fixed: gps sensor can not recover from timeout in gps fix estimation mode by @RomanLut in https://github.com/iNavFlight/inav/pull/9574 +* Update osd.md for 8.0 by @MrD-RC in https://github.com/iNavFlight/inav/pull/10492 +* add target RADIOLINKF722 by @radiolinkW in https://github.com/iNavFlight/inav/pull/10476 +* Fixed wing launch mode failsafe fixes by @breadoven in https://github.com/iNavFlight/inav/pull/10486 +* BF2INAV converter updates by @mmosca in https://github.com/iNavFlight/inav/pull/10503 +* Fix PINIO in KAKUTEH7WING by @ot0tot in https://github.com/iNavFlight/inav/pull/10509 +* Show pilot name and craft name on arming screen if they are not empty by @MrD-RC in https://github.com/iNavFlight/inav/pull/10506 +* fix h7 sdcard init by @bkleiner in https://github.com/iNavFlight/inav/pull/10512 +* Omnibus F4.md: select IMU for V6 and Fireworks V2 by @sensei-hacker in https://github.com/iNavFlight/inav/pull/10519 +* h7: enable swd pins by @bkleiner in https://github.com/iNavFlight/inav/pull/10516 +* msp: expose number of vtx power levels, bands and channels by @bkleiner in https://github.com/iNavFlight/inav/pull/10395 +* Add a template for new target PR by @mmosca in https://github.com/iNavFlight/inav/pull/9946 +* f7: migrate sdcard to hal by @bkleiner in https://github.com/iNavFlight/inav/pull/10526 +* Change Autotune default max servo range by @b14ckyy in https://github.com/iNavFlight/inav/pull/10531 +* Update VTOL.md with a more detailed guide on setting up tilting servos by @dzaro-dev in https://github.com/iNavFlight/inav/pull/10528 +* Experimental bmp390 support. by @mmosca in https://github.com/iNavFlight/inav/pull/10542 +* Programming Framework.md: Fix markdown for Delta by @sensei-hacker in https://github.com/iNavFlight/inav/pull/10546 +* Correct comments on OSD symbols by @MrD-RC in https://github.com/iNavFlight/inav/pull/10558 +* Default motor stop to `ON` by @MrD-RC in https://github.com/iNavFlight/inav/pull/10568 +* Add support for SKYSTARSF405WING target by @DusKing1 in https://github.com/iNavFlight/inav/pull/10561 +* Add new target for HGLRCF405V2 by @HGLRC-T in https://github.com/iNavFlight/inav/pull/10417 +* SITL.md - Addtional info re joystick by @sensei-hacker in https://github.com/iNavFlight/inav/pull/10579 +* Fix barometer I2C address redefine issues by @Minderring in https://github.com/iNavFlight/inav/pull/10555 +* make gimbal trims signed int by @sensei-hacker in https://github.com/iNavFlight/inav/pull/10573 +* Simplify build and retry increasing agents by @mmosca in https://github.com/iNavFlight/inav/pull/10581 +* Fix nightly build by @mmosca in https://github.com/iNavFlight/inav/pull/10582 +* More nightly build fixes by @mmosca in https://github.com/iNavFlight/inav/pull/10583 +* Fixing nightly builds and cleaning up ci by @mmosca in https://github.com/iNavFlight/inav/pull/10585 +* Fixed wing altitude control fixes by @breadoven in https://github.com/iNavFlight/inav/pull/10541 +* Add targets for SEQUREH7 and SEQUREH7V2 by @MrD-RC in https://github.com/iNavFlight/inav/pull/10523 +* A little reminder on the OSD by @mmosca in https://github.com/iNavFlight/inav/pull/10589 +* Update description for disarm_always by @MrD-RC in https://github.com/iNavFlight/inav/pull/10592 +* Add SITL linux aarch64 build by @mmosca in https://github.com/iNavFlight/inav/pull/10602 +* O4 arming workaround by @mmosca in https://github.com/iNavFlight/inav/pull/10598 +* Fix typo by @mmosca in https://github.com/iNavFlight/inav/pull/10603 +* Strip version number of inav_SITL binaries in artifacts by @mmosca in https://github.com/iNavFlight/inav/pull/10604 +* Lower ubuntu version by @mmosca in https://github.com/iNavFlight/inav/pull/10605 +* Fix mac regular expression by @mmosca in https://github.com/iNavFlight/inav/pull/10609 +* Added extra format to Custom OSD Elements by @MrD-RC in https://github.com/iNavFlight/inav/pull/10594 +* Fix negative altitudes in OSD by @MrD-RC in https://github.com/iNavFlight/inav/pull/10612 +* Revert to actual BF font, now that DJI fixed G2 and newer by @mmosca in https://github.com/iNavFlight/inav/pull/10620 +* Remove blocking delay from batteryUpdate initialization by @mmosca in https://github.com/iNavFlight/inav/pull/10607 +* Add new target: AET-H743-Basic by @villivateur in https://github.com/iNavFlight/inav/pull/10600 + +## New Contributors +* @sys512 made their first contribution in https://github.com/iNavFlight/inav/pull/9622 +* @paulwrath1223 made their first contribution in https://github.com/iNavFlight/inav/pull/9640 +* @RoboSchmied made their first contribution in https://github.com/iNavFlight/inav/pull/9691 +* @P-I-Engineer made their first contribution in https://github.com/iNavFlight/inav/pull/9703 +* @kubrack made their first contribution in https://github.com/iNavFlight/inav/pull/9760 +* @TUNERC-Aria made their first contribution in https://github.com/iNavFlight/inav/pull/9818 +* @Yury-MonZon made their first contribution in https://github.com/iNavFlight/inav/pull/9652 +* @ht099 made their first contribution in https://github.com/iNavFlight/inav/pull/9902 +* @0crap made their first contribution in https://github.com/iNavFlight/inav/pull/9909 +* @dzaro-dev made their first contribution in https://github.com/iNavFlight/inav/pull/10004 +* @fschuindt made their first contribution in https://github.com/iNavFlight/inav/pull/10092 +* @WizzardDr made their first contribution in https://github.com/iNavFlight/inav/pull/10082 +* @manuelilg made their first contribution in https://github.com/iNavFlight/inav/pull/10029 +* @HishamGhosheh made their first contribution in https://github.com/iNavFlight/inav/pull/10070 +* @pjpei made their first contribution in https://github.com/iNavFlight/inav/pull/10145 +* @Minderring made their first contribution in https://github.com/iNavFlight/inav/pull/10174 +* @jamming made their first contribution in https://github.com/iNavFlight/inav/pull/10175 +* @RobertoD91 made their first contribution in https://github.com/iNavFlight/inav/pull/10202 +* @MUSTARDTIGERFPV made their first contribution in https://github.com/iNavFlight/inav/pull/10222 +* @bartslinger made their first contribution in https://github.com/iNavFlight/inav/pull/10228 +* @KY-S0ong made their first contribution in https://github.com/iNavFlight/inav/pull/10279 +* @mbainrot made their first contribution in https://github.com/iNavFlight/inav/pull/9603 +* @trailx made their first contribution in https://github.com/iNavFlight/inav/pull/10335 +* @daijoubu made their first contribution in https://github.com/iNavFlight/inav/pull/10352 +* @bfmvsa made their first contribution in https://github.com/iNavFlight/inav/pull/10384 +* @ultrazar made their first contribution in https://github.com/iNavFlight/inav/pull/10423 +* @radiolinkW made their first contribution in https://github.com/iNavFlight/inav/pull/10476 +* @ot0tot made their first contribution in https://github.com/iNavFlight/inav/pull/10509 +* @HGLRC-T made their first contribution in https://github.com/iNavFlight/inav/pull/10417 +* @villivateur made their first contribution in https://github.com/iNavFlight/inav/pull/10600 + +**Full Changelog**: https://github.com/iNavFlight/inav/compare/7.1.2...8.0.0 \ No newline at end of file diff --git a/versioned_docs/version-8.0.1/advanced/AAT-Automatic-Antenna-Tracker.md b/versioned_docs/version-8.0.1/advanced/AAT-Automatic-Antenna-Tracker.md new file mode 100644 index 0000000..851bd1a --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/AAT-Automatic-Antenna-Tracker.md @@ -0,0 +1,53 @@ +--- +title: AAT Automatic Antenna Tracker +--- + +Since release 3.0, INAV directly supports embedded video telemetry data to drive the VirtualPilot Sentinel antenna tracker. + +This enables the use of directional higher gain antennas to maintain higher quality video in all directions, provide the ability to use lower video transmission power or increase the maximum reception distance over traditional omnidirectional antennas. The AAT provides the benefit of maintaining a more accurate direction over manually mounted antennas without the concern of the aircraft moving outside of the antenna’s dominant reception area. + +*** +## Configuring - iNAV 3.0 onwards (embedded support) +* Requires minimum of INAV 3.0 and fonts installed +* Enable AAT telemetry in the cli: set osd_telemetry = ON + +## Configuring - iNAV earlier versions +* Check content at the link here: [INAV AAT for earlier versions](https://github.com/aat-sentinel/Documentation/blob/main/Sentinel%20AAT%20lite%20User%20Guide.pdf) + +## Testing +As telemetry data is not normally visible, the telemetry data can be viewed on the OSD using a cli command: +* Enable AAT telemetry with second test line in the cli: set osd_telemetry = TEST +* Remember to change it back when finished: set osd_telemetry = ON (FC restart required) + +*** +## Description of operation +* iNAV knows its home launch position, current position and altitude +* iNAV can calculate the pan and tilt information required by the antenna tracker +* The data is sent using video telemetry over an analogue signal +* The video telemetry is sent on OSD row 0 with only pixel line 0 used +* 30 bits of information are sent in each video frame which includes tilt angle, pan angle and error validation check +* Two font characters are used to represent a binary 0 or 1 + +Positives of using this telemetry method: +* Simple and reliable +* No hardware modules or extra wiring on aircraft +* Supports all RC TX - not limited to TX with telemetry +* Does not require unreliable bluetooth / wifi connections to tracker +* Not impacted by 2.4G RC /Video +* Ultra-fast position updating – up to 30 hz +* Low size packet means higher tracking success rate in poor signal conditions + +Negatives of using this telemetry method: +* Tracking data may be recorded by some DVR. Not usually visible in goggles / monitor +* The first row of OSD display becomes unavailable for OSD. However, this row is not usually fully visible +* This does not use tracker GPS location – so cannot be used in a moving vehicle + +In the visualisation video below, you can see how the telemetry data is sent. This is a test mode as it is not usually visible in FPV goggles / recordings, however notice how the real telemetry line on pixel row zero is not visible. + +[![Telemetry visualisation capture](https://img.youtube.com/vi/FMLUvc-tX4E/0.jpg)](https://youtu.be/FMLUvc-tX4E?t=20) + +*** +## Sentinel AAT for use with iNAV +Further information on the Sentinel AAT is available by clicking on the image: + +[![Sentinel AAT](https://static.rcgroups.net/forums/attachments/2/6/9/6/2/5/a14859253-253-TrackersRCG.png)](https://www.rcgroups.com/forums/showthread.php?3815901-New-product-low-cost-antenna-tracker-for-iNav-Betaflight-Ardupilot-KISS-etc) diff --git a/versioned_docs/version-8.0.1/advanced/Alignment-Tool-Tab.md b/versioned_docs/version-8.0.1/advanced/Alignment-Tool-Tab.md new file mode 100644 index 0000000..139fdb5 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Alignment-Tool-Tab.md @@ -0,0 +1,7 @@ +--- +title: Alignment Tool Tab +--- + +# Introduction + +This tab lets you change the angle that you FC and compass are mounted on your aircraft. This is critical to setting up INAV. You may have mounted the FC upside-down or backwards and this is where you can save this new orientation. When you go back to the Setup Tab, you should see the 3D Graphic move the same as your actual aircraft. diff --git a/versioned_docs/version-8.0.1/advanced/Auto-Launch-(NAV_LAUNCH).md b/versioned_docs/version-8.0.1/advanced/Auto-Launch-(NAV_LAUNCH).md new file mode 100644 index 0000000..9fdf91f --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Auto-Launch-(NAV_LAUNCH).md @@ -0,0 +1,109 @@ +--- +title: Airplane launch assistant +--- + +# Airplane launch assistant + +INAV's auto launch is intended to provide assistance for launching the fixed-wing UAVs. Launch detection works by monitoring airplane acceleration - once it breaches the threshold for a certain amount of time launch sequence is started. This detection should happen due to a thrown release or a launch system, such as a bungee launch. Do not fake throw, or "shake and bake", your airplane to start the motor prematurely. If powered assistance is needed. Use the idle idle throttle settings to assist. + +`NAV LAUNCH` mode is based on `Angle` mode. So it will try and stabilise plane. It will target zero roll, zero yaw and the predefined climb angle. The I-gain of the PIFF regulator is also disabled to prevent I-gain growing during launch until motor is started. When successful launch is detected it waits for preconfigured amount of time before starting motor. + +`NAV LAUNCH` is automatically aborted after a timeout in seconds (default of 5 seconds), by exceeding an altitude (default to off), or by any pilot input on PITCH/ROLL stick. When it has aborted it goes to whichever mode is selected. This can be Angle, Acro, Horizon, RTH or a waypoint mission (if no other mode is selected it will go to Acro mode). + +It's safe to keep `NAV LAUNCH` activated during flight, after the launch has being completed. But, keep in mind that if you accidentally disarm while flying. You need to disable `NAV LAUNCH` mode to being able to control the model again. + +Gliders have different needs than motorised planes. See [below](#glider-and-slope-soarer-setup) for advice on a glider launch setup. + +See the INAV CLI [Settings document](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md) for all available parameters, they start with `nav_fw_launch_`. The most used settings for launch mode can be found on the **Advanced Tuning** page in INAV Configurator. + +## Launch sequence +The sequence for launching an airplane using `NAV LAUNCH` mode looks like this: + +1. Make sure you are in a non-navigation mode (Manual, Acro, Angle, or Horizon). +2. If auto launch is not permanently enabled. Set your switch to enable NAV LAUNCH mode. +3. ARM the plane. +4. Set the flight mode to the **exit** flight mode. This will be used after the launch has completed. **Loiter** is a great choice for the exit flight mode. +5. Put throttle stick to desired throttle value to be used **after** launch is finished. + - If [`nav_fw_launch_idle_thr`](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_launch_thr) is set. The motor could start spinning at this point. Verify that motor doesn't respond to throttle stick motion. Don't touch the pitch/roll stick! + - From version 3.0 [`nav_fw_launch_idle_motor_delay`](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_launch_idle_motor_delay) can be set to delay the motor starting at idle (useful for launching large aircraft). When idle motor delay is used the launch beep sound changes a few seconds before the motor is about to start as a warning to the pilot (beep becomes more rapid). + - From version 8.0 [`nav_fw_launch_wiggle_to_wake_idle`](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_launch_wiggle_to_wake_idle) can be used to activate the idle throttle. It can be used in addition to, or instead of, [`nav_fw_launch_idle_motor_delay`](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_launch_idle_motor_delay). +6. Launch the airplane. +7. Motors will start at the pre-configured [`nav_fw_launch_idle_thr`](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_launch_thr) (default 1700) after [`nav_fw_launch_motor_delay`](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_launch_motor_delay) (500ms). +8. The launch sequence will finish when pilot switch off the `NAV LAUNCH` mode or moves the sticks, or the exit criteria has been met (timeout or altitude). + +> [!CAUTION] +> Motors will spin if you disable `NAV LAUNCH` mode after arming. + +## Adjustments and settings for launch + +### Launch threshold detection +For most airplanes, the default settings for the launch threshold detection should work fine. However, with some larger aircraft. These settings may need adjustment. Checking and fine tuning these parameters are the only time you should jerk your airplane to "fake launch". Once set, throwing the airplane alone is all that is needed to trigger the launch. + +#### Testing launch detection thresholds +To test the launch detection, prep your airplane for flight, but remove the propeller. Go through the [launch sequence](#Launch-sequence) up until task 6. If you can't arm at task 3 due to a lack of GPS fix. You can force arm with yaw right as you arm. Next, basically throw the airplane, but don't let go. This should be the same way with the same force as you would launch the airplane for real. If the motors start, great. You don't need to do anything. But if the motors don't start, you may need to adjust the threshold parameters. Again, this should only be necessary for a large or heavy airplane. + +#### Threshold adjustments +There are two parameters related to the launch detection threshold: +- ['nav_fw_launch_velocity'](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_launch_velocity) +- ['nav_fw_launch_accel'](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_launch_accel) + +You should not need to change `nav_fw_launch_velocity`. This is how fast the aircraft is moving forward. The default value is 300 cm/s, which is 10.8km/h. You should be able to throw any airplane forwards at 10.8 km/h. + +`nav_fw_launch_accel` is the acceleration of the airplane in cm/s/s. With larger or heavier airplanes, you may need to reduce this slightly. The default value is 1863. If you need to reduce, go down to 1850 and try again. After that, reduce by 25 and try again until you find a setting that consistently works. Getting down near 1500 should be rare, unless it is a particularly large, heavy aircraft. If you're needing to adjust this setting for a 1.4kg AR Pro, you probably need to look elsewhere for the problem. + +### Idle throttle + +Idle throttle is an extremely useful setting for launch assistance. You can have idle throttle set low, to show you that your aircraft is ready to launch. Or you can set it higher to assist with the launch itself. There are often times that people have been seen jerking their airplane before launch, sometimes called a "shake and bake"; which is completely unnecessary with INAV. Even Joshua Bardwell has been guilty of this on one of his instructional videos. You're gonna learn something today. With a correctly set up launch detection and idle throttle. You **never** _need_ to shake and bake. In fact, we advise against it. Using auto launch correctly will be more consistent and safer. + +[`nav_fw_launch_idle_thr`](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_launch_idle_thr) will set the throttle level for the motor when idle throttle is enabled. If you just want this as a low, visual aid for launch mode. You can set this to somewhere between 1050 and 1200. It should be high enough that the motor spins. But only just. If you want assistance in launching your aircraft. The idle throttle should be set high enough to assist with the push. But not so high that it is uncontrollable in your hands. This will very much be dependant on your aircraft, motor, prop, even how you hold it. So you will need to experiment or use the tool at the bottom of this page for an estimate. The default setting is `1000`; which is idle throttle is disabled. + +If you don't change anything else. The motor will start spinning at idle throttle as soon as you raise the throttle in the [launch sequence](#Launch-sequence). But, we don't necessarily want this. Maybe you have a large model that needs two hands. So you need to pick it up after you have finished on your transmitter. There are definitely scenarios where you will want to delay the idle throttle from starting. There are a couple of way of doing this. One may suit your situation better. + +#### Idle throttle delay + +[`nav_fw_launch_idle_motor_delay`](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_launch_idle_motor_delay) allows you to add a time delay between raising the throttle and the motor starting at idle. The default is `0`, which means the setting is disabled. Above 0, will set the timeout in milliseconds. I know, why milliseconds!? All you need to do is multiply the number of seconds you want the delay to be by 1000 to get the right value. For example, a 5 second delay would be 5000 ms. + +#### Wiggle to wake idle + +[`nav_fw_launch_wiggle_to_wake_idle`](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_launch_wiggle_to_wake_idle) allows you to trigger the idle throttle by deliberately invoking a yaw _wiggle_ on the aircraft. This can be used instead of, or as well as, `nav_fw_launch_idle_motor_delay`. The default setting is `0`, which means the feature is disabled. Setting the parameter to `1` or `2` signifies 1 or 2 yaw wiggles to activate the idle throttle. +- 1 wiggle has a higher detection point, for smaller airplanes, which are easier to wiggle quickly. +- 2 wiggles has a lower detection point, but requires the repeated action. This is intended for larger models, where you can't yaw wiggle as quickly. + +The _wiggle_ needs to be a quick, deliberate action. This is so that there are no accidental starts of motors. + +### Permanently enabled launch mode + +From version 1.9 `NAV LAUNCH` can be permanently enabled via the configurator or the CLI using `feature FW_LAUNCH`. In this case `NAV LAUNCH` doesn't need to be enabled via a transmitter switch prior to arming. If you want to launch the plane manually just move pitch/roll stick after you have armed the plane and you have back throttle control. If you inadvertently disarm mid-air before raising the throttle again (you should lower the throttle to arm again) move pitch/roll stick and you will have throttle control back. + +### Manual throttle launch + +From INAV 6.0.0 it is possible to use NAV Launch with manual throttle control. This is really intended as a more controllable alternative to the shake to start motor and throw method of launching. Shaking the airplane to start the motor has never been recommended as a launch technique. When enabled using setting [`nav_fw_launch_manual_throttle`](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_launch_manual_throttle) the throttle is controlled manually throughout the launch using the throttle stick. There is no motor idle or detection used to start the motor, motor control is entirely manual and active via the throttle stick once armed. INAV only controls roll, yaw, and pitch attitude during the launch climb out. + +> [!NOTE] +> If this option is used with no GPS fix available it is recommended to throw the plane as soon as the throttle is raised in order to avoid possible degraded control issues and premature end of the launch timeout (moving the throttle stick back to idle will reset the affected launch parameters if required). + +## Glider and slope soarer setup + +For obtaining launch assistance for hand-thrown gliders, it's a bit tricky. One possible solution is to setup the throttle as in input for switching modes. At lowest throttle setting, disarm and enter passthrough. Just above minimal throttle, turn on Nav Launch, then just above that, Arm and activate Angle - all simultaneously "on" for launch. + +This will allow the FC to reset the launch sequence and be ready for toss with Angle activated after launch. + +Setup launch parameters appropriately: + +`set nav_fw_launch_climb_angle = XX` 45? + +['nav_fw_launch_climb_angle'](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_launch_climb_angle) is the climb angle for launch sequence (degrees), is also restrained by global [`max_angle_inclination_pit`](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#max_angle_inclination_pit). + +`set nav_fw_launch_thr = 1700` + +The [`nav_fw_launch_idle_thr`](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_launch_thr) parameter can be problematic for a glider. Not obvious, since Airplanes change PID values for throttle based on [`set tpa_rate = XXX`](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#tpa_rate) and [`set tpa_breakpoint = XXXX`](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#tpa_breakpoint) (adjust accordingly). Also, not well documented but PIDs are boosted at low throttles by 1.5X!! Can cause unexplained behaviour at launch. For some gliders - having PID gains reduced for toss is beneficial (DLG launch may be fastest speed the glider travels). + +`set nav_fw_launch_velocity = XXX` 300? + +['nav_fw_launch_velocity'](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_launch_velocity) is the forward velocity threshold for swing-launch detection [cm/s]. + +One option is to add Horizon mode at very top end of throttle, to enable acro flying with ability to drop back to angle mode for emergency recovery. + +## Tools + +Traditionally, to get the launch throttle. You would need to power your airplane and raise the throttle to get the hover point. This is not the safest of practices. Especially with large models. However, [this tool](https://www.mrd-rc.com/tutorials-tools-and-testing/useful-tools/inav-auto-launch-throttle-estimator/) can be used to **estimate** the launch and idle throttle for the model. Please note that it is an estimate. So test and be ready to take over the launch. However, it should give a reasonable starting point. Allowing you to raise or lower the throttle levels to suit. \ No newline at end of file diff --git a/versioned_docs/version-8.0.1/advanced/Boards,-Targets-and-PWM-allocations.md b/versioned_docs/version-8.0.1/advanced/Boards,-Targets-and-PWM-allocations.md new file mode 100644 index 0000000..9d48aab --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Boards,-Targets-and-PWM-allocations.md @@ -0,0 +1,2743 @@ +--- +title: "Boards, Targets and PWM Allocations" +--- + +# INAV Boards, Targets and PWM allocations + +It can be difficult for an aircraft builder to determine if a particular board / target will meet their needs. + +In order to offer some guidance, the following list is machine generated from the files under `inav/source/main/target` to provide a list of the options offered by supported boards. + +The usage is taken directly from the source code, the following interpretation is offered: + +| Symbol | Interpretation | +| ------ | -------------- | +| AUTO | Automatic motor / servo allocation | +| MOTOR | Motor | +| SERVO | Servo | +| LED | LED strip | +| PWM, ANY | Some other PWM function | + +`AUTO` is used by INAV 7.0 and later. Hardware timer number is shown againt each `AUTO` line; a common function (`MOTOR`, `SERVO`) may be assigned by the user for a particular timer number. + +`MOTOR`, `SERVO` are shown against a small number of boards where specific allocation is needed. + +Prior to INAV 7.0 `MC_`, `FW_` prefixes were shown against motors and servos. + +Note that the following tables only document PWM outputs that have at least a MOTOR or SERVO use. PWM outputs _solely_ supporting other (LED, PWM, ANY)functions are not listed; for those see the manufacter's documentation (or `target.c`). + +See project [Cli](https://github.com/iNavFlight/inav/blob/master/docs/Cli.md) and [ESC and servo outputs](https://github.com/iNavFlight/inav/blob/master/docs/ESC%20and%20servo%20outputs.md) documentation. + +*List generated 2024-11-18 from the [INAV 8.0.0-RC1 branch](https://github.com/iNavFlight/inav/) by [`parse_targets.rb`](assets/parse_targets.rb). Some targets may not be available in official or prior releases.* **E&OE.** + +You are strongly advised to check the board documentation as to the suitability of any particular board. + +In particular, even though a board is marked as 'DSHOT enabled', there is no guarantee that DSHOT will be available on an arbitrary output as its timer may not have DMA enabled. + +The configurations listed above are those supported by the INAV developers; other configurations may be possible with a custom target. The source tree contains other, unofficial targets that may (or not) work. A full report, including non-release targets may be generated with `parse_targets.rb --all`. + +Note also that due to the complexity of output options available in INAV, dynamic resource allocation is not available. Paweł Spychalski has published a [video](https://www.youtube.com/watch?v=v4R-pnO4srU) explaining why resource allocation is not supported by INAV; [see also #1154](https://github.com/iNavFlight/inav/issues/1145) + +## Board: AIRBOTF4 + +Board is DSHOT enabled. + +### Target: AIRBOTF4 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 5, ANY | +| 6 | AUTO TIMER 1 | + +## Board: ANYFCF7 + +Board is not DSHOT enabled. + +### Target: ANYFCF7 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 5 | +| 9 | AUTO TIMER 5 | +| 10 | AUTO TIMER 9 | +| 11 | AUTO TIMER 3 | +| 12 | AUTO TIMER 5 | +| 13 | AUTO TIMER 2, LED | +| 14 | AUTO TIMER 3 | + +### Target: ANYFCF7_EXTERNAL_BARO + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 5 | +| 9 | AUTO TIMER 5 | +| 10 | AUTO TIMER 9 | +| 11 | AUTO TIMER 3 | +| 12 | AUTO TIMER 5 | +| 13 | AUTO TIMER 2, LED | +| 14 | AUTO TIMER 3 | + +## Board: AOCODARCF405AIO + +Board is DSHOT enabled. + +### Target: AOCODARCF405AIO + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | + +## Board: AOCODARCF4V2 + +Board is DSHOT enabled. + +### Target: AOCODARCF4V2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 1 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 2 | + +## Board: AOCODARCF4V3_SD + +Board is DSHOT enabled. + +### Target: AOCODARCF4V3_SD + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 1 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 2 | + +### Target: AOCODARCF4V3 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 1 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 2 | + +## Board: AOCODARCF722AIO + +Board is DSHOT enabled. + +### Target: AOCODARCF722AIO + +| PWM | Usage | +| --- | ----- | +| 1 | MOTOR | +| 2 | MOTOR | +| 3 | MOTOR | +| 4 | MOTOR | + +## Board: AOCODARCF7DUAL + +Board is DSHOT enabled. + +### Target: AOCODARCF7DUAL + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | + +## Board: AOCODARCF7MINI_V1 + +Board is DSHOT enabled. + +### Target: AOCODARCF7MINI_V1 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 2 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 4 | + +### Target: AOCODARCF7MINI_V2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | + +## Board: AOCODARCH7DUAL + +Board is DSHOT enabled. + +### Target: AOCODARCH7DUAL + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 5 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 5 | +| 8 | AUTO TIMER 5 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 4 | +| 11 | AUTO TIMER 15 | +| 12 | AUTO TIMER 15 | + +## Board: ATOMRCF405NAVI + +Board is DSHOT enabled. + +### Target: ATOMRCF405NAVI + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 2 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 3 | + +## Board: ATOMRCF405NAVI_DELUX + +Board is DSHOT enabled. + +### Target: ATOMRCF405NAVI_DELUX + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 4 | +| 4 | AUTO TIMER 4 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 2 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 8 | +| 9 | AUTO TIMER 8 | +| 10 | AUTO TIMER 8 | +| 11 | AUTO TIMER 1 | + +## Board: AXISFLYINGF7PRO + +Board is DSHOT enabled. + +### Target: AXISFLYINGF7PRO + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 2 | + +## Board: BEEROTORF4 + +Board is not DSHOT enabled. + +### Target: BEEROTORF4 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 1 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | +| 7 | AUTO TIMER 3 | +| 8 | AUTO TIMER 4 | + +## Board: BETAFLIGHTF4 + +Board is DSHOT enabled. + +### Target: BETAFLIGHTF4 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | + +## Board: BETAFPVF722 + +Board is DSHOT enabled. + +### Target: BETAFPVF722 + +| PWM | Usage | +| --- | ----- | +| 1 | MOTOR | +| 2 | MOTOR | +| 3 | MOTOR | +| 4 | MOTOR | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | + +## Board: BLACKPILL_F411_OSD + +Board is DSHOT enabled. + +### Target: BLACKPILL_F411_OSD + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 1 | +| 6 | AUTO TIMER 4 | + +### Target: BLACKPILL_F411_BLACKBOX + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 1 | +| 6 | AUTO TIMER 4 | + +## Board: DAKEFPVF405 + +Board is DSHOT enabled. + +### Target: DAKEFPVF405 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 4 | +| 4 | AUTO TIMER 4 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | + +## Board: DAKEFPVF722 + +Board is DSHOT enabled. + +### Target: DAKEFPVF722 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 4 | +| 4 | AUTO TIMER 4 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | + +## Board: DALRCF405 + +Board is DSHOT enabled. + +### Target: DALRCF405 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | + +## Board: DALRCF722DUAL + +Board is DSHOT enabled. + +### Target: DALRCF722DUAL + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 1 | +| 6 | AUTO TIMER 1 | + +## Board: FF_F35_LIGHTNING + +Board is DSHOT enabled. + +### Target: FF_F35_LIGHTNING + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 4 | +| 4 | AUTO TIMER 4 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | + +### Target: WINGFC + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 4 | +| 4 | AUTO TIMER 4 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | + +## Board: FIREWORKSV2 + +Board is DSHOT enabled. + +### Target: FIREWORKSV2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | + +### Target: OMNIBUSF4V6 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | + +## Board: FLASHHOBBYF405 + +Board is DSHOT enabled. + +### Target: FLASHHOBBYF405 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | + +## Board: FLASHHOBBYF722 + +Board is DSHOT enabled. + +### Target: FLASHHOBBYF722 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | + +## Board: FLYCOLORF7MINI + +Board is DSHOT enabled. + +### Target: FLYCOLORF7MINI + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | + +## Board: FLYCOLORF7V2 + +Board is DSHOT enabled. + +### Target: FLYCOLORF7V2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | + +## Board: FLYWOOF405PRO + +Board is DSHOT enabled. + +### Target: FLYWOOF405PRO + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 8 | +| 7 | AUTO TIMER 3 | +| 8 | AUTO TIMER 8 | + +### Target: FLYWOOF405HD + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 8 | +| 7 | AUTO TIMER 3 | +| 8 | AUTO TIMER 8 | + +## Board: FLYWOOF722PRO + +Board is DSHOT enabled. + +### Target: FLYWOOF722PRO + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | + +## Board: FLYWOOF745 + +Board is DSHOT enabled. + +### Target: FLYWOOF745 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 3 | +| 8 | AUTO TIMER 3 | + +### Target: FLYWOOF745NANO + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 3 | +| 8 | AUTO TIMER 3 | + +## Board: FLYWOOF7DUAL + +Board is DSHOT enabled. + +### Target: FLYWOOF7DUAL + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | + +## Board: FLYWOOH743PRO + +Board is DSHOT enabled. + +### Target: FLYWOOH743PRO + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 5 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 4 | +| 11 | AUTO TIMER 15 | +| 12 | AUTO TIMER 15 | + +## Board: FOXEERF405 + +Board is DSHOT enabled. + +### Target: FOXEERF405 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | + +## Board: FOXEERF722DUAL + +Board is DSHOT enabled. + +### Target: FOXEERF722DUAL + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 1 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | + +### Target: FOXEERF722V2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 1 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | + +## Board: FOXEERF722V4 + +Board is DSHOT enabled. + +### Target: FOXEERF722V4 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 1 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | + +### Target: FOXEERF722V4_X8 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 1 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 2 | + +## Board: FOXEERF745AIO + +Board is DSHOT enabled. + +### Target: FOXEERF745AIO + +| PWM | Usage | +| --- | ----- | +| 1 | MOTOR | +| 2 | MOTOR | +| 3 | MOTOR | +| 4 | MOTOR | + +### Target: FOXEERF745AIO_V3 + +| PWM | Usage | +| --- | ----- | +| 1 | MOTOR | +| 2 | MOTOR | +| 3 | MOTOR | +| 4 | MOTOR | + +## Board: FOXEERH743 + +Board is DSHOT enabled. + +### Target: FOXEERH743 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | +| 9 | AUTO TIMER 15 | +| 10 | AUTO TIMER 15 | + +## Board: FRSKYPILOT + +Board is DSHOT enabled. + +### Target: FRSKYPILOT + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 1 | +| 6 | AUTO TIMER 1 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 2 | +| 11 | AUTO TIMER 2 | +| 12 | AUTO TIMER 2 | + +### Target: FRSKYPILOT_LED + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 1 | +| 6 | AUTO TIMER 1 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 2 | +| 11 | AUTO TIMER 2 | +| 12 | AUTO TIMER 2 | + +## Board: FURYF4OSD + +Board is DSHOT enabled. + +### Target: FURYF4OSD + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 2 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 2 | + +### Target: MAMBAF405 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 2 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 2 | + +## Board: GEPRCF405 + +Board is DSHOT enabled. + +### Target: GEPRCF405 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 1 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 3 | + +## Board: GEPRCF405_BT_HD + +Board is DSHOT enabled. + +### Target: GEPRCF405_BT_HD + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 1 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 2 | + +## Board: GEPRCF722 + +Board is DSHOT enabled. + +### Target: GEPRCF722 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | + +## Board: GEPRCF722_BT_HD + +Board is DSHOT enabled. + +### Target: GEPRCF722_BT_HD + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 3 | +| 8 | AUTO TIMER 3 | + +## Board: GEPRCF745_BT_HD + +Board is DSHOT enabled. + +### Target: GEPRCF745_BT_HD + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | + +## Board: GEPRC_F722_AIO + +Board is DSHOT enabled. + +### Target: GEPRC_F722_AIO + +| PWM | Usage | +| --- | ----- | +| 1 | MOTOR | +| 2 | MOTOR | +| 3 | MOTOR | +| 4 | MOTOR | + +### Target: GEPRC_F722_AIO_UART3 + +| PWM | Usage | +| --- | ----- | +| 1 | MOTOR | +| 2 | MOTOR | +| 3 | MOTOR | +| 4 | MOTOR | + +## Board: HAKRCF405D + +Board is DSHOT enabled. + +### Target: HAKRCF405D + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 1 | + +## Board: HAKRCF405V2 + +Board is DSHOT enabled. + +### Target: HAKRCF405V2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 1 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 3 | +| 8 | AUTO TIMER 3 | + +## Board: HAKRCF722V2 + +Board is DSHOT enabled. + +### Target: HAKRCF722V2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 1 | +| 8 | AUTO TIMER 3 | + +## Board: HAKRCKD722 + +Board is DSHOT enabled. + +### Target: HAKRCKD722 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 2 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | + +## Board: HGLRCF722 + +Board is DSHOT enabled. + +### Target: HGLRCF722 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 2 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | + +## Board: IFLIGHTF7_TWING + +Board is DSHOT enabled. + +### Target: IFLIGHTF7_TWING + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 3 | +| 8 | AUTO TIMER 3 | + +## Board: IFLIGHT_2RAW_H743 + +Board is DSHOT enabled. + +### Target: IFLIGHT_2RAW_H743 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 5 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 4 | +| 11 | AUTO TIMER 15 | +| 12 | AUTO TIMER 15 | + +## Board: IFLIGHT_BLITZ_ATF435 + +Board is DSHOT enabled. + +### Target: IFLIGHT_BLITZ_ATF435 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 2 | + +## Board: IFLIGHT_BLITZ_F722 + +Board is DSHOT enabled. + +### Target: IFLIGHT_BLITZ_F722 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 2 | + +## Board: IFLIGHT_BLITZ_F722_X1 + +Board is DSHOT enabled. + +### Target: IFLIGHT_BLITZ_F722_X1 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | + +### Target: IFLIGHT_BLITZ_F722_X1_OSD + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | + +## Board: IFLIGHT_BLITZ_F7_PRO + +Board is DSHOT enabled. + +### Target: IFLIGHT_BLITZ_F7_PRO + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 3 | +| 8 | AUTO TIMER 3 | + +## Board: IFLIGHT_BLITZ_H7_PRO + +Board is DSHOT enabled. + +### Target: IFLIGHT_BLITZ_H7_PRO + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 5 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 4 | +| 11 | AUTO TIMER 15 | +| 12 | AUTO TIMER 15 | + +### Target: IFLIGHT_BLITZ_H7_WING + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 5 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 4 | +| 11 | AUTO TIMER 15 | +| 12 | AUTO TIMER 15 | + +## Board: IFLIGHT_JBF7PRO + +Board is DSHOT enabled. + +### Target: IFLIGHT_JBF7PRO + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 2 | + +## Board: JHEMCUF405 + +Board is DSHOT enabled. + +### Target: JHEMCUF405 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | + +## Board: JHEMCUF405WING + +Board is DSHOT enabled. + +### Target: JHEMCUF405WING + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 4 | +| 2 | AUTO TIMER 4 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 2 | +| 9 | AUTO TIMER 2 | +| 10 | AUTO TIMER 2 | +| 11 | AUTO TIMER 12 | + +## Board: JHEMCUF722 + +Board is DSHOT enabled. + +### Target: JHEMCUF722 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | + +## Board: JHEMCUF745 + +Board is DSHOT enabled. + +### Target: JHEMCUF745 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 3 | +| 8 | AUTO TIMER 3 | + +## Board: JHEMCUH743HD + +Board is DSHOT enabled. + +### Target: JHEMCUH743HD + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 5 | +| 2 | AUTO TIMER 5 | +| 3 | AUTO TIMER 5 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | + +## Board: KAKUTEF4 + +Board is DSHOT enabled. + +### Target: KAKUTEF4 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 8 | + +### Target: KAKUTEF4V2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 5 | + +### Target: KAKUTEF4V23 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | + +### Target: KAKUTEF4V24 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | + +## Board: KAKUTEF4WING + +Board is DSHOT enabled. + +### Target: KAKUTEF4WING + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 1 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | + +## Board: KAKUTEF7 + +Board is DSHOT enabled. + +### Target: KAKUTEF7 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 5 | + +### Target: KAKUTEF7HDV + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 5 | + +### Target: KAKUTEF7MINI + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 5 | + +## Board: KAKUTEF7MINIV3 + +Board is DSHOT enabled. + +### Target: KAKUTEF7MINIV3 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | + +## Board: KAKUTEH7 + +Board is DSHOT enabled. + +### Target: KAKUTEH7 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | + +### Target: KAKUTEH7V2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | + +### Target: KAKUTEH7MINI + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | + +## Board: KAKUTEH7WING + +Board is DSHOT enabled. + +### Target: KAKUTEH7WING + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 1 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 5 | +| 8 | AUTO TIMER 5 | +| 9 | AUTO TIMER 15 | +| 10 | AUTO TIMER 15 | +| 11 | AUTO TIMER 3 | +| 12 | AUTO TIMER 3 | +| 13 | AUTO TIMER 3 | + +## Board: MAMBAF405US + +Board is DSHOT enabled. + +### Target: MAMBAF405US + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 1 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | + +### Target: MAMBAF405US_I2C + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 1 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | + +## Board: MAMBAF405_2022A + +Board is DSHOT enabled. + +### Target: MAMBAF405_2022A + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 1 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | + +### Target: MAMBAF405_2022B + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 1 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | + +## Board: MAMBAF722 + +Board is DSHOT enabled. + +### Target: MAMBAF722 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | + +### Target: MAMBAF722_I2C + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | + +## Board: MAMBAF722_2022A + +Board is DSHOT enabled. + +### Target: MAMBAF722_2022A + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 1 | +| 8 | AUTO TIMER 3 | + +### Target: MAMBAF722_2022B + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 1 | +| 8 | AUTO TIMER 3 | + +## Board: MAMBAF722_WING + +Board is DSHOT enabled. + +### Target: MAMBAF722_WING + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 1 | +| 8 | AUTO TIMER 3 | + +## Board: MAMBAF722_X8 + +Board is DSHOT enabled. + +### Target: MAMBAF722_X8 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 1 | +| 8 | AUTO TIMER 3 | + +## Board: MAMBAH743 + +Board is DSHOT enabled. + +### Target: MAMBAH743 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 5 | +| 2 | AUTO TIMER 5 | +| 3 | AUTO TIMER 5 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | + +### Target: MAMBAH743_2022B + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 5 | +| 2 | AUTO TIMER 5 | +| 3 | AUTO TIMER 5 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | + +### Target: MAMBAH743_2022B_GYRO2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 5 | +| 2 | AUTO TIMER 5 | +| 3 | AUTO TIMER 5 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | + +## Board: MATEKF405 + +Board is DSHOT enabled. + +### Target: MATEKF405 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 1 | +| 7 | AUTO TIMER 4 | + +### Target: MATEKF405OSD + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 1 | +| 7 | AUTO TIMER 4 | + +## Board: MATEKF405CAN + +Board is DSHOT enabled. + +### Target: MATEKF405CAN + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | + +## Board: MATEKF405SE + +Board is DSHOT enabled. + +### Target: MATEKF405SE + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 4 | +| 2 | AUTO TIMER 4 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | +| 7 | AUTO TIMER 12 | +| 8 | AUTO TIMER 12 | +| 9 | AUTO TIMER 1 | + +### Target: MATEKF405SE_PINIO + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 4 | +| 2 | AUTO TIMER 4 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | +| 7 | AUTO TIMER 12 | +| 8 | AUTO TIMER 12 | +| 9 | AUTO TIMER 1 | + +## Board: MATEKF405TE + +Board is DSHOT enabled. + +### Target: MATEKF405TE + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 2 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 2 | +| 9 | AUTO TIMER 12 | +| 10 | AUTO TIMER 13 | +| 11 | AUTO TIMER 4 | + +### Target: MATEKF405TE_SD + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 2 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 2 | +| 9 | AUTO TIMER 12 | +| 10 | AUTO TIMER 13 | +| 11 | AUTO TIMER 4 | + +## Board: MATEKF722 + +Board is DSHOT enabled. + +### Target: MATEKF722 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 1 | +| 7 | AUTO TIMER 4 | + +## Board: MATEKF722PX + +Board is DSHOT enabled. + +### Target: MATEKF722PX + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 2 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 4 | + +### Target: MATEKF722PX_PINIO + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 2 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 4 | + +### Target: MATEKF722WPX + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 2 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 4 | + +## Board: MATEKF722SE + +Board is DSHOT enabled. + +### Target: MATEKF722SE + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 2 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | + +### Target: MATEKF722MINI + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 2 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | + +## Board: MATEKF765 + +Board is DSHOT enabled. + +### Target: MATEKF765 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 2 | +| 2 | AUTO TIMER 2 | +| 3 | AUTO TIMER 5 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 4 | +| 11 | AUTO TIMER 9 | +| 12 | AUTO TIMER 9 | + +### Target: MATEKF765SE + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 2 | +| 2 | AUTO TIMER 2 | +| 3 | AUTO TIMER 5 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 4 | +| 11 | AUTO TIMER 9 | +| 12 | AUTO TIMER 9 | + +## Board: MATEKH743 + +Board is DSHOT enabled. + +### Target: MATEKH743 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 5 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 4 | +| 11 | AUTO TIMER 15 | +| 12 | AUTO TIMER 15 | + +### Target: MATEKH743HD + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 5 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 4 | +| 11 | AUTO TIMER 15 | +| 12 | AUTO TIMER 15 | + +## Board: MICOAIR405MINI + +Board is DSHOT enabled. + +### Target: MICOAIR405MINI + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | +| 9 | AUTO TIMER 12 | + +## Board: MICOAIR405V2 + +Board is DSHOT enabled. + +### Target: MICOAIR405V2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | +| 9 | AUTO TIMER 12 | +| 10 | AUTO TIMER 12 | + +## Board: MICOAIR743 + +Board is DSHOT enabled. + +### Target: MICOAIR743 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 1 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 4 | + +### Target: MICOAIR743_EXTMAG + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 1 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 4 | + +## Board: NEUTRONRCF435MINI + +Board is DSHOT enabled. + +### Target: NEUTRONRCF435MINI + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 4 | +| 2 | AUTO TIMER 4 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 3 | + +## Board: NEUTRONRCF435SE + +Board is DSHOT enabled. + +### Target: NEUTRONRCF435SE + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 3 | +| 8 | AUTO TIMER 3 | + +## Board: NEUTRONRCF435WING + +Board is DSHOT enabled. + +### Target: NEUTRONRCF435WING + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 4 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 1 | +| 7 | AUTO TIMER 3 | +| 8 | AUTO TIMER 2 | + +## Board: NEUTRONRCH7BT + +Board is DSHOT enabled. + +### Target: NEUTRONRCH7BT + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 5 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | + +## Board: DYSF4PRO + +Board is DSHOT enabled. + +### Target: DYSF4PRO + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 1 | + +### Target: DYSF4PROV2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 1 | + +### Target: OMNIBUSF4 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 1 | + +### Target: OMNIBUSF4PRO + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 1 | + +### Target: OMNIBUSF4V3_S5_S6_2SS + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | + +### Target: OMNIBUSF4V3_S5S6_SS + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | + +### Target: OMNIBUSF4V3_S6_SS + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 5 | + +### Target: OMNIBUSF4V3 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 1 | + +## Board: OMNIBUSF7 + +Board is DSHOT enabled. + +### Target: OMNIBUSF7 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | + +### Target: OMNIBUSF7V2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | + +## Board: OMNIBUSF7NXT + +Board is DSHOT enabled. + +### Target: OMNIBUSF7NXT + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | + +## Board: PIXRACER + +Board is not DSHOT enabled. + +### Target: PIXRACER + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 1 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 1 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | + +## Board: PRINCIPIOTF7 + +Board is DSHOT enabled. + +### Target: PRINCIPIOTF7 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 1 | +| 6 | AUTO TIMER 1 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 2 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 4 | + +## Board: REVO + +Board is DSHOT enabled. + +### Target: REVO + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 5, ANY | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | +| 9 | AUTO TIMER 8 | +| 10 | AUTO TIMER 8 | + +## Board: RUSH_BLADE_F7 + +Board is DSHOT enabled. + +### Target: RUSH_BLADE_F7 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | + +### Target: RUSH_BLADE_F7_HD + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | + +## Board: SAGEATF4 + +Board is DSHOT enabled. + +### Target: SAGEATF4 + +| PWM | Usage | +| --- | ----- | +| 1 | MOTOR | +| 2 | MOTOR | +| 3 | MOTOR | +| 4 | MOTOR | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 3 | +| 8 | AUTO TIMER 3 | + +## Board: SDMODELH7V1 + +Board is DSHOT enabled. + +### Target: SDMODELH7V1 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 2 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | + +## Board: SKYSTARSF405HD + +Board is DSHOT enabled. + +### Target: SKYSTARSF405HD + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 4 | +| 2 | AUTO TIMER 4 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 2 | + +### Target: SKYSTARSF405HD2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 4 | +| 2 | AUTO TIMER 4 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | + +## Board: SKYSTARSF722HD + +Board is DSHOT enabled. + +### Target: SKYSTARSF722HD + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 4 | +| 4 | AUTO TIMER 4 | + +### Target: SKYSTARSF722HDPRO + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 4 | +| 4 | AUTO TIMER 4 | + +### Target: SKYSTARSF722MINIHD + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 4 | +| 4 | AUTO TIMER 4 | + +## Board: SKYSTARSH743HD + +Board is DSHOT enabled. + +### Target: SKYSTARSH743HD + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 4 | +| 4 | AUTO TIMER 4 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 5 | +| 8 | AUTO TIMER 5 | + +## Board: SPEDIXF405 + +Board is DSHOT enabled. + +### Target: SPEDIXF405 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | + +## Board: SPEDIXF722 + +Board is DSHOT enabled. + +### Target: SPEDIXF722 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | + +## Board: SPEEDYBEEF4 + +Board is DSHOT enabled. + +### Target: SPEEDYBEEF4 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 1 | +| 7 | AUTO TIMER 4 | + +### Target: SPEEDYBEEF4_SFTSRL1 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 1 | +| 7 | AUTO TIMER 4 | + +### Target: SPEEDYBEEF4_SFTSRL2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 1 | +| 7 | AUTO TIMER 4 | + +## Board: SPEEDYBEEF405MINI + +Board is DSHOT enabled. + +### Target: SPEEDYBEEF405MINI + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 4 | +| 2 | AUTO TIMER 4 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | + +## Board: SPEEDYBEEF405V3 + +Board is DSHOT enabled. + +### Target: SPEEDYBEEF405V3 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 4 | +| 2 | AUTO TIMER 4 | +| 3 | AUTO TIMER 4 | +| 4 | AUTO TIMER 4 | +| 5 | AUTO TIMER 3 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 3 | +| 8 | AUTO TIMER 3 | +| 9 | AUTO TIMER 1 | + +## Board: SPEEDYBEEF405V4 + +Board is DSHOT enabled. + +### Target: SPEEDYBEEF405V4 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 4 | +| 2 | AUTO TIMER 4 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | +| 7 | AUTO TIMER 2 | +| 8 | AUTO TIMER 2 | +| 9 | AUTO TIMER 12 | +| 10 | AUTO TIMER 12 | + +## Board: SPEEDYBEEF405WING + +Board is DSHOT enabled. + +### Target: SPEEDYBEEF405WING + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 4 | +| 2 | AUTO TIMER 4 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 2 | +| 9 | AUTO TIMER 2 | +| 10 | AUTO TIMER 2 | +| 11 | AUTO TIMER 12 | + +## Board: SPEEDYBEEF7 + +Board is DSHOT enabled. + +### Target: SPEEDYBEEF7 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 1 | +| 6 | LED, AUTO TIMER 4 | + +## Board: SPEEDYBEEF745AIO + +Board is DSHOT enabled. + +### Target: SPEEDYBEEF745AIO + +| PWM | Usage | +| --- | ----- | +| 1 | MOTOR | +| 2 | MOTOR | +| 3 | MOTOR | +| 4 | MOTOR | + +## Board: SPEEDYBEEF7MINI + +Board is DSHOT enabled. + +### Target: SPEEDYBEEF7MINI + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 2 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | + +### Target: SPEEDYBEEF7MINIV2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 2 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | + +## Board: SPEEDYBEEF7V2 + +Board is DSHOT enabled. + +### Target: SPEEDYBEEF7V2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 1 | +| 2 | AUTO TIMER 1 | +| 3 | AUTO TIMER 1 | +| 4 | AUTO TIMER 3 | + +## Board: SPEEDYBEEF7V3 + +Board is DSHOT enabled. + +### Target: SPEEDYBEEF7V3 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 2 | +| 2 | AUTO TIMER 2 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 4 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 3 | +| 7 | AUTO TIMER 3 | +| 8 | AUTO TIMER 3 | + +## Board: SPRACINGF4EVO + +Board is not DSHOT enabled. + +### Target: SPRACINGF4EVO + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 8 | +| 2 | AUTO TIMER 8 | +| 3 | AUTO TIMER 8 | +| 4 | AUTO TIMER 8 | +| 5 | AUTO TIMER 10 | +| 6 | AUTO TIMER 11 | +| 7 | AUTO TIMER 3 | +| 8 | AUTO TIMER 3 | + +## Board: TAKERF722SE + +Board is DSHOT enabled. + +### Target: TAKERF722SE + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | + +## Board: TBS_LUCID_FC + +Board is DSHOT enabled. + +### Target: TBS_LUCID_FC + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | + +## Board: TBS_LUCID_H7 + +Board is DSHOT enabled. + +### Target: TBS_LUCID_H7 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 5 | +| 4 | AUTO TIMER 5 | +| 5 | AUTO TIMER 5 | +| 6 | AUTO TIMER 5 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | +| 9 | AUTO TIMER 4 | +| 10 | AUTO TIMER 4 | +| 11 | AUTO TIMER 15 | +| 12 | AUTO TIMER 15 | + +## Board: TMOTORF7V2 + +Board is DSHOT enabled. + +### Target: TMOTORF7V2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 4 | +| 6 | AUTO TIMER 4 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | +| 9 | PWM, SERVO | + +## Board: TMOTORVELOXF7V2 + +Board is DSHOT enabled. + +### Target: TMOTORVELOXF7V2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 3 | +| 2 | AUTO TIMER 3 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 3 | +| 5 | AUTO TIMER 2 | +| 6 | AUTO TIMER 2 | +| 7 | AUTO TIMER 4 | +| 8 | AUTO TIMER 4 | + +## Board: TUNERCF405 + +Board is DSHOT enabled. + +### Target: TUNERCF405 + +| PWM | Usage | +| --- | ----- | +| 1 | MOTOR | +| 2 | MOTOR | +| 3 | MOTOR | +| 4 | MOTOR | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 8 | + +## Board: ZEEZF7 + +Board is DSHOT enabled. + +### Target: ZEEZF7 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 4 | +| 2 | AUTO TIMER 4 | +| 3 | AUTO TIMER 4 | +| 4 | AUTO TIMER 3 | + +### Target: ZEEZF7V2 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 4 | +| 2 | AUTO TIMER 4 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 1 | + +### Target: ZEEZF7V3 + +| PWM | Usage | +| --- | ----- | +| 1 | AUTO TIMER 4 | +| 2 | AUTO TIMER 4 | +| 3 | AUTO TIMER 3 | +| 4 | AUTO TIMER 2 | +| 5 | AUTO TIMER 8 | +| 6 | AUTO TIMER 8 | +| 7 | AUTO TIMER 8 | +| 8 | AUTO TIMER 1 | diff --git a/versioned_docs/version-8.0.1/advanced/Building-custom-firmware.md b/versioned_docs/version-8.0.1/advanced/Building-custom-firmware.md new file mode 100644 index 0000000..db52862 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Building-custom-firmware.md @@ -0,0 +1,218 @@ +--- +title: Building Custom Firmware +--- + +# Rationale + +Prebuilt targets may not include the features you wish to use. If a target already exists, it is relatively simple to build your own custom firmware. + +This guide provides a high level overview. It is **not** a detailed development guide. + +# Prerequisite + +You need a working development environment. There is [developer / build environment documentation](https://github.com/iNavFlight/inav/tree/master/docs/development) for the major platforms (Linux, MacOS, Windows). + +# Target Specific Files + +## Overview + +For basic configuration changes, the files are found under `src/main/targets/NAME`. At the top level this includes a separate directory for each target. + +This article considers a prototype flight controller `QUARKVISION` that was never put into production. + +``` +$ cd inav/src/main/target +$ ls QUARKVISION +CMakeFiles CMakeLists.txt README.md target.h +cmake_install.cmake config.c target.c +``` + +The `CMakefles` directory and `cmake_install.cmake` are generated by the build system; the other files are: + +* `CMakeLists.txt` : Mandatory, defines the target name and variants +* `README.md` : Optional, information about the target +* `target.h` : Mandatory, defines capabilities and definitions (e.g. sensors, pin definitions) +* `target.c` : Mandatory, defines timers and usage (e.g. for motors and servos) +* `config.c` : Mandatory, defines configuration defaults (RX type etc). + +### `CMakeLists.txt` + +The `QUARKVISION` example contains a single line: + +``` +target_stm32f405xg(QUARKVISION HSE_MHZ 16 SKIP_RELEASES) +``` +Here is the definition for: +* The processor class `stm32f405xg` +* The target name `QUARKVISION` +* Additional parameters `HSE_MHZ 16` (an optional parameter defining a non-default high-speed external (HSE) oscillator clock required by this board) and `SKIP_RELEASES` as this is not an official target. + +If we had other variants, for example a V2 variant with different sensors, we could add another line, for example: + +``` +target_stm32f405xg(QUARKVISION_V2 HSE_MHZ 16 SKIP_RELEASES) +``` + +We can then reference the `QUARKVISION_V2` in `target.c` or `target.h` to handle the different capabilities of each variation. + +See [the developer documentation](https://github.com/iNavFlight/inav/blob/master/docs/development/Cmake%20usage.md) for more information, including a more detailed `CMakeLists.txt` and a list of processor options. + +## `target.h` + +`target.h` contains hardware definitions, a fragment is below: + +``` +#pragma once + +#define TARGET_BOARD_IDENTIFIER "QRKV" +#define USBD_PRODUCT_STRING "QuarkVision" + +... + +#define BEEPER PC15 +#define BEEPER_INVERTED +#define USE_UART_INVERTER +#define INVERTER_PIN_UART2 PB2 // PB2 used as inverter select GPIO +#define INVERTER_PIN_UART2_RX PB2 // PB2 used as inverter select GPIO + +#define MPU6000_CS_PIN PC1 +#define MPU6000_SPI_BUS BUS_SPI2 + +#define USE_IMU_MPU6000 +#define IMU_MPU6000_ALIGN CW270_DEG + +// MPU6000 interrupts +#define USE_EXTI +#define GYRO_INT_EXTI PC0 +#define USE_MPU_DATA_READY_SIGNAL + +//*************** MAG ***************************** + +#define USE_MAG +#define MAG_I2C_BUS BUS_I2C3 +#define USE_MAG_HMC5883 +#define USE_MAG_MAG3110 +#define USE_MAG_QMC5883 +#define USE_MAG_AK8963 +#define USE_MAG_AK8975 +... +``` + +Of note: + +* `TARGET_BOARD_IDENTIFIER` this should be unique in the first **4 bytes**. If the mythical `QUARKVISION_V2` existed, it would need a separate ID. For example: + +``` +#if defined(QUARKVISION_V2) +# define TARGET_BOARD_IDENTIFIER "QVV2" +#else +# define TARGET_BOARD_IDENTIFIER "QRKV" +#endif +``` + +This pattern is required for each variation and the features affected by the variation. + +The file fragment then defines hardware options: +* Pins, Busses +* Sensors, for example the `#define USE_MAG` stanza which defines the `MAG_I2C_BUS` I2C bus for the compass, and the different compass types supported on this board. + +There will similar stanzas for all the available sensor components. + +### `target.c` + +`target.c` defines the timer and channel usage. The association between timers and channels is provided by the vendor MCU documentation. This defines an array of `timerHardware_t`, in turn defined by the `DEF_TIM` (define timer) macro. + +``` +... +timerHardware_t timerHardware[] = { + DEF_TIM(TIM1, CH3, PA10, TIM_USE_PPM, 0, 0), // S1_IN_PPM A01 + DEF_TIM(TIM8, CH2, PC7, TIM_USE_ANY, 0, 0), // SSERIAL1 RX c07 + DEF_TIM(TIM8, CH1, PC6, TIM_USE_ANY, 0, 0), // SSERIAL1 TX + DEF_TIM(TIM2, CH1, PA15, 0, 0, 0), // LED A15 + DEF_TIM(TIM3, CH3, PB0, TIM_USE_OUTPUT_AUTO, 0, 0), // S1_OUT + DEF_TIM(TIM3, CH4, PB1, TIM_USE_OUTPUT_AUTO, 0, 0), // S2_OUT + DEF_TIM(TIM12, CH1, PB14, TIM_USE_OUTPUT_AUTO, 0, 0), // S3_OUT + DEF_TIM(TIM12, CH2, PB15, TIM_USE_OUTPUT_AUTO, 0, 0), // S4_OUT + DEF_TIM(TIM11, CH1, PB9, TIM_USE_OUTPUT_AUTO, 0, 0), // S5_OUT + DEF_TIM(TIM10, CH1, PB8, TIM_USE_OUTPUT_AUTO, 0, 0), // S6_OUT + DEF_TIM(TIM3, CH2, PB5, TIM_USE_OUTPUT_AUTO, 0, 0), // S7_OUT + DEF_TIM(TIM3, CH1, PB4, TIM_USE_OUTPUT_AUTO, 0, 0), // S8_OUT + DEF_TIM(TIM8, CH3, PC8, TIM_USE_OUTPUT_AUTO, 0, 0), // S9_OUT + DEF_TIM(TIM2, CH2, PB3, TIM_USE_OUTPUT_AUTO, 0, 0), // S10_OUT +}; +... +``` + +The parameters are: + +* `TIMn`: The timer +* `CHn` : The channel +* `Pxy` : The hardware (MCU) pin +* The usage function(s) available in this pin. Note that each timer is assigned a rate defined by function, so it is inadvisable to have both `MOTOR` and `SERVO` definition on the same timer. `TIM_USE_OUTPUT_AUTO` will let INAV assign the output to either `MOTOR` or `SERVO` automatically. +* The final two parameters (`flags`, `dmavar` are hardware specific / required for DMA (e.g. DSHOT), which is turn is defined by `#define USE_DSHOT` in `target.h`. See vendor's technical definitions perhaps compared to comparable targets. The example target here does not define `USE_DSHOT` and the values are 0. These parameters provide a DMA descriptor table compatible with Betaflight. + +## Adding a new source file + +If a new source file is added **outside of the `target/NAME` directory**, it must be added to the top level `src/main/CMakeLists.txt`. + +## Further reading + +* Read the fine source, base your target / changes on a **supported target** with similar characteristics +* Read the [developer / build environment documentation](https://github.com/iNavFlight/inav/tree/master/docs/development) + +## Other recommendations + +### Use a separate branch + +``` +$ git checkout -b my_super_special_branch +``` + +This will isolate your work from the base repo and facilitate making a pull request if you decide to contribute your changes back to the project. + +### Building + +Build the target. + +``` +$ make -j $(nproc) QUARKVISION +## or (using ninja as the build manager) +$ ninja QUARKVISION +... +[365/366] Linking C executable bin/QUARKVISION.elf +Memory region Used Size Region Size %age Used + FLASH: 519160 B 896 KB 56.58% + FLASH_CONFIG: 0 GB 128 KB 0.00% + RAM: 76476 B 128 KB 58.35% + CCM: 13852 B 64 KB 21.14% + BACKUP_SRAM: 0 GB 4 KB 0.00% + MEMORY_B1: 0 GB 0 GB +[366/366] cd /home/jrh/Projects/fc/ina.../inav/build/inav_6.0.0_QUARKVISION.hex +``` + +## Fix any errors / warnings + +If you changes introduce compiler warnings, please fix them. Submissions (pull requests) with compiler errors / warnings will not be accepted. If your changes overflow the flash size, consider removing unwanted features in `target.h`. Your `target.h` can always `#undef` generic features from `src/main/target/common.h` (e.g. unwanted RX or telemetry options). + +## Commit your changes + +You can now commit the changes to your branch, e.g. `git commit -a -m "my descriptive commit message"` ; otherwise if one wanted to update to the upstream the source tree (e.g.) + +``` +git pull +``` + +git will complain that there are uncommitted changes and won't perform the update. +* Commit to your private branch as above ; or +* `$ git reset --hard` before pulling ; or +* Stash away the original files and restore them after pulling. + +The developer documentation has more information on synchronising a custom branch with upstream Github. + +## Other tools and resources + +### Migrate Betaflight Targets + +There is a [script in the repo](https://github.com/iNavFlight/inav/blob/mosca-target-converter/src/utils/bf2inav.py) that can help automate conversion of Betaflight targets to INAV. The developer, @mosca, will be grateful for any reports of success (or failure). + +Paweł Spychalski has also made YouTube videos on the subject. diff --git a/versioned_docs/version-8.0.1/advanced/Calibration-Tab.md b/versioned_docs/version-8.0.1/advanced/Calibration-Tab.md new file mode 100644 index 0000000..e11c529 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Calibration-Tab.md @@ -0,0 +1,99 @@ +--- +title: Calibration Tab +--- + +:::info +**Important:** INAV requires you to follow the accelerometer calibration steps below. These steps are different to Cleanflight & Betaflight. So don't skip reading this section, **it's vitally important**. +::: + +Modern accelerometer sensors are precise, but they require calibration if we want accurate measurements. + +The sensors on your flight controller might be biased and gains on different axes might be different. INAV uses an advanced 6-point calibration to take care of all irregularities your flight controller sensors might have. + +## Accelerometer calibration steps + +Unlike the simple level calibration used in cleanflight & betaflight INAV uses a "6 point accelerometer calibration" process. + +You may find this easier to do more accurately prior to installing the flight controller in your model and this procedure MUST be done referenced to the marked orientation on the board. + +See "calibration procedure" below: + +**Note:** If the flight controller is mounted in another angle or upside down, do the calibration steps with the flight controller pointing as shown in the pictures, not based on the orientation of the quad or fixed wing model itself, otherwise calibration won´t work. + +0. Connect the model to the "Configurator" software, select the "Setup" tab. + +1. Place the model level (_position 1 as shown in the picture_) and press the "Calibrate Accelerometer" button. Advanced calibration has been activated and has recorded the first data point. + +2. Place model on all sides in sequence (_positions 2 to 6_): on its back, right side, nose up, left side, nose down. Press "Calibrate Accelerometer" button for in each position. The advanced calibration algorithm will record 2nd to 6th data points. + +3. After all 6 positions have been recorded advanced calibration will calculate offsets and gains, then store them in the flight controllers EEPROM. Accelerometer calibration complete (YAY!). + +4. Use the CLI tab to verify that **accgain_x**, **accgain_y** and **accgain_z** parameters are **NOT 4096**. If they are, algorithm failed to converge, calibration failed and needs to be repeated. In addition, **acczero_x**, **acczero_y**, **acczero_z**, should **not be 0** any more. + +There is no need to place the model perfectly aligned, the algorithm does not care about exact positions as long as they are close to 90 degree apart and copter is stationary in every position. + +## Board Orientation and Level Calibration + +If you have your board rotated in any way, change board alignment to match (_see the configuration tab in the INAV configurator_). + +You can verify the correct board orientation by banking your your aircraft left and right, forward and back and rotate left and right. In all examples the 3D model image in configurator **must** move accordingly. + +Accelerometer calibration **does not** record a leveled model. + +For level flight and navigation features to work you need to trim the firmware to level flight using "Board Alignment" on the "Configuration" tab. The readings should show close to 0.0 on all axis when the aircraft is laying flat. + +To trim out unleveled flight / drift using stick commands is really useful. + +**Note:** If using CLI to set up board alignment unlike Cleanflight firmware board alignment angles are set in degrees*10, so if you need to trim your board 1.5 degrees you should enter "15". + +## Compass Calibration + +Accurately setting up the compass is vital because it is the primary source of heading information. + +Without an accurate heading the drone will not move in the correct direction in autopilot modes (POSHOLD, RTH, Waypoint). This can lead to circling (aka “toilet-bowling”) or even fly-aways. + +The magnetometer (_basically a compass_) measures magnetic field strength so it should be placed a**way from any sources of magnetic interference** - power wires, ESCs, motors, beepers, metal parts of the frame, video transmitters, Llamas & so on... + +The best way is to place the compass on a mast along with GPS module. When an external compass is used remember to set correct "align_mag", see the [INAV CLI variables](https://github.com/iNavFlight/inav/blob/master/docs/Cli.md) for more information. Compass must be mounted parallel to f/c. If not please follow the guide in [setting-up-the-compass-alignment](../quickstart/GPS--and-Compass-setup.md#setting-up-the-compass-alignment). + +When using an external magnetometer 9/10 times you need to physically remove (_remove chip from board or cut a trace_) the internal one if you have on. + +You can't use two identical chips/magnetometers on the same I2C bus. The 1/10 time you dont need to physically remove your internal mag is when you have different magnetometers on the flight controller and the external one. Example you cannot use two HMC5883L magnetometers. + +### Performing the Calibration + +Calibrate with flight battery powering up the aircraft. + +Press "Calibrate Magnetometer" button. + +You have 30 seconds to hold the copter in the air and rotate it so that each side (front, back, left, right, top and bottom) points down towards the earth. However the algorithm is smart enough to calculate the proper calibration values even if you simply wave the copter in the air for 30 seconds after pressing "Calibrate Magnetometer" button. + +### Compass calibration using stick functions +Calibrating Mag/Compass without the need to be connected to a computer can extremely convenient while out in the field. The [Controls.md](https://github.com/iNavFlight/inav/blob/master/docs/Controls.md) wiki describes the various capabilities of adjusting the craft's controls using the TX sticks. As described in this document, calibrate the compass by moving the left stick up and to the right while at the same time, move the right stick down and to the center. The flight controller will sound two quick beeps indicating the start of the calibration. Move the craft as indicated in the paragraph above. After 30 seconds, the flight controller will sound a single beep indicating the completion of the process. + +### Verifying that compass is calibrated properly + +0. Use the CLI to verify that **magzero_x**, **magzero_y** and **magzero_z** parameters are **NOT 0** any more. If they are, algorithm failed to converge, calibration failed and needs to be repeated. +1. Connect the copter to iNAV Configurator and observe the attitude values on the "Setup" screen (values of Heading, Pitch and Roll). Point your models nose North and verify that heading is reading 0 deg. Tilt the copter 30 degrees forward, right, left and back while observing the Heading value. Value of 0 deg shouldn't change more than several degrees. Repeat the process with models nose pointing East (heading=90 deg), South (heading=180 deg), West (heading=270 deg). + +If the value is incorrect when copter is level, you likely don't have **align_mag** CLI variable set to proper compass alignment value. If heading value is correct when copter is level but drifts when you tilt the model, then your should re-calibrate the compass. + +2. Also, remember to set magnetic declination to a proper value on the "Configuration" screen. +The magnetic declination of your specific location can be found here: [magnetic-declination.com](http://magnetic-declination.com). + +If your magnetic declination readings are e.g. +3° 34' , the value entered in the INAV configurator is 3.34 (_3,34 in some locales_). In the CLI, the same effect would be `set mag_declination = 334`. For west declination, use a minus value, e.g. for 1° 32' W, `set mag_declination = -132`. In all cases (both CLI and GUI), the least significant digits are **minutes**, not decimal degrees. + +Since INAV 1.2, on non-F1 targets, one can use an automatic declination setting, which is more than accurate enough for INAV. `set inav_auto_mag_decl = ON`. + + +## Gyroscope Calibration + +Gyroscope calibration, or rather bias recording, is performed on every startup. **Your model should be stationary while powering up. ** + +With most models, connecting batteries while keeping the craft still can be difficult, simply ensure the craft is placed on the ground (or somewhere solid and still) for 5 seconds as soon as possible after powering up. Gyro auto calibration will only run when no motion is detected + +**Note:** Under normal conditions there is no need for a manual calibration procedure, but if required this can be performed via stick commands. + +## Backup and Restore the Settings + +To avoid going through full calibration after resetting the configuration new CLI settings are introduced to get and set accelerometer offsets and gains: **acczero_x**, **acczero_y**, **acczero_z**, **accgain_x**, **accgain_y**, **accgain_z**. The same applies to **magzero_x**, **magzero_y** and **magzero_z**. diff --git a/versioned_docs/version-8.0.1/advanced/Custom-OSD-Elements.md b/versioned_docs/version-8.0.1/advanced/Custom-OSD-Elements.md new file mode 100644 index 0000000..1677f1e --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Custom-OSD-Elements.md @@ -0,0 +1,104 @@ +--- +title: Custom OSD Elements +--- + +One of INAV's most useful features has been the [Programming Framework](https://github.com/iNavFlight/inav/blob/master/docs/Programming%20Framework.md) . Allowing users to customize their flight logic, to suit their requirements. But, from the release of INAV 7.0.0. There is the addition of _custom OSD_ elements. So users can add their own elements, and display relevant data derived from the Programming framework. + +The settings are found under the Configurator OSD tab. + +![Custom elements GV](https://github.com/iNavFlight/inav/assets/47995726/26c8b12d-27da-4a10-9ce7-e8b42289623b) +![elements](https://github.com/iNavFlight/inav/assets/47995726/33bb28e2-d090-4716-b01c-6a0aec59f9eb) + +Each custom OSD element has three configurable spaces, plus an activation condition. You don't need to use all three configuration spaces, and the element can always be active. The three configurable spaces can either be a character from the OSD font, data from the programming framework, or text. The character numbers can be found in [this document](https://github.com/iNavFlight/inav-configurator/blob/master/resources/osd/INAV%20Character%20Map.md). These are the options available in each configurable space. + +| Options | Description | +| ------------ | ----------------------------------------------------------------------------------------------------------- | +| **None** | Don't use any selection in the drop-down | +| **Text** | Displays text. 0 - 15 characters which can include [`A-Z`] [`0-9`] [`^!.\*`] * Text can only be used once in a single element, due to memory limitations | +| **Icon Static**| User can select a [character](https://github.com/iNavFlight/inav-configurator/blob/master/resources/osd/INAV%20Character%20Map.md) number from the [INAV OSD](https://github.com/iNavFlight/inav-configurator/blob/master/resources/osd/analogue/impact.png) , they want to display as a descriptive reference | +| **ICON from Global Variable** | Displays the icon, driven from a global variable +| **ICON from Logic Condition** | Displays the icon, driven from a logic condition (Added in INAV 8.0.0) | +| **Global Variable #** | Data within the global variable can be displayed in these decimal format's [`00000` `0000` `000` `00` `0` `0000.0` `000.00` `000.0` `00.00` `00.0` `0.0`] (Some formats added in INAV 8.0.0) | +| **Logic Condition #** | Status of the logic condition can be displayed in these decimal format's [`00000` `0000` `000` `00` `0` `0000.0` `000.00` `000.0` `00.00` `00.0` `0.0`] (Added in INAV 8.0.0) | +| **VISIBILITY** | Choose when to display custom message - **Always** or as the result of a **Global Variable** or **Logic Condition** being met | + +:::note +Currently, only the first 255 characters are supported by custom OSD elements. +::: + +This [video](https://youtu.be/BqkDo-2O7js?si=_vOAHQn2N0MGbKdl&t=81) made by the features' developer. Shows an example of a custom element, which is the **!GROUND!** message, and a GV containing Lidar altitude above the surface. With a static altitude character beside it. + +### Working with numbers +You may have noticed that there are plenty of different options for showing different formats of numbers. All numbers can be either positive or negative. Which is why you will see an empty space to the left of a positive number. The whole numbers are pretty self explanatory. Just choose the appropriate number of digits for the number you are displaying. But, the numbers with decimal places need a little more explanation. In the programming framework, there are no floating point numbers. So no decimal spaces. So how do we display a number with decimal spaces? We are simply faking it with maths. + +As an example, we want to show our distance to home in kilometres. The **Flight** - **Home distance [m]** operand in the programming framework returns metres. We also want to show 2 decimal places. So how do we do it? Simply, take the calculation we would normally need, and shift it by the number of decimal places. For example, to convert our metres to kilometres, we need to divide the metres by 1000. But, If we want two decimal places, we shift the 1000 we use for the calculation right by 2. So instead of performing *metres ÷ 1000*. We perform *metres ÷ 10*. + +To see that with real numbers. Imagine that **Flight** - **Home distance [m]** is outputting 7243m. Remember that all results are whole numbers, no floating point. So *7243 ÷ 10 = 724*. Out custom OSD element display then takes that number and inserts the decimal place in the correct place. So, our OSD will show 7.24km. + + + +*** + +## This is an example of a simple stall warning indicator + +The logic checks if the _Virtual Airspeed_ has dropped below 30km/h, with the _Pitch_ being above 20°, or the _Throttle_ being below 48%. Warning of a potential stall.. Being that most tip stall conditions are induced unknowingly by the pilot, this can help avoid such events. + +Makes sure you enable the _Virtual Pitot_ if you do not use a real Pitot.. To better suit your aircraft. Pitch angle, Throttle and Airspeed values should be altered for best detection. + +![Air speed stall warning logic](https://github.com/user-attachments/assets/0f9ecb36-7903-476f-a843-5c53cfcbeac0) + +The message will display STALL WARNING with a warning symbol (221). The stall message will only appear when the conditions are met. + +![OSD warning](https://github.com/iNavFlight/inav/assets/47995726/1d479cda-6620-4025-9958-fb693149d886) + +:::note +Please note that stalls are not caused directly by the speed of the aircraft. Stalls are caused by too little airflow over the wing. Which is dependent on airspeed at the attitude of the aircraft. So it may not detect all instances of a stall. Please do not be complacent. Aircraft with higher wing loading or poor stall characteristics should always be flown with caution when lowering the throttle to conserve energy. +::: + +## This is an example of a basic switch indicator +While there are switch indicators for the OSD. Using the Custom OSD elements can give you much more control over this. This is an example of how to set them up. + +On the Programming Framework page. Set up the Logic Conditions for the switch. + +![Programming for a switch indicator](https://github.com/user-attachments/assets/68490129-b2fb-4441-8437-35e2ac824cfe) + +- LC0 takes the channel that you want to display the switch for, and subtracts 1000. This gives the switch a 0-1000 range. +- LC1 maps that range to 3 values: 0, 1, and 2. +- LC2 Adds the value from LC1 to the first switch indicator icon. 208 is switch down, 209 is switch in the middle, and 210 is switch up. +- LC3 sets GVAR 0 to the value from LC2. **Note** In INAV 8.0.0, you do not need LC3. You can use the output from LC2 directly to select the icon. + +Then on the OSD page. Add the Custom OSD element to handle the programming. + +![Custom OSD Settings](https://github.com/user-attachments/assets/8a20e38d-4373-4ed9-ab7d-33f2fcc6df32) + +- Setup the icon. For INAV 7.1.x you will need to set this to **Icon Global Variable**. You would set the GV to the variable you chose in the programming. In this example, GV 0. With INAV 8.0.0 onwards, we don't need to use the Global Variable. So set this to use **Icon from Logic Condition**. Then set the LC to the appropriate Logic Condition. LC2 in our example. +- Next, we simple add the **Text** for what the switch represents. + +If you want to swap the icon and text sides. You simply switch the text and icon. + +:::note +Please note that Custom element previews are added in INAV 8.0.0. Currently, the Custom OSD icons in the OSD preview cannot retrieve the actual value from the global variable. The actual value of Global Variable 0 in the above example is 209. Which displays the mid switch position +![](/img/content/209.png) +::: + +## Example: Showing the altitude in different measurement units +In this example, we have our OSD set to metric. But some of the guys we fly with only understand feet. So what we are going to do is be nice, and have both measurement units on our OSD. We have the standard **Altitude** OSD element showing us the altitude in metres. Now we are going to add a second altitude custom element in feet. First, hop to the **Programming** page and we will perform the calculations. + +![image](https://github.com/user-attachments/assets/e48bd2b5-0810-45b8-a0ef-83c31140c33e) + +The first LC, we multiply the altitude in cm by 100. This allows us to divide with more accuracy. The second LC, we are dividing the result of LC0 by 3048 to get the result in feet. Note that by multiplying by 100 and dividing by 3048. We are more accurate, but will max out at 7045ft. Of course, we're not flying anywhere near that altitude. This calculation is just to show the limitations. + +Next, head back to the **OSD** page and enable Custom Element 1. We will now make this show the altitude in feet. + In the first configuration space, we choose **Logic Condition 0000** from the list. We will now choose LC1, which is the logic condition performing the divide. We can use 4 digits of precision because we know the number will not go over 7045. Next, we select **Static Icon** for the seconds configuration space. The character number is **120**, so enter that. You can see that the OSD preview has updated and is showing the a 4 digit number and the correct **Alt Ft** character. + +But, what if we only wanted to this altitude when we are under 400ft for example. We can do this by adding one more line on the **Programming** page. + +![image](https://github.com/user-attachments/assets/61d50f4b-5cbe-4b99-a741-ff0e7a1c7326) + +The third logic condition is only active if we are below 400 feet. So back on the **OSD** page. We can change the visibility configuration to **Logic Condition** and **LC2**. This will only show our custom element when the altitude is below 400 ft. + +![image](https://github.com/user-attachments/assets/7483e053-2369-49e7-9a7f-9de8fbae6aad) + +## Custom OSD Elements video tutorials + +[How to add custom OSD elements in INAV - Mr.D RC](https://youtu.be/DR6rxMLTP44) diff --git a/versioned_docs/version-8.0.1/advanced/Custom-mixes-for-exotic-setups.md b/versioned_docs/version-8.0.1/advanced/Custom-mixes-for-exotic-setups.md new file mode 100644 index 0000000..bdc89d4 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Custom-mixes-for-exotic-setups.md @@ -0,0 +1,259 @@ +--- +title: Custom Mixes for Exotic Setups +--- + +This page documents custom mixer for exotic platforms. As this page was written prior to inav 2.0, you are advised to verify the `smix` syntax compared to your firmware version. It is also necessary to set the `platform_type` for your platform. + +## Quadcopter + configuration [Motors on front, rear, left and right] + +``` +mmix reset +mmix 0 1.0 0.0 1.0 -1.0 # REAR +mmix 1 1.0 -1.0 0.0 1.0 # RIGHT +mmix 2 1.0 1.0 0.0 1.0 # LEFT +mmix 3 1.0 0.0 -1.0 -1.0 # Front +``` + +## Hexa H6 + +``` +mmix reset +mmix 0 1.0 -1.0 1.0 -1.0 # REAR_R +mmix 1 1.0 -1.0 -1.0 1.0 # FRONT_R +mmix 2 1.0 1.0 1.0 1.0 # REAR_L +mmix 3 1.0 1.0 -1.0 -1.0 # FRONT_L +mmix 4 1.0 0.0 0.0 0.0 # RIGHT +mmix 5 1.0 0.0 0.0 0.0 # LEFT +``` + +## Quadcopter A-tail + +This configuration probably can be improved, similar to V-tail config + +``` +mmix reset +mmix 0 1.0 0.0 1.0 1.0 # REAR_R +mmix 1 1.0 -1.0 -1.0 0.0 # FRONT_R +mmix 2 1.0 0.0 1.0 -1.0 # REAR_L +mmix 3 1.0 1.0 -1.0 -0.0 # FRONT_L +``` + +## Quadcopter V-tail + +``` +mmix reset +mmix 0 1.0 -0.58 0.58 1.0 # REAR_R +mmix 1 1.0 -0.46 -0.39 -0.5 # FRONT_R +mmix 2 1.0 0.58 0.58 -1.0 # REAR_L +mmix 3 1.0 0.46 -0.39 0.5 # FRONT_L +``` + +## Hexa Y6 + +``` +mmix reset +mmix 0 1.0 0.0 1.333333 1.0 # REAR +mmix 1 1.0 -1.0 -0.666667 -1.0 # RIGHT +mmix 2 1.0 1.0 -0.666667 -1.0 # LEFT +mmix 3 1.0 0.0 1.333333 -1.0 # UNDER_REAR +mmix 4 1.0 -1.0 -0.666667 1.0 # UNDER_RIGHT +mmix 5 1.0 1.0 -0.666667 1.0 # UNDER_LEFT +``` + +## Quad Y4 + +``` +mmix reset +mmix 0 1.0 0.0 1.0 -1.0 # REAR_TOP CW +mmix 1 1.0 -1.0 -1.0 0.0 # FRONT_R CCW +mmix 2 1.0 0.0 1.0 1.0 # REAR_BOTTOM CCW +mmix 3 1.0 1.0 -1.0 0.0 # FRONT_L CW +``` + +## Hexa P6 + +``` +mmix reset +mmix 0 1.0 -0.866025 0.5 1.0 # REAR_R +mmix 1 1.0 -0.866025 -0.5 -1.0 # FRONT_R +mmix 2 1.0 0.866025 0.5 1.0 # REAR_L +mmix 3 1.0 0.866025 -0.5 -1.0 # FRONT_L +mmix 4 1.0 0.0 -1.0 1.0 # FRONT +mmix 5 1.0 0.0 1.0 -1.0 # REAR +``` + +## Octa Flat P + +``` +mmix reset +mmix 0 1.0 0.707107 -0.707107 1.0 # FRONT_L +mmix 1 1.0 -0.707107 -0.707107 1.0 # FRONT_R +mmix 2 1.0 -0.707107 0.707107 1.0 # REAR_R +mmix 3 1.0 0.707107 0.707107 1.0 # REAR_L +mmix 4 1.0 0.0 -1.0 -1.0 # FRONT +mmix 5 1.0 -1.0 0.0 -1.0 # RIGHT +mmix 6 1.0 0.0 1.0 -1.0 # REAR +mmix 7 1.0 1.0 0.0 -1.0 # LEFT +``` + +## Octa Flat X + +``` +mmix reset +mmix 0 1.0 1.0 -0.414178 1.0 # MIDFRONT_L +mmix 1 1.0 -0.414178 -1.0 1.0 # FRONT_R +mmix 2 1.0 -1.0 0.414178 1.0 # MIDREAR_R +mmix 3 1.0 0.414178 1.0 1.0 # REAR_L +mmix 4 1.0 0.414178 -1.0 -1.0 # FRONT_L +mmix 5 1.0 -1.0 -0.414178 -1.0 # MIDFRONT_R +mmix 6 1.0 -0.414178 1.0 -1.0 # REAR_R +mmix 7 1.0 1.0 0.414178 -1.0 # MIDREAR_L +``` + +## Bicopter + +***Warning*** this is highly experimental, not documented, not tested in real life conditions and I'm pretty sure there are not more than few in the whole world! +Mixer configuration below is reverse engineered from CF code. + +``` +mmix reset +mmix 0 1.0 1.0 0.0 0.0 # left motor +mmix 1 1.0 -1.0 0.0 0.0 # right motor + +smix reset +smix 0 4 2 100 0 # Servo 4 for left motor pitch change +smix 1 4 1 100 0 # Servo 4 for left motor pitch change +smix 2 5 2 -100 0 # Servo 5 for right motor pitch change +smix 3 5 1 100 0 # Servo 5 for right motor pitch change +``` + +## Dualcopter + +***Warning*** this is highly experimental, not documented, not tested in real life conditions and I'm pretty sure there are not more than few in the whole world! +Mixer configuration below is reverse engineered from CF code. +``` +mmix reset +mmix 0 1.0 0.0 0.0 -1.0 # Left +mmix 1 1.0 0.0 0.0 1.0 # Right + +smix reset +smix 0 4 1 100 0 +smix 1 5 0 100 0 +``` + +## V-Tail Fixed Wing + +Tested in a Mini talon UAV. + +``` +# mixer +mmix reset +mmix 0 1.0 0.0 0.0 0.0 # motor + +smix reset +smix 0 2 0 -100 0 # servo 2 takes Stabilised ROLL +smix 1 3 0 -100 0 # servo 3 takes Stabilised ROLL + +smix 2 4 1 -50 0 # servo 4 takes Stabilised PITCH +smix 3 5 1 50 0 # servo 5 takes Stabilised -PITCH + +smix 4 4 2 50 0 # servo 4 takes Stabilised YAW +smix 5 5 2 50 0 # servo 5 takes Stabilised YAW + +smix 6 6 8 -100 0 # servo 6 takes RC AUX 1 (camera yaw) +smix 7 7 9 -100 0 # servo 7 takes RC AUX 2 (drop bomb :-)) +``` + +## Skyhunter Nano (no rudder) - 1.7.2 onwards + +``` +mmix reset +mmix 0 1.000 0.000 0.000 0.000 +smix reset +smix 0 3 0 -100 0 +smix 1 4 0 -100 0 +smix 2 2 1 -100 0 +``` + +## Nano Talon with 2 Servos for the V-Tail +Note: See [this video](https://www.youtube.com/watch?v=IOApkFPGKtc) for details on the V-Tail mod. +``` +# mixer +mmix reset +mmix 0 1.0 0.0 0.0 0.0 # motor +smix reset +smix 0 2 0 -100 0 # servo 2 takes Stabilised ROLL (PWM 3) +smix 1 3 1 -50 0 # servo 3 takes Stabilised PITCH (PWM 4) +smix 2 4 1 50 0 # servo 4 takes Stabilised -PITCH (PWM 5) +smix 3 3 2 50 0 # servo 3 takes Stabilised YAW (PWM 4) +smix 4 4 2 50 0 # servo 4 takes Stabilised YAW (PWM 5) +``` + +## AVIOS BUSHMULE – Notably separate FLAPS (instead of flapperons). Uses single aileron control with Y cable +``` +# servo mix +smix reset +smix 0 2 1 100 0 # servo 2 takes Stabilised PITCH (PWM 3) +smix 1 3 0 100 0 # servo 3 takes Stabilised ROLL (PWM 4) +smix 2 4 14 100 0 # servo 4 takes FLAPS (PWM 5) +smix 3 5 2 100 0 # servo 5 takes Stabilised YAW (PWM 6) +# servo – also consider manipulating of servo midpoint for correct flaps operation: +servo 4 1000 2000 2000 -100 -1 + +``` +## Twin Motor - Differential thrust and FLAPERONS +``` +# mixer +mmix reset +mmix 0 1.000 0.000 0.000 0.300 #Left motor +mmix 1 1.000 0.000 0.000 -0.300 #Right motor + +# servo mix +smix reset +smix 0 3 0 100 0 #servo 3 takes Stabilised ROLL (PWM 4) +smix 1 4 0 100 0 #servo 4 takes Stabilised ROLL (PWM 5) +smix 2 5 2 100 0 #servo 5 takes Stabilised YAW (PWM 6) +smix 3 2 1 100 0 #servo 2 takes Stabilised PITCH (PWM 3) +smix 4 3 14 100 0 #Setup flaps on aileron pins (PWM 4) +smix 5 4 14 100 0 #Setup flaps on aileron pins (PWM 5) +smix reverse 3 14 r #Reverse the Flaps on PWM 4/5, skip this if you want spoilerons +smix reverse 4 14 r #or if it works based on servo orientation + +# servo +servo 5 1000 2000 1500 -100 -1 #My rudder was reversed, again you may not need this rule +``` + +# Setups that were never implemented in Baseflight, Cleanflight or any of its derivatives + +# Disabled setups + +## HELI 120 CCPM + +Never implemented. + +## HELI 90 DEG + +Never implemented. + +## MIXER_GIMBAL + +Use feature ***SERVO_TILT*** instead. + +## Singlecopter + +***Warning*** this is highly experimental, not documented and I'm pretty sure there are not more than few in the whole world! +Mixer configuration below is reverse engineered from CF code. Mixer is capable of processing this setup, but servo output will not work due to BF/CF PWM output limitations. + +``` +mmix reset + +smix reset +smix 0 3 2 100 0 +smix 1 3 1 100 0 +smix 2 4 2 100 0 +smix 3 4 1 100 0 +smix 4 5 2 100 0 +smix 5 5 0 100 0 +smix 6 6 2 100 0 +smix 7 6 0 100 0 +``` diff --git a/versioned_docs/version-8.0.1/advanced/Developer-info.md b/versioned_docs/version-8.0.1/advanced/Developer-info.md new file mode 100644 index 0000000..ac39d22 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Developer-info.md @@ -0,0 +1,148 @@ +--- +title: Developer Info +--- + +# Inertial position estimator (INAV) + +Position estimator is a vital component for navigation subsystem. It takes data from all available sensors and fuses them together to figure out coordinates and velocities in the local frame of reference. All navigational decisions are made based on estimated position/velocity data. + +It is currently desined for multirotors. + +## Principle of operation + +The key sensor for INAV is an accelerometer. Measured acceleration is translated from body-fixed frame to local NEU coordinates and integrated to yield velocities in North, East and Up directions. Velocity is further integrated to produce coordinates. + +As accelerometer tend to drift, estimated velocities and coordinates tend to drift as well. This accumulated error is corrected from various reference sources - GPS, BARO, SONAR. Position estimator also maintains estimated position error for horizontal (X-Y) and vertical (Z) position. + +When reference source is not available for some reason, estimated position error increases until it reaches a certain threshold. Beyond that threshold position is no longer updated and marked invalid until a valid reference source is available avain. This allows, for example, to fly through short (measured in seconds) GPS outages. + +Using multiple sensors for estimation allows to filter noisy data (e.g. from barometer), interpolate between rare readings (e.g. from GPS), and immediately react on fast motion changes (using accelerometers) in the same time. + +![](/img/content/inertial_estimator_diagram.jpg) + +## Data soures + +The following reference sources (with corresponding parameters for weight) are available for altitude and climb rate: + +* Barometer - altitude (**inav_w_z_baro_p**) +* Barometer - velocity (**inav_w_z_baro_v**) +* Sonar - altitude (**inav_w_z_sonar_p**) +* Sonar - velocity (**inav_w_z_sonar_v**) +* GPS - altitude (**inav_w_z_gps_p**) +* GPS - velocity (**inav_w_z_gps_v**) + +Sonar is optional source, it's only used when available and valid data received. GPS altitude is very noisy and is limited to FIXED_WING aircraft (experimental and untested). + +The following reference sources (with corresponding parameters for weight) are available for position and velocity: + +* GPS - position (**inav_w_xy_gps_p**) +* GPS - velocity (**inav_w_xy_gps_v**) + +## Dead reckoning and handling sensor unavailability + +* Enable dead reckoning (**inav_enable_dead_reckoning**) + +* Dead reckoning - position (**inav_w_xy_dr_p**) +* Dead reckoning - velocity (**inav_w_xy_dr_v**) + +* Velocity decay rate, XY-axis (**inav_w_xy_res_v**) +* Velocity decay rate, Z-axis (**inav_w_z_res_v**) + +## Estimated position error thresholds + +* Maximum acceptable position error (**inav_max_eph_epv**) +* Position error for SONAR sensor (**inav_sonar_epv**) +* Position error for BARO sensor (**inav_baro_epv**) + +## GPS delay compensation + +GPS data is not updated instantly. GPS module needs time to calculate new position and velocity. INAV has means of compensating for this delay. Expected GPS delay in milliseconds is controlled by **inav_gps_delay_ms** parameter. Typical value for GPS delay is 200ms. + + +# Position and altitude PID controllers + +## PID regulators in ALTHOLD mode (Z-controller) + +ALTHOLD mode uses two PIDs - **ALT** and **VEL**. Navigation Z-controller functional diagram is shown below: + +![](/img/content/nav_althold_pids_diagram.jpg) + +### ALT PID +Actually ALT PID parameters control two P-controllers: Position-to-Velocity and Velocity-to-Acceleration + +* **ALT_P** - defines how fast quad will attempt to compensate for altitude error, converts altitude error to desired vertical velocity (climb rate) +* **ALT_I** - not used +* **ALT_D** - not used + +### VEL PID +This PID-controller is an Acceleration-to-Throttle controller + +* **VEL_P** - defined how much throttle quad will add/reduce to achieve desired velocity +* **VEL_I** - controls compensation for hover throttle (and vertical air movement, thermals). This can be zero if hover throttle is precisely 1500us. Too much VEL I will lead to vertical oscillations, too low VEL I will cause drops or jumps when ALTHOLD is enabled, very low VEL I can result in total inability to maintain altitude +* **VEL_D** - acts as a dampener for acceleration. VEL D will resist any velocity change regardless of its nature (requested by VEL P and VEL I or induced by wind). + +## PID regulators in POSHOLD/RTH/WP modes (XY-controller) + +XY-controller uses two PIDs - **POS** and **POSR** + +![](/img/content/nav_poshold_pids_diagram.jpg) + +### POS PID +This is a Position-to-Velocity P-controller active in POSHOLD, RTH and WP modes + +* **POS_P** - translates position error to desired velocity to reach the target +* **POS_I** - not used +* **POS_D** - not used + +### POSR PID +Position rate PID-controller, controls Velocity-to-Acceleration + +* **POSR_P** - controls acceleration to achieve desired velocity +* **POSR_I** - controls compensation for side wind or other disturbances. In totally calm air POSR I can be close to zero +* **POSR_D** - dampens response from P and I components; Tests indicate that this one can be zero at all times + +Output of POSR PID-controller is desired acceleration which is directly translated to desired lean angles. + + + +# Coordinate systems + +Navigation operates in 3 different coordinate systems. + +## LLH (Geographic) Coordinate System + +Represents position on or above earth with a latitude, longitude and height value. Height is defined as altitude above the mean sea level. + +![](https://upload.wikimedia.org/wikipedia/commons/6/62/Latitude_and_Longitude_of_the_Earth.svg) + +## NEU Coordinate System + +* The x axis is aligned with the vector to the north pole (tangent to meridians). +* The y axis points to the east side (tangent to parallels) +* The z axis points up from the center of the earth + +This is a classical cartesian coordinate system where the 3 axes are orthogonal to each other. + +![](https://upload.wikimedia.org/wikipedia/commons/7/73/ECEF_ENU_Longitude_Latitude_relationships.svg) + +The units for the NEU coordinate system are centimetres. + +# Frames of reference + +## Global (geodetic) frame of reference + +This frame of reference defines coordinates in LLH coordinate system. This frame of reference is not used directly by the code and is provided as an interface for defining waypoints and receiving reference data from GPS. + +## Local frame of reference + +This frame of reference defines coordinate in NEU coordinate system relative to a GPS Origin point. GPS origin is defined as a point where GPS fix with sufficient accuracy was firstly acquired. GPS Origin is usually a point of launch. Most calculations are done in this frame of reference. + +## Body-fixed frame of reference + +Attached to the aircraft. + +* The x axis points in forward direction (as defined by geometry and not by movement) (roll axis, +ve to right) +* The y axis points to the right (geometrically) (pitch axis, +ve nose down, an INAV anomaly to convention) +* The z axis points upwards (geometrically) (yaw axis, +ve nose to right) + +This frame of reference is used to read sensor data and calculate lean angles. Usually the only operations in this frame of reference are coordinate transformations to/from local frame of reference. diff --git "a/versioned_docs/version-8.0.1/advanced/EZ\342\200\220TUNE.md" "b/versioned_docs/version-8.0.1/advanced/EZ\342\200\220TUNE.md" new file mode 100644 index 0000000..ed6633c --- /dev/null +++ "b/versioned_docs/version-8.0.1/advanced/EZ\342\200\220TUNE.md" @@ -0,0 +1,99 @@ +--- +title: EZ‐TUNE +--- + +### +EZ-TUNE + +## +Easy Tuning with INAV + +A simplified multirotor tuning tool for PIDs and more. + +For example instead of setting several filters with specified frequencies and types, you only need one slider to set them all. + +Where to Find It: +- There is a tab in the CONFIGURATOR labelled EZ-Tune. +- This tab contains all settings related to the Easy Tune framework, consolidated onto one page. +- There is no need to use the CLI anymore. + +Features Available in EZ-Tune: +- Default settings for large multirotors and the ability to choose them for sizes between the ususal ones. +- A general switch to enable and disable Easy Tune. +- A slider for setting filter cutoff frequencies. +- A slider for the axis ratio, adjusting how the weight distribution on your multirotor drone is configured. +- Settings for response, damping, stability, and aggressiveness that modify the PID and Forward settings. +- Two sliders for tuning rates and Expo settings. +- A preview on the right side shows changes as you adjust the sliders, providing a nice comparison to the current PID tuning procedure. + +Safety Features: +- When Easy Tune is enabled, the entire PID tuning tab is disabled, reducing the risk of unintentional adjustments. +- This prevents modifications to settings that should not be changed. + +Ez Tune vs Betaflight: + +The simplified slider tuning is similar to the Betaflight slider tuning but differs in several ways: +- Unlike the Betaflight PID slider tuning, EZ-Tune in INAV not only adjusts PID controllers but also: + - Sets rates and Expo values. + - Enables and disables functions. + - Greatly reduces the number of settings you need to manage. +- Instead of setting 12 values for the PID controller, you only need four. +- Instead of dealing with multiple filters and configurations, there's one simple slider. +- Both the rates and Expo settings for all axes are controlled by only two sliders. + +How To Use + +EZ TUNE is still new so please keep a copy of the current configuration with a 'diff all' command in the CLI followed by saving to a file in case you need to go back to the original + +Select EZ TUNE from the CONFIGURATOR TABS. + +Do read carefully what is written in each of the 9 sections on the left hand side. + +First you will need to enable EZ TUNE in the green box. This will then allow you to safely adjust settings on the page. There is nothing else to change. If you feel that you need to go to PID tuning tab then don't. Everything you need to start with is here. + + +If you go through setting the recommended values for your craft in each box then you will have a default stable tune. + +Note that the first box depends on the prop size used. + +Usual starting points for 'Filter Hz' are: +- 3-inch props: 90, +- 5-inch props: 110, +- 7-inch props: 90, +- 10-inch props: 75, +- 12-inch props: 60. + +![Graphically](https://github.com/Phil-MC/hello-world/blob/master/eztune-graph.webp) +The slope from 3" to 5" is misleading as the calculations change after this. + +Use Blackbox and your own judgement to find a value that is most suited for your UAV after you have tested it. + +When you have filled them all in click SAVE on the bottom right-hand corner. + +TESTING + +You will need to test fly your craft and see if there is anything that needs changing. + +CHANGE ONE ENTRY AT A TIME. + +SAVE AND TEST BEFORE MAKING ANY MORE CHANGES. + +Moving each slider across from left to right increases the effect, from mild at the left to extreme at the right. In many cases going from a sluggish response through the ideal one to an unstable one. Damping is an exception and is best left alone until the final test. I recommend finding a responsive setting while still stable, and then going back a little or increasing Damping at the end until it feels reliable. This is because the settings may well affect each other. + +The defaults for the blue box from top to bottom are: +- Axis ratio 110 +- Response 100 +- Damping 100 +- Stability 100 + +EZ TUNE calculates the values to go into the Preview Boxes on the right hand side. + +When you press SAVE they are transferred to the Flight Controller. + +NOTE + +You can make use of EZ-TUNE to generate settings for quad sizes other than those listed on EZ-TUNE by using the graph. You do of course have to test them and modify as necessary. There are no guarantees. You are responsible for the outcome. I suggested using this technique to assist you in your search for a stable tune for other quad sizes. + +FEEDBACK + +Please send comments both positive and negative to the relevant section on INAV DISCORD or the INAV Facebook Forum diff --git a/versioned_docs/version-8.0.1/advanced/Features-safe-to-add-and-remove-to-fit-your-needs..md b/versioned_docs/version-8.0.1/advanced/Features-safe-to-add-and-remove-to-fit-your-needs..md new file mode 100644 index 0000000..e8461f9 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Features-safe-to-add-and-remove-to-fit-your-needs..md @@ -0,0 +1,52 @@ +--- +title: Features Safe to Add and Remove to Fit Your Needs. +--- + +# Features safe to remove + +Due to flash size limitation on F1 targets it cannot include all features INAV supports at once. + +Purpose of this document is to provide infomation on which features that can safely be removed and added as see fit. + +## How to add and remove features. + +Get your build enviroment up and running. + +Generally features are defined in the common.h file for all targets, then later removed in the target.h file for each target. ( This files are inside the folder for each target, example master/src/main/target/NAZE/target.h ) + +To remove an feature simple find the feature name and then make a new line in target.h file with "#undef feature_name" + +## GPS protocols + +INAV supports 4 different GPS protocols. Default on F1 targets is only Ublox enabled. + +The four protocols are defined in the common.h file inside main target folder. + +define GPS_PROTO_NMEA + +define GPS_PROTO_UBLOX + +define GPS_PROTO_I2C_NAV + +define GPS_PROTO_NAZA + + +You can choose to remove all expect the one you need. + +## Telemetry protocols + +INAV supports 4 different GPS protocols. Default on F1 targets is only LTM and FrSky telemetry. + +The four protocols are defined in the common.h file inside main target folder. + + +define TELEMETRY_FRSKY + +define TELEMETRY_HOTT + +define TELEMETRY_SMARTPORT + +define TELEMETRY_LTM + + +## Other features that can safely be removed or added diff --git "a/versioned_docs/version-8.0.1/advanced/Firmware-recovery-with-dfu\342\200\220util.md" "b/versioned_docs/version-8.0.1/advanced/Firmware-recovery-with-dfu\342\200\220util.md" new file mode 100644 index 0000000..bbc2d64 --- /dev/null +++ "b/versioned_docs/version-8.0.1/advanced/Firmware-recovery-with-dfu\342\200\220util.md" @@ -0,0 +1,122 @@ +--- +title: Firmware Recovery with Dfu‐util +--- + +# Firmware Recovery + +## Overview + +It is possible to recover firmware from a flight controller using the open source [dfu-util](https://sourceforge.net/projects/dfu-util/) application. This is available via the package manager for most Linux distros / FreeBSD and from the quoted URI for other platforms. + +Note that you will need to either set device permission or run `dfu-util` as root on POSIX platforms. On Linux systems with `systemd`, the following `udev` rule may help: + +``` +SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0660", TAG+="uaccess" +``` + +Note: It is also necessary to set the FC into `dfu` (aka bootloader) mode before running `dfu-util`. + +## Hex and Bin files + +The INAV build process typically generates `hex` files (these are encoded ASCII text), whereas `dfu-util` requires binary (`bin`) files. The `gcc` tool `objcopy` can convert between `hex` and `bin` if required. + +``` +# hex to bin +objcopy -I ihex file.hex -O binary file.bin +# bin to hex +objcopy -I binary file.bin -O ihex file.hex +``` + +Note: You can build `bin` files directly from source `ninja TARGET.bin` (vice `ninja TARGET` for a `hex` file). + +### Recovering flash + +In order to recover FC flash, you need to know the firmware `bin` file size. There is no penalty for specifying to large a size (within the flash capacity), so using the known flash size or the extant INAV firmware `bin` size (with some overhead) will work. + +### Recovery Example + +To recover the factory firmware from a F722. The physical flash size is 512KB and the INAV 8 firmware for this (out of tree) device is `499479` bytes: +``` +$ ls -l /tmp/inav_8.0.0_WARPF7.bin +-rw-r--r-- 1 jrh jrh 499479 Nov 17 19:48 /tmp/inav_8.0.0_WARPF7.bin +``` +So I'll use 512000 bytes in the example, as that should be safe; replace `512000` with the size your device requires: +``` +# +# First, but the device in DFU Mode (button, cli command) +# then +$ dfu-util -a 0 -s 0x08000000:512000 -U /tmp/oldflash.bin +dfu-util 0.11 + +Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. +Copyright 2010-2021 Tormod Volden and Stefan Schmidt +This program is Free Software and has ABSOLUTELY NO WARRANTY +Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ + +Opening DFU capable USB device... +Device ID 0483:df11 +Device DFU version 011a +Claiming USB DFU Interface... +Setting Alternate Interface #0 ... +Determining device status... +DFU state(2) = dfuIDLE, status(0) = No error condition is present +DFU mode device DFU version 011a +Device returned transfer size 2048 +DfuSe interface name: "Internal Flash " +Upload [=========================] 100% 512000 bytes +Upload done. +``` + +### Reinstall the recovered firmware + +Having got the firmware `/tmp/oldflash.bin`, it is possible to reflash this recovered firmware. + +``` +# +# First, but the device in DFU Mode (button, cli command) +# then +$ dfu-util -d 0483:df11 --alt 0 -s 0x08000000:force:leave -D /tmp/oldflash.bin +dfu-util 0.11 + +Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. +Copyright 2010-2021 Tormod Volden and Stefan Schmidt +This program is Free Software and has ABSOLUTELY NO WARRANTY +Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ + +dfu-util: Warning: Invalid DFU suffix signature +dfu-util: A valid DFU suffix will be required in a future dfu-util release +Opening DFU capable USB device... +Device ID 0483:df11 +Device DFU version 011a +Claiming USB DFU Interface... +Setting Alternate Interface #0 ... +Determining device status... +DFU state(2) = dfuIDLE, status(0) = No error condition is present +DFU mode device DFU version 011a +Device returned transfer size 2048 +DfuSe interface name: "Internal Flash " +Downloading element to address = 0x08000000, size = 512000 +Erase [=========================] 100% 512000 bytes +Erase done. +Download [=========================] 100% 512000 bytes +Download done. +File downloaded successfully +Submitting leave request... +Transitioning to dfuMANIFEST state +``` + +When the FC has rebooted, let's see (you can just as easily use `INAV Configurator` or `mwp` or other tool), here I use mwp's `cliterm` as it's quick and easy: + +``` +$ cliterm +2024-11-17T19:58:47+0000 Registered serial device: /dev/ttyACM0 [0483:5740], Vendor: INAV, Model: STM32_Virtual_ComPort_in_FS_Mode, Serial: 2065345E4847, Driver: cdc_acm +opening /dev/ttyACM0 ... + +Entering CLI Mode, type 'exit' to return, or 'help' + +# version +# INAV/WARPF7 8.0.0 Nov 16 2024 / 18:35:05 (7c0fe517) +# GCC-14.1.0 +``` + +Looks like that worked. diff --git a/versioned_docs/version-8.0.1/advanced/Fixed-Wing-Autolaunch.md b/versioned_docs/version-8.0.1/advanced/Fixed-Wing-Autolaunch.md new file mode 100644 index 0000000..7b5e87f --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Fixed-Wing-Autolaunch.md @@ -0,0 +1,157 @@ +--- +title: Fixed Wing Autolaunch +--- + +# Fixed Wing Autolaunch + +Fixed Wing Autolaunch, aka launch mode, allows the pilot to have assistance in launching their airplane. This can be particularly useful if you're a new pilot, have a difficult model to launch, or have a large model. + +## Enabling Autolaunch + +By default, autolaunch will not work. You need to tell INAV that you want to use it. There are two ways to do this. You can use a switched mode, or you can have it permanently enabled. Which you choose it personal preference. The switch gives you more control. Having it permanently enabled means it will work all the time. But if you don't want to use it, you must remember to move the pitch or roll stick to deactivated it. + +### Using Autolaunch with a switch + +![Fixed Wing NAV LAUNCH mode in INAV](https://github.com/iNavFlight/inav/assets/17590174/20901922-bee3-4707-8e99-58aa4a97b9a1) + +To use a switch. You will need to set a switch to a channel on your transmitter. Then in the **Modes** page in INAV Configurator. Set **NAV LAUNCH** mode to be active when the switch is in the chosen position. If you don't see the **NAV LAUNCH** mode. You may have the permanent method enabled. + +### Having Autolaunch permanently enabled + +![Permanently enable launch mode in INAV](https://github.com/iNavFlight/inav/assets/17590174/1d39a728-482d-49c8-8fd4-22c9c7bfb63a) + +To have Autolaunch permanently enabled. You need to activate the **Permanently enabled Launch Mode for Fixed Wing** feature on the **Configuration** page. If this is enabled, the **NAV LAUNCH** mode will not be found on the **Modes** page. + +## Configuring launch mode for your aircraft + +The basic settings for Autolaunch can be found on the **Advanced Tuning** page in INAV Configurator. These settings should be all that you need to change to get launch mode working well for your model. + +![Autolaunch settings on the Advanced Tuning page](https://github.com/iNavFlight/inav/assets/17590174/9eb0e978-0be8-4b16-b47f-ff6920932e81) + +:::tip +The Autolaunch settings on the **Advanced Tuning** page are ordered in the way they happen during the launch. So they start with **Idle Throttle** (the first part of launch mode to activate, if set) to the **End Transition Time** (the end of the launch). This graphical explanation shows the Autolaunch sequence, related parameters and events is provided. + +![AutoLaunch](https://github.com/iNavFlight/inav/assets/64522330/5a79c637-9724-481d-aba3-ad72581d2123) +::: + +We will look at these setting briefly. But there are videos explaining the settings, including this one. + +### Idle Throttle + +The **Idle Throttle** setting allows you to let the motor spin at the desired throttle level _before_ you throw the airplane. This can be useful if: +* you have a large or heavy aircraft that will benefit from some additional push +* your plane suffers from torque roll +* you would like a visual indicator that the aircraft is ready to launch + +The amount of **Idle Throttle** you need depends on your goal. If you only want a visual indicator, a low value like 1100uS (10%) will work for you. However, if you want to have some launch assistance or to combat torque roll. You will need to estimate and adjust this value until it works well for your aircraft. A good starting point may be half the launch throttle, which we will cover later. If you don't want to use **Idle Throttle**. Set the value to 1000uS (0%) + +:::note +If you see a red box around the **Idle Throttle**. It is because you have specified an **Idle Throttle Delay** but do not have an **Idle Throttle** set. + +![image](https://github.com/iNavFlight/inav/assets/17590174/0a7daf0a-acb7-4d7d-a7da-a42af59307c2) +::: + +### Idle Throttle Delay + +**Idle Throttle Delay** adds a delay between raising the throttle and the *Idle Throttle** starting. This is extremely useful if you need to do something like put your transmitter down and pick up your airplane. Or just to get yourself prepared. If you do not want to use an **Idle Throttle Delay**. Set this to 0. + +### Max Throw Angle + +The **Max Throw Angle** setting is the maximum angle that the aircraft can be at to allow the launch to be detected. The default of 45 degrees should be plenty for most launches. Please don't be tempted to set this to a stupid angle like 180 degrees. Even a double-handed overhead launch should only need a maximum of 60 degrees. Any higher than this and the aircraft will likely just stall. There are very few exceptions, where vertical launches are desired. Such as high powered FunJet. Which will have a high power to weight ratio. + +### Motor Delay + +**Motor Delay** is the time between the launch being detected and the motor starting to spin up to **Launch Throttle**. This setting is pretty important for safety. If you have a tractor plane. This setting can be low safely. + +:::danger +If the motor speeds up too quickly and you have a pusher plane. You risk a prop strike to your hand. So please be carful when adjusting this. +::: + +### Minimum Launch Time + +The **Minimum Launch Time** setting dictates a time period where the sticks on your transmitter will not respond. This is particularly useful if you have to pick up your transmitter or it's hanging on a neck strap. Setting this to 2 seconds can stop the launch being aborted unintentionally, because you have bumped a stick on your transmitter. + +### Motor Spinup Time + +This setting usually doesn't need to be changed. But it can be useful for reducing torque roll or taking stress off of folding props. The **Motor Spinup Time** is the time taken to go from the starting throttle (0% or **Idle Throttle**) to **Launch Throttle**. Lowering this setting is not recommended. But if you have a folding or large prop you could increase it. You could also try increasing this to help avoid torque roll. + +### Launch Throttle + +**Launch Throttle** is the main throttle level for the launch. This should be set based on the powertrain and weight of your aircraft. In this video, you can see a physical method for calculating the *Launch Throttle*. There is also [a tool for estimating the launch throttle](https://www.mrd-rc.com/tutorials-tools-and-testing/useful-tools/inav-auto-launch-throttle-estimator/). + +### Climb Angle + +Is the base attitude of the model for the climb. The **Climb Angle** should be set for the model. Some require a flatter launch to get speed up. Whereas others could have a steeper climb. Your flying environment may also contribute to the **Climb Angle**. + +:::note +**Fixed Wing Level Trim** will be added to the **Climb Angle**. So a **Climb Angle** of 20 degrees and a **Fixed Wing Level Trim** of 5 degrees, would result in a commanded pitch of 25 degrees. +::: + +### Launch Timeout + +The **Launch Timeout** is the maximum time that the launch climb phase will take. Once this timeout has been exceeded. The launch will progress to the end transition. + +### Maximum Altitude + +Is the **Maximum Altitude** that the airplane will climb to. Once this altitude is reached. The launch will progress to the end transition. + +### End Transition Time + +Is the time that the final launch phase will take. The **End Transition Time** makes for a smooth transition from the launch angle and throttle to level flight and the current or cruise throttle. + +## Using Autolaunch + +There are many versions of how to use autolaunch floating about the internet. But here is the official procedure for using autolaunch. + +### Pilot actions for starting autolaunch + +1. As preparation for launch, make sure that you are not in a navigation mode, or a modifier (such as alt hold) that activates auto throttle. +2. If you don't have autolaunch permanently enabled. Enable NAV LAUNCH with the switch on your transmitter. +3. Arm the airplane. +4. Select the mode that you would like to exit launch in to. A good choice for this is loiter, as you can watch the aircraft through the launch and keep it in view when it completes. +:::note +Currently, you cannot exit launch in to a waypoint mission. +::: + +5. Raise the throttle to the approximate level that you want after launch has completed. + +At this point, the process is different depending on your settings. + +**No idle throttle set** + +6. At this point, the airplane should be ready to throw. You can check in the OSD for the system message `** READY TO LAUNCH **`. Throw the airplane and it will enter the launch procedure. **You should not shake the aircraft to falsely start the launch.** + +**Idle throttle set with no Idle Throttle Delay** + +6. At this point, the motor will start with the Idle Throttle. `** READY TO LAUNCH**` will be shown on the OSD. Throw the airplane and it will enter the launch procedure. + +**Idle Throttle set with an Idle Throttle Delay** + +6. For the length of the Idle Throttle Delay. Nothing will happen. On the OSD it will show `** WAITING FOR IDLE **`. Then, the motor will start with the Idle Throttle and show `** READY TO LAUNCH **` on the OSD. Throw the airplane and it will enter the launch procedure. + +:::note +Above, I have mentioned text being shown in the OSD to explain the launch status. To see these, you must have the **System Messages** OSD element on your OSD layout. We highly recommend having **System Messages** on every OSD layout. As it will show useful information and warnings during your flight. +::: + +### The launch procedure + +7. After throwing the airplane. INAV will watch for triggers to determine it has been launched. The two main triggers are the `nav_fw_launch_accel` and `nav_fw_launch_detect_time`. Once these have been breached, launch progresses to the next stage. A second trigger is the GPS. If INAV detects the craft moving away from the arming point. It will progress to the next stage of launch. +8. The throttle will increase from its current level to **Launch Throttle** over the course of **Motor Spinup Time**. Also, the pitch of the airplane will be commanded to target **Climb Angle** plus *Fixed Wing Level Trim**. +9. The airplane will climb with these settings until either the **Launch Timeout* or **Maximum Altitude** have been surpassed. +10. Launch will transition in to the flight mode and throttle level selected on your transmitter, over the course of **End Transition Time**. + +## Advanced Settings + +The advanced settings are only accessible through the CLI. For the most part, they are not needed. But some pilots may find them useful. + +### Wiggle to Wake Idle Throttle + +_From INAV 8.0_ + +Wiggle to Wake allows you to wiggle the yaw of the plane to start the idle throttle. This does not start the launch procedure or launch throttle, only the idle throttle. This gives more control over when the idle throttle starts, as you don't need to use a timer. Though the timer can still also be used. If so, idle will start either when the timer expires or the wiggle is detected. + +There is one setting in the CLI: `nav_fw_launch_wiggle_to_wake_idle`. 0 = disabled. 1 and 2 signify 1 or 2 yaw wiggles to activate. +* 1 wiggle has a higher detection point, for airplanes without a tail. +* 2 wiggles has a lower detection point, but requires the repeated action. This is intended for larger models and airplanes with tails. + +For this to work. An idle throttle value greater than 1000uS must be set, and `nav_fw_launch_wiggle_to_wake_idle` must not be 0. If there is no idle throttle delay, the wiggle will activate the idle throttle. If an idle delay is also set up, whichever occurs first activates the idle throttle. diff --git a/versioned_docs/version-8.0.1/advanced/GPS-and-Compass-setup.md b/versioned_docs/version-8.0.1/advanced/GPS-and-Compass-setup.md new file mode 100644 index 0000000..2465d7c --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/GPS-and-Compass-setup.md @@ -0,0 +1,363 @@ +--- +title: GPS and Compass Setup +--- + +In the 7.0 release and later. INAV only supports Ublox and Ublox7 protocols. +In the 8.0 release and later INAV Ublox GPS units with Ublox Protocol version < 15.00 are deprecated and from INAV 9.0 will no longer be supported. + +Recommended GNSS units are M8, M9 or M10 models for best navigation performance. While it is uncertain if there are M8 versions with Protocol version lower than 15.00, the majority of the units should be 15.00 or newer. + +While older versions as M6N and M7N also work up to INAV 8.0. But later generation M8 and the newer M9/M10 versions are superior. +Most GNSS modules have a built in magnetometer (compass), but there are also some available without e.g. [Matek M10Q](http://www.mateksys.com/?portfolio=sam-m10q) or [Beitian BN-220](https://inavflight.com/shop/p/BN220) which are perfect for planes and flying wings. + +Modules known to work reasonably well: +* [Matek M10Q-5883](http://www.mateksys.com/?portfolio=m10q-5883) M10 +* [Beitian BE-880Q](https://store.beitian.com/products/beitian-compass-qmc5883l-amp2-6-pix4-pixhawk-gnss-gps-glonass-dual-flight-control-gps-module-bn-880q?variant=44696118133023) M10 +* [Beitian BK-880Q](https://store.beitian.com/products/beitian-compass-qmc5883l-amp2-6-pix4-pixhawk-gnss-gps-glonass-dual-flight-control-gps-module-bn-880q?variant=45152276119839) M9 +* [Beitian BN-880](https://inavflight.com/shop/p/BN880) M8 + + +**Note** : Not all GNSS units are made equal. If you buy cheap, you are more likely to get cheap performance. Many GNSS units do not include a quality _front end LNA and SAW filter_. Without those components, the chances of poor performance is much greater if you have localized RF noise from a VTX or RX with telemetry. + + + +Using default settings INAV will configure the GPS automatically, **there is no need for configuring it manually** using software like `u-center`. Nevertheless you have to configure your FC with INAV to receive the GPS signals. + +For INAV before 1.9, it is also necessary to perform some [manual configuration of UBLOX 3.01 firmware GPS](./Ublox-3.01-firmware-and-Galileo.md) to use Galileo satellites. + +With INAV 7.0 and later, `GPS`, `Galileo` and `BeiDou` or `Glonass` can be enabled in the GPS configuration tab (the `GPS` constellation is enabled by default). **Always enable as many constellation as your hardware will allow.** + +The magnetometer / compass is normally included as part of the GNSS (GPS) module. +If you want to use an external magnetometer other than the one on your GNSS module, do not use both together. You can't use two identical chips/magnetometers on the same I2C bus. + +If your flight controller has an internal magnetometer on the FC, using it will likely to have poor results due to magnetic interference (not recommended). + + ## INAV 7.1 changes + +**From the release of INAV 7.1 the use of a compass is no longer mandatory for multirotor navigation as it once was. BUT it is still recommended for the best navigation performance, when it comes to maintaining a fixed position for an _extended period of time_, without heading drift.** e.g. in Poshold. Or taking off and immediately starting a Waypoint mission. +* Compass-less navigation performance is heavily dependent on a clean build, that has minimal levels of Gyro/Acc noise. It **will not** work correctly if your multirotor is producing excessive vibrations, caused by unbalanced motors, propellers or frame resonance. + Always enable the maximum number of GNSS constellations your hardware will allow. Poor EPV and EPH (Standard deviation of position error) will greatly effect navigation precision. Regardless of having a 3D fix, or what you consider an acceptable number of satellites. + +If you decide to omit the use of a compass on a multirotor or VTOL platform, due to space limitations or magnetic interference that can not be overcome. **Be mindful that none of the navigation modes** (_RTH, Failsafe, Poshold, Cruise or a Waypoint mission_) **will become operational until a GPS based heading is obtained**. To accomplish this, start flying the copter in a straight line until - +* the OSD Home arrow appears, showing a valid home direction. +* both the OSD _Heading_ and _Course over Ground_ indicators show a valid heading. +* keeping both headings closely aligned for a short time. + +As seen in this [video](https://www.youtube.com/watch?v=iopZfH-DdTI) + +Only then can the IMU heading data be trusted for _fixed position_ or slow speed navigation. Do not omit any of the above steps or your multirotor can experience toilet bowling, just as surely as it would with a poorly setup compass. Also conduct some tests to be sure everything is working correctly when you first setup a multirotor without a compass, just as you would with a compass. + +* **Note** : Presently multirotor navigation flight modes (RTH, POSHOLD etc) are required to be set **before** the magnetometer is turned off in the Configuration tab. Otherwise the navigation modes will not appear in the modes tab. You can select magnetometer type FAKE if no device is installed. Then proceed to alter your navigation modes. Once done, set Magnetometer type back to NONE for compass-less navigation. **This will be fixed in 7.1.1**.. The same will apply if your flight controller doesn't have a barometer. In this case you will be required to enter `inav_use_gps_no_baro = ON ` in the CLI, and select Barometer type FAKE. Then you can alter the navigation modes. Once done, set the barometer type back to NONE. +**Be aware. If you don't use a barometer as well as a magnetometer. And your satellite HDOP is greater than 1.3, the copters altitude and position accuracy will be greatly reduced.** + +INAV 7.1 will also offer better compass interference rejection. But this is not an excuse to be tardy on your install, or shortcut the calibration process. + +INAV 7.1 and later will also benefit fixed-wing models by the use of a compass, in providing better heading estimation. While in previous releases a compass provided no extra benefit. + +## INAV GPS Configuration + +INAV will attempt to provide GPS configuration. This is controlled by a number of CLI settings + +* `gps_auto_config` +* `gps_auto_baud` + +INAV only requires a few UBLOX messages and it is recommended that you leave auto-config enabled to ensure the GPS is configured to INAV's requirements. + +In particular, if you enable messages that INAV does not require, it is possible to seriously downgrade or even disable GPS functionality. This is typically indicated by a high error count being reported. In this case, it is recommended that you use "u-center" to reset the GPS to factory settings and let INAV perform auto-configuration. + +### INAV runtime Configuration steps + +When the GPS port is enabled, INAV will: + +* Auto-baud if set, to the limit set by `gps_auto_baud_max_supported`. Do not set this too high on older models +* Disable "standard" NMEA periodic sentences +* Set UBLOX parameters +* Enable the required UBLOX periodic messages + +Note that GPS is a push protocol; if your GPS has pre-configured messages enabled for transmission, then they will be sent; it is not practical for INAV to disable the whole of the large UBLOX message catalogue. If in doubt, perform a factory reset. + +### INAV Required Messages + +INAV will enable UBLOX periodic messages according to the UBLOX version: + +| Class | Id | Usage | UBLOX Versions | INAV Version | +|-------|------|--------------------------------------------------------|----------------|--------------| +| 0x01 | 0x02 | UBX-NAV-POSLLH Geodetic Position Solution | 5,6 | < 9.0.0 | +| 0x01 | 0x03 | UBX-NAV-STATUS Receiver Navigation status | 5,6 | < 9.0.0 | +| 0x01 | 0x12 | UBX-NAV-VELNED Velocity Solution in NED | 5,6 | < 9.0.0 | +| 0x01 | 0x21 | UBX-NAV-TIMEUTC GPS Time Solution | 5,6 | < 9.0.0 | +| 0x01 | 0x35 | UBX-NAV-SAT Sattelite Infrmation | 5,6,7 | < 9.0.0 | +| 0x01 | 0x35 | UBX-NAV-SAT Sattelite Infrmation | 8 | | +| 0x01 | 0x42 | UBX-NAV-SIG Signal Information | 9,10 | >= 8.0.0 | +| 0x01 | 0x07 | UBX-NAV-PVT Navigation Position Velocity Time Solution | 7,8,9,10 | | + +As of July 2024 / INAV 8.0.0-dev. + +## Installing the GNSS unit - Antenna orientation + +Ensure the ceramic antenna (light brown or beige in color) faces skywards. To provide the strongest signal and best hemispherical satellite coverage. + +* **Important** : Be sure your GNSS module is mounted a minimum of 5cm away from any source of Radio Frequency or (Electro) Magnetic interference. **e.g.** A digital or analog video transmitter and its antenna. A radio receiver that has telemetry and its antenna. Or for the sake of the magnetometer, any source of magnetic fields. High current power wires, Motors or a Beeper. + + +![M10Q-5883_4](https://github.com/iNavFlight/inav/assets/47995726/5fd7604b-986e-417f-b134-235b9c67c3dd) + + + +## Setting up the compass alignment + +INAV's default Orientation Preset is `CW270FLIP`. This value is based on the orientation of the magnetometer chip on its PCB, chosen by the manufacturer. With respect to the Arrow direction they provide facing the front of the aircraft. Or the plug facing the rear of the aircraft. + +* Circled in _Red_ at the base of the GNSS unit. Is the QMC5883 magnetometer chip **with its white DOT providing an axis magnetic bearing reference based on the internal coils**. + +* Circled in _Orange_ is the orientation arrow showing the direction the compass should **ideally** be mounted, with that arrow facing the front of the model, and its direction of travel. Along with the Flight controllers arrow facing forward as well. + +![Matek M10Q](https://github.com/iNavFlight/inav/assets/47995726/52d67080-b96c-47be-bf3a-e6db04f5d374) + +However, there are many manufactures that have released GNSS/compass modules onto the market without any thought of adding an orientation arrow to assist installation. +In this case you maybe required to work out the orientation preset required for your hardware based on the magnetometer chips position, on your specific installation. +This chart is a reference to help gauge the hardware `Orientation Preset` of your magnetometer, based on the chips **Clockwise rotation**. And the power plug being a reference marker for the rear, if no forward arrow is provided. The Orientation Preset must first be established, based on the hardware reference marker, before making any alignment changes with the `align_mag_pitch`, `align_mag_roll`, `align_mag_yaw` settings in the CLI or alignment tool sliders. + +![Clockwise Orientation reference chart](https://github.com/iNavFlight/inav/assets/47995726/c047fb0d-7b83-4a2d-9b2f-b1b986ecfc89) + +You may use the Alignment Tool in the configurator, for _basic_ compass/flight controller orientations until after 7.1. +_But in future releases the alignment tool will cover more extensive hardware alignment._ Alternatively, you may +instead choose the impercial method, outlined below. + +The image below is an example of a module that does not use the default orientation preset, nor has a mounting direction arrow from factory. **The orange orientation arrow has been added to the image below to assist your installation if you have this unit. Its Orientation preset is CW180FLIP with the plug facing to the rear of the model.** _Beitian made the first GPS modules that included a compass for hobby use, back in 2014. And this is how we ended up the confusing default orientation preset of CW270 (flip)_ + + +![Walksnail M181 GPS](https://github.com/iNavFlight/inav/assets/47995726/5146a1fd-8ea3-479f-abb4-45e1dbbe61df) + + +**NOTE :** The compass must work in conjunction with the Flight controllers IMU. If you invert the flight controller or rotate it on the Yaw axis, this will effect the compass alignment settings. +Before attempting to use any navigation modes, you should verify that the compass alignment is working in unity with the flight controllers alignment. By using the Configurator SETUP/STATUS Tab, and moving the model on all axis's with your hand, to ensure the graphical model moves identically to your motions, without any axis drift. +So be mindful of the complexity involved in getting the correct orientation settings if you do deciding to mount the flight controller or GNSS/compass unit on an axis different from the manufacturer recommendation arrow. + + +## Compass calibration and testing + +The general rule behind compass calibration is to ensure the magnetometer reports the earths magnetic field strength equally on all axis's, regardless of weak localized magnetic perturbations. Therefore calibration of the compass should be done _in_ the aircraft. + +Ideally, its not good enough to rotate the compass or aircraft, so that each axis faces skyward or towards the ground. Because this can leave areas where _complete_ calibration is missed. Which will provide poor results and navigation performance. + +To acquire the best 3 axis calibration results, **your arm and wrist should move the aircraft in a figure 8 or infinity [∞](https://www.google.com.au/search?sca_esv=c7d05ac6ad01166f&sca_upv=1&q=3D+compass++calibration+motion&tbm=vid&source=lnms&sa=X&ved=2ahUKEwiThc-btLGEAxVEa2wGHaZaAO8Q0pQJegQIDBAB&biw=1366&bih=615&dpr=1#fpstate=ive&vld=cid:8bdfdcb6,vid:J_cZnPcW-Yw,st:0) symbol motion in the air, while ensuring every axis faces skywards in the process**. Do this several times (not too quickly) within the allotted 30secs. +* Use a long USB extension lead if its done via connection to the configurator. + +The end result should be the `maggain_x` `maggain_y` `maggain_z` calibrated settings should not be greater that 100 points of each other, and as close to 1500 as possible. While `magzero_x` `magzero_y` `magzero_z` can vary. But should never exceed +- 1000 on any axis. Any dramatic difference indicates a poor calibration. Or too much localized magnetic or electromagnetic interference. +**Note**: A good calibration may take several attempts. So use the above information as a reference if you attempt to obtain a more precise calibration. + + +* Perform any tests away of sources of magnetic interference. Domestic appliances or even audio speakers can cause erroneous affects. Computer monitors may also interfere. +* Use an analogue compass in preference to a digital (mobile phone) compass. The compass in your phone is likely to be a similar chip to that on your aircraft, and is as susceptible to the same errors of interference and calibration +* Alternatively, if you know the orientation of surrounding landmarks (e.g. my house is pretty much N/S), then you can do static tests against land orientation. + +Check your machine at cardinal points (North (0°), East (90°), South (180°), West (270°)). Degree perfect alignment is not necessary (and probably not measurable), but you should aim for +/- 5° of known magnetic direction. + +* If the values are incorrect by a multiple of 90°, then the numeric alignment needs to be changed +* If the values are just randomly wrong across the cardinal points, then FLIP is probably wrong (as well). + +* If external Compass module is mounted at 30 degree. +For example at top of a Cam mount, +free alignment is possible by Cli commands. +Cli setting Align_mag must be set to + `Align_mag = default` + `save` + +For example CW270flip, this value is to ADD manually. +For free Alignment, all three axis need to set manually. +A sensor flip is always to realize +over the pitch axis. +For example cw270flip: + + set align_mag_pitch = 1800 + set align_mag_roll = 0 + set align_mag_yaw = 2700 + save + +* For 30 Degree Backwards tilted GPS/Compass Module, reduce align_mag_roll about 300 + + set align_mag_roll = -300 + save + +* Because Magnetometer with CW270° has its roll axis in relation to the Pitch Axis of the FC + +The terminology of the setting FLIP. Is based on the magnetometer chip being upside down, on the under side of the GNSS unit. +If the chip could be mounted with it top facing the sky. FLIP would not be required. The only other exception is if your Flight Controller is mounted inverted in you model. Because the Compass and FC work together to provide the correct heading. FLIP is not required in that case. + +Enhanced Explanation in #6232 +[How to Align and Check if your readings are Correct ](https://github.com/iNavFlight/inav/issues/6232#issuecomment-727636397) + +Painless360 has done a video on this: (https://www.youtube.com/watch?v=kVVJ-DjUjsc) + + +There is an Alignment Tool built into the INAV configurator for INAV 5.0 and later. + +## Emperical Method of Determining Compass Alignment + +Rather than using the alignment tool, it is sometimes easier to instead test the actual readings you are getting from +your compass. The following procedure can be used. + +If the compass is tilted at an odd angle, use a piece of tape or similar to temporarily hold it flat. + + +First ensure the FC alignment is correct. In the Setup tab it must move the correct direction in all three axis. + +Point the aircraft north. Look at the heading in the Setup tab. Quickly turn the aircraft 90°, so it points east, and set it down. Watch the heading reading over the next five seconds. Does it remain stable, or does it slowly change, by more than 10°? + +If the heading slowly catches up over a few seconds, the compass alignment is upside-down. If it remains stable, it's right-side up. If needed, add/subtract 180° to the roll to flip it. + +Now that it's right-side up, we need to set which way is front by adjusting the yaw. Adjust the yaw in 90° increments so that the heading reads about 0°/360° when the aircraft is pointed north. + +Confirm east, south, and west also read correctly. +Save and reboot. + +If you 3D-printed a mount to put the magnetometer at a weird angle, adjust for that now in the alignment tool. + + +That's it, you're done! + +* If you have a tiny whoop board with the 45° angle mounting, you may need to adjust yaw in 45° increments. + + + + +## Initial flight tests + +Once you're content that the static configuration of the compass is correct, it's time to go flying. There is still no guarantee that the machine will not generate interference, so it's advisable to do some controlled testing before attempting more advanced navigation modes: + +* In a clear space (no trees!) attempt a simple line of sight POSHOLD. If the craft fails to hold (toilet bowling, or ever increasing circles (in range and speed)), be prepared to disengage PH and take manual control. + +To confirm magnetic interference, blackbox logging is most useful: + +* Fly at a reasonable speed (> 5m/s) in straight lines, as close as possible to a 90° crossing paths, or a square / rectangular pattern. + +* The blackbox can be analysed to compare the course over the ground (from GPS) with the compass readings (`GPS_ground_course` v. `attitude[2]/10`). Run `blackbox_decode` with the `--merge-gps` option to get GPS fields in the log. + +* If you need help doing this, post the log in the INAV RC Groups forum (or Discord / Telegram channel) and ask for help. There are a number of users familiar with this type of analysis who can assist. + +* It is necessary to fly at a reasonable speed in order to get useful GPS data. Just hovering is not useful as the GPS cannot detect direction without movement. + +* If you use mwp as a ground station with telemetry, then mwp logs can also provide useful analysis, but blackbox is preferred, as there is more data and it is also possible to analyse throttle affects. + +Only when you're content that the compass reads correctly for all throttle settings and directions should you progress to more advanced navigation feature (way points, return to home). The majority of navigation failures are due to poorly performing compasses. + +## Getting started with Ublox GPS + +- Physically connect your GPS to your FC using UART (preferred) or softserial (not recommended). Connect RX from GPS to TX on FC, TX from GPS to RX on FC + +- Activate GPS in the ports tab in INAV configurator and set it to `57600`, `115200` using UART. Or `19200` using softserial (on your chosen port) + +- The baud rate can be set to `230400` when using an M10 device. Which can be beneficial. BUT higher baud rates are also susceptible to interference if the GNSS UART leads run close to a source of RF/EM interference. If you choose to use a higher baud rate, be sure to twist the `TX/RX/5v/G` leads together. Especially if the cable length between the GNSS module and FC is more than 5cm or so. + +- Activate GPS in the configuration tab, set it to Ublox7. + +- Using external compass: + + * Connect the magnetometer to I2C ports (SCL/SDA) Be aware that with SDA/SLC lines connected the flight battery must often be connected to access configurator and power up the magnetometer. + + * Select your newly connected magnetometer by using `mag_hardware` CLI command. Example `set mag_hardware = auto` if you only have one magnetometer connected. + +* Most built in magnetometers are on the underside and rotated 180 degrees, use example `set align_mag = CW180FLIP`. If compass is not working properly in all directions then either think and figure out the direction of your mag, or go through them all until it works as expected. + + * INAV does provide an automatic declination setting, based on GNSS coordinates, which is enabled by default `inav_auto_mag_decl = ON`. But if you want to change magnetic declination manually `set inav_auto_mag_decl = OFF`. You have to set correct declination of your specific location, which can be found here: www.magnetic-declination.com. If your magnetic declination readings are e.g. +3° 34' , the value entered in the INAV configurator is 3.34 (3,34 in some locales). In the CLI, the same effect would be `set mag_declination = 334`. For west declination, use a minus value, e.g. for 1° 32' W, `set mag_declination = -132`. In all cases (both CLI and GUI), the least significant digits are **minutes**, not decimal degrees. + +* Calibrate your compass according to [compass calibration](../quickstart/Sensor-calibration.md#compass-calibration) + + +Some FC boards may not provide 4.5V power on USB supply. In order to power the GPS it is necessary to connect the battery or use another power source (a 4.5V source may be powered by USB). The onboard 3.3V will be powered by USB, but may not provide adequate voltage, as the GPS regulator typically requires 3.6V minimum. + +Once you have connected the GPS to your flight control board + +- Open the INAV Configurator +- Enable GPS on your desired UART port +- Set the baud rate +- Press "Save & Reboot" +- Then go to the "Configuration" tab in the INAV Configurator +- Enable GPS +- Set the "Protocol" to UBLOX7 +- Set the "Ground Assistance Type" to "Auto Detect" +- set MAG Alignment to CW270FLIP +- Press "Set & Reboot" + You can confirm the GPS unit is working by going to the GPS tab in the INAV Configurator and if it is working you will see the "Total Messages" count on the left incrementing in numbers. + +## GNSS Ublox update rate + +INAV 7.0 and later supports a higher GNSS update rate for Ublox receivers. `gps_ublox_nav_hz`. With M10 (now) supporting up to 25Hz. +If you wish to increase navigation precision. And you have a low noise build, good fix and with EPH/EPV data being acceptable. You may wish to alter this setting. But only do so according to the table below. Note how the maximum update rate can only be achieved with lower concurrent constellations. +_And a trade off will also be noticed. The satellite count will generally be a little lower, the higher the update rate. But this isn't a draw back. Because higher precision can still be achieved._ + +![update rate](https://github.com/iNavFlight/inav/assets/47995726/a541d4bb-3dca-4813-a3ce-60a067ae67a1) + + +If it is the first time you have connected the GNSS unit, then it can take several minutes for a satellite fix to be obtained. This is the time required to download the Almanac and Ephemeris data. This is perfectly normal. But if it takes longer than 10 minutes. You likely have GNSS RF band interference coming from a hardware source in your model. + +**Note:** For the GPS unit to work & pick up satellites it needs an unobstructed view to the sky (so if using indoors, don't expect any satellites to be picked up!) + + + * Inav since 1.5 version and newer uses default automatic magnetic declination, if your on old verion or want to change magnetic declination manually you have to set correct declination of your specific location, which can be found here: www.magnetic-declination.com. If your magnetic declination readings are e.g. +3° 34' , the value entered in the INAV configurator is 3.34 (3,34 in some locales). In the CLI, the same effect would be `set mag_declination = 334`. For west declination, use a minus value, e.g. for 1° 32' W, `set mag_declination = -132`. In all cases (both CLI and GUI), the least significant digits are **minutes**, not decimal degrees. + * Calibrate your compass according to [compass calibration](../quickstart/Sensor-calibration.md#compass-calibration) + + +## SBAS + +When using a UBLOX GPS the SBAS mode can be configured using `gps_sbas_mode`. + +The default is AUTO. + +| Value | Region | +| -------- | ------------- | +| AUTO | Global | +| EGNOS | Europe | +| WAAS | North America | +| MSAS | Asia | +| GAGAN | India | +| SOUTHPAN | Australia NZ | +| NONE | NONE | + +If you use a regional specific setting you may achieve a faster GPS lock than using AUTO, but keep in mind to change it if you change your location for holidays etc. + +This setting only works when `gps_auto_config= ON` + +## AssistNow Online/Offline + +INAV 8.0 adds support for AssitNow Online and AssistNow Offline GPS assistance services, which is a proprietary A-GNSS service that can reduce Time To First Fix (TTFF) but requires access to the internet to fetch data. AssistNow Online data is valid for a few hours, while AssistNow Offline data can be valid for weeks. It can be specially beneficial for new GPS units and for units without flash or battery backed ram (BBR). + +In order to use the service, you have to create a thingstream account and register applications to use AssistNow Online and Offline service. The process is described here: https://developer.thingstream.io/guides/location-services/assistnow-getting-started-guide + +Once you have your AssitNow service token, you need to configure INAV Configurator to use it, by clicking on the gear cog on the top right of the Configurator window. +![image](https://github.com/iNavFlight/inav/assets/23555060/1b0baf83-2306-4e19-a321-110ba480a9aa) + +Once INAV Configurator has your token, you can use the buttons on the bottom of the GPS tab to upload AssistNow data to your GPS unit. + +![image](https://github.com/iNavFlight/inav/assets/23555060/2bd2a160-5756-4f4e-8550-04962b19acaf) + +AssistNow Online data requires an active internet connection, while AssistNow Offline will cache the data for 3 days, and will not need internet connection, unless the data is expired. + +If you have internet access, it is recommended to use both AssistNow Online and Offline services. + +## Issues + +### Troubleshooting no GPS fix + +If you aren't seeing a fix, or have a "navigation is unsafe" message, you can check the following things: + +- Check if the PPS light on the GPS module is flashing once per second. You may need to put it outdoors for at least 12.5 minutes the first time. This is so it can download the almanac and ephemerides. If the PPS isn't flashing, the GPS itself doesn't have a fix - this is a separate issue from how it's connected to the FC and how INAV is configured to use it. + +- In the GPS tab, check whether the "messages" count is increasing. If not, you have a communication error between the GPS and the FC - check wiring and the port setting. + +- Next check if the "errors" count is increasing on the same tab. If so, you have low frequency interference or an unreliable physical connection between the FC and GPS. + +- Next, does the GPS tab say you have a good fix? If so, in CLI check that inav_max_eph_epv is set to 1000, not 1.000. You can run: + +set inav_max_eph_epv = 1000 + +save + +### Other issues + +- **`X!`** in the OSD `GPS Satellites` field indicates the flight controller isn't receiving a valid data signal from the GPS. +- No GPS lock: often due to electric noise from flight controller or other equipment such as 1.2ghz video TX. Try getting the GPS as far away as possible from electric noise emitting parts as the FC, ESCs or power cables. Placing the GPS on a mast is also a common way, you can further try shielding with aluminum or copper foil. Don´t place the GPS inside the frame. +- "Toilet bowling": in the beginning the copter holds its position and then starts to make bigger and bigger circles, you probably have your magnetometer not calibrated correctly or it’s interfered from the magnetic field of your power lines or the beeper. +If you are using your FC onboard mag, try to place the the FC as far away as possible from the magnetic interference causing parts e.g. mounting it on/under the top plate on small racers. +- 3.3V GPS units, such as the GPS from 3DR should not be powered by the flight controller's 3.3V pin along with a Spektrum (or other DSM) receiver. The current draw can cause the Spektrum receiver to brownout. Instead use a 3.3V regulator and power the GPS from the BEC or separate battery. diff --git a/versioned_docs/version-8.0.1/advanced/Hardware-Design-Guidelines.md b/versioned_docs/version-8.0.1/advanced/Hardware-Design-Guidelines.md new file mode 100644 index 0000000..fe77e54 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Hardware-Design-Guidelines.md @@ -0,0 +1,86 @@ +--- +title: Introduction +--- + +# Introduction +This document aims at documenting the INAV's team recommendations for hardware manufacturers looking to create a new Flight Control board to run INAV. + +INAV is similar in architecture to Betaflight and runs on a subset of Betaflight supported MCUs, so a lot of the [Betaflight Manufacturer Design Guidelines](https://betaflight.com/docs/development/manufacturer/manufacturer-design-guidelines) and the [Betaflight Connector Standard](https://betaflight.com/docs/development/manufacturer/connector-standard) also apply to INAV designs and we will highlight a few points where INAV differs from their recommendations. + +# Supported MCUs + +| MCU | Flash Size | Remarks | +| ---- | ---- | --- | +| STM32H743 | 2M | +| STM32F7x5 | 1M-2M | +| STM32F405 | 1M | Requires extra hardware for SBUS port | +| AT32F435 | 1M | Requires extra hardware for SBUS port | +| STM32F7x2 | 512K | Reduced feature set. Not recommended for new designs. First in line for deprecation. | + + +# Recommended sensors and ports + +All INAV flight controllers should include: + +* Supported IMU +* Supported Barometer +* I2C pads (used for magnetometer, pitot tubes, temperature sensors, etc...) + * If the FC supports, we recommend using a separate I2C bus for the onboard peripherals and the external port. +* At least 3 UARTS broken out. (RX, Digital VTX and GPS) + * Always expose RX and TX pins +* USB Powered 4v5 lines for RX and GPS + + +# Timer allocation recommendations + +The supported MCU architectures timers group multiple pins on the same timer (up to 4 pins on one timer), and different protocols require different timer settings (Servo PWM, DShot, Addressable LEDs, etc...), so the different functions can't share the same timer. +Based on this limitation, INAV mixer resource allocation algorithm will assign timers for motor usage in the order they appear on your ```target.c``` file, so having consecutive timer assignments is preferred over reusing the same timer a few outputs down the line. + +## Avoid what was done in TIMER2 in this example +![image](https://github.com/user-attachments/assets/a196e079-98f4-4d41-8562-3fb4788afb92) + +In this example, TIMER2 was used for S3, S4 and S9. This causes S9 to not be usable as servo, if you are using S3 and S4 as motors. In extreme scenarios this will result in the loss of flexibility or even making it impossible to use servos and S1-S4 as motors, unless you set the LED output as a servo output. + +## Better allocation example +![image](https://github.com/user-attachments/assets/87bc867f-bdd8-4e0b-b960-b01bea27c94b) + +In this example, the timer allocations are on consecutive outputs, and the first 4 outputs are on separate timers, which gives the most flexibility between fixed wing and quad flight controllers/ + +# Fixed wing flight controllers vs Quad flight controllers + +## Timer allocations +The current Betaflight recommendation for TIMERS is to use the same timer on S1-S4. Given airplanes with 1 or 2 motors are the most common setup and INAV's resource allocation. INAV's recommendation is to Have the S1-S2 on one TIMER, and S2-S3 on a different timer. This is not a hard requirements, but provides fixed wing users with the best experience out of the box, and may still give flexibility to maximize PWM outputs. + +### Common fixed wing motor vs servo mix +|Platform|Motors|Servos| +| ---- | ---- | ---- | +|Airplane | 1-2 | 2-6+ | +| Y-Vtol | 3 | 6+ | +| H-Vtol | 5+ | 2-6+ | + +# Servo Power +Most of Betaflight power delivery recommendations match INAV's, but servos are a lot more common on INAV than Betaflight, so it is worth mentioning our recommendations here. + +* Servos should have its own BEC, not shared with other sensors or the main MCU. +* Servo BECs should support configurable voltage 5V, 6V, 7.2-8.4V(2S) are common servo voltages, but ship as 5V by default. +* Servo power traces on the PCB should be sized according to BEC rating/Servo power requirements. +* Disabling the onboard BEC and providing power directly to the servo rail should be an option. (2S flight pack, or ESC BEC) + +# Current sensor +Include a current sensor in your FC to measure total system current consumption. Quad FCs usually include the current sensor in the 4-in-1 BEC. + +# Connector, Soldering PADs, Silkscreen + +We understand there are often space constraints on selecting what MCU pins gets broken out to connectors, PADs or both. We are going to add our general recommendations here. + +* Wing flight controllers should use standard Servo connectors for all servo outputs. LED output should also use the same pinout/connector, so it can easily be reassigned as motor/servo +* Break out connector pins in PADs as an option. (Eg.: Have a Digital VTX connector, but also break out SBUS, VTX Power, GND and OSD Uart on pads). +* Follow the Betaflight Connector Standard +* Don't push the limit of your silk screen resolution. Too small or blurry silkscreen labels will be unreadable. +* Label your connectors +* Label your solder pads / configuration jumpers + + + + + diff --git a/versioned_docs/version-8.0.1/advanced/INAV-MSP-frames-changelog.md b/versioned_docs/version-8.0.1/advanced/INAV-MSP-frames-changelog.md new file mode 100644 index 0000000..72120e5 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/INAV-MSP-frames-changelog.md @@ -0,0 +1,311 @@ +--- +title: iNav MSP Frames Changelog +--- + +## MSP API Version 2.3 + +### MSP2_INAV_MC_BRAKING / MSP2_INAV_SET_MC_BRAKING + +New MSP frames used to setup mixer properties. + +Frame IDs: + +* MSP2_INAV_MC_BRAKING, Frame ID _0x200B_ +* MSP2_INAV_SET_MC_BRAKING, Frame ID _0x200C_ + +| Length | Setting | Notes | +| ----- | ----- | ----- | +| 2 | `nav_mc_braking_speed_threshold` | | +| 2 | `nav_mc_braking_disengage_speed` | | +| 2 | `nav_mc_braking_timeout` | | +| 1 | `nav_mc_braking_boost_factor` | | +| 2 | `nav_mc_braking_boost_timeout` | | +| 2 | `nav_mc_braking_boost_speed_threshold` | | +| 2 | `nav_mc_braking_boost_disengage_speed` | | +| 1 | `nav_mc_braking_bank_angle` | | + + +## MSP API Version 2.2 + +Since `mixerMode` is no longer used, legacy MSP frames will return always **mixer mode** *3 (QuadX)* and attempt to set mixer mode via MSP will be ignored. This affects following MSP frames: + +1. MSP_IDENT +1. MSP_MIXER +1. MSP_BF_CONFIG +1. MSP_SET_MIXER +1. MSP_SET_BF_CONFIG + +### MSP2_INAV_MIXER / MSP2_INAV_SET_MIXER + +New MSP frames used to setup mixer properties. + +Frame IDs: + +* MSP2_INAV_MIXER, Frame ID _0x2010_ +* MSP2_INAV_SET_MIXER, Frame ID _0x2011_ + +| Length | Setting | Notes | +| ----- | ----- | ----- | +| 1 | `yaw_motor_direction` | | +| 2 | `yaw_jump_prevention_limit` | | +| 1 | `platform_type` | | +| 1 | `has_flaps` | | + +## INAV 1.9 MSP Version 2.1 + +### MSP2_COMMON_MOTOR_MIXER / MSP2_COMMON_SET_MOTOR_MIXER + +Frame IDs: + +* MMSP2_COMMON_MOTOR_MIXER, Frame ID _0x1005_ +* MSP2_COMMON_SET_MOTOR_MIXER, Frame ID _0x1006_ + +## INAV 1.7.1 MSP API Version 1.26 + +### MSP_FW_CONFIG / MSP_SET_FW_CONFIG + +Get and set Fixed Wing options + +Frame IDs: + +* MSP_FW_CONFIG, Frame ID _23_ +* MSP_SET_FW_CONFIG, Frame ID _24_ + +| Length | Setting | Notes | +| ----- | ----- | ----- | +| 2 | `nav_fw_cruise_thr` | | +| 2 | `nav_fw_min_thr` | | +| 2 | `nav_fw_max_thr` | | +| 1 | `nav_fw_bank_angle` | | +| 1 | `nav_fw_climb_angle` | | +| 1 | `nav_fw_dive_angle` | | +| 1 | `nav_fw_pitch2thr` | | +| 2 | `nav_fw_loiter_radius` | | + +### MSP_RTH_AND_LAND_CONFIG / MSP_SET_RTH_AND_LAND_CONFIG + +Get and set Return-To-Home and Land options + +Frame IDs: + +* MSP_RTH_AND_LAND_CONFIG, Frame ID _21_ +* MSP_SET_RTH_AND_LAND_CONFIG, Frame ID _22_ + +| Length | Setting | Notes | +| ----- | ----- | ----- | +| 2 | `nav_min_rth_distance` | | +| 1 | `nav_rth_climb_first` | _boolean_ | +| 1 | `nav_rth_climb_ignore_emerg` | _boolean_ | +| 1 | `nav_rth_tail_first` | _boolean_ | +| 1 | `nav_rth_allow_landing` | _boolean_ | +| 1 | `nav_rth_alt_mode` | _dictionary_ | +| 2 | `nav_rth_abort_threshold` | | +| 2 | `nav_rth_altitude` | | +| 2 | `nav_landing_speed` | | +| 2 | `nav_land_slowdown_minalt` | | +| 2 | `nav_land_slowdown_maxalt` | | +| 2 | `nav_emerg_landing_speed` | | + +## INAV 1.6 MSP API Version 1.24 + +### MSP_WP_MISSION_LOAD / MSP_WP_MISSION_SAVE + +Load/save waypoint mission to non-volatile storage + +Frame IDs: + +* MSP_WP_MISSION_LOAD, Frame ID _18_ +* MSP_WP_MISSION_SAVE, Frame ID _19_ + +| Length | Notes | +| ----- | ----- | +| 1 | Mission ID (reserved) | + + +### MSP_POSITION_ESTIMATION_CONFIG + +Frame IDs: + +* MSP_POSITION_ESTIMATION_CONFIG, Frame ID _16_ +* MSP_SET_POSITION_ESTIMATION_CONFIG, Frame ID _17_ + +| Length | Setting | Notes | +| ----- | ----- | ----- | +| 2 | `inav_w_z_baro_p` | float as `value * 100` | +| 2 | `inav_w_z_gps_p` | float as `value * 100` | +| 2 | `inav_w_z_gps_v` | float as `value * 100` | +| 2 | `inav_w_xy_gps_p` | float as `value * 100` | +| 2 | `inav_w_xy_gps_v` | float as `value * 100` | +| 1 | `inav_gps_min_sats` | | +| 1 | `inav_use_gps_velned` | ON/OFF | +| 6 | `reserved` | | + + +### MSP_CALIBRATION_DATA + +Sensors calibration data + +| Length | Setting | Notes | +| ----- | ----- | ----- | +| 2 | `acczero_x` | | +| 2 | `acczero_y` | | +| 2 | `acczero_z` | | +| 2 | `accgain_x` | | +| 2 | `accgain_y` | | +| 2 | `accgain_z` | | +| 2 | `magzero_x` | | +| 2 | `magzero_y` | | +| 2 | `magzero_z` | | +| 8 | _reserved_ | | + +Frame IDs: + +* MSP_CALIBRATION_DATA, Frame ID _14_ +* MSP_SET_CALIBRATION_DATA, Frame ID _15_ + +### MSP_NAV_POSHOLD + +Basic position hold settings. Mostly, but not only, for multirotor + +Frame IDs: + +* MSP_NAV_POSHOLD, Frame ID _12_ +* MSP_SET_NAV_POSHOLD, Frame ID _13_ + +| Length | Setting | Notes | +| ----- | ----- | ----- | +| 1 | `nav_user_control_mode` | dictionary | +| 2 | `nav_max_speed` | | +| 2 | `nav_max_climb_rate` | | +| 2 | `nav_manual_speed` | | +| 2 | `nav_manual_climb_rate` | | +| 1 | `nav_mc_bank_angle` | | +| 1 | `nav_use_midthr_for_althold` | ON/OFF | +| 2 | `nav_mc_hover_thr` | | +| 8 | _reserved_ | | + +## INAV 1.5 MSP API Version 1.23 + +For INAV 1.5 and later, the MSP_STATUS/sensor field reports sensor failure. This updates MSP_SENSOR (see http://www.multiwii.com/wiki/index.php?title=Multiwii_Serial_Protocol) in a backwards compatible manner to report additional sensors and sensor health. The sensor field is reported as: + +| Bit | Usage | +| ---- | ----- | +| 0 | Set if ACC present | +| 1 | Set if BARO present | +| 2 | Set if MAG present | +| 3 | Set if GPS present | +| 4 | Set if SONAR present | +| 5 | Reserved for OPFLOW (not implemented) | +| 6 | Set if PITOT present | +| 15 | Set on sensor failure | + +The sensor hardware failure indication is backwards compatible with versions prior to 1.5 (and other Multiwii / Cleanflight derivatives). + +### MSP_SENSOR_CONFIG + +Frame IDs: + +* MSP_SENSOR_CONFIG, Frame ID _96_ +* MSP_SET_SENSOR_CONFIG, Frame ID _97_ + +| length | setting | Notes | +| ---- | ---- | ---- | +| 1 | `acc_hardware` | | +| 1 | `baro_hardware` | | +| 1 | `mag_hardware` | | +| 1 | `pitot_hardware` | | +| 1 | Reserved for rangefinder | not yet implemented | +| 1 | Reserved for OpFlow | not yet implemented | + +## INAV 1.4 MSP API Version 1.22 + +### MSP_INAV_PID + +Frame IDs: + +* MSP_INAV_PID, Frame ID _6_ +* MSP_SET_INAV_PID, Frame ID _7_ + +| length | setting | Notes | +| ---- | ---- | ---- | +| 1 | `async_mode` | | +| 2 | `acc_task_frequency` | | +| 2 | `attitude_task_frequency` | | +| 1 | `mag_hold_rate_limit` | | +| 1 | MAG_HOLD_ERROR_LPF_FREQ | not implemented yet as configurable | +| 2 | `yaw_jump_prevention_limit` | | +| 1 | `gyro_lpf` | | +| 1 | `acc_soft_lpf_hz` | | +| 4 | _reserved_ | reserved for further usage | + +## MSP_FILTER_CONFIG + +Compatible with Betaflight + +Frame IDs: + +* MSP_FILTER_CONFIG Frame ID _92_ +* MSP_SET_FILTER_CONFIG Frame ID _93_ + +| length | setting | Notes | +| ---- | ---- | ---- | +| 1 | `gyro_soft_lpf_hz` | | +| 2 | `dterm_lpf_hz` | | +| 2 | `yaw_lpf_hz` | | +| 2 | `gyro_soft_notch_hz_1` | Since INAV 1.6 | +| 2 | `gyro_soft_notch_cutoff_1` | Since INAV 1.6 | +| 2 | `dterm_soft_notch_hz` | Since INAV 1.6 | +| 2 | `dterm_soft_notch_cutoff` | Since INAV 1.6 | +| 2 | `gyro_soft_notch_hz_2` | Since INAV 1.6 | +| 2 | `gyro_soft_notch_cutoff_2` | Since INAV 1.6 | + +## MSP_PID_ADVANCED + +Compatible with Betaflight + +Frame IDs: + +* MSP_PID_ADVANCED Frame ID _94_ +* MSP_SET_PID_ADVANCED Frame ID _95_ + +| length | setting | Notes | +| ---- | ---- | ---- | +| 2 | `rollPitchItermIgnoreRate` | | +| 2 | `yawItermIgnoreRate` | | +| 2 | `yaw_p_limit` | | +| 1 | _not used_ | Betaflight `deltaMethod` | +| 1 | _not used_ | Betaflight `vbatPidCompensation` | +| 1 | _not used_ | Betaflight `setpointRelaxRatio` | +| 1 | `dterm_setpoint_weight` | Since INAV 1.6 | +| 2 | `pidsum_limit` | Since INAV 1.6 | +| 1 | _not used_ | Betaflight `itermThrottleGain` | +| 2 | `rate_accel_limit_roll_pitch` | divided by `10` | +| 2 | `rate_accel_limit_yaw` | divided by `10` | + +## INAV 1.3 MSP API 1.21 + +### case MSP_ADVANCED_CONFIG: + +Frame IDs: + +* MSP_ADVANCED_CONFIG, Frame ID _90_ +* MSP_SET_ADVANCED_CONFIG, Frame ID _91_ + +| length | setting | Notes | +| ---- | ---- | ---- | +| 1 | `gyro_sync_denom` | | +| 1 | _not used_ | Betaflight `masterConfig.pid_process_denom` | +| 1 | _not used_ | Betaflight `masterConfig.motorConfig.useUnsyncedPwm` | +| 1 | `motor_pwm_protocol` | _dictionary_ | +| 2 | `motor_pwm_rate` | | +| 2 | `servo_pwm_rate` | | +| 1 | `gyro_sync` | _boolean_ | + +##Change log: + +* 2016-11-20 - scaling of `rate_accel_limit_roll_pitch` and `rate_accel_limit_yaw` in **MSP_PID_ADVANCED** changed from 1000 to 10 +* 2016-12-11 - added MSP_STATUS update for INAV 1.5 +* 2017-01-15 - added dterm_setpoint_weight added to MSP_PID_ADVANCED frame +* 2017-01-15 - MSP_CALIBRATION_DATA +* 2017-01-18 - `pidsum_limit` in `MSP_PID_ADVANCED` +* 2017-01-23 - MSP_POSITION_ESTIMATOR diff --git a/versioned_docs/version-8.0.1/advanced/INAV-Missions.md b/versioned_docs/version-8.0.1/advanced/INAV-Missions.md new file mode 100644 index 0000000..fd884cf --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/INAV-Missions.md @@ -0,0 +1,365 @@ +--- +title: iNav Missions +--- + +# Overview + +INAV supports autonomous flight using waypoints. In order to use this capability, it is may be necessary to utilise and configure some supporting technologies, including: + +* A GCS (Ground Control Station) / INAV Configurator. The GCS will typically provide functions to create waypoint (WP) missions, upload WP missions to the flight controller (FC), validate the mission, execute the mission and log the mission; +* Telemetry Hardware. In order to transfer the mission to the FC (pre arming), and potentially to monitor the mission in real time during mission execution it is necessary to install and configure a telemetry system between the GCS and the multicopter. + +This wiki topic describes the software currently available and some of the telemetry options. Please also see the [wiki page on more general navigation mode options](../features/Navigation-modes.md#wp---autonomous-waypoint-mission). + +Before you get started on a waypoint mission, you need to know what the expectation is. Namely, the constraints of what is needed in order for waypoints to be loaded in the FC and the FC to allow you to ARM without a message of "Navigation Is Unsafe". If you get this message after loading your mission, one of the following is the cause: +* You configured WP/PH/RTH or Failsafe RTH and you don't have a good GPS fix accuracy +* You try to arm into RTH/PH/WP +* You have waypoints mission in memory and your first waypoint is too far from your current position +* HODP is too high + +The default distance for the first waypoint is configured with the 'nav_wp_safe_distance' value (default of 10000cm, ~ 300 feet). + +The MSP (MultiWii Serial Protocol) messages defining mission navigation are [documented](./MSP-Navigation-Messages.md). This message set is supported by the [Mission Planner for INAV](https://play.google.com/store/apps/details?id=com.eziosoft.ezgui.inav&hl=en) and [mwp](https://github.com/stronnag/mwptools) ground stations. The [protocol documentation](./MSP-Navigation-Messages.md) describes any optional parameters to control mission behaviour. + +# Ground Control Stations + +Currently there are two applications widely used for INAV mission management. The INAV Configurator as a Multi-Platform tool and [mwp](https://github.com/stronnag/mwptools) for different Linux, Windows (WSL) and FreeBSD. In the future, other options may become available, particularly as the MAVLink protocol becomes supported by INAV. However, MAVLink based tools will only provide monitoring. + +## [mwp](https://github.com/stronnag/mwptools) (Linux / FreeBSD / Windows) + +[mwp](https://github.com/stronnag/mwptools) can be downloaded from [Github](https://github.com/stronnag/mwptools). [mwp](https://github.com/stronnag/mwptools) is open source (GPL 3). It is available only as a source distribution and it is necessary to compile and install the application. Build instructions and dependencies are provided for Ubuntu and Fedora. Arch Linux users can install [mwp](https://github.com/stronnag/mwptools) from the AUR ([Arch User Repository](https://aur.archlinux.org/packages/mwptools-git/)). + +In addition to mission planning and logger, [mwp](https://github.com/stronnag/mwptools) also supports the replay of blackbox logs against a geospatial background (requires [blackbox-tools](https://github.com/cleanflight/blackbox-tools)). [mwp](https://github.com/stronnag/mwptools) also includes numerous poorly documented scripts for mission and blackbox analysis, as well as an overly comprehensive user guide. + +There is a [RC Groups support forum](http://www.rcgroups.com/forums/showthread.php?t=2633708) + +Use on MS Windows requires Cygwin or WSL (or a virtual machine). + +## INAV Configurator + +Since version 1.9.2, the INAV configurator provides rudimentary mission planning capabilities. Since 2.2 it can save and restore missions to the file system. INAV coupled with LuaTelemetry and an applicable radio such as the Taranis series using SmartPort negates the need for a discrete telemetry radio system and sends all of the telemetry data directly to the LCD screen on the transmitter. + +## [Telemetry Viewer (Android)](https://github.com/CrazyDude1994/android-taranis-smartport-telemetry) +Telemetry viewer is an Android application which allows you to track your telemetry data and GPS location. It has a log recorder and log replay function which allows you to track down your drone location. It works by using bluetooth module in your TX (if your TX doesn't have BL module, you can always buy BL module and connect to your TX). R9M, CrossFire(both lite and standard editions), Mavlink and LTM are supported. In latest version you also can connect to your TX by USB cable. More info at [GitHub](https://github.com/CrazyDude1994/android-taranis-smartport-telemetry) Page + +## Options for other platforms + +[impload](https://github.com/stronnag/impload) is a cross-platform command line application to upload / download /save / restore missions in a number of formats to an INAV flight controller. Supported formats include: + +* MW XML mission files (as used by [mwp](https://github.com/stronnag/mwptools), ezgui, mission planner for INAV, INAV configurator) +* apmplanner / qgroundcontrol mission files (QGC WP 110 format) +* GPX files (tracks, routes, waypoints) +* KML, KMZ files +* Plain, simple CSV files + +Please see [impload's wiki user guide](https://github.com/stronnag/impload/wiki/impload-User-Guide) for more information and CSV format. + +[mwp](https://github.com/stronnag/mwptools) can be run in a virtual machine on MS Windows and OSX / macOS, using virtualisation tools such as VirtualBox and Parallels. + +WinGUI is a Windows program developed for Multiwii-nav. It is currently somewhat abandoned, but would be a viable basis for developing a Windows program for INAV navigation (or better, supporting both Multiwii and INAV, as do the other tools described here). Should anyone wish to rescue this fine application, the source code (GPL v3) may be found at https://code.google.com/archive/p/mw-wingui/. + +# Telemetry Hardware + +In order to transfer missions from the GCS to the flight controller, and to monitor / log flight data, it is necessary to establish a data link between the GCS and the multirotor. Some popular technologies include: + +* Bluetooth +* 3DR (433Mhz / 915Mhz) +* WiFi (ESP8266) +* HC-12 (433Mhz, similar to 3DR) +* Openlrs/Openlrsng devices (such orangerx 433 tx/rx combo) +* LoRA (868 / 433 Mhz options) +* mLRS (433 / 868,915 / 2.4GHz options) + +## Bluetooth + +Bluetooth is the easiest solution to get working with minimal effort. A cheap HC-06 BT module is all that is needed (the phone or laptop built-in BT is used on the ground station). Its disadvantage is the range, for most users data loss / dropout will occur over 20m. It is thus useful for testing out configurations, but for many users the limitation of range will call for another solution. + +[Setup guide](https://quadmeup.com/adding-bluetooth-telemetry-to-flip32-and-cleanflight/) + +## 3DR + +3DR radios operate in the regionally unlicensed 433MHz and 900MHz bands. They are widely available from online retailers. Detailed documentation is available at from [Ardupilot.org](http://ardupilot.org/copter/docs/common-3dr-radio-advanced-configuration-and-technical-information.html). The standard 3DR firmware is designed for the MAVLink protocol. While there is a fork of the firmware available for the MSP (Multiwii Serial Protocol), it does not support recent advances in INAV (MSPv2, LTM); and the current recommendation is just to use the standard firmware with MAVLink options disabled. + +3DR is a medium range technology, up to at least 1km. Range is somewhat dependent on baud rate and is [well documented](http://ardupilot.org/copter/docs/common-3dr-radio-advanced-configuration-and-technical-information.html). + +Advanced configuration for 3DR [is detailed at the end of this wiki page](../features/iNavFlight-Missions.md#3dr-1). + +## ESP8266 + +ESP8266 is a small WiFi to serial bridge. It can be used to transport the serial data link over WiFi. It offers reasonable range (c. 300m) and convenience. The author has seen no evidence of interference between ESP8266 devices and 2.4GHz RC links. + +Advanced configuration for ESP8266 is [detailed at the end of this wiki page](../features/iNavFlight-Missions.md#esp8266-1), some preliminary data can be found in [this RC Groups post](http://www.rcgroups.com/forums/showpost.php?p=35007195&postcount=6645). That post demonstrates excellent coverage out to 150m using [mwp](https://github.com/stronnag/mwptools), ESP07 and ESP01 modules and the standard vendor firmware. The ESP07 module works well with an external antenna. + +There is an ezgui [howto](http://ez-gui.com/manual/multiwii-clearflight-wifi-to-ezi-gui-how-to/) on ESP8266 devices. + +Another, highly detailed how-to for ESP8266 and Cleanflight/Baseflight/INAV is available [here](https://quadmeup.com/wifi-telemetry-for-cleanflight-with-ez-gui-and-esp8266/). This reports very poor results, possibly due to the native WiFi capability in the phone hosting ezgui (vice the laptop adaptor for the [mwp](https://github.com/stronnag/mwptools) test). + +## HC-12 + +HC-12 is a comparable radio technology to 3DR with similar range and performance characteristics. Its configuration and usage with INAV is well documented https://quadmeup.com/diy-wireless-telemetry-link-for-uav/ and https://quadmeup.com/hc-12-433mhz-wireless-serial-communication-module-configuration/. The configuration documented would work equally well in ezgui and [mwp](https://github.com/stronnag/mwptools). These small radios work really well with good range in FU3 mode / 9600 baud (and very cheap). + +## Openlrsng + +[Openlrsng](https://github.com/openLRSng/openLRSng) is a full radio control system, mainly used for LRS (long range systems). It supports radio beacon for lost models, failsafe and other characteristics. + +For telemetry data, it offers a bi-directional channel, and Frsky, S.Port (both simulated protocols) and serial transparent telemetry are allowed. The telemetry range in this system depends on power, antennas and baudrate. Lowering baudrate, and with good antennas, very long distances have been achieved with full telemetry at ground station. + +Openlrsng can be combined with bluetooth devices at GCS, so you could connect to the model in flight with your phone, tablet or PC. In this case, depending on the protocol used or the complexity of your transmitter or the software in your android device, there are many options, like seeing the data on the LCD screen of the transmitter (er9x, LUA scripts for Taranis..), using of an antenna tracker, practicing a 'follow-me' performance... + +A great number of compatible openlrsng devices can be found, from Hobbyking (UHF/LRS orangerx) to eBay and other suppliers. + +## LoRA + +LoRA provides the capability for low power / long range telemetry using similar arrangements as for 3DR and HC-12, with the possibility of extended range. A description of a working setup and albeit short range comparison with 3DR/HC-12 is in the [mwptools wiki](https://github.com/stronnag/mwptools/wiki/Using-LoRa-for-INAV-Telemetryhttps://github.com/stronnag/mwptools/wiki/Using-LoRa-for-INAV-Telemetry) or as a [PDF]( https://raw.githubusercontent.com/wiki/stronnag/mwptools/data/Using-LoRa-for-INAV-Telemetry.pdf). + +## Other solutions + +Other solutions include Dragonlink. Contributions to the wiki solicited! + +DRAGONLINK INSTRUCTIONS: + +Setup your dragonlink per this.. http://www.dragonlinkrc.com/instructions/v3equipment/v3completesystem/ + +I did not enable mavlink decoding and set everything to 57600 baud. So basically I am using the DL "Radio Modem" feature and no flow control. I also use a USB connection from DL TX to Win 10 PC running iNAV. + +I setup DL 1W RX UEXP3 (middle one) to: + +Pin 2: Serial In +Pin 3: Serial Out +Pin 4: Vector Telemetry (NOTE I DO NOT HAVE THIS WIRE PHYSICALLY CONNECTED TO THE F722) +Pin 5: SBUS + +Note: The 1W DL RX needs at least 5V, the 4v5 pad of my F722-WING did not have the mustard to power the DL RX so i just ran a male-male servo jumper from PWM rail of DL RX to PWM rail of F722-WING. Pins 1,4,6 of the UEXP3 connector were not physically connected. DO NOT POWER THE RX FROM MORE THAN ONE LOCATION! + +I do not recommend using the "wireless" slider switch option in INAV Configurator, it induced significant lag on initial connection. So just set iNAV to the right port and baud (57600) and hit connect. It takes just slightly longer than a direct USB connection. + +This is being connected to a Matek F722-WING using hardware UART1 MSP2 at 57600 baud on latest stable iNAV as of 01/15/2020. + +I verified CLI commands work however it causes a reboot of FC and connection breaks. + +I also did a DL TX power off test and it reconnected without an issue when left disconnected for ~30s. + +No test flights have been performed yet. + + +# Telemetry Protocols + +Data is transferred between the GCS and the FC using a "Telemetry Protocol". Currently, INAV offers two protocols (MSP and LTM), both of which are supported by ezgui and [mwp](https://github.com/stronnag/mwptools). There is also a minimal implementation of MAVLink ([mwp](https://github.com/stronnag/mwptools) already supports this MAVLink subset), this will allow other tools to be used, such as the cross-platform [QGroundControl](http://qgroundcontrol.org/). The MAVLink implementation only supports push telemetry (i.e. mission monitoring, not mission planning). + +## MSP - MultiWii Serial Protocol + +MSP is the 'native' messaging protocol for INAV. It is well supported by the configurator, ezgui, [mwp](https://github.com/stronnag/mwptools) and many OSDs. It is all you need to upload missions and monitor flights. Its one disadvantage for mission monitoring is that it is a polled protocol, that is the GCS has to request data and then the FC responds. This is not really an issue for some data links such as BT and WiFi, but the half-duplex nature of 3DR, where there is significant time cost in switching between receive and transmit modes, limits the performance for mission monitoring. + +[mwp](https://github.com/stronnag/mwptools) (and possibly other ground stations) can mitigate this performance hit by using MSP for configuration, mission upload / verification and monitoring prior to arming, and when configured in the FC, switching to LTM for mission monitoring when armed. This switch-over is automatic and transparent to the user. + +## LTM - Light Telemetry + +LTM is a 'push' telemetry protocol; that is the FC sends data unsolicited to the GCS. This avoids the 'half-duplex' time penalty of MSP on 3DR radios. Unlike MSP, LTM only provides flight data, thus if you need the GCS to select a vehicle icon based on the multirotor type (QUADX, TRI etc), offer additional functions based in the FC firmware version or upload waypoints, then it is necessary to share the serial port on the FC between MSP and LTM; MSP is used when unarmed and LTM when armed. Both ezgui and [mwp](https://github.com/stronnag/mwptools) handle the switch-over automatically. + +You can find documentation / specification for the LTM implementation in INAV in the [INAV Wiki](https://github.com/iNavFlight/inav/wiki/Lightweight-Telemetry-(LTM)). + +LTM will operate effectively over low data rate links. Currently the INAV implementation pushes c. 300 bytes /sec in its fastest rate, so 4800 baud over the air rate would suffice. INAV provides configuration options for 'medium' and 'slow' LTM rates, further reducing the required baud rate, which may in turn increase range for some radio solutions. + +LTM is supported by ezgui, [mwp](https://github.com/stronnag/mwptools) and ([for OSD, ltm-osd-simple](https://github.com/digitalentity/ltm-osd-simple)). Also [LTM Oled](https://github.com/sppnk/LTM-Telemetry-OLED). + +## MAVLink + +[MAVLink](http://qgroundcontrol.org/mavlink/start) is a full-feature, highly capable protocol used by PX4, PIXHAWK, APM and Parrot AR.Drone platforms (inter alia). The implementation for INAV is 'push telemetry' only, it only be used for flight monitoring and should be able to accept missions (however finding a ground station that will cooperate may not be easy). + +The initial implementation in INAV is supported by ezgui, Droid Planner 2, [mwp](https://github.com/stronnag/mwptools) and some older versions of QGroundControl (modern versions appear to require a more complex handshake). Probably some of the Android .apks for Mavlink will work with this telemetry protocol. Tower (Droid Planner 3) is reported as not working. + +# Configuring the Flight Controller +## Ports & port sharing + +If order to use mission planning or just flight monitoring, it is necessary to configure a port on the flight controller. Due to the often limited number of ports, multiple devices and potential baud rate clashes, some compromises may have to be made. + +* Most users will want MSP on UART1 at 115200 baud (or better) for the typically shared USB connection for flashing and configuration; +* For reliable GPS performance, it is recommended to run the GPS on a hardware serial port; +* A Blackbox logger typically requires a high baud rate; +* You can only have MSP enabled on two ports; +* Telemetry can run at a slow rate, even on soft serial. + +From this, some configuration examples; both these examples assume a PPM RX: +### Simple, short range 'park flyer' +* UART1 MSP (USB and Bluetooth), same baud rate (typically 115200) +* UART2 GPS + +### Advanced, black box and telemetry: F1 hardware +* UART1 MSP (unarmed), Blackbox (armed). The baud rates may differ (e.g. 115200 MSP, 250000 BBox) +* UART2 GPS +* Softserial MSP and LTM (MSP unarmed, LTM armed), maximum 19200 baud + +### Advanced, black box and telemetry: F3 hardware +* UART1 MSP (unarmed), Blackbox (armed). The baud rates may differ (e.g. 115200 MSP, 250000 BBox) +* UART2 GPS +* UART3 MSP and LTM (MSP unarmed, LTM armed). No speed limit, but 3DR / HR-12 will have better range at low rates, and there is no benefit to higher rates + +Using a serial RX is more difficult, particularly for F1 devices. For F3 devices, in the final example, putting the serial RX (Sbus, SpekSat) on UART3 and using soft serial for for MSP+LTM would be an acceptable solution. + +# Mission Planning + +INAV currently supports a subset of the WP / Mission MSP +["specification"](https://docs.google.com/document/d/16ZfS_qwc-rJeA7N5Tx0DA6wtgxl6HdGgaz-jE3lHBWs). The +following waypoint types are available (INAV 1.1, or later as indicated). + +* Waypoint (leg speed addition) +* Infinite position hold +* RTH (auto land available from 1.2 RC1) +* Timed Position Hold (2.5+) +* Set POI (2.6+) +* Jump (2.5+) +* Set Heading (2.6+) +* Land (2.5+) + +ezgui and [mwp](https://github.com/stronnag/mwptools) support INAV WP navigation; they both use the mission definition originally implemented in WinGui, thus mission definitions are interchangeable between these applications (and mw-nav if you limit the mission features to the common subset). + +ezgui and [mwp](https://github.com/stronnag/mwptools) both provide interactive WP editing on a geospatial background and mission upload to / download from the multicopter. At least for [mwp](https://github.com/stronnag/mwptools) (to be confirmed for ezgui), the mission upload process also downloads the mission and compares the two. **You should not attempt to fly a mission unless it has validated**. + +60 waypoints can be defined. + +Missions are initiated by a switch setting on the RC TX. It can also be aborted at any time turning this switch (NAV WP) off. + +A mission is manually terminated by RTH, infinite position hold or reaching the end of the waypoint list. In the latter case, the vehicle will enter a position hold state until the pilot takes manual control (by negating the TX WP state). + +An 'in progress' mission flight may be aborted prior to reaching one of the above end points by: + +* Switching out of WP mode; or +* Invoking RTH. + +# Mission / Flight Monitoring + +Prior to engaging any automated mode, it is advisable to verify that you have reasonable satellite performance. Even with 10+ satellites and HDOP < 1.5, there is a remote possibility that you might experience 'a bad satellite day'; there's an example described in [issue 431](https://github.com/iNavFlight/inav/issues/431). An easy way to verify you have good coverage is to try POSHOLD before executing a mission (or RTH). + +# Waypoint Mode + +As soon as INAV starts a leg on a WP mission, it will attempt to reach the leg altitude, so if you have + +* WP 1, altitude 10m +* WP 2, altitude 50m + +On engaging WP mode, INAV will attempt to reach 10m altitude. On passing WP 1, INAV will attempt to reach 50m. Altitude is not taken into consideration in determining when a waypoint is reached (only latitude / longitude). + +WP mode is only disengaged under the following circumstances: + +1. GPS is lost (will switch to emergency landing and land) +2. Failsafe took over (Radio link lost) +3. Pilot manually disables WP mode by either turning off the switch or enabling RTH +4. The end of the mission is reached. + +# Advanced configuration +## 3DR +### Hardware +3DR radios are sold either as a pair of air station / ground station or individually. Functionally, the air / ground radios are identical, the air side having a tty/serial connection and the ground side having a USB interface for connecting to a computer. For ezgui (and [mwp](https://github.com/stronnag/mwptools)), it is easier to use a Bluetooth bridge. This bridge is also recommended for [mwp](https://github.com/stronnag/mwptools), as it avoids any potential RF interference from the USB cable and allows the more flexible placement of the ground antenna. In order to use the 3DR / BT bridge, it is necessary to have 'air side' devices at both ends of the link. It is then necessary to 'back-to-back' the ground 3DR and the BT device [example field setup](http://www.rcgroups.com/forums/showthread.php?t=2495732&page=65) and provide power. A voltage regulator and an old lipo would work well. The [HR-12](https://quadmeup.com/diy-wireless-telemetry-link-for-uav/) description provides the canonical connection diagram, a 5V regulator or BEC may be used. + +### Firmware +The 3DR radios will ship with a version of the [Sik Firmware](https://github.com/Dronecode/SiK). This firmware is optimised for MAVLink (it understands MAVLink framing, reports RSSI to a MAVLink GCS). There is a fork (of an older version) that provides similar capabilities (understands MSP framing, reports RSSI to a MSP GCS (ezgui, [mwp](https://github.com/stronnag/mwptools)) for [MSP](https://github.com/stronnag/SiK-MSP); however its use is no longer recommended as it does not understand MSPv2 or LTM, so it somewhat pointless. + +### Configuration + +Prior to use, it is advisable to configure the 3DR radio to meet local regulations for unlicensed use and to optimise the air speed for maximum range. This can be done either through a [graphical user interface](http://vps.oborne.me/3drradioconfig.zip) or a serial terminal interface using tools such as `picocom` / `screen` / `putty`. The graphical tool will run on Linux using 'mono'. +For the following discussion, the serial AT command set is used. + +* If you use the modified MSP aware firmware, then you can enable MSP framing: +```` +ATS6 = 1 +```` +or both MSP framing and MSP radio status reporting: +```` +ATS6 = 2 +```` +* Otherwise (recommended), just turn message based framing off: +```` +ATS6 = 0 +```` +* You will get better range at lower speeds, it is also good practice to set the air speed and the ground speed to close rates, in order to minimise the probability of serial overruns. Here we set air speed to 24000 baud and ground speed to 19200 baud. Actually, as the data rate is low (and fits within the device buffers, this is not so important; an air speed of 24000 baud and a ground speed of 115200 works as well. +```` +ATS1 = 19 +ATS2 = 24 +```` +These settings are more than adequate for both MSP and LTM. + +* Another useful setting in the MAX_WINDOW (`ATS15`). If you only intend to MSP (no LTM), then set this to a small value, the minimum is 33; this minimises latency. +```` +ATS15 = 33 +```` +* However, if you intend to also use LTM, set this to highest permitted value (131) to maximise throughput, or experiment with intermediate values `ATS15 = 66`: +```` +ATS15 = 131 +```` +* As MSP and LTM provide checksums, we can disable some error checking / correction: +```` +ATS5 = 0 +```` +* It is necessary to have the same settings on both the air and ground radios for the majority of settings (otherwise the radios will not connect). Repeat the settings using RT rather than AT, then save and reboot both device: do the remote first, e.g.: +```` +RTS15 = 131 +RT&W +RTZ + +ATS15 = 131 +AT&W +ATZ +```` +If you use Linux and a USB connected ground side (rather than the USB / BT bridge), you can use `udev` to set the device name. You will need to use `lsusb`to find the `serial` parameter for your device. The rule below links the `/dev/ttyUSBx` name to `/dev/3dr`. +```` +### /etc/udev/rules.d/66-3dr.rules +# Hextronic radio +KERNEL=="ttyUSB*", ATTRS{serial}=="A7032PAY", SYMLINK+="3dr" + +# GLB radio +KERNEL=="ttyUSB*", ATTRS{serial}=="A8005McD", SYMLINK+="3dr" +```` + +## ESP8266 + +### Firmware +The ESP8266 devices will usually ship with [vendor firmware](http://bbs.espressif.com/). Follow the link to SDKs, find the latest ESP8266_NONOS_SDK version. There is a Windows specific flashing tool, or you can use the [portable tool](https://github.com/themadinventor/esptool/). This firmware is recommended for [mwp](https://github.com/stronnag/mwptools), as you can use it as a transparent UDP / serial bridge (but you can also use the [3rd party firmware](https://github.com/jeelabs/esp-link/releases) TCP bridge). + +For ezgui it is recommended to use [3rd party firmware](https://github.com/jeelabs/esp-link/releases) that provides a a transparent TCP / serial bridge. This firmware may also be used in [mwp](https://github.com/stronnag/mwptools). + +### Configuration + +Configuration of the 3rd party TCP bridge is described in the ezgui [howto](http://ez-gui.com/manual/multiwii-clearflight-wifi-to-ezi-gui-how-to/). For [mwp](https://github.com/stronnag/mwptools), this device would be defined as: +```` +tcp://host:port +```` +So using the ezgui example verbatim: +```` +tcp://192.168.4.1:23 +```` + +For the vendor firmware, UDP connection, configure the device as an Access Point (AP) with your own ESSID and a [strong passphrase](https://xkcd.com/936/). It is necessary to define both the local and remote UDP ports (14014 in this example). See the latest [firmware documentation](https://espressif.com/en/support/download/documents?keys=&field_type_tid%5B%5D=14) for an explanation of the AT commands: + +```` +AT+CWSAP_DEF="I'mMandyFlyMe","correct horse battery staple",11,4,2,1 +AT+CWDHCP=2,0 +AT+CWMODE_DEF=2 +AT+CIPAP_DEF="192.168.100.100",,"255.255.255.0" +AT+SAVETRANSLINK=1,"192.168.100.101",14014,"UDP",14014 +AT+UART_DEF=57600,8,1,0,0 +AT+RFPOWER=60 +```` +Then in [mwp](https://github.com/stronnag/mwptools), define the connection as (where esp-air is the host name of the air platform device): +```` +udp://:14014/esp-air:14014 +```` +It is possible to access the CLI over a WiFi device, and with some `socat` tricks, also the configurator, which is highly convenient for tuning in the field. + +* Access CLI over the UDP link +```` +nc -p 14014 -u esp-air 14014 +```` +* Access CLI over TCP link +```` +nc 192.168.4.1 23 +```` +* Accessing the configurator is a little more complex, `socat` is used to create a pseudo device (pseudo-terminal) linked to the IP connection. The configurator is then connected to the 'Manual Selection' port `/tmp/vc0`. +* For UDP (esp-air is the ESP8266 on the vehicle, esp-gcs is the computer / WLAN interface host name). +```` +socat pty,link=/tmp/vc0,raw udp-datagram:esp-air:14014,bind=esp-gcs:14014 +```` +* For TCP +```` +socat pty,link=/tmp/vc0,raw tcp:192.168.4.1:23 +```` +It is necessary to kill the socat process to use telemetry again. diff --git a/versioned_docs/version-8.0.1/advanced/INAV-Remote-Management,-Control-and-Telemetry.md b/versioned_docs/version-8.0.1/advanced/INAV-Remote-Management,-Control-and-Telemetry.md new file mode 100644 index 0000000..7418431 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/INAV-Remote-Management,-Control-and-Telemetry.md @@ -0,0 +1,303 @@ +--- +title: "iNav Remote Management, Control and Telemetry" +--- + +# INAV Remote Management, Control and Telemetry + +## Introduction + +This article discusses INAV's APIs for remote control and telemetry. It _does not_ discuss internal programming APIs (e.g. "how to interface a new sensor directly on the FC"), nor does it discuss the [programmable logic conditions](https://github.com/iNavFlight/inav/blob/master/docs/Programming%20Framework.md). + +This article does not discuss radio control protocols, unless they also provide facilities for management or telemetry. + +Note also that INAV's primary remote API is [MultiWii Serial Protocol](#multiwii-serial-protocol) and this is the main object of discussion. Other protocols are also available and are also discussed. + +## Definitions + +For the purpose of this article, the following definitions are used: + +* **Remote Management**: Methods to get and set internal parameters and data from and to the flight controller. This may be considered to be a super-set of the information that can be shown / updated from the [INAV Configurator](https://github.com/iNavFlight/inav-configurator). It should be noted that setting / using much of this information requires saving to EEPROM and thus cannot (safely) be used when the vehicle is armed. + +* **Remote Control:** Methods to alter the behaviour of the vehicle when armed. This includes overriding or replacing the radio TX "stick commands" and preset navigation "switch" commands. + +* **Telemetry**: Methods to receive status and geospatial data from the vehicle. This is typically sent unsolicited (e.g. once telemetry is configured it will be sent without further action from the receiver / consumer). + +All of the above are message based, requiring a **communications channel**, which may be considered to be a combination of: + +* A hardware device. Usually a serial UART on the FC, and another device on the consumer, whose end point may also be a serial device, or be encapsulated in some other form, for example a WiFi access point or Bluetooth. + +* A physical transport. This could be a cable (USB, 4 wire serial) or a radio link (either a RC radio or a dedicated radio link using technologies such as LoRa, HC-12 or "3DR / SiK"). + +* A protocol. The protocol defines how the data is serialised for transmission over the physical transport; examples discussed include [MSP](#multiwii-serial-protocol) and [LTM](#lightweight-telemetry). + +Note that as far as the INAV firmware is concerned, we are discussing "serial" transmission / reception regardless of the physical transport between the vehicle and consumer. + +## Use cases + +The following use cases are pertinent to the technologies and techniques discussed below: + +* Configuration of the flight controller +* A Mission Planner +* Ground station +* Co-processor on the vehicle for applications such as obstacle avoidance + +## INAV Considerations, Restrictions and Recommendations + +INAV places a number of restrictions on the number of channels available and their usage: + +* There can be up to three MSP channels +* A MSP channel can be shared with a telemetry channel such that the channel is available for MSP (request-response, solicited) communications when unarmed and the unsolicited telemetry when armed. The most common use case for this is MSP (unarmed) and LTM or MAVLink (armed). The consumer has to be able to handle the transition (the arming MSP -> LTM / MAVLink transition is easy, the consumer can recognise the protocol has changed, the disarm LTM / MAVLink -> MSP transition can only be handled via a timeout in message reception). +* There can be multiple telemetry protocols active at the same time (on different channels). +* In particular, MSP is a request-response protocol. + - Do NOT spam the FC with a rapid, timer based stream of messages; the FC has limited buffering and processing capability and messages may be lost. + - Check MSP responses, both the message ID is that expected and the response code indicates the message was correctly processed by the FC (see [below](#multiwii-serial-protocol)). + - Implement a timeout mechanism to deal with lost messages and retry. + - Set the MSP payload length correctly, it is validated by the FC (5.0 and later). +* Verify the checksum available in all the protocols. Discard corrupt messages + +## Protocols + +### High level overview + +#### Remote Management + +[MSP (MultiWii Serial Protocol)](#multiwii-serial-protocol) is only protocol that provides for remote management and provides comprehensive coverage of the facilities and functions of INAV. MSP is (largely) a request / response protocol; typically the consumer requests data from the FC, which the FC provides. There are a small number of specialised cases where MSP is provided unsolicited (for example INAV radar). + +#### Remote Control + +[MSP (MultiWii Serial Protocol)](#multiwii-serial-protocol) and [MAVLink](#mavlink) can be used for remote control. + +#### Telemetry + +[LTM (Lightweight Telemetry)](#lightweight-telemetry), [MAVLink](#mavlink) and various RC radio protocols (e.g. [Smartport](#smartport), [Crossfire (CRSF)](#crossfire), [FlySky](#flysky) provide essentially unsolicited telemetry. + +### MultiWii Serial Protocol + +Multiwii Serial Protocol originated on the MultiWii Flight controller around 2010. The original documention is available in the [Multiwii wiki](http://www.multiwii.com/wiki/index.php?title=Multiwii_Serial_Protocol); the details should not be relied upon for INAV / Betaflight implementations (or even 2.4 MultiWii). + +INAV supports the following variations: + +* MSPv1: This is considered obsolescent; it is limited to a 255 byte payload, 255 message IDs (commands) and has a weak checksum. It is not recommended from new implementations; as far as INAV is concerned it is deprecated and likely to be removed from a future release. +* MSPv1 + Jumbo frames: An extension to MSPv1 to support frames larger than 255 bytes. +* MSPV2: Recommended version. Addresses the weakness of prior versions, 16bit message ID, 16bit payload length and stronger CRC. + +#### MSP References + +[INAV Wiki MSPV2 definition](./MSP-V2.md). + +[INAV Wiki MSP Navigation Messages](./MSP-Navigation-Messages.md). Detailed explanation of the usage of INAV / MSP Way point definitions. + +For INAV the normative reference for MSP is the source code: + +* [Message IDs](https://github.com/iNavFlight/inav/tree/master/src/main/msp) +* [Message Handling](https://github.com/iNavFlight/inav/blob/master/src/main/fc/fc_msp.c) and related source files (`fc_msp*.*`) in the same directory for specific detail. +* [RC Control](https://github.com/iNavFlight/inav/blob/master/src/main/rx/msp.c) and related `*msp*.*` files in the same directory. + +There are numerous open source implementations (libraries and application modules); in addition to the INAV FC source: + +* INAV Configurator +* Numerous libraries for various platforms (Arduino, generic computer) in numerous languages (e.g. C, C++, Python, Rust). Google is your friend here. +* Application implementations (mwptools, BulletGCSS, Mobile Flight). Again, Google is your friend here. + +There is also a long abandoned (alas) [changelog](./INAV-MSP-frames-changelog.md) of historic interest only. + +Note that the INAV developers take backwards compatibility seriously; changing a payload is usually not permitted (however, extending it is OK); this is why there are a number of variations on the same basic request (`MSP_STATUS`, `MSP_STATUS_EX`, `MSP2_INAV_STATUS`) as the size of the internal status structure has changed. + +### MAVLink + +* [MAVlink developer info](https://mavlink.io/en/). Note that INAV supports a subset of the MAVLink message set (some unsolicited telemetry and remote control). INAV supports MAVLink V1 and V2. +* There is a application in the [mwptools repository, mavtest](https://github.com/stronnag/mwptools/tree/master/src/samples/mavtest) that summarises / validates the MAVLink messages supported by INAV. +* INAV source code. + - [Telemetry](https://github.com/iNavFlight/inav/blob/master/src/main/telemetry/mavlink.c) + - [RC Control](https://github.com/iNavFlight/inav/blob/master/src/main/rx/mavlink.c) + +### Lightweight Telemetry + +LTM offers low data rate / low band width / high update rate telemetry. +Since its introduction to INAV, a number of extension have been added; these, and the original frames, are [documented in the wiki](https://github.com/iNavFlight/inav/wiki/Lightweight-Telemetry-(LTM)), in detail. + +* INAV source code. [Telemetry](https://github.com/iNavFlight/inav/blob/master/src/main/telemetry/ltm.c). + +INAV compatible LTM is implemented by [Ghettostation](https://github.com/KipK/Ghettostation), [LTM Telemetry OLED ](https://github.com/sppnk/LTM-Telemetry-OLED) , [EZGUI](http://ez-gui.com/) and [mwptools](https://github.com/stronnag/mwptools) at least. + +### RC Protocols + +Note: + +* This section describes the telemetry aspects only. If you wish to investigate the control aspects, see the INAV [protocol specific source files](https://github.com/iNavFlight/inav/blob/master/src/main/rx/). +* There are various implementations / initiatives to provide MSP over an RC Link. This topic is currently beyond the scope of this article. +* Typically this data is sent over the RC Control (TX/RX) radio link. Radio specific hardware / transport may be required (serial inverter, Bluetooth, WiFi etc.) may be required to access the data. + +#### Smartport + +* INAV source code. [Telemetry](https://github.com/iNavFlight/inav/blob/master/src/main/telemetry/smartport.c). +* Other Example. Parser / decoder / replay tools. [mwptools example](https://github.com/stronnag/mwptools/tree/master/src/samples/frsky). + +#### Crossfire + +* INAV source code. [Telemetry](https://github.com/iNavFlight/inav/blob/master/src/main/telemetry/crsf.c) +* Other Example. [mwptools example](https://github.com/stronnag/mwptools/tree/master/src/samples/crsf). Protocol description, example parser, links to other information sources. + +#### Flysky / IBUS + +* INAV source code. [Telemetry](https://github.com/iNavFlight/inav/blob/master/src/main/telemetry/ibus.c). +* Other Example. [mwptools example](https://github.com/stronnag/mwptools/tree/master/src/samples/mpm-telemetry). This example uses the OpenTX/EdgeTX MPM (Multi-Protocol Module) to access IBUS / Flysky AA telemetry data and provides a link to the original MPM definition and requires the INAV CLI setting `set ibus_telemetry_type = 0` + +## Specific Use Cases + +(**work in progress**) + +### Remote Control using MSP / MAVLink + +The MSP messages `MSP_SET_RAW_RC` / `MSP_RC` can be used to implement remote control via MSP (i.e. 16 channel control, stick commands). These commands can come from a co-processor / flight computer , a ground station, or other source. + +There is a [sample application](https://github.com/stronnag/msp_set_rx) that describes the requirements / restrictions / idiosyncrasies involved using the MSP interface. + +Likewise, the MAVLink `RC_CHANNELS_OVERRIDE`, `RC_CHANNELS_OVERRIDE_RAW`, `RC_CHANNELS`. See, inter alia, [INAV #8282](https://github.com/iNavFlight/inav/pull/8282) and [INAV #8132](https://github.com/iNavFlight/inav/issues/8132) and [INAV #8173](https://github.com/iNavFlight/inav/pull/8273) for limitation / caveats / current implementation status. + +### Follow Me (`GCS NAV`). + +INAV has provided a "follow me" implementation via MSP since v1.2/1.3 (2016). This allows the user to direct the vehicle to fly to a specific location. This was intended for mobile ground station (specifically the obsolete Android application "EZGUI") to instruct the vehicle to follow a GPS equipped target (often the pilot). [mwp](https://github.com/stronnag/mwptools) supports `GCS NAV`, allowing in flight selection of a "follow me" point on the map, which is then transmitted to the vehicle. The is also a [follow me gadget/wand](https://github.com/stronnag/inav-follow-me) project, using a RPi Pico MCU. + +* The FC is placed in `POSHOLD` and `GCS NAV` modes. +* The consumer updates 'special' `WP#255` (holds the requested `POSHOLD` location) using `MSP_SET_WP` messages. +* See [INAV source](https://github.com/iNavFlight/inav/blob/master/src/main/navigation/navigation.c), `setWaypoint()` function. + +With `GCS NAV`, is also possible to update the home position via WP#0 + +#### Querying locations + +The following 'special' WPs can be interrogated with the `MSP_WP` message: + +* `WP#0` returns the home position +* `WP#254` returns the desired position, i.e. that set by `MSP_SET_WP` / `WP#255` +* `WP#255` returns the current position. + +### The "Obstacle Avoidance" problem + +Ever so often, someone asks on Discord / Telegram / chat platform du jour how to do "Obstacle Avoidance" on INAV, often with some assumptions that: + +* There is a relatively powerful (compared to the FC) co-processor (Raspberry Pi, Jetson Nano) with sensors and the CPU power to detect / classify obstacles from its on board sensors. +* The range, azimuth and elevation (at least relative to the vehicle) of the obstacle is known via the co-processor / sensors. + +If would seem that there are at least two options using the remote control / management (MSP) API. + +#### Use remote control to pilot the vehicle + +The vehicle is commanded via Remote Control (MSP or MAVLink) to fly around the obstacle by providing inputs to the Roll, Pitch, Yaw and Throttle channels. The co-processor would compute the channel values required to manoeuvre the vehicle, based on some internal model of the vehicle physics. This seems to be a complex approach, particularly the computation of channel values required, which have to be continually updated (5Hz for MSP). + +#### The vehicle's navigation engine is used + +* The obstacle's location in known from the sensors with reference to the vehicle (range, azimuth, elevation). +* The vehicle's location is known in geospatial coordinates (latitude, longitude, altitude) as well as the speed and heading, (`MSP_RAW_GPS`, `MSP_ATTITUDE` etc.). +* A safe location can be calculated based on the vehicle's location and the relative location of the obstacle. +* The vehicle can be commanded using `MSP_SET_WP` for `WP#255` to use its navigation system to avoid the obstacle (with `POSHOLD` and `NAV GCS` modes activated). + +Potentially a less complex solution, as the piloting of the vehicle is done by the well proven flight controller firmware. + +## Further Considerations + +### Partial Automation + +It is possible to combine manual control with some channel automation. + +* Compile the firmware with `USE_MSP_RC_OVERRIDE` defined (e.g. in `src/main/target/common.h`). +* Use the CLI `msp_override_channels` to define the channels to be automated. +* Ensure the channel(s) are refreshed at a minimum of 5Hz to avoid fail-safe. + +### Control by stick commands + +In a cruise mode (e.g. POSHOLD/CRUISE for multi-rotor), it will be possible to fly the craft using A,E,R stick emulation, with minimal concern for flight physics. + +### Useful / relevant MSP stanzas and application + +The following `MSP` stanzas may be useful for remote control / automation applications. + +#### Pre-flight setup + +Prior to arming the craft, an automation application can be made "target agnostic" by requesting data from the FC. A specific application may need some or all of: + +* `MSP_FC_VARIANT` : Validate that you're running on INAV. +* `MSP_API_VERSION`, `MSP_FC_VERSION` : Validate that the firmware is sufficiently capable for your application. +* `MSP_RX_MAP` : Obtain channel map for subsequent `MSP_SET_RAW_RC`. +* `MSP2_COMMON_SETTING` / `nav_extra_arming_safety` : Checking arming requirement and whether you can bypass it +* `MSP_MODE_RANGES`: Determine the configured switches, functions and ranges. +* `MSP_BOXNAMES` : Determine the modes available to the craft (e.g. for mode validation via `MSP2_INAV_STATUS`). (see also `MSP_BOXIDS`) +* `MSP_BOXIDS` : Determine the modes (as `permanentIds`) available to the craft (e.g. for mode validation via `MSP2_INAV_STATUS`). Use in preference to `MSP_BOXNAMES` as long as you're willing to keep an up to date `permanentIds` list, as it's a much more efficient message). +* `MSP2_COMMON_SERIAL_CONFIG` : Determine serial channel functions. +* `MSP_RX_CONFIG` : Determine the RX type. +* `MSP2_INAV_STATUS` : Determining various status items (arming status, mode status etc.) +* `MSP2_INAV_MIXER` : Get vehicle type (e.g. to avoid MR only actions on FW). + +#### Flight (and some pre-flight) + +* `MSP_SET_RAW_RC` : Set RC channel values (PWM values), both for "stick" and "switch" channels. +* `MSP2_INAV_STATUS` : Determining various status items (arming status, mode status etc.) +* `MSP_RAW_GPS` : Get GPS data (fix, number of satellites, location) +* `MSP_SET_WP` : Set Waypoint (either for mission for "follow me"). +* `MSP_WP` : Get Waypoint (e.g. to cache home location). +* `MSP2_INAV_ANALOG` : Battery status +* `MSP_ATTITUDE` : Vehicle attitude +* `MSP_ALTITUDE` : Vehicle altitude / vario +* `MSP_NAV_STATUS` : Navigation status + +Note. These may not be comprehensive lists, but they are a start. + +### Notional Usage + +The following may cover a number of "home work" / "undergraduate project" use cases: + +#### Notional Requirement + +Fully automated, using a co-processor for target detection and flight management + +* Once powered on, the craft shall arm automatically. +* Once armed, the craft shall take off and loiter in a 'safe' location. +* The craft shall determine (by some 'magic' means, beyond the scope of this article), the 'target location') +* The craft shall fly to the target location (which may move as long as the vehicle is more than 50m from the target). +* Once the target is assumed stationary the vehicle shall land as close as possible to the target and disarm. +* If it unsafe to continue (e.g. low battery), the craft shall return to the launch location and land and disarm. + +#### Notional Solution + +Assumptions. + +* Required modes are configured (`RTH`, `POSHOLD`, `GCS NAV`, `WP`). +* Configured for land / disarm on RTH. +* Co-processor / 'magic' sensor can determine target (relative) location. + +Using the MSP outlined above: + +* Determine vehicle characteristics. Stop now if not capable of mission. +* Monitor status and location until arming is possible (e.g. GPS fix). +* Using the 'magic' sensor / AI etc., determine a safe loiter location. +* Generate and upload a 1 WP mission to the safe location (the craft will automatically loiter there when completed). Ideally elevation will be double vertical range to avoid tip over on take off. +* Arm the craft, (optionally) apply a little throttle, and immediately engage WP mode. The craft will take off and start the mission. +* Continually monitor location, battery and status. +* Once the craft reaches the loiter location, engage POSHOLD and disengage WP mode. +* Using the `magic` sensor, determine the target location. Assuming this is available as range and bearing (absolute or relative), calculate the geographic location of the target. Enable `GCS NAV` mode and update `WP#255` to fly the craft to the target. +* Repeat the above until target is determined to be the landing position (e.g. within 50m in the notional requirement). +* Cache launch position (i.e. read `WP#0`). Set the target position as `WP#0` (home), engage `RTH`. +* Craft will land at target location. +* If an unsafe condition is detected (low battery etc.), restore any cached home location and engage `RTH`. + +Note: you could do most or all of the above just with `MSP_SET_RAW_RC` rather than with the navigation engine, but that might increase the co-processor computation / monitoring requirement and implementation risk. However, if you're using `MSP_SET_RAW_RC` for anything you need to comply with its minimum update rate. It is often best if the co-processor (flight computer) specifies the *goal*, such as flying a certain heading or to certain coordinates, then let the flight controller and INAV handle how to do that. + +#### Implementation examples + +NOTE: If you have a better example (or additional examples), please augment or replace the following paragraphs. + +The [flightlog2kml](https://github.com/stronnag/bbl2kml) project contains a tool [fl2sitl](https://github.com/stronnag/bbl2kml/wiki/fl2sitl) that replays a blackbox log using the [INAV SITL](https://github.com/iNavFlight/inav/blob/master/docs/SITL/SITL.md). Specifically, this uses MSP and MSP_SET_RAW_RC to establish vehicle characteristics, monitor the vehicle status, arm the vehicle and set RC values for AETR and switches during log replay simulation to effectively "fly" the SITL for the recorded flight. + +The MSP initialisation, MSP status monitoring and MSP RC management code is in [msp.go](https://github.com/stronnag/bbl2kml/blob/master/pkg/sitlgen/msp.go), specifically the `init()` and `run()` functions. Arming / disarming in [sitlgen.go](https://github.com/stronnag/bbl2kml/blob/master/pkg/sitlgen/sitlgen.go), `arm_action()` function. + +The [msp_set_rx](https://github.com/stronnag/msp_set_rx) project exercises `MSP_SET_RAW_RC`. + +The [inav-follow-me](https://github.com/stronnag/inav-follow-me) project provides a Raspberry Pi Pico based project implementing "follow-me" using `GCS NAV`. + +The [msp_override](https://codeberg.org/stronnag/msp_override) projects provides a simple example of using `MSP SET_RAW_RC` with `USE_MSP_RC_OVERRIDE` (and a physical RX/TX). + +## Other References + +* [Building custom INAV](./Building-custom-firmware.md). +* [Developer Info / Navigation internals](./Developer-info.md) diff --git a/versioned_docs/version-8.0.1/advanced/INAV-blackbox-variables.md b/versioned_docs/version-8.0.1/advanced/INAV-blackbox-variables.md new file mode 100644 index 0000000..58ba443 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/INAV-blackbox-variables.md @@ -0,0 +1,167 @@ +--- +title: iNav Blackbox Variables +--- + +# Overview + +Blackbox is a valuable tool for analyzing the flight dynamics of our airborne vehicles and as such it can be useful for troubleshooting and debugging purposes. + +In INAV we use a set of specific variables, each variable may contain multiple arrays, for example - navPos[0-2]. + +**navPos**, **navVel**, **navTgtPos** and **navTgtVel** each hold arrays [0-2], which represent distances due North [0], due East [1] and straight Up [2], all relative to the "point of origin". +North and East are fused from accelerometer and GPS data, while Up is fused from accelerometer + barometer for multicopters and accelerometer + gps for airplanes if no barometer is available. Read the [[Inertial position estimator|Inertial-position-estimator-(INAV)]] page for detailed explanation. + +"Point of origin" might be different from "Home". "Home" is defined as position at the time of arming. While "Point of origin" is recorded after a valid GPS fix is aquired. + +For further information about the coordinate system used please read the [[Coordinate systems|Coordinate-systems]] page. + +#INAV Variables + +Variables listed below with a short description of each: + +* **navMode** (**navState** in newer code): +current mode of operation from INAV's point of view. Might be different from flight mode. Meaning vary by version, but navMode=0 and navState=1 means idle. + +* **navFlags**: +binary flags of INAV internal state: new data availability for altitude, position and heading, validity of altitude, surface distance and position, flags to indicate if pilot is adjusting altitude and position via rc input. + +* **navTgtPos**: +represents the desired position as used/calculated by INAV. When you are in PH, navTgtPos will be set to hold position coordinates. + +* **navPos**: +array of latest NEU coordinates as provided by inertial estimator. Will be slightly different from GPS/baro readings for 99% of time. Units - cm. + +* **navVel**: +same as navPos, but for estimated velocity. Units - cm/s + +* **navTgtVel**: +represents the desired velocity as used/calculated by INAV. When you are in PH, navTgtVel will be set to calculated desired velocity to reach the target position. + +* **navDebug**: +as the name suggests it is used for debugging. Meaning of these values differ all the time depending on what part of the code is currently being debugged. + +Blackbox can log data either via serial port or into internal dataflash. In order to log the data into the internal flash at the moment is possible via CLI: +set blackbox_device = SPIFLASH # instead of SERIAL +set blackbox_rate_num = 1 +set blackbox_rate_denom = 2 +This will make it work and store every second value. + +# INAV Logging Intervals + +Blackbox logs several types of frames - flight behaviour is written using I- and P-frames. I-frames are fairly big and contain absolute values, P-frames are delta-encoded to save space. Blackbox denominator only reduces P-frame rate, the I-frame rate is constant. + +Originally I-frames were logged every 32 iterations, P-frame is logged every blackbox_rate_denom after I-frame. This doesn't give you exactly 1 / blackbox_rate_denom rate, i.e. for 1/16 - 1/31 rates it's going to be c. 16 iterations between frames on average. + +For INAV 1.6 and later, the I-frame interval is set dynamically at 1/32, 1/64, 1/128 and 1/256 based on the blackbox_rate_denom chosen. + +For example, if a blackbox_rate_denom of 50 is used, INav will select 64 as the I-frame interval, meaning c. 1/32 actual logging rate. + + +### Explanation of all the parameters + +| Name of field in txt file | Name in Blackbox Log Viewer | Explanation | . | .. | +|:--------------------------: |:----------------------------: |:------------: |:---: |:----------:| +| loopIteration | not used | counter from main loop | | | +| time (us) | x-axis of diagram | real time in micoseconds | | |sensors/acceleration.h +| axisRate[0] | gyros[roll] (.. deg/s) | rotation rate | roll | deg/sec | +| axisRate[1] | gyros[pitch] (.. deg/s) | rotation rate | pitch | deg/sec | +| axisRate[2] | gyros[yaw] (.. deg/s) | rotation rate | yaw | deg/sec | +| axisP[0] | PID_P[roll] | PID controller | roll | P | +| axisP[1] | PID_P[pitch] | PID controller | pitch | P | +| axisP[2] | PID_P[yaw] | PID controller | yaw | P | +| axisI[0] | PID_I[roll] | PID controller | roll | I | +| axisI[1] | PID_I[pitch] | PID controller | pitch | I | +| axisI[2] | PID_I[yaw] | PID controller | yaw | I | +| axisD[0] | PID_D[roll] | PID controller | roll | D | +| axisD[1] | PID_D[pitch] | PID controller | pitch | D | +| axisD[2] | PID_D[yaw] | PID controller | yaw | D | +| mcPosAxisP[0] | mcPosAxisP[0] | multicopter position | north | cm | +| mcPosAxisP[1] | mcPosAxisP[1] | multicopter position | east | cm | +| mcPosAxisP[2] | mcPosAxisP[2] | multicopter position | vertical | cm | +| mcVelAxisP[0] | mcVelAxisP[0] | multicopter velocity | north | cm/sec | +| mcVelAxisP[1] | mcVelAxisP[1] | multicopter velocity | east | cm/sec | +| mcVelAxisP[2] | mcVelAxisP[2] | multicopter velocity | vertical | cm/sec | +| mcVelAxisI[0] | mcVelAxisI[0] | multicopter velocity | north | cm/sec | +| mcVelAxisI[1] | mcVelAxisI[1] | multicopter velocity | east | cm/sec | +| mcVelAxisI[2] | mcVelAxisI[2] | multicopter velocity | vertical | cm/sec | +| mcVelAxisD[0] | mcVelAxisD[0] | multicopter velocity | north | cm/sec | +| mcVelAxisD[1] | mcVelAxisD[1] | multicopter velocity | east | cm/sec | +| mcVelAxisD[2] | mcVelAxisD[2] | multicopter velocity | vertical | cm/sec | +| mcVelAxisOut[0] | mcVelAxisOut[0] | multicopter velocity | north | cm/sec | +| mcVelAxisOut[1] | mcVelAxisOut[1] | multicopter velocity | east | cm/sec | +| mcVelAxisOut[2] | mcVelAxisOut[2] | multicopter velocity | vertical | cm/sec | +| mcSurfaceP | mcSurfaceP | multicopter surface mode | | P | +| mcSurfaceI | mcSurfaceI | multicopter surface mode | | I | +| mcSurfaceD | mcSurfaceD | multicopter surface mode | | D | +| mcSurfaceOut | mcSurfaceOut | multicopter surface mode | | | +| rcData[0] | rcData[0] | received rc signal | roll | 1000-2000 µs | +| rcData[1] | rcData[1] | received rc signal | pitch | 1000-2000 µs | +| rcData[2] | rcData[2] | received rc signal | yaw | 1000-2000 µs | +| rcData[3] | rcData[3] | received rc signal | throttle | 1000-2000 µs | +| rcCommand[0] | rcCommand[0] | stabilized control command | roll | 1000-2000 µs | +| rcCommand[1] | rcCommand[1] | stabilized control command | pitch | 1000-2000 µs | +| rcCommand[2] | rcCommand[2] | stabilized control command | yaw | 1000-2000 µs | +| rcCommand[3] | rcCommand[3] | stabilized control command | throttle | 1000-2000 µs | +| vbat | vbat | voltage of flight battery | | volts | +| amperage | |system current drain | | amps | +| magADC[0] | magADC[0] | compass | roll | | +| magADC[1] | magADC[1] | compass | pitch | | +| magADC[2] | magADC[2] | compass | yaw | | +| BaroAlt (cm) | BaroAlt (cm) | altitude(barometer) | | cm | +| gyroADC[0] | gyroADC[0] | rotation(gyro) | roll | deg/sec | +| gyroADC[1] | gyroADC[1] | rotation(gyro) | pitch | deg/sec | +| gyroADC[2] | gyroADC[2] | rotation(gyro) | yaw | deg/sec | +| accSmooth[0] | acc[x] | acceleration | north | ADC * normalised 1g | +| accSmooth[1] | acc[y] | acceleration | east | ADC * normalised 1g | +| accSmooth[2] | acc[z] | acceleration | vertical | ADC * normalised 1g | +| attitude[0] | attitude[0] | heading | roll | 0-3600 deg/10 | +| attitude[1] | attitude[1] | heading | pitch | 0-3600 deg/10 | +| attitude[2] | attitude[2] | heading | yaw | 0-3600 deg/10 | +| motor[0] | motor[0] | output to motor ESC | 0 | 1000-2000 µs | +| motor[1] | motor[1] | output to motor ESC | 1 | 1000-2000 µs | +| motor[2] | motor[2] | output to motor ESC | 2 | 1000-2000 µs | +| motor[3] | motor[3] | output to motor ESC | 3 | 1000-2000 µs | +| navState | | navigation control state | | | +| navFlags | | navigation data trusted | | | +| navEPH | | Std deviation horizontal position error | | meters | +| navEPV | | Std deviation of vertical position error | | meters | +| navPos[0] | navPos[0] | position of copter | north | cm | +| navPos[1] | navPos[1] | position of copter | east | cm | +| navPos[2] | navPos[2] | position of copter | vertical | cm | +| navVel[0] | navVel[0] | velocity of copter | north | cm/s | +| navVel[1] | navVel[1] | velocity of copter | east | cm/s | +| navVel[2] | navVel[2] | velocity of copter | vertical | cm/s | +| navAcc[0] | navAcc[0] | acceleration of copter | north | cm/s/s | +| navAcc[1] | navAcc[1] | acceleration of copter | east | cm/s/s | +| navAcc[2] | navAcc[2] | acceleration of copter | vertical | cm/s/s | +| navTgtVel[0] | navTgtVel[0] | target value: velocity | north | cm/s | +| navTgtVel[1] | navTgtVel[1] | target value: velocity | east | cm/s | +| navTgtVel[2] | navTgtVel[2] | target value: velocity | vertical | cm/s | +| navTgtPos[0] | navTgtPos[0] | target value: position | north | cm | +| navTgtPos[1] | navTgtPos[1] | target value: position | east | cm | +| navTgtPos[2] | navTgtPos[2] | target value: position | vertical | cm | +| navTgtHdg | | active heading computation | horizontal | | +| navSurf[0] | navSurf[0] | | | | +| flightModeFlags (flags) | | active modes | | | +| stateFlags (flags) | | active control states | | | +| failsafePhase (flags) | | | | | +| rxSignalReceived | | | | | +| rxFlightChannelsValid | | | | | +| hwHealthStatus | | active sensor communication | | | +| powerSupplyImpedance | | flight battery internal resistance | |mΩ | +| sagCompensatedVBat | | load compensated battery voltage | | volts | +| wind[0] | |wind force X axis | north | m/s | +| wind[1] | |wind force Y axis | east | m/s | +| wind[2] | |wind force Z axis | vertical | m/s | +| windHeading | | | |degrees| +| windVelocity | | | | m/s | +| GPS_home[0] | | latitude | | degrees | +| GPS_home[1] | | longitude | | degrees | +| GPS_fixType | | GPS_fixType | | | +| GPS_numSat | | number of sats | | | +| GPS_coord[0] | | latitude | | degrees | +| GPS_coord[1] | | longitude | | degrees | +| GPS_altitude | | GPS_altitude | | m | +| GPS_speed | | velocity | | m/s | +| GPS ground course | | ground course heading | | degrees | +| GPS_hdop | | quality of GPS fix | | | diff --git a/versioned_docs/version-8.0.1/advanced/INAV-for-BetaFlight-users.md b/versioned_docs/version-8.0.1/advanced/INAV-for-BetaFlight-users.md new file mode 100644 index 0000000..5a2b271 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/INAV-for-BetaFlight-users.md @@ -0,0 +1,60 @@ +--- +title: iNav for BetaFlight Users +--- + +Do you already know how to setup and fly a BetaFlight multirotor, and are now willing to try INAV? + +**Good**! You are in the right place. + +INAV and BetaFlight were forks from CleanFlight. But nowadays they are both very different from each other. + +While BetaFlight evolved to provide good flight performance for multirotors in **ACRO** mode, INAV evolved to provide flight reliability, navigation capabilities and vehicle configuration diversity. + +INAV works on quadcopters like BetaFlight, but it also works on [bi|tri|hexa|octa]copters, fixed-wing aircrafts like airplanes, gliders and flying wings, rovers like cars and tanks, and boats. + +Besides this big differences, INAV and BetaFlight still share lots of features in common, and it's quite normal to see some code being ported to and from one flight controller software to another. + +If you already know how to setup a BetaFlight multirotor aircraft, you already know most of what you need to setup an INAV multirotor as well. The INAV configurator and the BetaFlight configurator are very similar. You probably won’t have any problems understanding it. To flash INAV on your Flight Controller board, the process is the same: Go to the Firmware Flasher tab on the INAV Configurator and select the proper TARGET. + +Let's then review the differences: + +* Not all Flight Controller boards have a proper target for INAV. But the most common ones do. +* After flashing, the first time you connect your FC board to INAV configurator, it'll ask you to load a preset. Do it, as it'll make things easier from now on. +* The accelerometer and gyroscope calibration is mandatory on INAV, and it’s a 6-step process (different from BetaFlight, which is an optional single-step process). Follow the on-screen instructions and you’ll be fine. +* For a fully autonomous multirotor (with automatic navigation capabilities like RTH, Poshold and WP Missions). The Flight Controller board should have an onboard barometer sensor. INAV's multicopter navigation altitude precision will suffer without one. +* Also, you have to cover the barometer sensor with a small piece of open-cell foam, because the wind affects the sensor readings. This is the most common cause of altitude holding problems. +* Prior to 7.1 release. The GNSS module should be fitted with a magnetometer sensor for best navigation precision. GNSS modules without a mag sensor will work from 7.1 on-wards for copter navigation. [See requirements](../quickstart/GPS--and-Compass-setup.md#inav-71-changes) + +* The GPS module should be mounted on a small mast pole to avoid magnetic interference from motors on the compass; 5 or 6 centimeters above motors should be fine. + +FPV Quadcopter with GPS mast + +_FPV Quadcopter with GPS mast_ + + +* INAV does NOT have a complete resource mapping feature. But it does support timer output mapping for motors and servo's. +* INAV supports DShot ESC protocol, but not to the same level as BetaFlight. DShot 150, 300 or 600 is more than enough for a reliable flight. Faster protocols will reduce the reliability on larger copters, due to ESC signal interference on long wire runs. +* INAV supports loop frequencies up to 4kHz without i2C devices. Although, for reliable navigation performance its should be limited to 2kHz with i2C devices. +* DShot telemetry and beeper is supported, but not Bi-directional. Only single-wire telemetry. + +### Most important settings you should take a look at before your first flight + +* `set nav_mc_hover_thr` # Is the base throttle value your copter will use for holding altitude while hovering. Must be set for Poshold operation. +* `set max_angle_inclination_rll = 600` # Maximum bank angle allowed in ANGLE mode, in decidegrees (for roll) +* `set max_angle_inclination_pit = 450` # Maximum bank angle allowed in ANGLE mode, in decidegrees (for pitch) +* `set nav_mc_bank_angle = 27` # Max bank angle that the aircraft will command in automated or position control modes, in degrees. (constrained by max_angle_inclination_rll and max_angle_inclination_pit) +* `set throttle_idle = 5` # Set the minimal motor speed (in percent). The default is 15, which can be high for modern ESCs. +* `set small_angle = 180` # Let aircraft arm in any angle +* `set gps_ublox_use_galileo = ON` # Let GNSS module use galileo satellites if it is supported (check local constellation availability) +* `set nav_extra_arming_safety = ALLOW_BYPASS` # Let aircraft arm without GPS 3D fix (Caution: RTH position will not be recorded) +* `set nav_wp_radius = 500` # Radius in centimeters to consider a waypoint reached. +* `set nav_wp_safe_distance = 400` # If the first waypoint of a loaded mission is further than this value (in meters). +* `set nav_auto_speed = 2000` # Maximum copter ground speed in automated modes (in centimeters per second) +* `set nav_auto_climb_rate = 600` # Aircraft vertical speed on automatic modes (centimeters per second) +* `set nav_rth_allow_landing = ALWAYS` # Allow copter to land by itself after RTH or FS. +* `set nav_rth_altitude = 5000` # Altitude that aircraft will try to reach when doing RTH (in centimeters) +* `set nav_rth_alt_mode = AT_LEAST` # Allow aircraft to come home descending to the RTH altitude. It saves energy by trading altitude for speed. + +![](https://i.imgur.com/CPgKb4w.png) + +_Linear descend demonstration graphic_ diff --git a/versioned_docs/version-8.0.1/advanced/Legacy-target----ChebuzzF3.md b/versioned_docs/version-8.0.1/advanced/Legacy-target----ChebuzzF3.md new file mode 100644 index 0000000..19cafd2 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Legacy-target----ChebuzzF3.md @@ -0,0 +1,92 @@ +--- +title: Legacy Target ChebuzzF3 +--- + + +## Connections + +Board orientation. + +These notes assume that when the board is placed with the header pins facing up, the bottom right of the board is next to the 8 sets of INPUT pin headers. +Inner means between the two rows of header sockets, outer means between the left/right board edges and the header sockets. + + +### SPI2 / External SPI + +sclk GPIOB 13 +miso GPIOB 14 +mosi GPIOB 15 + + +There are 4 pins, labelled CS1-4 next to a label that reads Ext SPI. The 3rd pin is connected to the flash chip on +the bottom right inner of the board. The other pins on the flash chip are wired up to PB3/4/5 + +### SPI3 / SPI + +sclk GPIOB 3 +miso GPIOB 4 +mosi GPIOB 5 + +ssel 1 GPIOB 10 / Ext SPI CS1 +ssel 2 GPIOB 11 / Ext SPI CS2 +ssel 3 GPIOB 12 / Ext SPI CS3 - wired up to Slave Select of M25P16 15MBitFlash chip +ssel 4 GPIOB 13 / Ext SPI CS4 - not usable since it is used for SPI2 sclk + +### RC Input + +INPUT +PA8 / CH1 - TIM1_CH1 +PB8 / CH2 - TIM16_CH1 +PB9 / CH3 - TIM17_CH1 +PC6 / CH4 - TIM8_CH1 +PC7 / CH5 - TIM8_CH2 +PC8 / CH6 - TIM8_CH3 +PF9 / CH7 - TIM15_CH1 +PF10 / CH8 - TIM15_CH2 + +### PWM Outputs + +OUTPUT +PD12 / CH1 - TIM4_CH1 +PD13 / CH2 - TIM4_CH2 +PD14 / CH3 - TIM4_CH3 +PD15 / CH4 - TIM4_CH4 +PA1 / CH5 - TIM2_CH2 +PA2 / CH6 - TIM2_CH3 +PA3 / CH7 - TIM2_CH4 +PB0 / CH8 - TIM3_CH3 +PB1 / CH9 - TIM3_CH4 +PA4 / CH10 - TIM3_CH2 + +### Other ports + +There is space for a MS5611 pressure sensor at the top left inner of the board. + +There is an I2C socket on the left outer of the board which connects to a PCA9306 I2C level shifter directly opposite (inner). +The PCA9306 is not populated on some boards and thus the I2C socket is unusable. + +There is a CAN socket on the top right outer of the board which connects to a MAX3015 CAN Tranceiver. +The MAX3015 is not populated on some boards and thus the CAN socket is unusable. + +There are some solder pads labelled Ext 1-4 at the top right inner of the board. + +GPIOE 6 / PE6 / Ext 1 +GPIOD 3 / PD3 / Ext 2 +GPIOD 4 / PD4 / Ext 3 +GPIOB 3 / PB3 / Ext 4 + +There are some solder pads labelled ADC0-3 & Diff Press at the top left inner of the board +They are connected to the ADC socket at the top left outer of the board + +PC3 / Diff Press - ADC12_IN9 (Differential Pressure) +PC2 / ADC2 - ADC12_IN8 +PC1 / ADC1 - ADC12_IN7 +PC0 / ADC0 - ADC12_IN6 + +There is space for a MPXV5004/MPVZ5004 differential pressure sensor, if populated it's analog pin connects to PC3. + +There are sockets for 5 UARTs labelled USART1-5. + +There is a socket labelled RX_IN. + +GPIOD 2 / PD2 / RX_IN diff --git a/versioned_docs/version-8.0.1/advanced/Lightweight-Telemetry-(LTM).md b/versioned_docs/version-8.0.1/advanced/Lightweight-Telemetry-(LTM).md new file mode 100644 index 0000000..8e6f59d --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Lightweight-Telemetry-(LTM).md @@ -0,0 +1,248 @@ +--- +title: Lightweight Telemetry (LTM) +--- + +# Overview + +LTM was defined by "KipK" for the Ghetto Station antenna tracking project and originally implemented in Taulabs and Baseflight. It was adopted by INAV due to its excellent characteristics for low data rate / high update rate telemetry. + +Since its introduction to INAV, a number of extension have been added; these are documented below, in addition to the original frames. + +# Protocol Definition + +## Overview + +The LTM protocol starts with "$T", followed by a function byte, the payload and a simple CRC checksum. Its weakness is that there is no length parameter (so the receiver needs to know, apriori,the length for each function), and the single byte checksum is not as robust as the multi-byte checksum in for example the ublox GPS protocol. However, the high data rate ensures that good data should be delivered over occasional transmission errors. In practice, LTM is an excellent light weight telemetry solution. + +| Position | Byte | +| -------- | ---- | +| 0 | $ | +| 1 | T | +| 2 | G/A/S/O/N/X | +| 3..n | n bytes payload | +| n + 3 | CRC | + +LTM telemetry can be read by [Ghettostation](https://github.com/KipK/Ghettostation), [LTM Telemetry OLED ](https://github.com/sppnk/LTM-Telemetry-OLED) , [EZGUI](http://ez-gui.com/) , [MwpTools](https://github.com/stronnag/mwptools) and others. + +LTM can provide good telemetry down to 2400 (5Hz attitude updates). Due to restrictions in INAV 1.2 and earlier, 9600 was the lowest baud rate supported, which gives 10Hz attitude and 5Hz GPS data. More recently (INAV 1.7.0), LTM is available from 1200 baud and higher; the data transmission frequency is automatically determined from the baud rate, but can be overridden by the user where the baud rate can support the required update frequency. See the [INAV Telemetry documentation](https://github.com/iNavFlight/inav/blob/master/docs/Telemetry.md#lighttelemetry-ltm) and [below](#inav-cli-support) for CLI settings. + +The function consists of a single ASCII character, described below. Data is binary, little endian. The checksum is an XOR of the payload bytes. + +The follow telemetry frames are supported: + +| Function Byte | Usage | Frequency | +| ------------- | ----- | ---- | +| G | GPS Frame | 5Hz at > 2400 baud | +| A | Attitude Frame | 10 Hz at > 2400 baud | +| S | Status Frame | 5Hz at > 2400 baud | +| O | Origin Frame | 1 Hz rate | +| N | Navigation Frame (INAV extension) | ~4 Hz rate | +| X | GPS eXended data (INAV extension) | 1 Hz rate | + +In addition, LTM was used by NRF24L01 / deviationtx INAV protocol, which defines an additional frame for in-TX tuning. This frame is not transmitted by INAV for telemetry. + +| Function Byte | Usage | +| ------------- | ----- | +| T | Tuning frame (radio testing extension) | + +## GPS Frame (G) + +The payload is 14 bytes. + +| Data | Format | +| ----- | ------- | +| Latitude | int32 decimal degrees * 10,000,000 (1E7) | +| Longitude | int32 decimal degrees * 10,000,000 (1E7) | +| Ground Speed | uchar m/s | +| Altitude | (u)int32, cm (m / 100). In the original specification, this was unsigned. In INAV it is signed and should be so interpreted by consumers | +| Sats | uchar. bits 0-1 : fix ; bits 2-7 : number of satellites | + +## Attitude Frame (A) + +The payload is 6 bytes + +| Data | Format | +| ---- | ---- | +| Pitch | int16, degrees | +| Roll | int16, degrees | +| Heading | int16, degrees. Course over ground | + +## Status Frame (S) + +The payload is 7 bytes + +| Data | Format | +| ---- | ---- | +| Vbat | uint16, mV | +| Battery Consumption | uint16, mAh | +| RSSI | uchar | +| Airspeed | uchar, m/s | +| Status | uchar | + +Airspeed (vice GPS ground speed in the G-frame) requires INAV 1.7.2 or later, with `PITOT` defined at build time, and a detected pitot sensor. + +The status byte is used as + +| Bit | Usage | +| ---- | ---- | +| 0 | armed | +| 1 | failsafe | +| 2 - 7 | status, as (shifted value): | +| | Manual (0) | +| | Rate (1) | +| | Angle (2) | +| | Horizon (3) | +| | Acro (4) | +| | Stabilised1 (5) | +| | Stabilised2 (6) | +| | Stabilised3 (7) | +| | Altitude Hold (8) | +| | GPS Hold (9) | +| | Waypoints (10) | +| | Head free (11) | +| | Circle (12) | +| | RTH (13) | +| | Follow me (14) | +| | Land (15) | +| | Fly by wire A (16) | +| | Fly by wire B (17) | +| | Cruise (18) | +| | Unknown (19) | +| | Launch (20*) | +| | Autotune (21*) | + +As a general purpose protocol, not all status can be mapped to INAV modes. + +(*) indicates INAV extension, post 2019-02-28 + +## Origin Frame (O) + +The payload is 14 bytes + +| Data | Usage | +| ---- | ---- | +| Latitude | int32 decimal degrees * 10,000,000 (1E7) | +| Longitude | int32 decimal degrees * 10,000,000 (1E7) | +| Altitude | uint32, cm (m / 100) [always 0 in INAV] | +| OSD on | uchar (always 1) | +| Fix | uchar, home fix status (0 == no fix) | + +## Navigation Frame (N) + +The payload is 6 bytes. Note that this frame largely mirrors the Multiwii-nav `MSP_NAV_STATUS` message and this contains redundancies and values that are not used in INAV. + +| Data | Usage | +| ---- | ---- | +| GPS mode | uchar | +| Nav mode | uchar | +| Nav Action | uchar (not all used in inav) | +| Waypoint number | uchar, target waypoint | +| Nav Error | uchar | +| Flags | uchar (to be defined) | + +where: + +| GPS mode | Enumeration | +| ----------- | -------- | +| 0 | None | +| 1 | PosHold | +| 2 | RTH | +| 3 | Mission | + +| Nav mode | Enumeration | +| ----------- | -------- | +| 0 | None | +| 1 | RTH Start | +| 2 | RTH Enroute | +| 3 | PosHold infinite | +| 4 | PosHold timed | +| 5 | WP Enroute | +| 6 | Process next | +| 7 | Jump | +| 8 | Start Land | +| 9 | Landing in Progress | +| 10 | Landed | +| 11 | Settling before landing | +| 12 | Start descent | +| 13 | Hover above home (INAV only) | +| 14 | Emergency landing (INAV only) | +| 15 | Critical GPS failure (yes 15, you never want to see this) | + +Note that these values were defined by Multiwii-nav and not all are applicable to INAV. + +| Nav Action | Enumeration | +| ----------- | -------- | +| 0 | UNASSIGNED | +| 1 | WAYPOINT | +| 2 | POSHOLD_UNLIM | +| 3 | POSHOLD_TIME | +| 4 | RTH | +| 5 | SET_POI | +| 6 | JUMP | +| 7 | SET_HEAD | +| 8 | LAND | + +| Nav Error | Enumeration | +| ----------- | -------- | +| 0 | Navigation system is working | +| 1 | Next waypoint distance is more than the safety limit, aborting mission | +| 2 | GPS reception is compromised - pausing mission | +| 3 | Error while reading next waypoint from memory, aborting mission | +| 4 | Mission Finished | +| 5 | Waiting for timed position hold | +| 6 | Invalid Jump target detected, aborting mission | +| 7 | Invalid Mission Step Action code detected, aborting mission | +| 8 | Waiting to reach return to home altitude | +| 9 | GPS fix lost, mission aborted | +| 10 | Disarmed, navigation engine disabled | +| 11 | Landing is in progress, check attitude | + +## GPS Extra Frame (X) + +The payload is 6 bytes. + +| Data | Usage | +| ---- | ---- | +| HDOP | uint16 HDOP * 100 | +| hw status | uint8 | +| LTM_X_counter | uint8 | +| Disarm Reason | uint8 | +| (unused) | 1 byte | + +Note that hw status (hardware sensor status) is INAV 1.5 and later. If the value is non-zero, then a sensor has failed. +A complementary update has been made to MSP_STATUS (https://github.com/iNavFlight/inav/wiki/INAV-MSP-frames-changelog). +Thus, on disarming, the sensor status may be evinced from the MSP_STATUS/sensor field. + +The sensor hardware failure indication is backwards compatible with versions prior to 1.5 (and other Multiwii / Cleanflight derivatives). + +The LTM_X_counter value is incremented each transmission and rolls over (modulo 256). It is intended to enable consumers to estimate packet loss. + +# INAV CLI Support + +LTM is transmit only, and can work at any supported baud rate. It was designed to operate over 2400 baud and does not benefit from (much) higher rates. It is thus usable on soft serial. The extra frames later introduced by INAV means that 4800 baud is required for the highest update rate. + +A CLI variable `ltm_update_rate` may be used to configure the update rate and hence band-width used by LTM, with the following enumerations: + +* NORMAL: Legacy rate, currently 303 bytes/second (requires 4800 bps) +* MEDIUM: 164 bytes/second (requires 2400 bps) +* SLOW: 105 bytes/second (requires 1200 bps) + +For many telemetry devices, there is direction correlation between the air-speed of the radio link and range; thus a lower value may facilitate longer range links. + +# Sample Data + +A couple of data samples are available from the [mwptools](https://github.com/stronnag/mwptools) project. [Sample1](https://raw.githubusercontent.com/wiki/stronnag/mwptools/data/ltm_2015-11-08.tar.gz) and [Sample2](https://raw.githubusercontent.com/wiki/stronnag/mwptools/data/mwp_2015-12-12-LTM.tar.gz) include raw dumps, structured data logs and READMEs explaining usage. + +# Other + +## Checksum Calculation + +The checksum is a simple XOR over the payload. The following example (Python) illustrates the calculation of the checksum over the payload bytes: + +``` +def checksum(payload): + value = 0 + for d in payload: + value ^= d + return value +``` diff --git a/versioned_docs/version-8.0.1/advanced/MSP-Navigation-Messages.md b/versioned_docs/version-8.0.1/advanced/MSP-Navigation-Messages.md new file mode 100644 index 0000000..b5a36e9 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/MSP-Navigation-Messages.md @@ -0,0 +1,512 @@ +--- +title: MSP Navigation Messages +--- + +# MSP NAV Protocol and Types + +This document describes MSP navigation messages, their usage and implementation details. Both **INAV** and **Multiwii** implementations (which are largely the same) are documented in this article. + +Note that all binary values are little endian (MSP standard). + +# Implementation and versions + +This document should match the INAV 1.2 (and later) and Multiwii 2.5 flight controller firmware. + +Prior to INAV 3.0, the [inav-configurator](https://github.com/iNavFlight/inav-configurator) supported a subset of MSP Waypoint (WP) types; for INAV 3.0 it supports all WP types. In addition to the inav configurator, the messages described are implemented in [mwp](https://github.com/stronnag/mwptools) (Linux / FreeBSD / Windows (Cygwin,WSL)), ezgui (Android) mission planners / ground station applications and "drone helper" (Windows 10) mission planner. mwp and ezgui support both INAV and Multiwii; WinGui is a legacy Windows / Multiwii only mission planner that also supports this message set. + +# WayPoint and Action Attributes + +Each waypoint has a type and takes a number of parameters, as below. These are used in the MSP_WP message. The final column indicated if the message is implemented for INAV 1.2 (and later). + +| Value | Enum | P1 | P2 | P3 | Lat | Lon | Alt | INAV | +| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | +| 1 | WAYPOINT | Speed (cm/s) [1] (exception [6]) | | Altitude Mode & Actions [7] | ✔ | ✔ | ✔ | ✔ | +| 2 | POSHOLD_UNLIM | | | | ✔ | ✔ | ✔ | ✘ [5] | +| 3 | POSHOLD_TIME | Wait time (seconds) | [speed (cm/s](1)) | Altitude Mode & Actions [7] | ✔ | ✔ | ✔ | ✔ 2.5 and later | +| 4 | RTH [4] | Land if non-zero | | | | | ✔ [2] | ✔ | +| 5 | SET_POI [3] | | | | ✔ | ✔ | | ✔ 2.6 and later | +| 6 | JUMP | Target WP# | No. of repeats (-1 = forever) | | | | | ✔ 2.5 and later | +| 7 | SET_HEAD [3] | Heading (degrees) | | | | | | ✔ 2.6 and later | +| 8 | LAND | Speed (cm/s) [1] | Elevation Adjustment (m) [8] | Altitude Mode & Actions [7] | ✔ | ✔ | ✔ | ✔ 2.5 and later | + +1. Leg speed is an INAV extension (for multi-rotors only). It is the speed on the leg terminated by the WP (so the speed for WP2 is used for the leg WP1 -> WP2) (cm/s). +2. Not used by INAV +3. Once SET_HEAD or SET_POI is invoked, it remains active until cleared by SET_HEAD with a P1 value of -1. +4. If a mission contains multiple RTH stanzas, then for Multiwii, the mission terminates at the first RTH. For INAV, prior to c. 2.6, the mission would continue if RTH-LAND is not set, and valid waypoints follow. +5. If the final entry in a mission is a WAYPOINT, the INAV treats it as POSHOLD_UNLIM. +6. For INAV's "follow-me" mode (WP#255, POSHOLD engaged), P1 may be used to send an orientation heading (0-359 degrees). +7. INAV 3.0 and later, P3 defines the altitude mode. 0 (default, legacy) = Relative to Home, 1 = Absolute (AMSL). Ignored for releases prior to 3.0. INAV 6.0 and later additionally define user "Actions" which may be invoked using the logic programming framework. +8. INAV 3.0 and later, P2 defines the ground elevation (in metres) for the LAND WP. If the altitude mode is absolute, this is also absolute; for relative altitude, then it is the difference between the assumed home location and the LAND WP. Ignored for releases prior to 3.0. + +## P3 bitfield usage + +Since INAV 6.0, the usage of the P3 parameter is: + +| Bit | Usage | +| ---- | ---- | +| 0 | Relative (not set) or absolute (AMSL) (set) altitude reference | +| 1 | User Action 1 | +| 2 | User Action 2 | +| 3 | User Action 3 | +| 4 | User Action 4 | +| 5-15 | Reserved | + +## Geospatial Units + +| Field | XML Mission File | MSP_WP binary message | +| ----- | ---------------- | --------------------- | +| Latitude, Longitude | Decimal degrees, WGS84 | Integer, WGS84 Degrees * 1E7 | +| Altitude | Integer Metres | Centimetres | + +Note that INAV uses the GPS' "above mean sea level" (not "above WGS84 ellipsoid") elevation for navigation. Be aware of this distinction when using absolute rather than relative (to home) mission altitudes. + +## FlyBy Home Waypoints + +From INAV 4.0, "FlyBy Home" (FBH) waypoints are supported for WAYPOINT, POSHOLD_TIME and LAND. These WPs are designated by either (or both) of +* The latitude and longitude is zero; or +* The `flag` field is set to 0x48 (72d, 'H') + +FBH waypoints have no defined location until the mission is executed, when they assume the location of the **arming** home location (not affected by `safehome`). This is ephemeral and is reset on each arming. The location uploaded to the FC is irrelevant where `flag == 0x48`; in such cases a subsequent download from the FC will return the original WP latitude and longitude, not the home used for a particular instance. + +## Annotated Example +The following example, using the [MW XML](#xml-mission-files) (INAV configurator, mwp, ez-gui) format, illustrates the WAYPOINT, JUMP, POSHOLD_TIME and LAND types: +![Complex Mission](/img/content/eg_complex_mission.png) +``` + + + + + + + + + + + + + + +``` +Mission points 5 and 8 are JUMP; they have no location as they affect the current location (the previous WP) and cause an action. +* After WP 4 (JUMP at 5), the vehicle will proceed to WP 2 (`parameter1 = 2`); it will do this twice (`parameter2 = 2`). Then it will proceed to WP 6. +* After WP 7 (JUMP at 8), the vehicle will proceed to WP 1 (`parameter1 = 1`); it will do this once (`parameter2 = 1`). Then it will proceed to WP 9. +* The second JUMP (8) will cause the first jump (5) to be re-executed. + +Mission point 9 is POSHOLD_TIME. The vehicle will loiter for 45 seconds (`parameter1 = 45`) at the WP9 location. A multi-rotor will hold a steady position, fixed wing will fly in a circle as defined by the CLI parameter `nav_fw_loiter_radius`. + +Mission point 11 is LAND. The vehicle will land (unconditionally, regardless of `nav_rth_allow_landing`) at the given location. The CLI setting `nav_disarm_on_landing` is honoured. + +There is a video animation of the flight in [a short youtube video](https://youtu.be/MTA42WUOjUY) and a [more detailed youtube video tutorial](https://www.youtube.com/watch?v=w6M-v4qM5Yg). The mission is executed as: + +| WP / next wp | Course | Dist | Total | +| ------------ | ------ | ----- | ------ | +| WP01 - WP02 | 287° | 99m | 99m | +| WP02 - WP03 | 350° | 100m | 198m | +| WP03 - WP04 | 070° | 67m | 265m | +| WP04 (J05) WP02 | 201° | 129m | 394m | +| WP02 - WP03 | 350° | 100m | 494m | +| WP03 - WP04 | 070° | 67m | 561m | +| WP04 (J05) WP02 | 201° | 129m | 690m | +| WP02 - WP03 | 350° | 100m | 789m | +| WP03 - WP04 | 070° | 67m | 856m | +| WP04 - WP06 | 089° | 71m | 927m | +| WP06 - WP07 | 160° | 64m | 991m | +| WP07 (J08) WP01 | 206° | 99m | 1090m | +| WP01 - WP02 | 287° | 99m | 1189m | +| WP02 - WP03 | 350° | 100m | 1288m | +| WP03 - WP04 | 070° | 67m | 1355m | +| WP04 (J05) WP02 | 201° | 129m | 1484m | +| WP02 - WP03 | 350° | 100m | 1584m | +| WP03 - WP04 | 070° | 67m | 1651m | +| WP04 (J05) WP02 | 201° | 129m | 1779m | +| WP02 - WP03 | 350° | 100m | 1879m | +| WP03 - WP04 | 070° | 67m | 1946m | +| WP04 - WP06 | 089° | 71m | 2016m | +| WP06 - WP07 | 160° | 64m | 2081m | +| WP07 - PH09 | 226° | 159m | 2239m | +| PH09 - WP10 | 016° | 197m | 2437m | +| WP10 - WP11 | 164° | 92m | 2529m | + +## Modifier actions +A number of the WP types (JUMP, SET_POI, SET_HEAD, RTH) act as modifiers to the current location (i.e. the previous WP), as follows: + +### JUMP +JUMP facilitates adding loop to mission, the first parameter is the WP to jump to, and the second parameter is the number of times the JUMP is executed. A parameter2 value of `-1` means JUMP indefinitely (i.e. the pilot must eventually manually abort the mission and take control). For Multiwii, the jump target (parameter 1) must be prior to the jump WP, for INAV, forward and backward jumps are permitted. In general, forward jumps are less useful and will usually need a backward jump to be useful. + +INAV validates JUMP WPs prior to arming; the following conditions will cause a "Navigation Unsafe" [arming blocker](https://github.com/iNavFlight/inav/wiki/%22Something%22-is-disabled----Reasons/_edit). + +* First item can't be JUMP (can't calculate 1st WP distance, impossible for backward jumps) +* Can't jump to immediately adjacent WPs (pointless) +* Can't jump beyond WP list (undefined behaviour) +* Can only jump to geo-referenced WPs (WAYPOINT, POSHOLD_TIME, LAND) (otherwise, undefined behaviour) + +In the following example of a forward jump, WP #5 (POSHOLD_TIME) is visited exactly once. +![Jump Forward](/img/content/forward-jump-mission.png) + +``` + + + + + + + + + + + + +``` +### RTH +The craft returns to the home location. + +### SET POI (Multirotor only, Multiwii, INAV 2.6 and later) + +The `SET_POI` defines a location for a point of interest (POI). The craft will fly the mission (until a `SET_HEAD`) with the nose pointing at the POI, which might be useful for aerial photography. Note that the craft does NOT fly to the POI. + +In the following image: + +* WP2 and WP11 are coincident. +* WP3 (yellow icon) defines the POI +* WP12 (`SET_HEAD -1`) cancels the POI + +So the craft will fly normally from WP1 to WP2. The craft will then fly WP2 - WP11 with the "nose in" towards the POI (WP3). + +After WP11, the craft flies normally, "nose first". + +![Set POI ](/img/content/mission-set-poi.png) + +[Youtube video tutorial on SET_POI and SET_HEAD](https://youtu.be/RO5N9tbzNg8) + +### SET_HEAD (Multirotor only, Multiwii, INAV 2.6 and later) + +The `SET_HEAD` type sets the craft's heading (where it 'looks', not the direction of travel). This may be useful for useful for aerial photography. A value of `-1` causing the heading to be 'straight ahead', i.e. the direction of travel. Thus, `SET_HEAD` `-1` may used to cancel a previous valid `SET_HEAD` or `SET_POI`. A `SET_HEAD` remains in force until cancelled by `SET_HEAD` with `p1` of `-1`, or modified by a subsequent `SET_HEAD` or `SET_POI`. + +In the following example (note that WP8 - WP9 is orientated 120°- 300°): + +The craft flies normally (nose first) to WP1. + +The craft flies WP1 - WP3 with the nose pointing 120° (i.e. at c. 90° relative to the track) + +The craft flies WP3 - WP5 - WP6 with the nose pointing 300° (i.e. at c. 90° / 270° relative to the track). + +The craft then files normally (nose first) WP6 - WP8 - WP9 (where it lands). The `SET_HEAD` with `P1 -1` at WP7 cancels the preceding `SET_HEAD`. + +![SET_HEAD image](/img/content/mission-set-head.png) + +## Uploading + +For safety, if no mission is defined, a single RTH action should be sent. + +| Enum | P1 | P2 | P3 | Lat | Lon | Alt | Flag | +| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | +| RTH | 0 | 0 | 0 | 0 | 0 | 25m [1] | 0xa5 | + +1. your choice, really. + +In general, flag is 0, unless it's the last point in a mission, in which case it is set to 0xa5 (165) (or 0x48 (72) for FBH WP). When waypoints are uploaded, the same data can also be requested from he FC, thus enabling the application to verify that the mission has been uploaded correctly. + +# Messages (Navigation related) + +| MNEMONIC | Value | Direction (relative to FC) | +| -------- | ---- | ---- | +| MSP_NAV_STATUS | 121 | Out | +| MSP_NAV_CONFIG | 122 | Out | +| MSP_WP | 118 | Out | +| MSP_RADIO | 199 | Out | +| MSP_SET_NAV_CONFIG | 215 | In | +| MSP_SET_HEAD | 211 | In | +| MSP_SET_WP | 209 | In (& out) | + +## MSP_WP / MSP_SET_WP + +Special waypoints are `0`, `254`, and `255`. `#0` returns the RTH (Home) position, `#254` returns the current desired position (e.g. target waypoint), `#255` returns the current position. + +| Name | Type | Usage | +| ---- | ---- | ----- | +| wp_no | uchar | way point number | +| action | uchar | action (wp type / action) | +| lat | int32 | decimal degrees latitude * 10,000,000 | +| lon | int32 | decimal degrees longitude * 10,000,000 | +| altitude | int32 | altitude (metre) * 100 | +| p1 | int16 | varies according to action | +| p2 | int16 | varies according to action | +| p3 | int16 | varies according to action | +| flag | uchar | 0xa5 = last, otherwise set to 0 (or 0x48 (72) for FBH WP, INAV 3.1+)| + +The values for the various parameters are given in the section “WayPoint / Action Attributes” +Note that altitude is measured from the "home" location, not absolute above mean sea level, unless the absolute altitude flag is set for a WP (INAV 3.0 and later). + +## Updating special waypoints + +When the craft has a valid position, is armed and the mode `GCS NAV` is asserted, two of the special waypoints may be updated using `MSP_SET_WP`: + +`WP#255` may be updated to set the vehicle's desired location (i.e. "Follow Me"); this also requires that `NAV POSHOLD` mode is asserted. If the altitude is 0, then the vehicle altitude is unchanged, otherwise it is set as desired relative altitude. If 'P1' is in the range 1-359, the heading is also updated, so "nose first follow me" is possible for a multi-rotor. + +`WP#0` may be updated to set the home position. + +## MSP_NAV_STATUS + +The following data are returned by a MSP_NAV_STATUS message. The usage texts are those defined by Wingui; Multiwii and INAV support this message. Almost the same data is returned by the [inav LTM NFRAME](https://github.com/iNavFlight/inav/wiki/Lightweight-Telemetry-(LTM)#navigation-frame-n) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeUsage
gps_modeucharNone
+PosHold
+RTH
+Mission
nav_stateucharNone
+RTH Start
+RTH Enroute
+PosHold infinite
+PosHold timed
+WP Enroute
+Process next
+Jump
+Start Land
+Land in Progress
+Landed
+Settling before land
+Start descent
+Hover above home
+Emergency Landing
actionuchar(last wp, next wp?)
wp_numberuchar(last wp, next wp?)
nav_errorucharNavigation system is working
+Next waypoint distance is more than the safety limit, aborting mission
+GPS reception is compromised - pausing mission, COPTER IS ADRIFT!
+Error while reading next waypoint from memory, aborting mission.
+Mission Finished.
+Waiting for timed position hold.
+Invalid Jump target detected, aborting mission.
+Invalid Mission Step Action code detected, aborting mission.
+Waiting to reach return to home altitude.
+GPS fix lost, mission aborted - COPTER IS ADRIFT!
+Copter is disarmed, navigation engine disabled.
+Landing is in progress, check attitude if possible.
target_bearingint16(presumably to the next WP?)
+ +## MSP_NAV_CONFIG (MW) + +The following data are returned from a MSP_NAV_CONFIG message. Values are from Multiwii config.h. Values may also be set by MSP_SET_NAV_CONFIG. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeUsage
flags1ucharBitmap of settings from MW config.h
+b0 : GPS filtering
+b1 : GPS Lead
+b2 : Reset Home
+b3 : Heading control
+b4 : Tail first
+b5 : RTH Head
+b6 : Slow Nav
+b7 : RTH Alt
flags2ucharBitmap of settings from MW config.h
+b0 : Disable sticks
+b1 : Baro takeover
wp_radiusuint16radius around which waypoint is reached (cm)
safe_wp_distanceuint16Maximum permitted first leg of mission (m, assumed?)
nav_max_altitudeuint16Maximum altitude for NAV (m)
nav_speed_maxuint16maximum speed for NAV (cm/sec)
nav_speed_minuint16minimum speed for NAV (cm/s)
crosstrack_gainucharMW config.h value*100
nav_bank_maxuint16maximum bank ??? for NAV, MW config.h value*100
rth_altitudeuint16RTH altitude (m)
land_speeducharGoverns the descent speed during landing. 100 ~= 50 cm/sec unknown units
fenceuint16Distance beyond which forces RTH (m)
max_wp_numberucharmaximum number of waypoints possible (read only)
+ +## MSP_RADIO + +If you have a 3DR radio with the MW/MSP specific firmware, the follow data are sent from the radio, unsolicited. + +| Name | Type | Usage | +| ---- | ---- | ----- | +| rxerrors | uint16 | Number of RX errors | +| fixed_errors | uint16 | Number of fixed errors, if error correction is set | +| localrssi | uchar | Local RSSI | +| remrssi | uchar | Remote RSSI | +| txbuf | uchar | Size of TX buffer | +| noise | uchar | Local noise | +| remnoise | uchar | Remote noise | + +## FC Capabilities (MW only) + +Note that 32bit flight controllers (baseflight, cleanflight) use capability == 16 for a different purpose +(CAP_CHANNEL_FORWARDING). It is advised to use other messages for checking for capabilities on non-MW platforms. + +| Capability | Value | +| ---- | ---- | +| BIND | 1 | +| DYNBAL | 4 | +| FLAP | 8 | +| NAV | 16 | + +# Implementations + +The MSP NAV message set is implemented by [mwptools](https://github.com/stronnag/mwptools) (Linux, Windows, FreeBSD), ezgui / mission planner for INAV (Android), WinGUI (MS Windows) and the [inav-configurator](https://github.com/iNavFlight/inav-configurator). + +# XML Mission Files + +[inav-configurator](https://github.com/iNavFlight/inav-configurator), [mwptools](https://github.com/stronnag/mwptools), ezgui / mp4i (and WinGUI) share a common, interoperable, XML mission file format. A XSD can be found in the [inav developer documenation]( +https://github.com/iNavFlight/inav/tree/master/docs/development/wp_mission_schema). + +# Encoding MSP Messages + +In order to send waypoints to the flight controller, they need to be serialised into an `MSP_SET_WP` message. This is a standard MSP message; it may be encoded as either MSPv1 or [MSPv2](MSP-V2). In general, you should use MSPv2 unless you're targeting MultiWii or ancient versions of INAV. + +The payload comprises the following packed 'C' language structure: + +``` +struct __attribute__ ((__packed__)) _msp_wp { + uint8_t wp_no; + uint8_t action; + int32_t lat; + int32_t lon; + int32_t altitude; + int16_t p1; + int16_t p2; + int16_t p3; + uint8_t flag; +}; +typedef struct _msp_wp MSP_WP; +``` +All values are little endian; of particular note: +* MSP_SET_WP has value `209` (decimal). +* `lat`, `lon` (latitude and longitude). These values are the WGS84 floating point values multiplied by `1e7` (`10,000,000`). So the point `54.137110 -4.719426` (`54:08:13.60N 004:43:09.93W`) would be encoded as `541371100 -47194260`. +* `altitude`. In centimetres. +* `action`, `p1`, `p2` and `p3` are encoding according to the values in sections [WayPoint and Action Attributes](#waypoint-and-action-attributes) and [P3 bitfield usage](#p3-bitfield-usage). +* `flag` values are `0` (default), `72` Fly by home WP, `165` final WP. + +Depending on your preference and programming language features, you can either write the (little endian) values directly into a packed structure, or individually serialise each element into a contiguous byte array (21 bytes total). In the latter case, the `lat` value would occupy byte offsets 2-5. + +So for the simple mission (one geographic WP and RTH) + +``` + + + + + +``` + +The WP1 payload comprises the following 21 bytes (as hexadecimal): + +``` +01 01 dc aa 44 20 6c df 2f fd 68 10 00 00 b0 04 00 00 00 00 00 +``` +Which encodes to the MSPV2 message: + +``` +24 58 3c 00 d1 00 15 00 01 01 dc aa 44 20 6c df 2f fd 68 10 00 00 b0 04 00 00 00 00 00 9a +``` + +The WP2 payload comprises the following 21 bytes (as hexadecimal): + +``` +02 04 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 a5 +``` + +Which encodes to the MSPV2 message: + +``` +24 58 3c 00 d1 00 15 00 02 04 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 a5 a3 +``` + +## Firmware source reference + +The normative reference is the source code, the following are definitive `src/main/msp/msp` and `src/main/fc/fc_msp.c`. diff --git a/versioned_docs/version-8.0.1/advanced/MSP-V2.md b/versioned_docs/version-8.0.1/advanced/MSP-V2.md new file mode 100644 index 0000000..4fa82b8 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/MSP-V2.md @@ -0,0 +1,193 @@ +--- +title: MSP V2 +--- + +# Multiwii Serial Protocol Version 2 + +## Overview + +This page describes MSPV2 (MultiWii Serial Protocol Version 2). MSP is the remote messaging protocol used by INAV and other flight controllers such as MultiWii, CleanFlight and BetaFlight. + +MSPV2 was introduced in INAV 1.73 for legacy commands, and is fully implemented (16bit commands) after 1.73 (i.e. 1.74 development branch and successors). An MSP API version of 2 or greater indicates MSPV2 support. + +## MSP Protocol + +MSP is a request-response protocol. MSP defines the side sending the request as "MSP Master" role and the side generating a response as "MSP Slave" role. + +A specific device may function as both "MSP Master" and "MSP Slave" or implement only one role, depending on requirements. Generally, a Groundstation software is an "MSP Master" and FC is an "MSP Slave", however in some use-cases a FC or any other device may be required to act as an "MSP Master" and "MSP Slave" concurrently. + +## Rationale to create MSP V2 + +The reasons for introducing a incrementally improved version of MSP include: + +* Limited message IDs. MSP v1 provided 255 message IDs; between INAV and BetaFlight (CleanFlight), this space is almost exhausted. +* Limited message size. MSP v1 is limited to 255 byte message payloads. This is already a problem and can only get worse. The extant attempt to address this limitation in MSP v1 (the JUMBO frame extension) is a 'band-aid' and still suffers from the next restriction. +* Weak check-summing. MSP v1 uses a simple XOR checksum. This is vulnerable to simple communications errors (transposed bits). It can fail to detect common transmission corruptions. + +MSP V2 addresses these shortcomings: + +* 16bit message space. 65535 message IDs. For backwards compatibility, message IDs 0-255 map onto the analogous MSP v1 messages. +* 16bit payload. +* crc8_dvb_s2 checksum algorithm. This is a single byte CRC algorithm that is much more robust than the XOR checksum in MSP v1. + +## MSP V2 Message structure + +| Offset | Usage | CRC | Comment | +| ---- | ---- | ---- | --- | +| 0 | $ | | Same lead-in as V1 | +| 1 | X | | 'X' in place of v1 'M' | +| 2 | type | | '\<' / '>' / '!' see [Message Types](#Message-Types) | +| 3 | flag | ✔ | uint8, flag, See [Message Flags](#Message-Flags) | +| 4 | function | ✔ |uint16 (little endian). 0 - 255 is the same function as V1 for backwards compatibility | +| 6 | payload size | ✔ |uint16 (little endian) payload size in bytes | +| 8 | payload | ✔ | n (up to 65535 bytes) payload | +| n+8 | checksum | | uint8, (n= payload size), crc8_dvb_s2 checksum | + +The fields marked with a ✔ are included in the checksum calculation. + +## Message Types + +| Identifier | Type | Can be sent by | Must be processed by | Comment | +| - | - | - | - | - | +| '\<' | Request | Master | Slave | | +| '>' | Response | Slave | Master | Only sent in response to a request | +| '!' | Error | Master, Slave | Master, Slave | Response to receipt of data that cannot be processed (corrupt checksum, unknown function, message type that cannot be processed) | + + +## Message Flags + +Message flags are used to fine-tune the behaviour of the message exchange, often for use cases that do not require the integrity guarantees of a request - response protocol. + +These flags are primarily intended to be used by RC radio systems and not by general consumers who should ensure that the flag value is set to zero to avoid unintended behaviours. + +| Flag | Bit / Mask value | Status | Usage | +| ---- | ---------------- | ------ | ----- | +| `NO_REPLY` | `0` / `0x1` | Implemented | Do not send a reply | +| `ILMI` | `1` / `0x2` | Implemented for INAV 8 | "In-Line Message identifier"; intended for radio system that inject transient messages into an extant message stream for private usage. | + +Note that for INAV 8 and later, the `flag` field is returned, unaltered in the response (unless `NO_REPLY` was also set.) | + +The normative reference for MSP V2 message flags is the enumeration `mspFlags_e` in the source code file `src/main/msp/msp.h`. + +* Defined flag enumerations are reserved for specific use cases +* "Normal" consumers (GCS, Configurators, Remote Management etc.) should set the flag to zero. +* Setting values other than those defined in `src/main/msp/msp.h` is undefined behaviour. However if you have a use case, bits not defined in `mspFlags_e` may be used by applications. + +## Encapsulation over V1 + +It is possible to encapsulate V2 messages in a V1 message in a way that is transparent to the consumer. This is implemented by setting the V1 function id to 255 and creating a payload of a V2 message without the first three header bytes. +Thus a V1 consumer would see a not understood message rather than a communications error. This is not encouraged; rather it is preferred that MSP consumers should implement V2. + +![V2 in V1](https://user-images.githubusercontent.com/11059099/29072728-4605dbfa-7c8c-11e7-996a-8106670cca9e.png) + +## Sample Message + +### MSP_IDENT + +As MSP V2 (function id: 100, payload size: 0) + +```` +"$X<\x00d\x00\x00\x00\x8F" +24 58 3c 00 64 00 00 00 8f +```` +### Embedded example + +For a mythical V2 "Hello World" message with function id 0x4242 (note: this function id is not implemented in INAV), as MSPV2 (hex bytes), 18 byte payload, flag set to 0xa5: + +```` +24 58 3e a5 42 42 12 00 48 65 6c 6c 6f 20 66 6c 79 69 6e 67 20 77 6f 72 6c 64 82 +```` + +And embedded in a V1 message (hex bytes): + +```` +24 4d 3e 18 ff a5 42 42 12 00 48 65 6c 6c 6f 20 66 6c 79 69 6e 67 20 77 6f 72 6c 64 82 e1 +```` +The V2 capable CGS **mwp** reports this as: +```` +2017-08-11T19:50:12+0100 MSP_CMDS_HELLO_WORLD frame (18): flag=0xa5 "Hello flying world" +```` +Note: This message function is NOT implemented in the FC. It is just a (temporary) test case in mwp. + +## crc_dvb_s2 example + +The checksum should be initialised to zero. The following 'C' code snippet shows the INAV implementation. +```` +uint8_t crc8_dvb_s2(uint8_t crc, unsigned char a) +{ + crc ^= a; + for (int ii = 0; ii < 8; ++ii) { + if (crc & 0x80) { + crc = (crc << 1) ^ 0xD5; + } else { + crc = crc << 1; + } + } + return crc; +} +```` +And **pseudo-code** usage: +```` +int len; // payload size +uint8_t *msg = calloc(1, len+9); // allocation for message +msg[0] = '$'; +... +// complete message content +uint8_t ck2 = 0; // initialise CRC +for (int i = 3; i < len+8; i++) + ck2 = crc8_dvb_s2(ck2, msg[i]); // loop over summable data +msg[len+8] = ck2; +```` + +## MSP v1 JUMBO Messages + +As the MSP v1 JUMBO messages is not obviously documented elsewhere: + +* This is a MSP v1 `$M ... ` message +* Set the function code as normal (0-255) +* Set the payload size to 255 +* set the real real payload size as the first two bytes of the payload +* Then the real payload +* Then a MSP V1 XOR checksum as normal + +One could embed a MSP V2 message within a MSP V1 JUMBO frame, but this is not likely to be well supported by consumers. If you need V2, please use it natively. + +# MSP V2 Message Catalogue + +For INAV 1.8.0, MSP V2 messages have been defined (0x4242 is a joke, not a land grab). It is hoped that a message catalogue can be cooperatively developed by FC authors to avoid the current fragmentation in MSP V1. + +Suggested approach is to allocate blocks of MSPv2 messages to certain firmwares - use high nibble of Function ID as firmware family identifier. This will allow up to 4096 firmware-specific messages. + +| Function ID | Usage | Supports flags | FCs implementing | Documentation Link | +| ----- | ---------- | ---- | ---- | ---- | +| 0x0000-0x00FE | Legacy | ✘ | INAV, MultiWii, BetaFlight, Cleanflight, BaseFlight | http://www.multiwii.com/wiki/index.php?title=Multiwii_Serial_Protocol | +| 0x1000-0x1EFF | Common messages | ✘ | INAV | | +| 0x1F00-0x1FFF | Sensors connected via MSP | ✘ | INAV | | +| 0x2000-0x2FFF | INAV-specific | ✘ | INAV | | +| 0x3000-0x3FFF | Betaflight-specific, Cleanflight-specific | ✘ | Betaflight, Cleanflight | | + +# Legacy and compatibility + +For new developments targeting modern INAV, MSPV2 is the recommended message format. Applications seeking compatibility with MultiWii, INAV prior to INAV 2.0 or other, older FCs may wish to also implement MSPV1. + +## V1 Structure + +| Offset | Usage | CRC | Comment | +| ---- | ---- | ---- | --- | +| 0 | $ | | Lead in | +| 1 | M | | 'M' in place of v2 'X' | +| 2 | type | | '\<' / '>' / '!' see [Message Types](#Message-Types) | +| 3 | payload size | ✔ | uint8 payload size in bytes | +| 4 | function | ✔ | uint8 | +| 5 | payload | ✔ | uint8 payload size in bytes | +| n+5 | checksum | | uint8, (n= payload size), CRC XOR over indicated items | + +The fields marked with a ✔ are included in the checksum calculation. + +## Dealing with multiple MSP versions + +* Send `MSP_IDENT` as MSPV1. The response will inform you if the "server" side is MW, old INAV, modern INAV or other (Cleanflight, Betaflight etc). +* If the "server" is not MultiWII, send `MSP_API_VERSION` as MSPV1, otherwise proceed with V1 using only MW supported messages. +* If the API_VERSION indicates MSPV2, switch to V2 to take advantage of more reliable CRC and newer messages. +* Continue with `MSP_FC_VARIANT`, `MSP_FC_VERSION` to determine the type and version / age of the "server" (Cleanflight family) FC. +* You now have enough information to tailor your application to the FC's capabilities. diff --git a/versioned_docs/version-8.0.1/advanced/Making-a-new-Virtualbox-to-make-your-own-INAV.md b/versioned_docs/version-8.0.1/advanced/Making-a-new-Virtualbox-to-make-your-own-INAV.md new file mode 100644 index 0000000..5ee64a8 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Making-a-new-Virtualbox-to-make-your-own-INAV.md @@ -0,0 +1,22 @@ +--- +title: Making a New Virtualbox to Make Your Own iNav +--- + +[YouTube Video showing the steps below](https://youtu.be/WN0UEmIJLX4) + +1. Download and install [VirtualBox](https://www.virtualbox.org/) +1. Download [Anarchy Linux](https://github.com/AnarchyLinux/installer/releases) ISO. (Anarchy Linux has taken on the mission of Arch Anywhere Linux now that Arch Anywhere linux has ceased) +1. Install Anarchy Linux in a new virtualbox +1. Reboot into your new Virtualbox +1. Install the required packages by running this in terminal: `sudo pacman -S git make gcc arm-none-eabi-gcc arm-none-eabi-newlib` +1. Download a fresh copy of INAV by running this in terminal: `git clone https://github.com/inavflight/inav` +1. Enter INAV folder, clean up previous builds, and build your target: `cd inav; make clean; make TARGET=TARGET_YOU_WANT_TO_MAKE` + +And heres a [link](./Features-safe-to-add-and-remove-to-fit-your-needs..md#other-features-that-can-safely-be-removed-or-added) that gives some hints how to tailor INAV for your needs. + +It is also now possible to build on OS X using the [cross compiler tools for ARM] +1. If you haven't already, install XCode command line tools and [homebrew](https://brew.sh) +1. Add the ArmMbed Brew tap: `brew tap ArmMbed/homebrew-formulae` +1. Install the cross compilation tools, gcc, git, and make: `brew install arm-none-eabi-gcc git make gcc` +1. Download a fresh copy of INAV by running this in terminal. `git clone https://github.com/inavflight/inav` +1. Enter INAV folder, clean up previous builds, and build your target: `cd inav; make clean; make TARGET=TARGET_YOU_WANT_TO_MAKE` diff --git a/versioned_docs/version-8.0.1/advanced/Mixer-Tab.md b/versioned_docs/version-8.0.1/advanced/Mixer-Tab.md new file mode 100644 index 0000000..1475c1c --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Mixer-Tab.md @@ -0,0 +1,47 @@ +--- +title: Mixer Tab +--- + +# Introduction + +The mixer tab allows you to adjust the values that tells INAV how to translate stick movements from your radio to the speed of the motors and movement of the control surfaces of your aircraft. For example, on a multi-rotor, when you pull back on your radio's elevator stick, the front two motors will spin faster and the back two motors will slow down. On a flying wing, pulling back on the elevator moves the two elevons servos up. This allows for a giant variety of motor and control surface configurations to be supported. + +## Warning +**Do not have any mixes on your radio.** The intent of INAV is to fly your aircraft either in partial or full navigation modes. As such, all +Modern radios have the ability to have custom settings for delta wings, v-tail aircraft, etc. However, this is basically a mix that is running on the radio and trying to use these custom radio configurations through INAV might appear to work in manual mode on the bench, but INAV can't be configured to "understand" how to control your plane with these custom radio configurations and will cause your airplane to fly out of control when another other mode is engadeged or failsafe tries to save your aircraft. **Turn off all custom radio configurations. This also applies to trims and expos. These are done in INAV. THIS IS HIGHLY IMPORTANT!** + +## Initial Setup with Default Values +After you initial flash of INAV to your flight controller, you will be prompted with a **Default Values** screen where you will pick a preset that most closely matches your proposed aircraft type. Part of this initial default values is a mixer preset. This is what initially populates your mixer tab. + + +## Flexible motor and servo output allocation + +INAV now was a function that allows to flexibly assign functions to PWM outputs directly from INAV Configurator. +Specific function `AUTO`, `MOTORS` or `SERVOS` can be assigned to each Timer Group. Then, all outputs from this group will perform this function. +Thanks to this, it's possible to use servos and motors in ways that previously required building a custom targets. + +![INAV output assignment](https://quadmeup.com/assets/inav/inav_output_assignment.png) + +Bear in mind: +* In some rare cases, output assignment might be different than in INAV 6. **This makes it even more important to remove your props and double check your outputs before you power your flight controller with batteries for the first time after applying your old settings or enabling outputs.** +* It is not possible to assign function to individual outputs. It's a hardware, not software limitation. + +## Mixer profiles and VTOL support + +This has been a frequent request since PNP VTOL models started becoming more common. + +Read more in [Mixer Profile INAV docs](https://github.com/iNavFlight/inav/blob/master/docs/MixerProfile.md) and [VTOL INAV docs](https://github.com/iNavFlight/inav/blob/master/docs/VTOL.md) + + + + + +##Mixer Preset + +This is the portion where you tell INAV what type of plane it’s going into. The flight controller will do the mixing for you. Simply select the right plane type from the pulldown menu and click save and reboot. Most of the heavy lifting has been done for you with this move. + +Normally, you shouldn’t need to change anything here since the “Default Values” should have applied these settings for you. However, it’s good practice to double-check. + +If you want to run [reverse motor direction (props out)](https://oscarliang.com/reversed-motor-prop-rotation-quadcopter/), select “Reversed motor direction / Props-out configuration”. + +Click Save and Reboot. diff --git a/versioned_docs/version-8.0.1/advanced/Navigation-Mode:-Return-to-Home.md b/versioned_docs/version-8.0.1/advanced/Navigation-Mode:-Return-to-Home.md new file mode 100644 index 0000000..c8af069 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Navigation-Mode:-Return-to-Home.md @@ -0,0 +1,157 @@ +--- +title: "Navigation Mode: Return to Home" +--- + +Return to Home (**RTH**) has quite a few settings, so would benefit from a page of it's own. **RTH** will attempt to bring copter/plane to the home position, or safehome if used. The home position is defined as a point where aircraft was first armed, by default. RTH will control both position and altitude. You will have to manually control altitude if your aircraft does not have an altitude sensor (barometer). + +With default settings RTH will land immediately if you are closer than 5 meters from launch position. If further away it will make sure to have at least 10 meters of altitude. A plane will fly home at cruise throttle, then loiter or land, depending on settings. A copter will start going home at 3m/s, and land. It will disarm itself if so configured, otherwise you will have to manually disarm once on the ground. + +Return to Home is activated by the NAV RTH flight mode. + +# RTH Altitudes + +There are two altitudes that can be used with RTH: _nav_rth_altitude_ and _nav_rth_home_altitude_. + +_nav_rth_altitude_ is used in conjunction with the RTH Altitude control modes to decide the altitude that the model returns home at. See below to see how the two are combined. + +_nav_rth_home_altitude_ sets the altitude that a plane will loiter at when it arrives at home. If above the _nav_rth_home_altitude_, the plane will start loitering, then loiter down to the home altitude. The default, 0, means that the feature is disabled. In which case the plane will loiter at the **Actual RTH Altitude**, or _nav_rth_altitude_ if linear descent is used. + +# RTH Altitude control modes + +RTH sequence can control altitude in several different ways, controlled by _nav_rth_alt_mode_ and _nav_rth_altitud_ (the altitude in centimetres) parameters. + +Default setting is **NAV_RTH_AT_LEAST_ALT** - climb to preconfigured altitude if below, stay at current altitude if above. + +## Maintain current altitude (NAV_RTH_NO_ALT) +- _nav_rth_alt_mode_ = **CURRENT** +- _nav_rth_altitude_ is ignored + +The **Actual RTH Altitude** is the altitude that the model is currently flying at. + +![](/img/content/NAV_RTH_NO_ALT.jpg) + +## Maintain current altitude + predefined safety margin (NAV_RTH_EXTRA_ALT) +- _nav_rth_alt_mode_ = **EXTRA** +- _nav_rth_altitude_ defines extra altitude margin + +The **Actual RTH Altitude** is the altitude that the model is currently flying at, plus the _nav_rth_altitude_. + +![](/img/content/NAX_RTH_EXTRA_ALT.jpg) + +## Predefined altitude (NAV_RTH_CONST_ALT) +- _nav_rth_alt_mode_ = **FIXED** +- _nav_rth_altitude_ defines exact RTH altitude above launch point. + +If the model is below _nav_rth_altitude_ it will climb to desired altitude prior to flying back home. If the model is above the desired altitude, it will turn and fly home and descend on the way. That defines the **Actual RTH Altitude**. + +![](/img/content/NAV_RTH_CONST_ALT.jpg) + +## Maximum altitude since launch (NAV_RTH_MAX_ALT) +- _nav_rth_alt_mode_ = **MAX** + +_pre-INAV 4.1_ +- _nav_rth_altitude_ ignored + +_INAV 4.1 onwards_ +- _nav_rth_altitude_ defines the minimum RTH altitude above launch point. If the maximum altitude of the flight is below _nav_rth_altitude_, _nav_rth_altitude_ is used. If the maximum altitude of the flight is above _nav_rth_altitude_, the maximum altitude is used. 0 = disabled. + +The **Actual RTH Altitude** is the highest altitude during the flight, or _nav_rth_altitude_ if higher. + +![](/img/content/NAV_RTH_MAX_ALT.jpg) + +## At least predefined altitude above launch point (NAV_RTH_AT_LEAST_ALT) +- _nav_rth_alt_mode_ = **AT_LEAST** +- _nav_rth_altitude_ defines the minimum RTH altitude above launch point. + +If the aircraft is below _nav_rth_altitude_ it will climb to desired altitude prior to flying back home. If the model is above the desired altitude, it will turn and fly home at the current altitude. This defines the **Actual RTH Altitude**. + +![](/img/content/NAV_RTH_AT_LEAST_ALT.jpg) + +## Predefined altitude linear descent (NAV_RTH_AT_LEAST_ALT_LINEAR_DESCENT) +_pre-INAV 7.0_ +- _nav_rth_alt_mode_ = **AT_LEAST_LINEAR_DESCENT** +- _nav_rth_altitude_ defines minimum RTH altitude above launch point. + +If the aircraft is below _nav_rth_altitude_ it will climb to desired altitude prior to flying back home. If the model is above the desired altitude, it will turn and fly home, and descend on the way (on a linear straight line). This defines the **Actual RTH Altitude**. Aircraft will descend in a way that it'll reach the _nav_rth_altitude_ altitude only when it reaches the home point. So aircraft can save energy by doing an easy descend on it's way back home. + +![](https://i.imgur.com/CPgKb4w.png) + +# Linear Descent +_INAV 7.0 Onwards_ + +Before INAV 7.0; linear descent was an extended version of the **AT_LEAST** return to home method. From INAV 7.0 onwards, linear descent can be used with all RTH methods. It has also been extended to give the pilot more control. Because all RTH methods can now use linear descent; there needs to be a target altitude to descend to, that works with all RTH methods. To do this, the target altitude of the linear descent is now the `nav_rth_home_altitude`. You will need to set this parameter in order for linear descent to work. + +If Linear Descent is enabled, and the RTH Home Altitude is less than 10m. A warning is shown around the RTH Home Altitude input box. You can enter whatever values you want, including 0. It is your responsibility to make sure the value is safe for your flight environment. If the RTH Home Altitude is not set, Linear Descent is not used in flight. +![image](https://user-images.githubusercontent.com/17590174/219960451-626acd82-c885-4b92-a836-30f3cfc81a41.png) + +An option has also been added to decide how far away the linear descent starts. This is via the `nav_rth_linear_descent_start_distance` parameter. Current behaviour can be maintained by setting this to 0 [default]. When set to 0, the linear descent starts immediately upon entering RTH. You can also specify a distance from home when the linear descent begins. This is in metres and be up to 10km (10,000m). In all cases, the linear descent aims to reach the `nav_rth_home_altitude` as it arrives home, if possible. + +Though this feature is still called linear descent, due to consistency. In some cases, if flying below the home position, this can work as a linear ascent. Rising up to the `nav_rth_home_altitude`. + +# Climb first + +The _nav_rth_climb_first_ option sets how the model will initiate the **RTH**. + +## Climb first with Multirotors + +- If _nav_rth_climb_first_ = **OFF**, the multirotor will turn to home, and immediately fly towards it, climbing on the way to the **Actual RTH Altitude**. +- If _nav_rth_climb_first_ = **ON**, the multirotor hover and increase altitude. When it reaches the **Actual RTH altitude**, it will fly towards home. + +## Climb first with Fixed Wing +### _nav_rth_climb_first_ = **OFF** +The plane will turn towards home, and climb to the **Actual RTH altitude** on the homeward journey. + +[![https://imgur.com/qXkxPxh](https://i.imgur.com/qXkxPxhl.png)](https://i.imgur.com/qXkxPxh.png) + +### _nav_rth_climb_first_ = **ON** +The plane climb to the **Actual RTH altitude** in the direction it is currently flying. Once the **Actual RTH Altitude** is reached, it will turn and fly towards home. + +[![https://imgur.com/MYWCu2X](https://i.imgur.com/MYWCu2Xl.png)](https://i.imgur.com/MYWCu2X.png) + +### _nav_rth_climb_first_ = **ON_FW_SPIRAL** +_Feature available since INAV 3.0._ + +The plane climb in a loiter to the **Actual RTH altitude**. Once the **Actual RTH Altitude** is reached, it will turn and fly towards home. + +[![https://imgur.com/iviZOZ4](https://i.imgur.com/iviZOZ4l.png)](https://i.imgur.com/iviZOZ4.png) + +### Two stage climb first +_Feature available since INAV 4.0_ + +Climb first can be a pretty inefficient part of the RTH sequence. The problem is that you are using energy spiralling up to altitude, or worse, flying away from home while gaining height. However, turning off climb first may not be a valid option, depending on the flying environment. This setting gives pilots more options with climb first. + +This feature can be set up in the CLI with the following commands: +- **nav_rth_climb_first_stage_altitude**: Allows you to set an altitude for the first climb stage. The default, 0, means the feature is disabled. +- **nav_rth_climb_first_stage_mode**: This setting is similar to nav_rth_mode, in that it lets you decide how you want to use the first climb stage altitude. Settings are AT_LEAST and EXTRA. + +#### nav_rth_climb_first_stage_mode = AT_LEAST +This setting works in the same vein as the main RTH modes. Your target altitude for the first stage climb will be what you have set in nav_rth_climb_first_stage_altitude. If you are below the first climb stage altitude, the plane will climb to it. If not, it will turn to home. It will either directly fly home, or climb on the way home if your main RTH altitude target has not been reached. If the RTH Altitude is reached in the first stage, it will immediately turn towards home. + +#### nav_rth_climb_first_stage_mode = EXTRA +Again, this setting works just like the main RTH modes. The target altitude for the first stage climb will be your current altitude plus the value you have set in nav_rth_climb_first_stage_altitude. If you are below the RTH Altitude, it will climb to the first climb stage altitude. If not, it will turn to home. The plane will either fly directly home, or climb on the way home if your RTH altitude target has not been reached. If the RTH Altitude is reached in the first stage, it will immediately turn towards home. + +#### How does this work? +To be honest, pretty much as you expect it to. Once you select RTH, the model will start climbing (linear or spiral) up until the first stage target is met. Then it turns towards home and flies in that direction. If more altitude is needed to reach your target RTH altitude, it will climb on the way home. If the target altitude is met during the first climb stage, it will just fly home. Nice and simple, and much more energy efficient. + +[![RTH Climb modes - climb first = on with stage](https://i.imgur.com/S9ARPtfl.png)](https://i.imgur.com/S9ARPtf.png) + +[![RTH Climb modes - climb first = spiral with stage](https://i.imgur.com/7GMqN9Ql.png)](https://i.imgur.com/7GMqN9Q.png) + +## Other Settings +### Trackback +RTH Trackback records the recent track of the craft allowing it to return back along the track when RTH is triggered rather than returning directly back home. It's mainly intended to be used as a means of returning the craft to a position where the Rx signal can be recovered if it was lost due to a line of sight obstruction. This should improve the chances of recovering the Rx signal whilst reducing the risk of flying into the obstruction that caused the loss compared to normal RTH heading directly back home. + +When triggered the craft returns along the trackback route until the end is reached at which point it reverts to normal RTH heading directly home. It doesn't perform the RTH climb phase at the start of the Trackback but instead uses the altitude recorded for each track point so long as that altitude is no lower than the altitude when Trackback was triggered (this is the minimum altitude used throughout the Trackback phase). + +Trackback currently allows 50 trackback points with a maximum potential trackback distance of 2000m if the recorded track allows within the track point limit. It should be noted that the distance is the straight line distance from the point Trackback was triggered to the current position rather than the accumulative distance along the track. It's mainly intended to be used to limit the distance travelled away from the start point before a normal RTH is initiated. It can be set using [nav_rth_trackback_distance](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_rth_trackback_distance). Trackback usage is controlled by setting [nav_rth_trackback_mode](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_rth_trackback_mode), OFF, ON and FS. ON works for normal and failsafe RTH, FS is for Failsafe RTH only. + +Trackback RTH can be cancelled using the RTH Altitude Control Override `RIGHT ROLL` command at which point RTH will revert to a normal RTH heading directly back home. [nav_rth_alt_control_override](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_rth_alt_control_override) needs to be ON for this to work. + +### Altitude Control Override +It is possible to override the default RTH Altitude and Climb First settings during the initial RTH climb phase using the [nav_rth_alt_control_override](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_rth_alt_control_override) setting. + +### Manual Emergency Landing (FW and MC) +Allows an emergency landing to be triggered manually as required. +Landing is started or ended by toggling the POSHOLD mode switch at least 5 times at a minimum rate of 1Hz. +Provided sensor position data is available. The aircraft will commence descent, holding the target position above which it was activated. +Failsafe is inhibited during manual emergency landing, to allow the landing to continue if the RX signal is lost. Under this condition, aborting manual emergency landing must be done before a FS occurs. Manual emergency landing can also be triggered by use of the [multi-function utility](../features/Modes.md#multi-function) diff --git a/versioned_docs/version-8.0.1/advanced/OSD-Hud-and-ESP32-radars.md b/versioned_docs/version-8.0.1/advanced/OSD-Hud-and-ESP32-radars.md new file mode 100644 index 0000000..b9afb6b --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/OSD-Hud-and-ESP32-radars.md @@ -0,0 +1,181 @@ +--- +title: OSD Hud and ESP32 Radars +--- + +# The Hud + +The Hud is a feature that displays various points of interest (POI) on the OSD, in "3D", by showing a marker where the location is on the screen. For now it's capable to display : + +- The home point +- Nearby aircrafts as sent by an ESP32 LoRa modem +- Next waypoints during a mission. + +# Video Resources + +* [This is a video demonstrating the hud for both home point and ESP32 radar tracking](https://youtu.be/zzKkcd5_cY4?t=27). +* [This is a video demonstrating the display of the waypoints live during an autonomous mission](https://www.youtube.com/watch?v=CqKNGY4pogU). + +# Configuration + +The hud must be set from the CMS menu of the OSD or from the CLI in the Configurator. + +**Important! The Hud is a sub-set of the crosshair, it's designed this way because the crosshair is the origin/reference for anything hud-related. So make sure you have the crosshair enabled and displayed in the OSD tab of the Configurator. It is not recommended to have any of the legacy map or 2D-view items displayed in your OSD, as this could cause overlaps on the screen.** + +In order for the hud to display in "3D" where the POI is, it needs to know few things about your FPV camera : + +In the CMS/OSD menu, go to OSD > Hud >... + +### Crosshair style +To choose between 7 different types of crosshairs. + +**CLI :** +`set osd_crosshairs_style = DEFAULT` + +**Available Values:** `"DEFAULT", "AIRCRAFT", "TYPE3", "TYPE4", "TYPE5", "TYPE6", "TYPE7"` + +### Camera Uptilt + +Set the camera uptilt for the FPV camera. That's the angle in degres between the horizontal of the aircraft and the line of sight of the camera. For a multirotor with a camera usually pointing up it's a positive value, most often between 5 and 30°. For a plane with the camera pointing down it should be a negative value, often between -5 and -10°. + +**CLI :** +`set osd_camera_uptilt = 0` + +### Camera FOV horizontal + vertical +The FOV for the FPV camera, the default values are ok for a 2.8mm lens. If your camera is a 2.5mm or 2.1mm or lower focal, try to raise both the horizontal and vertical FOVs by 5 or 10° by steps (the smaller the focal length, the larger the field of view). If the FOV is too far off, the tracking won't work well near the borders of the screen. + +**CLI :** +`set osd_camera_fov_h = 135` +`set osd_camera_fov_v = 85` + +### Hud Margin horizontal + vertical + +How far from the border of the screen the hud ends, so it does not overwrite the rest of your OSD datas. + +**CLI :** +`set osd_hud_margin_h = 3` +`set osd_hud_margin_v = 3` + +### Horizon offset +To vertically adjust, between -2 and +2, the whole OSD and AHI and scrolling bars, it's recommended to leave it at 0. + +**CLI :** +`set osd_horizon_offset = 0` + +## Displayed items: +This sub menu will let you select what is displayed on the Hud : + +### Homing arrows +To display little arrows around the crossair showing where the home point is. + +**CLI :** +`set osd_hud_homing = ON` + +### Home point +To 3D-display the home point location (H) + +**CLI :** +`set osd_hud_homepoint = ON` + +### Radar max aircraft +Maximum count of nearby aircrafts or POIs to display, as sent from an ESP32 LoRa module. Set to 0 to disable (show nothing), up to 4. The nearby aircrafts will appear as markers A, B, C, D + +**CLI :** +`set osd_hud_radar_disp= 3` + +### Radar min range +In meters, by default 10 meters, radar aircrafts closer than this will not be displayed. This setting exists mostly to unclutter the OSD view during close range pursuits. + +**CLI :** +`set osd_hud_radar_range_min = 10` + +### Radar max range +In meters, by default 4000, radar aircrafts further away than this will not be displayed. + +**CLI :** +`set osd_hud_radar_range_max = 4000` + +### Next waypoints +How many waypoint are displayed, from 0 to 3. Set to 0 (zero) to disable. As sample, if set to 2, and you just passed the 3rd waypoint of the mission, you'll see markers for the 4th and waypoints (marked "4' and '5') + +[This is a video demonstrating the display of the waypoints live during an autonomous mission](https://www.youtube.com/watch?v=CqKNGY4pogU). + +**CLI :** +`set osd_hud_wp_disp= 2` + +# CLI commands + +All the settings are available in the CLI, recommended settings are : +``` +set osd_crosshairs_style = DEFAULT +set osd_horizon_offset = 0 +set osd_camera_uptilt = 0 +set osd_camera_fov_h = 135 +set osd_camera_fov_v = 85 +set osd_hud_margin_h = 3 +set osd_hud_margin_v = 3 +set osd_hud_homing = OFF +set osd_hud_homepoint = OFF +set osd_hud_radar_disp = 3 +set osd_hud_radar_range_min = 10 +set osd_hud_radar_range_max = 4000 +set osd_hud_wp_disp = 2 +``` + +# Accuracy and limitations + +There's a long chain of inaccuracies conspiring to make the tracking not perfectly accurate : + +* The heading of your aircraft can be wrong by a significant margin during or right after a hard turn. The steadier the flight, the more accurate it is. + +* The artificial horizon drift issue does not help. Accurate positioning for the POI markers depends on the actual attitude and heading of the aircraft, any slight difference of few degrees will mess up the tracking. + +* The tracking is not taking into account the roll angle of the plane so it remains simple and fast, so it won't be accurate when the banking angle is too high. + +* OSD is character based, it's a 30x16 grid for PAL, and 30x13 for NTSC, it's not super high-definition. + +* The crosshair is not perfectly centered in both horizontal and vertical dimensions because of an even numbers of columns and rows + +* The position of the other aircrafts as sent by the ESP32 modules are updated at 2Hz (every 0.5sec), so at high speed there's lag involved because of relative movements. + + +## ESP32 LoRa modem ("INAV Radar" project) + +If you have such a module fitted on your aicraft, extra steps are required in order to display the remote aircrafts live on the Hud : + +* Wire the ESP32 module to a free UART on your flight controller, same as you would connect a GPS (+5V, GND, TX, RX). Using a Softserial port is not supported, it's not fast enough. + +* In the INAV Configurator, Ports tab, enable the MSP option for this UART, and set the speed to **115200**. You don't have to set anything else for the port, the ESP32 will then communicate with the flight controller using standard MSP/MSP2 messages. + +* In the CMS, OSD > Hud > Displayed items, set **Radar max aircraft to 4** + +* If the wiring and port configuration is correct, at boot time the ESP32 module will show the INAV/host version detected. + +Please see this [discussion at RCGroups](https://www.rcgroups.com/forums/showthread.php?3304673-iNav-Radar-ESP32-LoRa-modems) for mode details about the ESP32 modules and the radar project. + +[This is a video demonstrating the hud for both home point and ESP32 radar tracking](https://youtu.be/zzKkcd5_cY4?t=27). + + +## What's displayed exactly ? + +* If the marker is the home location, then the home icon is shown, it depends of the uploaded OSD font, it's usually a little house or the H letter. Below the marker is the distance, in meters/kilometers if the OSD is set to metric or UK, and in feet/miles if imperial. + +* If the marker is a POI sent by the optional ESP32 LoRa Module, the markers are letters A, B, C etc, and below is also the distance, same as above. Additionally left and right of the marker will be displayed the link quality (4 bars = 100% of packets received, 3 bars = 75%, 2 bars = 50%, 1 bar = 25%, X = link lost), and the relative heading of the other aicraft : If you and the other aircraft are going in the exact same direction the relative heading arrow will point up. If your two aircrafts are going opposite directions then the arrow will point down. + +* If the marker is a mission waypoint (WP), the markers are numbers 1, 2, 3, etc with an icon before. + + +## Troubleshooting + +* **The ESP32 says "NoFC", it does not see the INAV flight controller** + +Check that all 4 wires 5V GND TX RX are connected, and check that the port/UART the ESP32 is connected to is set with MSP enabled and speed is 115200 baud. + +* **Conditions before display** + +The H marker and/or the A, B, C ... markers will appear on the OSD view only if the position and heading of your aircraft are known. So it needs a valid GPS lock. The home marker will show only when the home point is recorded, so once the flight controller is armed. The home lock is not required to display nearby radar POIs. + +Since the 3D markers will only show when the heading of the plane is known, on a flying wing with no compass (no magnetometer) the 3D markers will only appear when the plane is flying/moving, so the GPS can compute the direction. + +* **Some characters are missing in the OSD/Hud** + +Upload a compatible OSD font with the latest version of the Configurator, from the OSD tab. diff --git a/versioned_docs/version-8.0.1/advanced/OSD-custom-messages.md b/versioned_docs/version-8.0.1/advanced/OSD-custom-messages.md new file mode 100644 index 0000000..5627657 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/OSD-custom-messages.md @@ -0,0 +1,99 @@ +One of INAV's most useful features has been the [Programming Framework](https://github.com/iNavFlight/inav/blob/master/docs/Programming%20Framework.md) . Allowing users to customize their flight logic, to suit their requirements. But, from the release of INAV 7.0.0. There is the addition of _custom OSD_ elements. So users can add their own elements, and display relevant data derived from the Programming framework. + +The settings are found under the Configurator OSD tab. The layout has changed slightly in INAV 8.0.0. + +![Custom elements GV](https://github.com/iNavFlight/inav/assets/47995726/26c8b12d-27da-4a10-9ce7-e8b42289623b) +![elements](https://github.com/iNavFlight/inav/assets/47995726/33bb28e2-d090-4716-b01c-6a0aec59f9eb) + +Each custom OSD element has three configurable spaces (eight in INAV 8.0.0), with each having an activation condition. You're not required to use all the configuration custom spaces, if all elements are active. The custom configurable spaces can either be a character from the OSD font, data from the programming framework, or text. The character numbers can be found in [this document](https://github.com/iNavFlight/inav-configurator/blob/master/resources/osd/INAV%20Character%20Map.md). + +These are the options available in each configurable space. + +| Options | Description | +| ------------ | ----------------------------------------------------------------------------------------------------------- | +| **None** | Don't use any selection in the drop-down | +| **Text** | Displays text. 0 - 15 characters which can include [`A-Z`] [`0-9`] [`^!.\*`] * Text can only be used once in a single element, due to memory limitations | +| **Icon Static**| User can select a [character](https://github.com/iNavFlight/inav-configurator/blob/master/resources/osd/INAV%20Character%20Map.md) number from the [INAV OSD](https://github.com/iNavFlight/inav-configurator/blob/master/resources/osd/analogue/impact.png) , they want to display as a descriptive reference | +| **ICON from Global Variable** | Displays the icon, driven from a global variable +| **ICON from Logic Condition** | Displays the icon, driven from a logic condition (Added in INAV 8.0.0) | +| **Global Variable #** | Data within the global variable can be displayed in these decimal format's [`00000` `0000` `000` `00` `0` `0000.0` `000.00` `000.0` `00.00` `00.0` `0.0`] (Some formats added in INAV 8.0.0) | +| **Logic Condition #** | Status of the logic condition can be displayed in these decimal format's [`00000` `0000` `000` `00` `0` `0000.0` `000.00` `000.0` `00.00` `00.0` `0.0`] (Added in INAV 8.0.0) | +| **VISIBILITY** | Choose when to display custom message - **Always** or as the result of a **Global Variable** or **Logic Condition** being met | + +> [!NOTE] +> Currently, only the first 255 characters are supported by custom OSD elements. + +This [video](https://youtu.be/BqkDo-2O7js?si=_vOAHQn2N0MGbKdl&t=81) made by the features' developer. Shows an example of a custom element, which is the **!GROUND!** message, and a GV containing Lidar altitude above the surface. With a static altitude character beside it. + +### Working with numbers +You may have noticed that there are plenty of different options for showing different formats of numbers. All numbers can be either positive or negative. Which is why you will see an empty space to the left of a positive number. The whole numbers are pretty self explanatory. Just choose the appropriate number of digits for the number you are displaying. But, the numbers with decimal places need a little more explanation. In the programming framework, there are no floating point numbers. So no decimal spaces. So how do we display a number with decimal spaces? We are simply faking it with maths. + +As an example, we want to show our distance to home in kilometres. The **Flight** - **Home distance [m]** operand in the programming framework returns metres. We also want to show 2 decimal places. So how do we do it? Simply, take the calculation we would normally need, and shift it by the number of decimal places. For example, to convert our metres to kilometres, we need to divide the metres by 1000. But, If we want two decimal places, we shift the 1000 we use for the calculation right by 2. So instead of performing *metres ÷ 1000*. We perform *metres ÷ 10*. + +To see that with real numbers. Imagine that **Flight** - **Home distance [m]** is outputting 7243m. Remember that all results are whole numbers, no floating point. So *7243 ÷ 10 = 724*. Out custom OSD element display then takes that number and inserts the decimal place in the correct place. So, our OSD will show 7.24km. + + + +*** + +## This is an example of a simple stall warning indicator + +The logic checks if the _Pitch_ is above 20°, and the _Virtual Airspeed_ has dropped below 35km/h, or the _Throttle_ has been reduced below 48%. Warning of a potential stall.. Being that most tip stall conditions are induced unknowingly by the pilot, this can help avoid such events. + +Make sure you enable the _Virtual Pitot_ if you do not use a real _Pitot_.. To better suit your aircraft. Pitch angle, Airspeed and Throttle/Delay values should be altered for best detection. + +![Improved Airspd stall warning](https://github.com/user-attachments/assets/4c0a62e0-4928-45f7-bb46-4946b775bad3) + +The message will display STALL WARNING with a warning symbol (221). The stall message will only appear when the conditions are met. + +![OSD warning](https://github.com/iNavFlight/inav/assets/47995726/1d479cda-6620-4025-9958-fb693149d886) + +> [!NOTE] +> Please note that stalls are not caused directly by the speed of the aircraft. Stalls are caused by too little airflow over the wing. Which is dependent on airspeed at the attitude of the aircraft. So it may not detect all instances of a stall. Please do not be complacent. Aircraft with higher wing loading or poor stall characteristics should always be flown with caution when lowering the throttle to conserve energy. + +## This is an example of a basic switch indicator +While there are switch indicators for the OSD. Using the Custom OSD elements can give you much more control over this. This is an example of how to set them up. + +On the Programming Framework page. Set up the Logic Conditions for the switch. + +![Programming for a switch indicator](https://github.com/user-attachments/assets/68490129-b2fb-4441-8437-35e2ac824cfe) + +- LC0 takes the channel that you want to display the switch for, and subtracts 1000. This gives the switch a 0-1000 range. +- LC1 maps that range to 3 values: 0, 1, and 2. +- LC2 Adds the value from LC1 to the first switch indicator icon. 208 is switch down, 209 is switch in the middle, and 210 is switch up. +- LC3 sets GVAR 0 to the value from LC2. **Note** In INAV 8.0.0, you do not need LC3. You can use the output from LC2 directly to select the icon. + +Then on the OSD page. Add the Custom OSD element to handle the programming. + +![Custom OSD Settings](https://github.com/user-attachments/assets/8a20e38d-4373-4ed9-ab7d-33f2fcc6df32) + +- Setup the icon. For INAV 7.1.x you will need to set this to **Icon Global Variable**. You would set the GV to the variable you chose in the programming. In this example, GV 0. With INAV 8.0.0 onwards, we don't need to use the Global Variable. So set this to use **Icon from Logic Condition**. Then set the LC to the appropriate Logic Condition. LC2 in our example. +- Next, we simple add the **Text** for what the switch represents. + +If you want to swap the icon and text sides. You simply switch the text and icon. + +> [!NOTE] +> Please note that Custom element previews are added in INAV 8.0.0. Currently, the Custom OSD icons in the OSD preview cannot retrieve the actual value from the global variable. The actual value of Global Variable 0 in the above example is 209. Which displays the mid switch position +> ![](/img/content/209.png) + +## Example: Showing the altitude in different measurement units +In this example, we have our OSD set to metric. But some of the guys we fly with only understand feet. So what we are going to do is be nice, and have both measurement units on our OSD. We have the standard **Altitude** OSD element showing us the altitude in metres. Now we are going to add a second altitude custom element in feet. First, hop to the **Programming** page and we will perform the calculations. + +![image](https://github.com/user-attachments/assets/e48bd2b5-0810-45b8-a0ef-83c31140c33e) + +The first LC, we multiply the altitude in cm by 100. This allows us to divide with more accuracy. The second LC, we are dividing the result of LC0 by 3048 to get the result in feet. Note that by multiplying by 100 and dividing by 3048. We are more accurate, but will max out at 7045ft. Of course, we're not flying anywhere near that altitude. This calculation is just to show the limitations. + +Next, head back to the **OSD** page and enable Custom Element 1. We will now make this show the altitude in feet. + In the first configuration space, we choose **Logic Condition 0000** from the list. We will now choose LC1, which is the logic condition performing the divide. We can use 4 digits of precision because we know the number will not go over 7045. Next, we select **Static Icon** for the seconds configuration space. The character number is **120**, so enter that. You can see that the OSD preview has updated and is showing the a 4 digit number and the correct **Alt Ft** character. + +But, what if we only wanted to this altitude when we are under 400ft for example. We can do this by adding one more line on the **Programming** page. + +![image](https://github.com/user-attachments/assets/61d50f4b-5cbe-4b99-a741-ff0e7a1c7326) + +The third logic condition is only active if we are below 400 feet. So back on the **OSD** page. We can change the visibility configuration to **Logic Condition** and **LC2**. This will only show our custom element when the altitude is below 400 ft. + +![image](https://github.com/user-attachments/assets/7483e053-2369-49e7-9a7f-9de8fbae6aad) + +## Custom OSD Elements video tutorials + +[How to add custom OSD elements in INAV - Mr.D RC](https://youtu.be/DR6rxMLTP44) \ No newline at end of file diff --git a/versioned_docs/version-8.0.1/advanced/Older-Release-Notes.md b/versioned_docs/version-8.0.1/advanced/Older-Release-Notes.md new file mode 100644 index 0000000..0e9fe91 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Older-Release-Notes.md @@ -0,0 +1,79 @@ +--- +title: Older Release Notes +--- + +## New on version 2.6 (Dec 2020) +* **New Unicorn Filter** - A Kalman Filter implementation that allow multirotor aircraft to fly smoother +* **Safehomes** - A feature that allows aircraft to return to a previously defined "safe" home point instead of returning to the automatically defined home point. It's useful to fly at fields with strict rules about airspace use. +* **SET_HEAD and SET_POI new Waypoint types** - Allows to program missions where a Multirotor can "look" to a specific point of interest or heading. +* **Multirotor now can navigate without a barometer** - It'll using the altitude informed by the GPS instead. Now you can use a baroless FC! +* **New FrSky F.Port2 and Spektrum SRXL2 Receiver Protocols support** +* **Baro, GPS, Pitot and Compass sensors over MSP support** +* [INAV 2.6 Release notes](https://github.com/iNavFlight/inav/wiki/2.6.0-Release-Notes) + +## New on version 2.5 (Jun 2020) +* **Initial Rover and Boat Support** +* **New Matrix Filters for Multirotors** - It's a dynamic notch filter that detects noise frequencies on each individual axis (X, Y and Z), resulting in a much better noise handling. +* **JUMP, HOLD and LAND Waypoint types** - Allows more complex missions to be performed. +* **HUD POI Waypoints markers on OSD** - Shows the next waypoints in the hud +* **VTX/CMS Unification** - 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). +* [INAV 2.5 Release notes](https://github.com/iNavFlight/inav/wiki/2.5.0-Release-Notes) + +## New on version 2.4 (Feb 2020) +* **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 a SD card). +* **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. +* **Linear Climb and Dive on Waypoint Missions** - 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. +* **Support for DJI HD FPV** - INAV is now ready to embrace HD FPV with support for the DJI HD FPV system. +* [INAV 2.4 Release notes](https://github.com/iNavFlight/inav/wiki/2.4.0-Release-Notes) + +## New on version 2.3 (Nov 2019) +* **ESC Telemetry** - It's a feature of DSHOT ESCs to send some data back to the flight controller - voltage, current, temperature, motor RPM. +* **Dynamic Filters** - Port of Betaflight dynamic filtering. +* **Global Functions** - Global Functions (abbr. GF) are a mechanism allowing to override certain flight parameters (during flight). Global Functions are activated by Logic Conditions. +* **Pixel based OSD** - INAV now supports pixel based OSDs and includes a driver for FrSky's OSD. +* [INAV 2.3 Release notes](https://github.com/iNavFlight/inav/wiki/2.3.0-Release-Notes) + +## New on version 2.2 (Jun 2019) +* **Logic Conditions** - It's a new function framework that allows to activate and deactivate specific servo mixer rules. +* **Cellular telemetry via text messages** - Uses a SimCom SIM800 series cellular module to provide telemetry via text messages. +* **Support for INAV Radar** - Introduces the support for Radar ESP32 boards. They can be used to share information (including position) between multiple machines. +* **Added option to continue mission out of radio range** +* [INAV 2.2 Release notes](https://github.com/iNavFlight/inav/wiki/2.2.0-Release-Notes) + +## New on version 2.1 (Feb 2019) +* **DSHOT Support** - A digital protocol, like what DSHOT is, can substain a certain amount of noise with no performance degradation and allows a very smooth motor output. +* **Multirotor braking mode** +* **PINIO support** +* [INAV 2.1 Release notes](https://github.com/iNavFlight/inav/wiki/2.1.0-Release-Notes) + +## New on version 2.0 (Aug 2018) +* **New mixer and mixer GUI** - There are no predefined mixers on the firmware side. Mixers now are fully configurable. +* **Added NAV CRUISE flight mode for fixed wing** - When enabled the machine will try to maintain the current heading and compensate for any external disturbances. +* **OSD improvements** - Now it is possible to have three OSD layouts and switch between them via a RC channel. Furthermore new two modes have been added: map and radar. +* **Full VTX control via Smart Audio / TRAMP** - User can now select VTX settings from the configurator or via the OSD CMS. +* **Wind Estimation for Fixed Wing** +* **New SBUS atomic driver** - Fix a very important bug that may lead to a mid-air disarm, and also makes INAV compatible with FrSky R9 SBUS implementation. +* [INAV 2.0 Release notes](https://github.com/iNavFlight/inav/wiki/2.0.0-Release-Notes) + +## New on versions 1.8 to 1.9 (Mar 2018) +* Lots of small improvements on things what already existed, but fewer new features. +* Initial support for SmartAudio and IRC Tramp protocols +* Some OSD improvements, new elements, new messages +* MSP over SmartPort to allow transmitter to talk to INAV using LUA Scripts +* [INAV 1.8 Release notes](https://github.com/iNavFlight/inav/releases/tag/1.8) +* [INAV 1.9 Release notes](https://github.com/iNavFlight/inav/releases/tag/1.9.0) + +## New on version 1.7 (May 2017) +* **Turn assistant** - INAV will automatically do a coordinated balanced turn with ailerons, elevator and rudder. +* **Airplane Autotune mode** - Uses changes in flight attitude input by the pilot to learn the tuning values for roll, pitch and yaw tuning. +* [INAV 1.7 Release notes](https://github.com/iNavFlight/inav/releases/tag/1.7.0) + +## New on version 1.6 (Feb 2017) +* **New PIFF controller for fixed-wing aircraft** - Introducing new Proportional + Integral + Feed Forward controller for airplanes. It's more suitable for airplanes due to the nature of control they are using. It also puts less stress on servos. +* **RTH sanity checking** - RTH sanity checking feature will notice if distance to home is increasing during RTH and once amount of increase exceeds a certain threshold defined by nav_rth_abort_threshold CLI parameter instead of continuing RTH machine will enter emergency landing, self-level and go down safely. Default threshold is set to 500m which is safe enough for both multirotor machines and airplanes. +* [INAV 1.6 Release notes](https://github.com/iNavFlight/inav/releases/tag/1.6) + +## New on version 1.5 (Dec 2016) +* **OSD support** - Targets with onboard OSD now work properly. +* [INAV 1.5 Release notes](https://github.com/iNavFlight/inav/releases/tag/1.5) diff --git a/versioned_docs/version-8.0.1/advanced/PID-Attenuation-and-scaling.md b/versioned_docs/version-8.0.1/advanced/PID-Attenuation-and-scaling.md new file mode 100644 index 0000000..a14e67b --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/PID-Attenuation-and-scaling.md @@ -0,0 +1,49 @@ +--- +title: PID Attenuation and Scaling +--- + +**TPA** [***Throttle PID Attenuation***] is what allows aircraft that are optimally tuned in a cruise flight range, based on throttle or airspeed, to dynamically adjust PID gains to prevent control oscillations. + +## Multirotors + +**TPA** = percentage of PID attenuation that will occur when the throttle is increased above the TPA breakpoint. + +**TPA Breakpoint** = the throttle micro-second value in the curve at which **TPA** will begin to be applied. Below that point the PIDs are not attenuated at all. + +### How and Why to use this? + +Your PID's should be tuned in a throttle range your copter will comfortably cruise at - _e.g. _1450 - 1650uS_ based on thrust to weight ratio and bank angle_. But as you increase the throttle beyond this, you may start getting oscillations. So increase the **TPA Breakpoint** to a throttle value just below the onset of oscillations. Then slowly increase **TPA** until your oscillations are gone. TPA = 20 is a good starting point. But it may need to be taken higher on more powerful copters. +**Note** - On reverse motor 3D installs, TPA is not recommended. +### Example of multirotor TPA curve + +![](/img/content/tpa_multirotor.png) + +## Airplanes + +For airplanes **TPA** works in a different way - It not only attenuates PID gains at high throttle, but also boosts them at low throttle, allowing better control when flying or gliding at low speeds with minimal or no throttle. **TPA** is expressed as a curve that boosts PIDs below the TPA Breakpoint and attenuates them above the breakpoint. + +**TPA** = amount of attenuation apply to the PIDs. 100% TPA allows PIDs to be scaled by a factor of `[2x boost]` `[0.4 reduction]`. + +**TPA Breakpoint** = the point in the throttle curve at which PIDs are not boosted or attenuated. + +**FW TPA Time Constant** = TPA smoothing and delay time constant to reflect non-instantaneous speed/throttle response of the plane. + +### How to use this? + +Tune your PIDs at the throttle level you intend to fly your airplane (cruise throttle). Set that value as **TPA Breakpoint**. +You will notice that when you fly at lower throttle your airplane handles more loosely. And at higher throttle (up to full throttle) it begins to oscillate. Increase **TPA** amount until these oscillations are gone or minimal. This will also translate to better handling at lower throttle values. + + +The **TPA Time Constant** feature uses an asymmetric filter, that effects both increasing and decreasing throttle/speed. Meaning it delays the addition/removal of attenuation/boost for the selected time period, when the throttle is moved a set value either side of the **TPA Breakpoint**. +Planes with low thrust/weight ratio generally need higher time constant for launch. While planes with a lower drag coefficient, conversely require a higher time constant, during speed wash-off; requiring the constant to be balanced. + + +### Example of airplane TPA curve + +![](/img/content/tpa_airplane.png) + +:::note +The present airplane implementation has limits. +::: + +Until airspeed support is introduced, INAV only uses the throttle for attenuation, which is relatively proportional to airspeed. But it can not attenuate the PIDs at lower throttle values if the airplane is placed into a dive as the airspeed increases. diff --git a/versioned_docs/version-8.0.1/advanced/Ports-Tab.md b/versioned_docs/version-8.0.1/advanced/Ports-Tab.md new file mode 100644 index 0000000..831d491 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Ports-Tab.md @@ -0,0 +1,60 @@ +--- +title: Ports Tab +--- + +# Overview + +This controls the UART and USB serial ports on your flight controller (FC). These serial ports are used to communicate with devices and sensors typically soldered or connected by pins or plugs to your FC. (Other connections such as I2C, gyro, barometer, etc. are configured on the Configuration Tab) + +The serial port settings are presented in a table format with each UART and USB serial port on a separate row. INAV supports a number of protocols and connection speeds. Here are some general rules: +- Do not disable the Data toggle going to the USB VCP port as this will soft brick your ability to connect to your FC over USB. There are two ways to fix this, 1) hope one of your other UARTS have MSP enabled and use a serial adapter to connect to your FC, or 2) press the DFU button and reflash your FC losing your current configuration and start from scratch. +- A serial UART allows two-way communication using a pair of wires. There is also a required ground wire and a wire for power so there is usually four wires going to a device. Some devices only need three total wires since they don't require two-way communication or they use half duplex communication so only one wire is enough. These requirements are usually listed with your device on in the wiring diagram that may have been included in the FC documentation. +- The TX pad on your FC need to be connected to the RX pad on your device, and the RX pad on your FC need to be connected to the TX pad on your device. TX -> RX and RX -> TX and getting this backwards will mean your device will not function. +- Inverted Serial protocols are a special situation that is less of an issue in modern times. But you should consider this if you are having issues. +- Your device requires a specific protocol and port speed and INAV needs to be set accurately configured for your FC to communicate with it. +- The columns represent different types or groups of communication devices and sensors. +- Remember, **only one device can be active per serial port**. Having more than one device on a port is an invalid configuration and INAV running on the FC will reject the configuration and not save the updated settings. Effectively you will lose the changes you just made. Take your time and maybe save your settings often. + +## Ports + +### Identifier +Lists the available ports with their labels. The UART numbers match the UART labels on your FC board. On your FC board, the labels are abbreviated to UART 1 = R1 and T1 or sometimes TX1 and RX1. You might find an inverted UART on your FC and its most times labeled as nT1 or nR1 with stands for -not-. + +### Data +The MSP protocol is the native data protocol of INAV used by only specific devices.\ +**Supported Devices:** INAV Radar, Formation Flight, Bluetooth or other wireless configuration connection, some RemoteID modules\ +**Other Notes:** Its good practice to setup MSP on at least one UART. There is a possibility that you might break off or damage your USB port in a crash or soldering. A UART with MSP can be uses as an alternate connection method. + +### Telemetry +This refers to the values and stats send from your aircraft back to your radio control (RC) transmitter (TX). This is received live by your radio and can be used to set alerts and other functions as the values change. You could have a low voltage warning as your battery gets near empty or get the current GPS coordinates to find a lost aircraft. The RC Receiver (RX) is what typically handles telemetry communication between the FC and your radio TX. Some RXs use a separate UART for telemetry and other do not.\ +**Supported Devices:** See the dropdown list in the configurator\ +**Notes:** The type of RC Receivers that use this port will have a separate wire for telemetry that needs to have a UART dedicated for just telemetry. A UART used for telemetry can only be used for telemetry and nothing else. It can not be the same UART as the RX, it needs its own UART. If your FC has a wiring diagram in the documentation it may help you select an acceptable pad for telemetry from your RX.\ +\ +**Non-Telem Port RXs:** TBS Crossfire / Tracer, ExpressLRS, Ghost, FPORT, Spektrum, and others\ +**Notes:** See the RX section below for how to connection these devices. + + +### RX (Radio Control Receiver) +Flip this toggle for the UART that your radio control receiver is connected to. If your FC has a wiring diagram in the documentation it may help you select an acceptable pad to connect your RX to. Only the port is selected on this tab. The actual protocol used by your RX is selected on the Receiver Tab. But be sure to save your ports settings before switching to the other tab. +**Supported Devices:** All Receivers\ +**Other Notes:** +- Receiver protocols like SBUS only send data and can only be connected to an inverted UART RX pad. These pads are typically marked as SBUS on the FC specifically for this purpose. A pad marked as nR1, etc. would also typically work. +- Receivers protocols that use two-way communication use a pair of wires and can typically be connected to any pair of UART pads (eg TX1 RX1) +- (Uncommon) Receivers protocols that use half-duplex communication use only one wire and can only be connected to a UART TX pad and not an RX pad. Some may also require an inverted UART TX pad. Jump into an online INAV group if you think you may be using one of these receivers for help. + +### Sensors +This includes devices like a GPS and some other devices. See the GPS Tab for troubling shooting help and other GPS settings. You may need to try a lower speed to get a device to work. Start at 9600 baud and go up from there. Many devices easily handle 115200 baud. + +### Peripherals +Mostly used for connecting to video transmitters (VTx). Other Vtx settings are on the OSD Tab. + +**MSP DisplayPort:** The protocol used by most digital video transmission systems such as WTFOS, Walksnail, HD Zero, etc. It enables telemetry data to be shown on the goggle's onscreen display (OSD).\ +**DJI FPV VTX:** (Do not confuse this with WTFOS) The protocol used by DJI for their video transmission system such as the DJI Digital FPV System, Caddx Vista, Runcam Link, and DJI O3. It enables telemetry data to be shown on the goggle's onscreen display (OSD).\ +**TBS SmartAudio:** An analog video transmitter (VTx) protocol that allows you to change transmission channel and power. The pad on the VTx is sometimes labeled SA and is connected with one wire to any UART TX pad.\ +**IRC Tramp:** An analog video transmitter (VTx) protocol that allows you to change transmission channel and power. This protocol is sometimes called Tramp and is connected with one wire to any UART TX pad.\ +**RunCam Device:** Used to change camera settings. + +### Example + +Please note that this port configuration is not directly applicable to your flight controller and aircraft. +![Ports](https://imgur.com/PnqqpAN.png) diff --git a/versioned_docs/version-8.0.1/advanced/Rate-Dynamics.md b/versioned_docs/version-8.0.1/advanced/Rate-Dynamics.md new file mode 100644 index 0000000..d9f2df2 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Rate-Dynamics.md @@ -0,0 +1,105 @@ +--- +title: Rate Dynamics +--- + +## INAV and EmuFlight Rate Dynamics + +> INAV Rate Dynamics is a direct port of EmuFlight Rate dynamics. Exactly the same presets can be applied and used. + +Originally, this article comes from [EmuFlight Wiki page](https://emuflight.github.io/features/Rate-Dynamics.html) + +## What is Rate Dynamics? + +Rate Dynamics is a stick-feel modifier. It allows the pilot to achieve any input control characteristics desired. Rate Dynamics is essentially a PID controller for RC Command. In simplest terminology, it either delays or overshoots RC command. Normal RC Rates still apply. + +## How do Rate Dynamics work? + +Rate Dynamics allows your rates to change dynamically based on how you move your sticks. This results is the ability to choose aggressive racing feel, smoother freestyle feel, or a super super cinematic feel on the sticks. + +Center and End determine how the rate dynamics effect the stick feel during the center or end of the stick. Center will effect your stick feel near the center of the stick and end effects the feel at the end of the stick. + +The three parameters that effect rate dynamics are: +* Sensitivity +* Correction +* Weight + +### Sensitivity + +Sensitivity adds a boost or shrink to your rates and makes your quad feel more “sensitive”, hence the name. This boost is seen as a percentage. The default of `100` does nothing while a value of 120 boosts your rates by 1.2 and a value of 80 shrinks your rates by a value of .8! + +### Correction + +Correction is a value that will over time correct for the boost or shrink in rates caused by your sensitivity. The higher the correction the quicker it corrects for the boost or shrink in rates. + +### Weight + +Weight apposes all change to the setpoint which makes the sticks feel as though you have added some weight to them, hence the name. This number is seen as a percentage. A value of 0 does nothing while a value of 50 apposes 50% of the change in your rates. This smooths out your sticks and if used to a very large values will add delay, but can make your sticks look very cinematic. + +While weight does add some “latency” to the sticks everyone that has tested this feature uses at least some weight as it does quite a good job of smoothing things out. Even race pilots will use weight, just counteracted with extra sensitivity to counteract the “latency” that it adds leading to a sharp, yet smooth, fast reacting quad that handles well for racing. + +## Presets + +### Default + +``` +set rate_dynamics_center_sensitivity = 100 +set rate_dynamics_center_correction = 10 +set rate_dynamics_center_weight = 0 +set rate_dynamics_end_sensitivity = 100 +set rate_dynamics_end_correction = 10 +set rate_dynamics_end_weight = 0 +``` + +### Cinamatic + +``` +set rate_dynamics_center_sensitivity = 80 +set rate_dynamics_center_correction = 20 +set rate_dynamics_center_weight = 60 +set rate_dynamics_end_sensitivity = 90 +set rate_dynamics_end_correction = 10 +set rate_dynamics_end_weight = 40 +``` + +### Freestyle + +``` +set rate_dynamics_center_sensitivity = 80 +set rate_dynamics_center_correction = 10 +set rate_dynamics_center_weight = 35 +set rate_dynamics_end_sensitivity = 130 +set rate_dynamics_end_correction = 10 +set rate_dynamics_end_weight = 35 +``` + +### Freestyle Less bounceback + +``` +set rate_dynamics_center_sensitivity = 80 +set rate_dynamics_center_correction = 10 +set rate_dynamics_center_weight = 35 +set rate_dynamics_end_sensitivity = 130 +set rate_dynamics_end_correction = 30 +set rate_dynamics_end_weight = 35 +``` + +### Racing + +``` +set rate_dynamics_center_sensitivity = 130 +set rate_dynamics_center_correction = 35 +set rate_dynamics_center_weight = 30 +set rate_dynamics_end_sensitivity = 115 +set rate_dynamics_end_correction = 20 +set rate_dynamics_end_weight = 10 +``` + +## Additional Tips + +@fichek Tip: one thing I instantly noticed is the bounceback when there is over 100% sensitivity on stick end and low weight and/or correction - so the recommended freestyle preset is a bit too springy imo… + +@nerdCopter Tip: i only set rate_center_weight = 30 to smooth my center-stick which looks less jerky in HD. + +## Tools + +[@fichek’s Rate Simulator](https://stoot.tech/emu-rate-dynamics.html) diff --git a/versioned_docs/version-8.0.1/advanced/Receiver-Tab.md b/versioned_docs/version-8.0.1/advanced/Receiver-Tab.md new file mode 100644 index 0000000..08dc060 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Receiver-Tab.md @@ -0,0 +1,74 @@ +--- +title: Receiver Tab +--- + +# Introduction +This guide assumes you have already [connected your Rx to a Serial UART Port on your flight controller and have set the correct port on the ports tab](https://github.com/iNavFlight/inav/wiki/Ports-Tab). The RC Receiver (Rx) in your aircraft conveys the radio control (RC) commands from your RC Transmitter and sends them to your flight controller over a wire connection using a Serial UART Port and using a particular communication protocol. This tab is where you set the protocol of your receiver and make sure it is communicating with INAV. + +### Binding +Be sure to bind your Rx to your RC transmitter. This is a huge troubleshooting step that can save hours of frustration. Check and double check this. You can follow the binding process outlined in the manual for your radio equipment. It may be a blinking light pattern or an indicator on the radio, but you need some way to confirm it is bound every time you turn your radio on. If you have a Spektrum serial receiver, you might have to [set the Spektrum bind in the cli](https://github.com/iNavFlight/inav/blob/master/docs/Spektrum%20bind.md). Without a bind, you receiver may appear dead even though it is connected fine and all the INAV settings are correct. + +## Receiver Mode Section +This is where you tell the FC what type of Rx you have and what protocol it speaks. + +### Receiver Type +This is the first step to get INAV to talk to your receiver. The available options are: +- **Serial Receivers** - your Rx is 99% likely to be a serial receiver.\ +Examples: TBS Crossfire / Tracer, ExpressLRS, Ghost, Radiomaster, FrSky, Spektrum, FlySky, Futaba, etc. +- _MSP RX (very rare)_ +- _SIM SITL (for computer simulator use only)_ +- _PPM Receivers (obsolete in INAV 3.x and below)_ + +*Warning: Do not use a Soft Serial Port to connect to your receiver. Soft Serial Ports often drop data which can cause unintentional failsafes and other unexpected behaviors.* + +### Serial Receiver Provider *(Receiver Protocol)* +INAV can't talk to your receiver until the serial protocol is set. Select the Serial Receiver Provider (protocol) applicable to your receiver and press **Save and Reboot**. Once INAV Configurator reconnects, a working connection will be evidenced by moving color bars in the Channel Map. They should move when you move you sticks. These are the available protocols. +- **CRSF:** TBS Crossfire / Tracer, ExpressLRS (all frequencies) | ?? Channel Limit +- **FBUS:** +- **FPORT2:** FrSky | 16 channels | RC Control and Telemetry over one-wire connected to a TX UART +- **GHST:** +- **IBUS:** FlySky | 10 channels +- **JETIEXBUS:** +- **MAVLINK:** +- **SBUS:** FrSky, Futaba, ExpressLRS (all frequencies) | 16 channels | See SBUS labeled pad on your FC (an inverted RX UART) +- **SBUS_FAST:** DJI Digital FPV System +- **SPEK1024:** Spektrum | Spektrum DSM +- **SPEK2048:** Spektrum | Spektrum DSM2 / DSMX +- **SRXL2:** Spektrum | newer Spektrum protocol +- **SUMD:** Graupner | 16 channels + +*Even if a protocol supports a large number of channels, the radio or receiver might be limited in the number of channels it utilizes. This can be frustrating.* + +*Some receivers support more than one protocol or different protocol options. This is not common so don't expect it. One example is ExpressLRS where the Rx supports CRSF, inverted CRSF, SBUS, inverted SBUS, etc. Some old FrSKY receivers can be changed by flashing a different firmware while the ACCESS Rx can be either SBUS and FPort in the transmitter model setup page.* + +*SRXL2 provides both RC control and telemetry over a two-wire connection to UART but requires [special cli settings](https://github.com/iNavFlight/inav/blob/master/docs/Rx.md#configuration-1).* + +*IBUS RX and IBUS telemetry can be configured to both be on the same Serial UART - see [Telemetry.md](https://github.com/iNavFlight/inav/blob/master/docs/Telemetry.md)* + +## RC Smoothing Section +This is used to filter out jitters in the RC values coming from the sticks on your transmitter. You should leave **RC Smoothing ON** in almost all cases. The other settings in this section can be left at their default values and should be fine for almost all cases. A higher value for *Manual LPF Hz* or *auto smoothing factor* will add delay to you controls due to the longer filter calculations. Adjust these values only if you understand what you are doing. + +## Channel Map Section +The first four channels of almost all radios are dedicated to the sticks. INAV needs to know the channel order of your sticks so it can understand your inputs. This is done by mapping each stick to their matching color bar in INAV in the **Channel Map** section. The four letters **TAER** represent this mapping; **A**ilerons (Roll), **E**levator (Pitch), **T**hrottle, and **R**udder (Yaw). The drop down box has two presets and you will see one of them will have **AETR** while the other has **TAER**. Almost 99% sure one these will be the correct setting for your sticks. If you needed to, you could manually type in any arrangement of these four letters into that box for your own custom channel mapping. After selecting a channel order, press **Save and Reboot**. Once INAV Configurator reconnects, you will see the changes take effect and you can then confirm that each of the four sticks movements match the color bar labeled for that stick input (labels Roll [A], Pitch [E], Yaw [R], Throttle [T]). + +Now that the receiver is talking to INAV, this is a great time to make adjustments to your radio. INAV expects the trims on your transmitter to be reset to the middle on all four sticks. You can double check this by looking at the Channel Map where the values are shown on the color bars. They should be very near 1500 (the middle). Never, never use trims on your radio when using INAV. INAV has its own trim system. This is also a good time to rerun a calibration on your radio's gimbles. Find a video on YouTube specific to your radio model. + +### RSSI Channel *(Received Signal Strength Indicator)*\ +Some older receivers use a radio channel to communicate the health of the radio signal to INAV. You can visually see this channel as the color bar will be jittering high and low in the Channel Map especially when you move your transmitter around. Most times it's channel 16. Modern receivers with telemetry enabled don't need this set at all and this setting should be *Disabled* in these cases. + +### Advanced: RxRange +INAV expects your transmitter/receiver to send RC values (called end-points) with a range of 1000-2000. But some transmitters/receivers have a non-standard end-points (i.e. 1070-1930 as some Spektrum receivers) which can be a problem in INAV. To adjust for this, go into your transmitter settings and try to set the output end-points as close as you can to 1000-2000. If you still can't get end-points to 1000-2000 then you can go to the cli and use the command rxrange to map your non-standard range to the standard 1000-2000 in INAV. +1. If you used rxrange in the past, reset it by entering the following command into the CLI: +``` +rxrange reset +save +``` +2. Reconnect INAV Configurator, go to the `Receiver` tab, move one stick at a time on your transmitter to the min and max values (first 4 channels) and write these values down. *Always take care to avoid accidentally arming your craft*. Go to CLI and set the min and max values with the following cli command `rxrange ` and note that Channel 1 is 0 in the cli, and 2 is 1, and 3 is 2, and 4 is 3. Here is an example. +``` +rxrange 0 1070 1930 +rxrange 1 1070 1930 +rxrange 2 1070 1930 +rxrange 3 1070 1930 +save +``` +You can also use rxrange to reverse the direction of an input channel, e.g. `rxrange 0 2000 1000`. But be sure to know what you are doing whenever usinf the cli. diff --git a/versioned_docs/version-8.0.1/advanced/Request-form-new-PRESET.md b/versioned_docs/version-8.0.1/advanced/Request-form-new-PRESET.md new file mode 100644 index 0000000..eb16737 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Request-form-new-PRESET.md @@ -0,0 +1,8 @@ +--- +title: Request Form New PRESET +--- + + +https://github.com/iNavFlight/inav-configurator/edit/master/tabs/profiles.js + +https://github.com/iNavFlight/inav-configurator/blob/master/js/fc.js#L468 diff --git a/versioned_docs/version-8.0.1/advanced/Setup-Tab.md b/versioned_docs/version-8.0.1/advanced/Setup-Tab.md new file mode 100644 index 0000000..6dd0b48 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Setup-Tab.md @@ -0,0 +1,28 @@ +--- +title: Setup Tab +--- + +# Introduction +We're assuming you've installed the configurator and have connected to your flight controller (FC). The Setup Tab is the first screen you see once a connection is made. This tab has three main sections: +- Reset Settings +- Live 3D Graphic of your Aircraft +- Pre-Arming Checks +- Info (power stats & Rx RSSI) +- GPS (status) + +### Reset Settings +Pressing this button will reset the flight controller (FC) to default values. This is useful if you truly want to restart from scratch such as if you installed a FC into a different aircraft. + +### Live 3D Graphic of your Aircraft +As you move the flight controller (FC) the gyro and accelerometer values are being read by the FC where it applies the board orientation settings and then streams the intended aircraft orientation over to your computer where the Live 3D Graphic shows what it believes the movement of your aircraft should be. If your other settings are correct, then this Graphic should match the movements of your aircraft. If the movements do not match, then calibration or board alignment need to be adjusted. + +### Pre-Arming Checks +The FC performs several checks before it will allow INAV to be Armed. This section shows the status of each pre-arm check. The all need to be green before the FC will arm. This is a valuable tool to help track down an issue keeping your FC from arming. + +If **Navigation is safe** is the only red X, then GPS likely does not have a locations fix yet. It could also be that the GPS only receives power when the battery is plugged in. + +### Info +This list of power values and RSSI is here for reference and is not critical to setting up your FC. + +### GPS +This lets you know the status of the GPS lock - helpful when tracking down a red X on the **Navigation is safe** Pre-Arming Checks. diff --git a/versioned_docs/version-8.0.1/advanced/Supported-boards.md b/versioned_docs/version-8.0.1/advanced/Supported-boards.md new file mode 100644 index 0000000..b37f935 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Supported-boards.md @@ -0,0 +1,37 @@ +--- +title: Supported Boards +--- + +### Recommended boards + +These boards are well tested with INAV and are known to be of good quality and reliability. + +| Board name | CPU Family | Target name(s) | GPS | Compass | Barometer | Telemetry | RX | Blackbox | +|---------------------------|:----------:|:-------------------------:|:----:|:-------:|:--------------:|:---------:|:------------------------------:|:--------------------:| +| [Matek H743-SLIM](https://inavflight.com/shop/s/bg/1755036) | F7 | MATEKH743 | All | All | All | All | All | SERIAL, SD | +| [Matek F765-WSE](https://inavflight.com/shop/s/bg/1890404) | F7 | MATEKF765SE | All | All | All | All | All | SERIAL, SD | +| [Matek F722-miniSE](https://inavflight.com/shop/s/bg/1707404) | F4 | MATEKF722MINI | All | All | All | All | All | SERIAL, SD | +| [Kakute F7](https://inavflight.com/shop/s/bg/1315722) | F7 | KAKUTEF7 | All | All | All | All | All | SERIAL, SD | +| [Matek F405-WING](https://inavflight.com/shop/s/bg/1292190) | F4 | MATEKF405SE | All | All | All | All | All | SERIAL, SD | +| [Matek F722-SE](https://inavflight.com/shop/p/MATEKF722SE) | F7 | MATEKF722SE | All | All | All | All | All | SERIAL, SD | + +It's possible to find more supported and tested boards [here](../quickstart/Welcome-to-INAV,-useful-links-and-products.md) +### Boards documentation + +See the [docs](https://github.com/iNavFlight/inav/tree/master/docs) folder for additional information regards to many targets in INAV, to example help in finding pinout and features. _Feel free to help improve the docs._ + +This [wiki article](./Boards-Targets-and-PWM-allocations.md) lists all boards supported by INAV, together with their supported PWM allocation (motors / servos). + +This [wiki article](./Target-and-Sensor-support.md) lists all boards supported by INAV, together with their supported sensors. + +### Boards based on F405/F745/F765 CPUs + +These boards are powerful and, in general, offer everything INAV is capable of. Limitations are quite rare and are usually caused by hardware design issues. + +### Boards based on F411/F722 CPUs + +These boards are capable of running most of the features INAV offers. However, some exotic features might be missing. For example, Virtual Pitot, SUMD, SUMH, PCA9685 features are not available for F411/F722 boards. + +### Boards based on F1/F3 CPUs + +Boards based on STM32F1 and STM32F3 CPUs are no longer supported by the latest INAV versions diff --git a/versioned_docs/version-8.0.1/advanced/Target-and-Sensor-support.md b/versioned_docs/version-8.0.1/advanced/Target-and-Sensor-support.md new file mode 100644 index 0000000..1894415 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Target-and-Sensor-support.md @@ -0,0 +1,134 @@ +--- +title: Target and Sensor Support +--- + +# Sensor Support + +The following table was machine generated by [find_sensors.rb](assets/find_sensors.rb) script on 2024-11-18 against INAV 8.0.0-RC1, E&OE + +Targets suffixed by \* indicates that there are (probably) multiple hardware variations covered by one or more firmware images (or just a strange target.h). Additional, related targets are listed in parentheses. The user may check the hardware documentation (or `target.h` / `CMakeLists.txt`) to determine the actual supported sensors. + +| Target | IMU | Baro | Mag | Rangefinder | +| ------ | ---- | ---- | ---- | ----------- | +| AIRBOTF4 | MPU6000 MPU6500 | BMP085 BMP280 MS5611 | ALL | | +| ANYFCF7 \* (ANYFCF7_EXTERNAL_BARO) | MPU6000 | BMP085 BMP280 MS5611 | ALL | | +| AOCODARCF405AIO | BMI270 MPU6000 MPU6500 | BMP280 DPS310 MS5611 SPL06 | ALL | MSP | +| AOCODARCF4V2 | MPU6000 MPU6500 | BMP280 DPS310 MS5611 | ALL | | +| AOCODARCF4V3 \* (AOCODARCF4V3) | ICM42605 MPU6000 MPU6500 | BMP280 DPS310 MS5611 SPL06 | ALL | | +| AOCODARCF722AIO | ICM42605 MPU6000 MPU6500 | BMP280 DPS310 MS5611 SPL06 | ALL | MSP | +| AOCODARCF7DUAL | BMI270 MPU6000 | BMP280 DPS310 MS5607 MS5611 | ALL | | +| AOCODARCF7MINI \* (AOCODARCF7MINI_V2) | MPU6000 MPU6500 | BMP280 DPS310 MS5611 | ALL | | +| AOCODARCH7DUAL | BMI270 MPU6000 | BMP280 DPS310 MS5611 SPL06 | ALL | | +| ATOMRCF405NAVI | BMI270 | BMP085 BMP280 DPS310 MS5611 SPL06 | ALL | MSP | +| ATOMRCF405NAVI_DELUX | ICM42605 | ALL | ALL | MSP | +| AXISFLYINGF7PRO | BMI270 ICM42605 MPU6000 | BMP280 DPS310 SPL06 | ALL | | +| BEEROTORF4 | MPU6500 | BMP280 | ALL | | +| BETAFLIGHTF4 | MPU6000 | BMP085 BMP280 MS5611 | ALL | | +| BETAFPVF722 | BMI270 ICM42605 MPU6000 | BMP085 BMP280 DPS310 MS5611 SPL06 | ALL | | +| DAKEFPVF405 | BMI270 ICM42605 MPU6000 MPU6500 | BMP280 DPS310 | ALL | MSP | +| DAKEFPVF722 | BMI270 ICM42605 MPU6000 MPU6500 | BMP280 | ALL | MSP | +| DALRCF405 | MPU6000 MPU6500 | BMP085 BMP280 MS5611 | ALL | | +| DALRCF722DUAL | MPU6000 | ALL | ALL | | +| FF_F35_LIGHTNING \* (WINGFC) | MPU9250 | BMP280 | MPU9250 | | +| FIREWORKSV2 \* (OMNIBUSF4V6) | MPU6000 MPU6500 | BMP280 | ALL | | +| FLASHHOBBYF405 | BMI270 ICM42605 MPU6000 | ALL | ALL | | +| FLASHHOBBYF722 | BMI270 ICM42605 MPU6000 | ALL | ALL | | +| FLYCOLORF7MINI | MPU6500 | BMP280 DPS310 MS5611 | ALL | | +| FLYCOLORF7V2 | MPU6500 | ALL | ALL | | +| FLYWOOF405PRO \* (FLYWOOF405HD) | BMI270 ICM42605 MPU6000 | BMP085 BMP280 DPS310 MS5611 SPL06 | ALL | HCSR04_I2C | +| FLYWOOF722PRO | BMI270 ICM42605 MPU6000 | BMP280 DPS310 MS5611 SPL06 | ALL | | +| FLYWOOF745 \* (FLYWOOF745NANO) | BMI270 ICM42605 MPU6000 | BMP085 BMP280 DPS310 MS5611 SPL06 | ALL | | +| FLYWOOF7DUAL | MPU6000 MPU6500 | BMP280 MS5611 | ALL | | +| FLYWOOH743PRO | ICM42605 | BMP280 DPS310 MS5611 SPL06 | ALL RM3100 | | +| FOXEERF405 | MPU6000 MPU6500 | BMP085 BMP280 MS5611 | ALL | | +| FOXEERF722DUAL \* (FOXEERF722V2) | MPU6000 MPU6500 | BMP280 MS5611 | ALL | | +| FOXEERF722V4 \* (FOXEERF722V4_X8) | ICM42605 MPU6000 MPU6500 | BMP280 DPS310 MS5611 SPL06 | ALL | | +| FOXEERF745AIO \* (FOXEERF745AIO_V3) | ICM42605 MPU6000 | BMP280 MS5611 | ALL | | +| FOXEERH743 | MPU6000 | BMP280 DPS310 MS5611 SPL06 | ALL | | +| FRSKYPILOT \* (FRSKYPILOT_LED) | MPU6000 MPU6500 | SPL06 | ALL | | +| FURYF4OSD \* (MAMBAF405) | ICM42605 MPU6000 MPU6500 | ALL | ALL | MSP | +| GEPRCF405 | BMI270 ICM42605 MPU6000 | BMP280 DPS310 MS5611 | ALL | | +| GEPRCF405_BT_HD | BMI270 ICM42605 MPU6000 | BMP280 DPS310 MS5611 | ALL | | +| GEPRCF722 | BMI270 ICM42605 MPU6000 | BMP280 DPS310 MS5611 | ALL | | +| GEPRCF722_BT_HD | BMI270 ICM42605 MPU6000 | BMP280 DPS310 MS5611 | ALL | | +| GEPRCF745_BT_HD | ICM42605 MPU6000 | BMP280 DPS310 MS5611 | ALL | | +| GEPRC_F722_AIO \* (GEPRC_F722_AIO_UART3) | BMI270 ICM42605 MPU6000 | BMP280 DPS310 MS5611 | ALL | | +| HAKRCF405D | BMI270 ICM42605 MPU6000 | BMP280 DPS310 SPL06 | ALL | MSP | +| HAKRCF405V2 | BMI270 ICM42605 MPU6000 | BMP280 DPS310 SPL06 | ALL | MSP | +| HAKRCF722V2 | BMI270 ICM42605 MPU6000 | BMP280 DPS310 SPL06 | ALL | | +| HAKRCKD722 | BMI270 ICM42605 MPU6000 | BMP280 DPS310 MS5611 SPL06 | ALL | MSP | +| HGLRCF722 | BMI270 MPU6000 | BMP280 DPS310 MS5611 SPI_BMP280 | ALL | | +| IFLIGHTF7_TWING | MPU6500 | ALL | ALL | | +| IFLIGHT_2RAW_H743 | ICM42605 | ALL | ALL | | +| IFLIGHT_BLITZ_ATF435 | BMI270 ICM42605 | ALL | ALL | | +| IFLIGHT_BLITZ_F722 \* | BMI270 ICM42605 MPU6000 | BMP280 DPS310 MS5611 | ALL | | +| IFLIGHT_BLITZ_F722_X1 \* (IFLIGHT_BLITZ_F722_X1_OSD) | BMI270 ICM42605 | ALL | ALL | | +| IFLIGHT_BLITZ_F7_PRO | BMI270 MPU6000 | BMP280 DPS310 | ALL | | +| IFLIGHT_BLITZ_H7_PRO \* (IFLIGHT_BLITZ_H7_WING) | ICM42605 | ALL | ALL | | +| IFLIGHT_JBF7PRO | BMI270 MPU6000 | BMP280 DPS310 | ALL | | +| JHEMCUF405 | BMI270 ICM42605 MPU6000 | BMP085 BMP280 DPS310 MS5611 SPL06 | ALL | HCSR04_I2C | +| JHEMCUF405WING | ICM42605 | ALL | ALL | | +| JHEMCUF722 | BMI270 ICM42605 MPU6000 | BMP280 DPS310 MS5611 SPL06 | ALL | MSP | +| JHEMCUF745 | ICM42605 MPU6000 | ALL | ALL | | +| JHEMCUH743HD | BMI270 ICM42605 MPU6000 | ALL | ALL | | +| KAKUTEF4 \* (KAKUTEF4V2 KAKUTEF4V23 KAKUTEF4V24) | ICM42605 MPU6000 MPU6500 | | | | +| KAKUTEF4WING | ICM42605 | BMP280 DPS310 SPL06 | ALL | | +| KAKUTEF7 \* (KAKUTEF7HDV KAKUTEF7MINI) | ICM20689 MPU6000 | BMP280 DPS310 MS5611 SPL06 | ALL | | +| KAKUTEF7MINIV3 | ICM42605 MPU6000 | BMP280 DPS310 MS5611 SPL06 | ALL | | +| KAKUTEH7 \* (KAKUTEH7V2 KAKUTEH7MINI) | BMI270 ICM42605 MPU6000 | BMP280 DPS310 MS5611 SPL06 | ALL | | +| KAKUTEH7WING | BMI088 ICM42605 | BMP280 DPS310 MS5611 SPL06 | ALL | | +| MAMBAF405US \* (MAMBAF405US_I2C) | MPU6000 MPU6500 | BMP280 DPS310 MS5611 | ALL | | +| MAMBAF405_2022A \* (MAMBAF405_2022B) | BMI270 ICM42605 MPU6000 MPU6500 | BMP085 BMP280 DPS310 MS5611 SPL06 | ALL | | +| MAMBAF722 \* (MAMBAF722_I2C) | MPU6000 MPU6500 | BMP280 MS5611 | ALL | | +| MAMBAF722_2022A \* (MAMBAF722_2022B) | BMI270 ICM42605 MPU6000 MPU6500 | BMP085 BMP280 DPS310 MS5611 SPL06 | ALL | | +| MAMBAF722_WING | ICM42605 | BMP085 BMP280 DPS310 MS5611 SPL06 | ALL | | +| MAMBAF722_X8 | MPU6000 | BMP280 MS5611 | ALL | | +| MAMBAH743 \* (MAMBAH743_2022B MAMBAH743_2022B_GYRO2) | BMI270 ICM42605 MPU6000 | BMP280 DPS310 MS5611 SPL06 | ALL | | +| MATEKF405 \* (MATEKF405OSD) | MPU6000 MPU6500 | BMP085 BMP280 DPS310 MS5611 SPL06 | ALL | MSP | +| MATEKF405CAN | MPU6500 | BMP280 DPS310 MS5611 SPL06 | ALL RM3100 | | +| MATEKF405SE \* (MATEKF405SE_PINIO) | ICM42605 MPU6000 | BMP085 BMP280 DPS310 MS5611 SPL06 | ALL | US42 | +| MATEKF405TE \* (MATEKF405TE_SD) | BMI270 ICM42605 | BMP280 DPS310 MS5611 SPL06 | ALL | | +| MATEKF722 | MPU6500 | BMP085 BMP280 DPS310 MS5611 SPL06 | ALL | | +| MATEKF722PX \* (MATEKF722PX_PINIO MATEKF722WPX) | MPU6000 | BMP280 DPS310 MS5611 SPL06 | ALL | | +| MATEKF722SE \* (MATEKF722MINI) | MPU6000 MPU6500 | BMP280 DPS310 MS5611 SPL06 | ALL | | +| MATEKF765 \* (MATEKF765SE) | ICM42605 MPU6000 MPU6500 | BMP280 DPS310 MS5611 SPL06 | ALL | | +| MATEKH743 \* (MATEKH743HD) | ICM42605 MPU6000 MPU6500 | BMP280 DPS310 MS5611 SPL06 | ALL RM3100 | | +| MICOAIR405MINI | BMI270 | DPS310 | ALL | MSP | +| MICOAIR405V2 | BMI088 | SPL06 | ALL | MSP | +| MICOAIR743 \* (MICOAIR743_EXTMAG) | BMI088 | DPS310 | ALL | MSP | +| NEUTRONRCF435MINI | BMI270 ICM42605 LSM6DXX MPU6500 | BMP280 DPS310 | ALL | | +| NEUTRONRCF435SE | BMI270 ICM42605 LSM6DXX MPU6500 | BMP280 DPS310 | ALL | | +| NEUTRONRCF435WING | BMI270 ICM42605 LSM6DXX MPU6500 | BMP280 DPS310 | ALL | | +| NEUTRONRCH7BT | BMI270 | BMP280 DPS310 MS5611 SPL06 | ALL | | +| OMNIBUSF4 \* (DYSF4PROV2 OMNIBUSF4 OMNIBUSF4PRO OMNIBUSF4V3_S5_S6_2SS OMNIBUSF4V3_S5S6_SS OMNIBUSF4V3_S6_SS OMNIBUSF4V3) | BMI270 MPU6000 MPU6500 | BMP085 BMP280 MS5611 | ALL | | +| OMNIBUSF7 \* (OMNIBUSF7V2) | MPU6000 MPU6500 | BMP280 | ALL | | +| OMNIBUSF7NXT | MPU6000 MPU6500 | LPS25H | ALL | | +| PIXRACER | MPU6500 MPU9250 | MS5611 | ALL | | +| PRINCIPIOTF7 | ICM42605 | DPS310 | ALL | | +| REVO | MPU6000 | MS5611 | ALL | | +| RUSH_BLADE_F7 \* (RUSH_BLADE_F7_HD) | ICM42605 MPU6000 | BMP280 DPS310 MS5611 SPL06 | ALL | MSP | +| SAGEATF4 | BMI088 BMI270 ICM42605 MPU6000 MPU6500 MPU9250 | BMP280 DPS310 | ALL | | +| SDMODELH7V1 | BMI270 MPU6000 | BMP280 DPS310 MS5611 SPL06 | ALL | | +| SITL | FAKE | FAKE | FAKE | FAKE | +| SKYSTARSF405HD \* (SKYSTARSF405HD2) | BMI270 ICM42605 MPU6000 | BMP280 | ALL | MSP | +| SKYSTARSF722HD \* (SKYSTARSF722HDPRO SKYSTARSF722MINIHD) | BMI270 ICM42605 MPU6000 | BMP280 SPL06 | ALL | MSP | +| SKYSTARSH743HD | BMI270 | BMP280 DPS310 MS5611 SPL06 | ALL | | +| SPEDIXF405 | BMI270 ICM42605 MPU6000 | ALL | ALL | | +| SPEDIXF722 | BMI270 ICM42605 MPU6000 | DPS310 | ALL | | +| SPEEDYBEEF405MINI | ICM42605 | BMP280 DPS310 MS5611 | ALL | | +| SPEEDYBEEF405V3 | BMI270 | BMP280 DPS310 MS5611 SPL06 | ALL | MSP | +| SPEEDYBEEF405V4 | ICM42605 | BMP085 BMP280 DPS310 MS5611 SPL06 | ALL | | +| SPEEDYBEEF405WING | ICM42605 | BMP085 BMP280 DPS310 MS5611 SPL06 | ALL | | +| SPEEDYBEEF7 | ICM20689 | BMP280 | ALL | | +| SPEEDYBEEF745AIO | BMI270 MPU6000 | BMP280 DPS310 MS5611 SPL06 | ALL | MSP | +| SPEEDYBEEF7MINI \* (SPEEDYBEEF7MINIV2) | BMI270 MPU6000 | BMP280 DPS310 MS5611 | ALL | | +| SPEEDYBEEF7V2 | MPU6000 | BMP280 DPS310 | ALL | MSP | +| SPEEDYBEEF7V3 | BMI270 MPU6000 | BMP280 DPS310 MS5611 SPL06 | ALL | MSP | +| SPRACINGF4EVO | MPU6500 MPU9250 | BMP280 MS5611 | ALL | | +| TAKERF722SE | ICM42605 MPU6000 | BMP280 DPS310 MS5611 | ALL | | +| TBS_LUCID_FC | ICM42605 MPU6000 | BMP388 | ALL | | +| TBS_LUCID_H7 | ICM42605 MPU6000 | DPS310 | ALL | | +| TMOTORF7V2 | ICM42605 MPU6000 | ALL | ALL | | +| TMOTORVELOXF7V2 | ICM42605 | ALL | ALL | | +| TUNERCF405 | BMI270 | BMP280 DPS310 | ALL | | +| ZEEZF7 \* (ZEEZF7V2 ZEEZF7V3) | BMI270 ICM42605 MPU6000 | BMP280 BMP388 DPS310 | ALL | MSP | diff --git a/versioned_docs/version-8.0.1/advanced/Tune-INAV-PIFF-controller-for-fixedwing.md b/versioned_docs/version-8.0.1/advanced/Tune-INAV-PIFF-controller-for-fixedwing.md new file mode 100644 index 0000000..254b8c6 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Tune-INAV-PIFF-controller-for-fixedwing.md @@ -0,0 +1,46 @@ +--- +title: Tune iNav PIFF Controller for Fixedwing +--- + +### Description of PIFF controller: + +The FF-gain should do most of the work steering the airplane, leaving only P and I controller to fight turbulence and drift. + +**1: Figure out the maximum rates your airplane can do for each axis (pitch, roll, and yaw)** + +* Fly in `MANUAL` mode (called `PASSTHROUGH` mode up to version 1.8.1) with the `manual_roll_rate`, `manual_pitch_rate` and `manual_yaw_rate` settings set to 100%. Have some way of recording the flight: blackbox, DVR or both. Do hard rolls, hard loops and one 360° yaw turn. Use full stick deflection on all these maneuvers. + * To calculate an axis' _(approximate)_ rate from a DVR recording you'll need to count the number of frames it took for your aircraft to do a complete maneuver (roll/flip/yaw turn), determine the average FPS of the recording, and then use this formula: `360 / (number_of_frames / FPS)`. You can take multiples samples and average them for a better accuracy. +You can also use [a Python script](https://gist.github.com/nmaggioni/e42d3f4eb242808df751b13413ebf22c) to help automating the process. + +* Note down the maximum rates. Typical values are 360°/s on roll, 100°/s on pitch and 60°/s yaw. +Enter these values as your rates in configurator. + +**2: Zero out P and I gain on Roll, Pitch and Yaw controller and set `tpa_rate` to 0. Increase FF-gain (D column in the PID tuning tab) until you get 90% of full servo throw when having sticks at full throw in `ACRO` mode (no flight mode enabled) compared to manual mode.** + +* This is so the FF-gain does most of the work turning the airplane, but leaving some for the P and I gain to work with. +* For this step it is convenient to have the two modes `MANUAL` (called `PASSTHROUGH` mode up to version 1.8.1) and `ACRO` available on a switch to be able to switch easily between the two to compare the throws. +* The 90% deflection value can also be calculated by dividing 13950 by the maximum rate for the axis, e.g. 360deg/s maximum roll 13950/360=38.75 FF. For 80% deflection, divide 12400 by rate. + +Now set a little P and I gain as a starting point, for example: 10 P-gain and 15 I-gain to Roll, Pitch and Yaw axis. + +**3: Go out and fly in acro mode.** + +* If airplane drifts to one side or up and down add I-gain to the axis it drifts in. +* If you want more stabilization against wind try and add more P-gain. + +**4: Want to calm your airplane down? Now is the time to reduce rates to fit your needs.** + +* Note: It's normal to get reduced servo throw when reducing rates at this point, if you got full servo throw at this stages you would overshoot the target deg/s you wanted. + +**5: Tune Angle / Horizon mode** + +* Enter `Angle` mode. If your aircraft doesn't fly straight and level your FC is probably not mounted flat relatively to the aircraft's natural attitude when flying (most planes and wings actually fly with a few degrees of nose-up attitude to maintain their altitude). You'll need to trim your board's alignment (`align_board_roll`, `align_board_pitch`, `align_board_yaw`) accordingly. After each adjustment fly again and check if the behavior has improved. +* If you are unhappy with the value of maximum bank/pitch angles, you can adjust them via the `max_angle_inclination_rll` and `max_angle_inclination_pit`. Be aware that if you want the same amount of maximum angle for poshold/althold you will also need to increase their values (`nav_fw_bank_angle`, `nav_fw_climb_angle`, `nav_fw_dive_angle`). +* If you are unhappy with the strength of the Angle mode, for example if it levels out too quickly/hard, adjust P-gain of the level controller via `fw_p_level`. + +### Other tuning tips: + +* Setup your TPA correctly. [PID Attenuation and scaling](./PID-Attenuation-and-scaling.md) + +* If your plane over corrects when RTH is engaged (symptom is a wave-like flight path), try increasing `nav_fw_pos_xy_p` and/or increasing `nav_fw_pos_xy_i`. Good values to start: `set nav_fw_pos_xy_p = 50`, `set nav_fw_pos_xy_i = 5`. You can also try lowering `nav_fw_pos_xy_d`. +When P & I are too high the symptom is fast wandering left-right by a small amount (less than 5 deg). In that case you should try to decrease ``nav_fw_pos_xy_p`` and/or ``nav_fw_pos_xy_i`` or increase ``nav_fw_pos_xy_d``. The behaviour of the plane is very different with or w/o wind, so it is necessary to test and tweak parameters in both scenarios. diff --git a/versioned_docs/version-8.0.1/advanced/UAV-Interconnect-Bus.md b/versioned_docs/version-8.0.1/advanced/UAV-Interconnect-Bus.md new file mode 100644 index 0000000..330b3e0 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/UAV-Interconnect-Bus.md @@ -0,0 +1,201 @@ +--- +title: UAV Interconnect Bus +--- + +INAV implements universal interconnect bus for various types of sensors and executable devices. + +It's compatible with all existing controllers that have a spare UART and designed to be able to connect multiple sensors to one shared bus. Devices on the bus can be daisy-chained together for neater wiring. + +## Physical layer +### Option 1: Differential signalling + +This option is taken from automotive applications and uses CAN bus transceivers (MCP2551 or SN65HVD232) to convert between twisted pair and UART. A special converter is required between each device and a bus. While this option is more expensive it's also very reliable. + +Advantages: high reliability, long wires possible. + +### Option 2: Shared wire + +This option is designed for tight spaces or very cost-sensitive solutions. Wiring should follow Siemens Application Node AP2921: On-Board Communication via CAN without Transceiver (https://www.mikrocontroller.net/attachment/28831/siemens_AP2921.pdf) + +Advantages: low price, low wire count + +### Data format on the wire + +From data format point of view it's plain asynchronous serial with following parameters: +``` +115200,8,n,1 +``` +**FIXME: Chose a baud rate that has high reliability across multiple MCUs ** + +### Notes + +Both differential signalling and shared wire connection options are verified to work. + +## Device addressing + +Each slave device on a bus has a unique **DevID** which defines device functionality (GPS, Optical flow, RC receiver etc). **DevID** is one byte and also serves as a device priority - master controller will favor devices with lower **DevID** + +During discovery phase on the bus each device is assigned a **SlotID** which it must use for communicating with the master. **DevID** is only used during discovery phase. + +## Device capabilities + +During discovery each device must report capability flags (16-bit field, see IDENTIFY command). + +| Flag mask | Name | Description | +|-----------|--------------|-------------| +| 0x01 | HAS_READ | Indicates that device supports READ command and should be polled periodically | +| 0x02 | HAS_WRITE | Indicates that device supports WRITE command and can accept data | + +## Transactions on a bus + +Everything on a bus is coordinated by a master device (flight controller) and all transactions are organised in **slots**. There are at most 32 slots (active devices) possible on a single bus. + +Master begins transaction with one byte. Highest 3 bits indicate a **command**, while lower 5 bits indicate a **SlotID**. The rest of transaction depends on which command is being executed. + +A 2ms guard interval is mandatory between transactions and is used by all devices to reset internal state. First byte after guard interval is assumed to be a command from master device. + +### Data integrity + +Each transaction on a bus ends with a 1-byte CRC calculated by CRC-8/DVB-S2 algorithm. +CRC is calculated over all transaction bytes starting with command byte. +CRC is calculated by the data originator and verified by the master. + +## Commands on a bus + +| Hex | Binary | Name | Description | +|------|---------|------------|-------------| +| 0x00 | 000xxxx | IDENTIFY | Performs device identification and slot assignment | +| 0x20 | 001xxxx | NOTIFY | Notifies a device about assigned (or re-assigned) slot | +| 0x40 | 010xxxx | READ | Performs a read transaction from a slot | +| 0x60 | 011xxxx | WRITE | Performs a write transaction on the bus | +| 0x80 | 100xxxx | reserved | Not used | +| 0xA0 | 101xxxx | reserved | Not used | +| 0xC0 | 110xxxx | reserved | Not used | +| 0xE0 | 111xxxx | reserved | Not used | + +### IDENTIFY (0x00) + +| Byte | Originator | Description | +|------|------------|-------------| +| 0 | Master | Value of (0x00 + SlotID) | +| 1 | Master | DevID of requested device | +| 2 | Master | UIB Protocol version (0x00) | +| 3 | Master | CRC1 (over bytes 0-1) | +| 4 | Slave | Poll interval (low byte) | +| 5 | Slave | Poll interval (high byte) | +| 6 | Slave | Device flags (low byte) | +| 7 | Slave | Device flags (high byte) | +| 8 | Slave | Device parameters [0] | +| 9 | Slave | Device parameters [1] | +| 10 | Slave | Device parameters [2] | +| 11 | Slave | Device parameters [3] | +| 12 | Slave | CRC2 (over bytes 0-10) | + +During discovery phase master sends *IDENTIFY* commands for each supported **DevID**. +Device with corresponding **DevID** must respond with desired poll interval (in milliseconds) and flag field. +Master will send it's protocol version in *IDENTIFY* request. Slave device should respond only if it's able to talk this protocol version. +Also, device which has detected it's **DevID** must remember the **SlotID** of the transaction - this will be the **SlotID** assigned to the device; it should also remember the protocol version it should be using to communicate. + +Device parameters field (4 bytes) is device-specific and may be used to pass extended capabilities or non-standard flags to the host driver. + +### NOTIFY (0x20) + +| Byte | Originator | Description | +|------|------------|-------------| +| 0 | Master | Value of (0x20 + SlotID) | +| 1 | Master | DevID of requested device | +| 2 | Master | UIB Protocol version (0x00) | +| 3 | Master | CRC1 (over bytes 0-1) | + +Used to assign a slot to a device. Device shouldn't respond, but only keep record of assigned **SlotID**. + +### READ (0x40) + +| Byte | Originator | Description | +|------|------------|-------------| +| 0 | Master | Value of (0x40 + SlotID) | +| 1 | Master | CRC1 (over byte 0) | +| 2 | Slave | Data payload length (may be zero) | +| 3... | Slave | Data packet (up to 32 bytes) | +| last | Slave | CRC2 (from start of packet) | + +Device with **SlotID** that was assigned to it during discovery phase must respond to this command with a variable-length data packet. If device has no new data available it should respond with zero payload length. + +### WRITE (0x60) + +| Byte | Originator | Description | +|------|------------|-------------| +| 0 | Master | Value of (0x80 + SlotID) | +| 1 | Slave | Data payload length (may be zero) | +| 2... | Master | Data packet (up to 32 bytes) | +| last | Slave | CRC2 (from start of packet) | + +Device with **SlotID** that was assigned to it during discovery phase must silently accept the data. No acknowledgement it done by the device. Together with **NOTIFY** this command brings a possibility to have several devices on the same DevID/SlotID. + +## Devices + +It's recommended that each device use first byte of READ payload as flag field with following values: + +| Bit | Mask | Description | +|-----|------|-------------| +| 0 | 0x01 | UIB_DATA_VALID - indicates data validity | +| 1 | 0x02 | Unused, must be zero | +| 2 | 0x04 | Unused, must be zero | +| 3 | 0x08 | Unused, must be zero | +| 4 | 0x10 | Unused, must be zero | +| 5 | 0x20 | Unused, must be zero | +| 6 | 0x40 | Unused, must be zero | +| 7 | 0x80 | Unused, must be zero | + +### Device ID = 0x12 : Rangefinder + +Flag UIB_DATA_VALID will indicate that reading is valid (surface is in range and measurement is correct) + +Recommended payload format: + +``` +typedef struct __attribute__((packed)) { + uint8_t flags; + uint16_t distanceCm; +} rangefinderData_t; +``` + +### Device ID = 0x13 : GPS sensor + +Flag UIB_DATA_VALID will indicate that reading is valid, UIB_DATA_NEW - that data is fresh + +Recommended payload format: + +``` +typedef struct __attribute__((packed)) { + uint8_t fix_type; + uint8_t sat_count + uint8_t hdop; + int32_t longitude; + int32_t latitude; + int32_t altitude_msl; + int16_t vel_north; + int16_t vel_east; + int16_t vel_down; + int16_t speed_2d; + int16_t heading_2d; +} gpsDataPacket_t; +``` + +### Device ID = 0x80 : RC Receiver + +Flag UIB_DATA_VALID will indicate that receiver has a valid link to transmitter. This is an **inverse** of FAILSAFE flag in common digital receivers. + +Recommended payload format: + +``` +typedef struct __attribute__((packed)) { + uint8_t flags; // UIB_DATA_VALID (0x01) - link ok + uint8_t rssi; + uint8_t sticks[4]; // Values in range [0;255], center = 127 + uint8_t aux[8]; // Analog AUX channels - values in range [0;255], center = 127 + uint16_t reserved; // Reserved for future use +} rcReceiverData_t; +``` + +Values of `sticks[]` and `aux[]` array should be in range [0;255] and will correspond to [1000;2000] values. diff --git a/versioned_docs/version-8.0.1/advanced/Ublox-3.01-firmware-and-Galileo.md b/versioned_docs/version-8.0.1/advanced/Ublox-3.01-firmware-and-Galileo.md new file mode 100644 index 0000000..657d4d9 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/Ublox-3.01-firmware-and-Galileo.md @@ -0,0 +1,103 @@ +--- +title: Ublox 3.01 Firmware and Galileo +--- + +# Introduction + +Ublox firmware 3.01 supports the European Galileo satellites. This can provide increased satellite coverage particularly in Northern and Western Europe. + +A number of UBLOX configuration items can be used to check and configure Galileo capability, either using the UBLOX Windows application 'u-center' (which works on Linux using 'Wine'), or the Linux/mwptools 'ublox-cli' tool. + +# Firmware and settings + +It is necessary for your device to be a M8N or later to use v3.01 firmware (necessary for Galileo) and to have 1M of flash. Some of the popular Beitian BN880 devices only have 512k of flash and cannot be upgraded. Older (prior to spring 2016) and new devices (spring 2017) are reported as being upgradable. + +The firmware version / capability is available from the UBX-MON-VER ublox command. A Galileo capable device shows something like: +```` +SW: EXT CORE 3.01 (107900) HW: 00080000 80000 +ExtVer: ROM BASE 2.01 (75331) +ExtVer: FWVER=SPG 3.01 +ExtVer: PROTVER=18.00 +ExtVer: FIS=0xEF4015 (100111) +ExtVer: GPS;GLO;GAL;BDS +ExtVer: SBAS;IMES;QZSS +```` +The FIS value indicates it is upgradable. In u-center: + +![](https://static.rcgroups.net/forums/attachments/6/1/2/8/7/5/a10080926-121-BN-880.png) + +## Device Status + +Devices manufactured in 2018 and later are likely to be firmware 3.01 or later as purchased. This is certainly the case for the popular (and well suited to INAV) Beitian BN-880. + +## INAV Configuration + +For INAV 1.9.0 and later, it is not necessary to manually configure the GPS in u-center; it can be enabled using the INAV CLI: +``` +set gps_ublox_use_galileo = ON +``` +This setting implements the manual settings below. + +Note that if you do not enable Galileo in inav, then the default / user configured setting of the GPS device are used, so you can prefer other regional GNSS such as BeiDou. + +## Manual Configuration (GPS device) + +For older firmware (prior to 1.9.0), if your devices comes with 3.01 firmware, or you flash it, then to enable Galileo, you need to assign some channels for Galileo; typically steal from some channels from a GNSS that you are unlikely to use (maybe QZSS, BeiDou in Western Europe). Save this in the default configuration. BN-880 can use upto 3 GNSS (plus SBAS) simultaneously. In u-center: + +![](https://static.rcgroups.net/forums/attachments/9/3/9/2/a10081487-180-Galileo_2.JPG) +![](https://static.rcgroups.net/forums/attachments/9/3/9/2/a10081488-165-Galileo_1.JPG) + +Using the UBLOX SVINFO command (either u-center or ublox-cli) will show if you have any Galileo satellites, which have an ID in the range E1-E36. Below, E11, E12 and E24 are Galileo satellites contributing to the overall GPS fix solution. + +```` +SVINFO: Channels 30 +21 G7 - - 4 + 6 G8 Y - 6 + 7 G10 Y - 6 + 0 G16 Y - 6 + 4 G18 Y - 6 +15 G20 Y - 6 + 1 G21 Y - 6 + 2 G26 Y - 6 + 3 G27 Y - 6 +22 G29 Y - 6 +23 SBAS1 - - 1 +24 SBAS4 - - 7 + 8 SBAS17 - - 7 +12 E2 - - 7 +26 E7 - - 1 +10 E11 Y - 7 + 9 E12 Y - 7 +28 E14 - - 7 +25 E19 - - 1 +11 E24 Y - 7 +19 R5 - - 1 +18 R6 - - 4 +20 R7 - - 3 +27 R11 - - 4 +14 R12 Y - 6 + 5 R13 Y - 7 +29 R14 - - 1 +17 R21 Y - 7 +13 R22 Y - 7 +16 R23 Y - 7 + +```` +The M8N (even with v2.01 firmware) is capable of doing PVT (single Position,Velocity,Time stanza) and 10Hz update rates (note the reported timestamps at 0.1s intervals): +```` +PVT: lat: 50.910534 lon: -1.535244 elev: 17.39 acc(h/v): 0.6/0.7 +sats: 17, fix 3 +2017-04-22 13:05:47.400 +Data size 92b (1 7) +PVT: lat: 50.910534 lon: -1.535244 elev: 17.39 acc(h/v): 0.6/0.7 +sats: 17, fix 3 +2017-04-22 13:05:47.500 +Data size 92b (1 7) +PVT: lat: 50.910534 lon: -1.535244 elev: 17.40 acc(h/v): 0.6/0.7 +sats: 17, fix 3 +2017-04-22 13:05:47.600 +```` +For INAV firmware prior to 1.7.1, it is necessary to compile custom firmware with `-D GPS_PROTO_UBLOX_NEO7PLUS=1`. For INAV 1.7.1 firmware and later, PVT/10Hz updates can be enabled just by configuration: +```` +set gps_provider = UBLOX7 +```` diff --git a/versioned_docs/version-8.0.1/advanced/_category_.json b/versioned_docs/version-8.0.1/advanced/_category_.json new file mode 100644 index 0000000..dd1c52f --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Advanced", + "position": 3 +} diff --git a/versioned_docs/version-8.0.1/advanced/iNav-CLI-variables.md b/versioned_docs/version-8.0.1/advanced/iNav-CLI-variables.md new file mode 100644 index 0000000..ceb4709 --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/iNav-CLI-variables.md @@ -0,0 +1,19 @@ +--- +title: iNav CLI Variables +--- + +iNAV CLI variables related to navigation features + +All iNAV calculations are done in cm, cm/s and cm/s^2. + +_As for CLI, here are some useful commands:_ + _"help" will list available commands._ + _"dump" will list all settings and what value you have._ + _"diff" will list all settings that are changed compared to default values. (Recommend to use this for backing up user data and when sharing configurations online._ + _"get rth" will list all settings with the word "rth" in them._ + _"set nav_rth_altitude = 300" to change this setting to 300 (centimeters)._ + _"save" to save it permanently and reboot your flight controller, remember to do this or your setting changes will be lost!_ + +The INAV CLI variables are explained in the [INAV cli variables documentation](https://github.com/iNavFlight/inav/blob/master/docs/Cli.md). + +To see new CLI values for release candidates or other pre release you have to change to the appropriate branch, example [development](https://github.com/iNavFlight/inav/blob/development/docs/Cli.md). diff --git a/versioned_docs/version-8.0.1/advanced/launch-mode.md b/versioned_docs/version-8.0.1/advanced/launch-mode.md new file mode 100644 index 0000000..b2d1a4c --- /dev/null +++ b/versioned_docs/version-8.0.1/advanced/launch-mode.md @@ -0,0 +1,51 @@ +--- +title: Launch Mode +--- + +# [Home](https://github.com/iNavFlight/inav/wiki) + +# Getting Started + + - [Getting started with INAV](../quickstart/Getting-started-with-iNav.md) + - [Multirotor guide](../quickstart/Multirotor-guide.md) + - [Fixed-Wing Guide](../quickstart/Fixed-Wing-Guide.md) + - [YouTube video guides](../quickstart/YouTube-video-guides.md) + - [Setting up Failsafe for RTH](../features/Failsafe.md) + - [Tested & Suggested Hardware](../quickstart/Welcome-to-INAV,-useful-links-and-products.md) + - [Arming is disabled / WPs don't execute](https://github.com/iNavFlight/inav/wiki/%22Something%22-is-disabled----Reasons) + - [Sensor auto detection and Hardware Failure detection](../features/Sensor-auto-detect-and-hardware-failure-detection.md) + - [Sensor calibration](../quickstart/Sensor-calibration.md) + - [GPS and Compass setup](../quickstart/GPS--and-Compass-setup.md) + +# Additional Information + + - [INAV Flight Modes](../features/Modes.md) + - [INAV Navigation Modes](../features/Navigation-modes.md) + - [INAV Return to Home](../features/Navigation-Mode-Return-to-Home.md) + - [INAV Missions / Waypoint flying](../features/iNavFlight-Missions.md) + - [INAV CLI variables](./iNav-CLI-variables.md) + - [Upgrading from an older version](../quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md) + - [INAV Version History](./New-features-over-versions-log.md) + - [Fixed Wing Tuning for INAV 3.0](../legacyinfo/Fixed-Wing-Tuning-for-INAV-3.0.md) + +# Additional Links + - [Antenna Tracking](./AAT-Automatic-Antenna-Tracker.md) + - [Beeping and flashing error codes meaning](../quickstart/Blinkenlights.md) + - [Custom mixes for exotic setups](./Custom-mixes-for-exotic-setups.md) + - [GPS Failsafe and Glitch Protection](../features/GPS-Failsafe-and-Glitch-Protection.md) + - [INAV blackbox variables](./INAV-blackbox-variables.md) + - [INAV MSP frames changelog](./INAV-MSP-frames-changelog.md) + - [Lightweight Telemetry (LTM)](https://github.com/iNavFlight/inav/wiki/Lightweight-Telemetry-(LTM)) + - [Waypoint types, usage, examples and MSP messages](./MSP-Navigation-Messages.md) + - [PID Attenuation and scaling](./PID-Attenuation-and-scaling.md) + - [Tune INAV PIFF controller for fixedwing](./Tune-INAV-PIFF-controller-for-fixedwing.md) + - [Pixel OSD FAQs](../legacyinfo/Pixel-OSD-FAQs.md) + - [TROUBLESHOOTING](../quickstart/TROUBLESHOOTING.md) + +# For Developers + + - [Developer info](./Developer-info.md) + +# Vintage area + + - [Howto: CC3D flight controller, minimOSD, GPS and LTM telemetry for fixed wing](../quickstart/Howto:-CC3D-flight-controller,-minimOSD,-GPS-and-LTM-telemetry-for-fixed-wing.md) diff --git a/versioned_docs/version-8.0.1/features/Bluetooth-setup-to-configure-your-flight-controller.md b/versioned_docs/version-8.0.1/features/Bluetooth-setup-to-configure-your-flight-controller.md new file mode 100644 index 0000000..7a6bdd7 --- /dev/null +++ b/versioned_docs/version-8.0.1/features/Bluetooth-setup-to-configure-your-flight-controller.md @@ -0,0 +1,20 @@ +--- +title: Bluetooth Setup to Configure Your Flight Controller +--- + +You want to extend the lifetime of your micro USB and look cool on the field? Whip up your phone and setup your FC via bluetooth, this guide is for you. +![](https://i.imgur.com/HDakZPo.jpg) +# Equipment +* Flight Controller with a 3V3 pin and one free UART. +* [Bluetooth chips, 2 pieces for $8](https://www.amazon.com/gp/product/B07BRM9752/ref=oh_aui_search_asin_title?ie=UTF8&psc=1) this module is great because it's already setup optimally, baudrate at 115200 so you don't need to use an FTDI to send AT code at. +The manual for this module is [here](https://fccid.io/2AM2YJDY-08/User-Manual/User-Manual-3511895) +# Procedure +1. Find a free UART on your FC and determine the TX and RX +2. Connect pin 03 (TX) of the module to RX on your FC +3. Connect pin 02 (RX) of the module to TX of your FC +4. Connect VCC to a 3V3 pin on your FC +5. Connect GND to any ground on your FC +6. In INAV configurator set the UART to MSP, baudrate 115200 +Save and reboot. + +Now you can connect to your flight controller with the excellent Speedybee app. diff --git a/versioned_docs/version-8.0.1/features/Failsafe.md b/versioned_docs/version-8.0.1/features/Failsafe.md new file mode 100644 index 0000000..9c2fce0 --- /dev/null +++ b/versioned_docs/version-8.0.1/features/Failsafe.md @@ -0,0 +1,92 @@ +--- +title: Failsafe +--- + +# Setting up Failsafe for RTH + +:::warning +Warning: one can assign a RC switch to simulate a FAILSAFE condition. Bear in mind that while the mode is activated, the FC will behave as if radio link is lost. This means that disarming the model will not work. To regain control one will have to 1) cancel the FAILSAFE with the RC assigned switch 2) move the roll / pitch sticks 3) possibly DISARM. Not to say that in case of emergency this procedure has to be well known. Therefore, it is wise to not assign FAILSAFE to a switch, but rather assign RTH. +::: + + +## Foreword + +The goal is to configure both your flight controller and radio receiver so that failsafe does as you expect in every situation. + +For failsafe to work optimally INAV needs to know it's in a failsafe event and not just doing regular RTH. This is necessary for example to correctly handle loss of GPS while returning to home. + +This assumes you have regular GPS modes like `RTH` working **already**. + +## Configuration of receiver + +You have several options on how to configure receiver: + +### Option one + +Set receiver to send out `NO PULSES` or `HOLD` on a failsafe event. This is perfectly fine for FrSky Radios. + +### Option two + +1. Set up INAV "Failsafe" mode on an RC channel. + +2. Set up the radio receiver failsafe so the RC channel used in 1. outputs a value that activates INAV "Failsafe" mode on RC link loss. + +The above is fine on FlySky radio. + +### Option three + +Set up the radio receiver failsafe so the throttle channel outputs a value below the `rx_min_usec` setting. This will trigger INAV Failsafe when the radio receiver goes into failsafe. + +The throttle channel lower endpoint may need to be temporarily set to the lowest setting allowing the failsafe value to be set low also (around 800us should be possible). Once the receiver failsafe setting has been saved the throttle endpoint can be reset to the normal value. + +Works well with Flysky radios without the need to set Failsafe mode (option 2). + +## Configuration of INAV + +Go to `Failsafe` tab, and enable `RTH` as Stage 2 failsafe. + +For fixed wing set `failsafe_throttle_low_delay = 0` or else it will disarm the fixed wing in the air when Failsafe triggers and you have had low throttle for the default time period. + +The behavior of `RTH` can also be configured. + + - [INAV Flight modes / Navigation Modes](./Navigation-modes.md#rth-altitude-control-modes) + +Loss of GPS during Failsafe RTH will result in an emergency landing so make sure the following are set to avoid surprises: +- `nav_emerg_landing_speed` - default is 5 m/s. Reduce for a fixed wing. +- `failsafe_off_delay` - default will disarm after 20s. Increase or disable if more time required. +- `failsafe_throttle` - default setting is 1000 which will cause a multicopter to drop if not increased to slightly below hover throttle. + +## Verifying that failsafe works as intended + +Verify that your failsafe works without props: + +1. Remove all props + +1. Go outside, arm and apply throttle, run with it 50meter away from home (normally the place where you armed it) and then turn off transmitter. The aircraft should now try to climb (increase throttle). Also verify that you're able to regain control by turning on transmitter again, and move the ROLL/PITCH stick more than `failsafe_stick_threshold` + +Now, verify that failsafe works while in flight: + +1. Put the props on again + +1. Take off, fly at least 50 meters from home, and turn off transmitter. Tip: Do this over soft grass. If it's an airplane it's better to have some altitude + +Note: If you are using a fixed wing without a magnetometer enabled you will need to run with the airplane before turning off the transmitter to test failsafe. This is because GPS speed needs to be above a certain threshold to acquire a valid heading. Without a valid heading failsafe will not initiate. + +Note: To regain control after a failsafe event, you must move the roll/pitch sticks more than `failsafe_stick_threshold` in order to regain control. + +**INAV offers additional failsafe safety features** + +**failsafe_min_distance** and the action you wish to invoke (_failsafe_min_distance_procedure_) + +****failsafe_throttle_low_delay**** (Time throttle level must have been closed to Auto disarm) + +The first setting could avoid injury as it will prevent the possibility of the craft blasting off to its RTH height within chosen safety distance of the set home point. It could also work against you if a failsafe event occurred while flying close with a setting of (just land) and you were flying from a very small safe landing area. +All options are available to best suit your needs. + +The second setting could just ruin your day with a mid-air disarm but conversely save you from personal injury if it is forgotten to disarm the craft (not using motor stop also goes a long way to making the craft safer as the spinning propellers are a visible sign the craft is armed and dangerous). + +Further reading and settable parameters are available here :- +https://github.com/iNavFlight/inav/blob/master/docs/Failsafe.md#failsafe_throttle + +And here :- +https://github.com/iNavFlight/inav/blob/master/docs/Cli.md diff --git a/versioned_docs/version-8.0.1/features/GPS-Failsafe-and-Glitch-Protection.md b/versioned_docs/version-8.0.1/features/GPS-Failsafe-and-Glitch-Protection.md new file mode 100644 index 0000000..ec920f7 --- /dev/null +++ b/versioned_docs/version-8.0.1/features/GPS-Failsafe-and-Glitch-Protection.md @@ -0,0 +1,66 @@ +--- +title: GPS Failsafe and Glitch Protection +--- + +## Overview + +GPS Systems can occasionally drop the signal (lose FIX) or provide significantly inaccurate position information (glitch). While errors are more likely in conditions where the GPS signal can bounce off multiple paths before reaching the receiver (multipathing), errors can occasionally occur even with clear sky. + +Without updates from GPS System, the inertial position estimation allow approximately 1.5 seconds of position information but after this the horizontal position drift becomes so large that the horizontal position cannot be maintained at all. At this point the position estimator will report invalid position to the navigation core. If you still have RC radio control it is recommended to take back control using ANGLE, HORIZON, ALTHOLD or ACRO as soon as possible. + +Action taken on invalid position is dependent on current flight mode. + +## GPS glitch protection + +Prior to INAV 5.0, INAV implemented "GPS glitch protection"; this was based on the performance characteristics of c. 2016 multi-rotors and Neo6M GPS and was deemed inappropriate for modern aircraft, as it resulted in numerous "false positives" with modern GPS and aircraft performance. Glitch protection was removed in INAV 5.0. The following paragraphs describe the historical implementation: + +> Sometimes GPS provides very inaccurate position information despite having the fix and the good satellite count. This event is usually called a "GPS glitch". INAV has logic to detect and ignore inaccurate/inconsistent GPS position updates. Glitches are detected by comparing the new position update received from the GPS unit with a position projected out from the previous update's position and velocity. +> +> The new GPS position is accepted as “good” if: +> +> 1. the two positions are within the hard coded INAV_GPS_GLITCH_RADIUS (currently 2.5m) +> 1. the new position is within a radius that is 10m/s/s (INAV_GPS_GLITCH_ACCEL) * dt * dt. Where “dt” is the time difference between the two GPS samples. +> +> GPS glitches are treated by the position estimator in the same way as losing GPS fix. +> +> **At the moment the code is experimental and "glitched" GPS positions are not ignored.** + +## Action taken on invalid position event + +### ANGLE, HORIZON, ACRO, ALTHOLD mode +These modes are not GPS-dependent, nothing will happen but you will be unable to switch into an autopilot flight mode (POSHOLD, RTH, WP) until the failure clears. + +### POSHOLD mode +The copter will be forced into ANGLE mode, pilot will have complete control over copter attitude. If ALTHOLD mode was selected it will remain active. When failure clears POSHOLD more will resume. + +### RTH and WP modes (including failsafe RTH) +RTH and WP are considered full-auto modes. It is assumed that pilot might have no control over the copter so the safest action in case of invalid position is landing the machine. Copter will enter Emergency Landing state if failure is consistent for over 2 seconds. + +### Emergency Landing + + **Receiver failsafe** + +If the radio control signal is lost and the sensor data is still active. (GPS and barometer) + +* The multicopter will enter emergency landing, and descend via the use of altitude and position data. It will descend at a controlled rate according to your _automatic landing settings_ in the _Advanced tuning tab_, and then disarm. +If `failsafe_procedure = LAND` is selected, in place of `RTH`. It will still make a controller descent. But it will land at the location the failsafe occurred. Instead of returning to home. + +* A fixedwing will enter a slow descending spiral if `failsafe_procedure = LAND`. But if `RTH` is selected, and [fixedwing auto landing](https://github.com/iNavFlight/inav/blob/master/docs/Fixed%20Wing%20Landing.md) is set up by the user. The airplane will land at your designated landing coordinates. + + **Hardware failure** + +In case of critical failure **e.g.** Hardware, electrical or microwave jammer interference. The Emergency Landing state will force the aircraft into ANGLE mode. + +* The multicoter will center ROLL and PITCH inputs to maintain level as the copter enters a controlled descent, based on your failsafe landing presets. Which are `failsafe_throttle` and `failsafe_off_delay`. Once the timer has expired the motors will be shut off.. +**Note** : _These presets are set to zero by default. You should always tune them according to your multicopters requirements. Or the system will revert to `failsafe_procedure = DROP`._ Which will damage your copter. + +* The fixedwing will enter a slow descending spiral until it touches down, according to the _automatic landing settings_ in the _Advanced tuning tab_.. It will also disarm. + + +## Tips to improve GPS reception and avoid GPS outages and glitches + +1. Place the GPS module on the outside of your vehicle (in an elevated position or on a mast if appropriate) with a clear view of the sky. +1. If GPS module is combined with a compass sensor, place it as far as possible from the motors, ESCs and power wires (at lest 10 cm) +1. 1.2-1.3 GHz FPV video transmitters are know to be interfering with GPS reception. If you use such transmitter place it as far as possible from GPS module and expect some degradation in GPS quality +1. Select a GPS module with biggest GPS antenna. Bigger GPS antenna - better reception. +1. Use a two-system receiver is possible. For example uBlox NEO-M8N is GPS/GLONASS capable receiver. More systems means better noise resistance, more satellites, better accuracy. diff --git a/versioned_docs/version-8.0.1/features/Modes.md b/versioned_docs/version-8.0.1/features/Modes.md new file mode 100644 index 0000000..5f87853 --- /dev/null +++ b/versioned_docs/version-8.0.1/features/Modes.md @@ -0,0 +1,516 @@ +--- +title: Modes +--- + +# Introduction +Flight Modes in INAV can be categorized into two groups: +* **Navigation-Modes** which involve GPS and other positional sensors. Refer to the [Navigation-Modes](./Navigation-modes.md) page for more information. +* **Non-Navigation-Modes** perform actions that may rely on a sensor like the gyro or no sensor at all. See the mode descriptions below. + +Some modes are only available to certain craft types. This is indicated by: +* **FW** = Fixed Wing +* **MC** = Multi-Copter + +Scroll down to the [AUXILIARY CONFIGURATION](#AUXILIARY-CONFIGURATION) section for how Modes are assigned to channels on your radio. + +# Non-Navigation Modes Index: + +- [ACRO MODE](#acro-mode) (default mode) +- [AIR MODE](#air-mode) +- [ANGLE](#angle) +- [ANGLE HOLD](#angle-hold-fw) **FW** (7.1 and later) +- [ARM](#arm) +- [ALTHOLD](#althold) +- [AUTO LEVEL TRIM](#auto-level-trim-fw) **FW** +- [AUTOTUNE](#autotune-fw) **FW** +- [BEEPER](#BEEPER) +- [BEEPER MUTE](#BEEPER-MUTE) +- [BLACKBOX](#blackbox) +- [CAMERA CONTROL](#camera-control) +- [CAMSTAB](#CAMSTAB) +- [FAILSAFE](#failsafe) +- [FLAPERON](#flaperon-fw) **FW** +- [FPV ANGLE MIX](#FPV-ANGLE-MIX-mc) **MC** +- [HEADADJ](#headadj-mc) **MC** +- [HEADFREE](#headfree-mc) **MC** +- [HEADING HOLD](#heading-hold) +- [HOME RESET](#home-reset) +- [HORIZON](#horizon) +- [KILLSWITCH](#killswitch) +- [LEDLOW](#ledlow) +- [LOITER CHANGE](#loiter-change-fw) **FW** +- [MANUAL](#manual-fw) **FW** (PASSTHROUGH v1.8.1 & earlier) +- [MC BRAKING](#mc-braking-mc) **MC** +- [MIXER PROFILE 2](#mixer-profile-2) +- [MIXER TRANSITION](#mixer-transition) +- [MSP RC OVERRIDE](#msp-rc-override) +- [MULTI FUNCTION](#multi-function) +- [NAV LAUNCH](#nav-launch-fw) **FW** +- [OSD ALT](#osd-alt) +- [OSD SW](#osd-sw) +- [PREARM](#prearm) +- [SERVO AUTOTRIM](#servo-autotrim-fw) **FW** +- [SOARING](#soaring-fw) **FW** +- [SURFACE](#surface) +- [TELEMETRY](#telemetry) +- [TURN ASSIST](#turn-assist) +- [TURTLE](#turtle-mc) **MC** +- [USER1 & USER2 & USER3 & USER4](#USER) (aka PinIO) +- [WAYPOINT PLANNER](#WP-Planner) + +### ACRO MODE +NOTE: This is **default** flight mode. It is only active when no other mode is active. There is no mode selection for ACRO in the configurator, only an ACRO box that highlights when no other mode is active. + +This default flight mode does not self level the aircraft around the roll and the pitch axes. That is, the aircraft does not level on its own if you center the pitch and roll sticks on the radio. Rather, they work just like the yaw axis: the rate of rotation of each axis is controlled directly by the related stick on the radio, and by leaving them centered the flight controller will just try to keep the aircraft in whatever orientation it's in. This default mode is called "Acro" mode (from "acrobatic", shown in the OSD as `ACRO`). It is also sometimes called "rate" mode because the sticks control the rates of rotation of the aircraft around each of the three axes. "Acro" mode is active whenever auto-leveled mode is enabled. + +### AIR MODE + +In the standard mixer / mode, when the roll, pitch and yaw gets calculated and saturates a motor, all motors +will be reduced equally. When motor goes below minimum it gets clipped off. +Say you had your throttle just above minimum and tried to pull a quick roll - since two motors can't go +any lower, you essentially get half the power (half of your PID gain). +If your inputs would asked for more than 100% difference between the high and low motors, the low motors +would get clipped, breaking the symmetry of the motor balance by unevenly reducing the gain. +Airmode will enable full PID correction during zero throttle and give you ability for nice zero throttle +gliding and aerobatics. But also the cornering / turns will be much tighter now as there is always maximum +possible correction performed. Airmode can also be enabled to work at all times by always putting it on the +same switch like your arm switch or you can enable/disable it in air. Additional things and benefits: Airmode +will additionally fully enable Iterm at zero throttle. Note that there is still some protection on the ground +when throttle zeroed (below min_check) and roll/pitch sticks centered. This is a basic protection to limit +motors spooling up on the ground. Also the Iterm will be reset above 70% of stick input in acro mode to prevent +quick i-term windups during finishes of rolls and flips, which will provide much cleaner and more natural stops +of flips and rolls what again opens the ability to have higher I gains for some. + +### ANGLE + +In this auto-leveled mode the roll and pitch channels control the angle between the relevant axis and the vertical, achieving leveled flight just by leaving the sticks centered. +Maximum banking angle is limited by `max_angle_inclination_rll` and `max_angle_inclination_pit` + +### ANGLE HOLD (FW) + +This mode is a simple version of an attitude lock stabilizer. But its not designed for 3D aerobatic use. +It behaves more like Acro mode, in the way the desired flight attitude is achieved by stick deflection, and you release the stick to center. But the difference is, ANGLE HOLD will attempt to _hold or lock_ the pitch or roll attitude the airplane was commanded, when the stick is released back to center. Thus resisting any long term change to the flight attitude caused by the effects of wind... +Returning the airplane to level flight is done the same as when flying in Acro or Manual modes. + +This flight mode has angle constraints set by the navigation angle limits - `nav_fw_climb_angle`, `nav_fw_dive_angle` and `nav_fw_bank_angle`. Which may also make it feel a little like ANGLE mode, with its bank limits. + +It was designed to work with a flight mode and a modifier - `COURSE HOLD` or `ALT HOLD`. Although both **can not** be selected for use with ANGLE HOLD at the same time. + +* ANGLE HOLD + COURSE HOLD - Will maintain a constant heading and climb angle over a long distance. e.g. Up or Down the side of a long mountain range. +* ANGLE HOLD + ALT HOLD - Will allow the airplane to make a long banking turn, without losing altitude in the turn. + + +**Use caution! - If the pilot requests the airplane to hold a high climb angle. The pilot MUST provide adequate throttle (motor thrust) to maintain airspeed or the airplane will stall.** + +### ARM +Activates the flight controller to be ready for flight. + +### ALTHOLD + +Maintain the altitude of the aircraft a the moment you activate this mode is fixed. Find more information [here](./Navigation-modes.md#althold---altitude-hold). + +### AUTO LEVEL TRIM (FW) +_Tuning mode_ + +AUTO LEVEL TRIM will attempt to automatically tune the pitch offset (`fw_level_pitch_trim`) a fixed-wing airplane needs to not lose altitude when flying straight in a self levelling flight mode. To use AUTO LEVEL you should first be in a self levelling flight mode which does _not_ use ALTHOLD. ANGLE, HORIZON, and COURSE HOLD are all fine. Once in that mode, enable AUTO LEVEL and do not make corrections. AUTO LEVEL will attempt to tune the correct Angle of Attack for your current speed. You can see how level the craft is flying with the numerical variometer element on the OSD. +/- 0.3° is an acceptable tolerance. Once flying level, you can disable AUTO LEVEL. From INAV 6.0, a system message is shown when AUTO LEVEL is active. The trimming speed and accuracy can also be adjusted via [fw_level_pitch_gain](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#fw_level_pitch_gain). + +The new value isn't saved to EEPROM, you have to save it manually using either the configurator or a [stick combo](https://github.com/iNavFlight/inav/blob/master/docs/Controls.md). However, if you have a feature enabled which saves on disarm, such as Continuous Servo Trim or [Stats](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#stats). The new `fw_level_pitch_trim` will be saved. + +Pre INAV 7.0, this tuning mode was called AUTO LEVEL + +### AUTOTUNE (FW) +_Tuning mode_ + +For detailed description go to https://github.com/iNavFlight/inav/wiki/Tune-INAV-PIFF-controller-for-fixedwing + +AUTOTUNE will attempt to tune roll and pitch P, I and FF gains on a fixed-wing airplane. + +Autotune will monitor behavior of the airplane when you fly it and adjust P, I and FF gains to reach optimal performance. + +How to use: + +Take off. Any manual flight mode will do, ACRO is the best option. Enable AUTOTUNE mode. Do hard maneuvers on each axis separately. For roll - bank hard left/hard right. For pitch - fast climb, steep dive. Initially you probably will notice very soft response - make sure your flying field is big enough for slow turns. + +The more maneuvers you will do - the better results AUTOTUNE will be able to reach. + +AUTOTUNE will adjust gains constantly but it will take a snapshot of current gains every 5 seconds. When you disable AUTOTUNE gains from last snapshot will be restored. If you turn AUTOTUNE on and off before 5 seconds elapse - PIFF gains won't be changed. + +Currently AUTOTUNE don't save gains to EEPROM - you have to save manually, using a [stick combo](https://github.com/iNavFlight/inav/blob/master/docs/Controls.md). + +### BEEPER + +Make the beeper connected to the FC beep (lost model finder). + +### BEEPER MUTE + +Allows the flight controller beeper to be muted by a switch. To provide some peace and quiet during setup. + +### BLACKBOX + +If you're recording to an onboard flash chip, you probably want to disable Blackbox recording when not required in order to save storage space. To do this, you can add a Blackbox flight mode to one of your AUX channels on the Configurator's modes tab. Once you've added a mode, Blackbox will only log flight data when the mode is active. + +A log header will always be recorded at arming time, even if logging is paused. You can freely pause and resume logging while in flight. + +See [`BLACKBOX`](https://github.com/iNavFlight/inav/blob/master/docs/Blackbox.md) for more information + +### CAMERA CONTROL + +Camera control 1, 2 & 3 are used to adjust settings from your RC transmitter, when analogue/HD camera's like the _Runcam Hybrid_ or _Split_ are used. +Available function control is - +1) WiFi - App connection +2) Power - Start/Stop record +3) Mode change - Alter analogue and HD image settings. + +### CAMSTAB + +Allows a Pan, Tilt or Roll servo's to be used as an actively stabilized gimbal. The dedicated axis for each servo is selected in the mixer tab. + +### FAILSAFE + +Lets you activate flight controller failsafe with an aux channel. This mode is primarily designed to manually test if failsafe will work when required. +Read [Failsafe page](./Failsafe.md) for more info. + +### FLAPERON (FW) + +Activating it moves both ailerons down (or up) by predefined offset. + +Configuration besides activating FLAPERON mode is pretty simple, and consists of just one CLI variable: +- `flaperon_throw_offset` defines throw range in us for both ailerons that will be applied when FLAPERON mode is activated. By default it 250 with max at 400. + +Flaperon offset is by default is applied as a servo mixer input with ID=14 so using custom servo mixing you can configure FLAPERON mode to deflect any servos you need (including dedicated flaps). + +### FPV ANGLE MIX (MC) + +This mode mixes in Pitch with a commanded ROLL stick input. Or mixes in Pitch with a commanded YAW stick input. To overcome the sweeping or arching effect that is seen via the FPV view, based on the camera's up-tilt angle. This provides a more visually appealing (true to axis) freestyle or cinematic experience. +Simply set `fpv_mix_degrees = X°` , to the up-tilt angle your camera is set. Then enable it together with ACRO mode. + +### HEADADJ (MC) + +It allows you to set a new yaw origin for HEADFREE mode. + +### HEADFREE (MC) + +In this mode, the "head" of the multicopter is always pointing to the same direction as when the feature was activated. This means that when the multicopter rotates around the Z axis (yaw), the controls will always respond according the same "head" direction. + +With this mode it is easier to control the multicopter, even fly it with the physical head towards you since the controls always respond the same. This is a friendly mode to new users of multicopters and can prevent losing the control when you don't know the head direction. + +### HEADING HOLD + +This flight mode affects only yaw axis and can be enabled together with any other flight mode. +It helps to maintain current heading without pilots input and can be used with and without magnetometer support. When yaw stick is neutral position, Heading Hold mode tries to keep heading (azimuth if compass sensor is available) at a defined direction. When pilot moves yaw stick, Heading Hold is temporary disabled and is waiting for a new setpoint. + +Heading hold only uses yaw control (rudder) so it won't work on a flying wing which has no rudder, unless it has twin motor yaw stabilization active. + +### HOME RESET + +This mode provides a means to reset the home location or arming coordinates the model will return to. This is beneficial if you choose to launch or takeoff before the model has a GPS fix.. By using this mode, you can fly past your launch site later in the flight, once a GPS fix is established. And momentarily activate the feature.. **Ideally, it is better to place this mode on a Pot or multi-position button, so it doesn't get unintentionally bumped.** + +### HORIZON + +This hybrid mode works exactly like the previous ANGLE mode with centered roll and pitch sticks (thus enabling auto-leveled flight), then gradually behaves more and more like the default RATE mode as the sticks are moved away from the center position. Which means it has no limitation on banking angle and can do flips. + +The biggest complaint against Horizon mode, is the abruptness in which the stock settings transition from Angle to rate. This can catch newer pilots off guard. +But can be made smoother by altering these setting - +`max_angle_inclination_rll = 900` +`max_angle_inclination_pit = 900` +`fw_d_level = 95` OR `mc_d_level = 95`. +This will allow for a more linear stick feel, equivalent to Acro. And only permit the transition to occur near maximum stick deflection, or around 85° roll or pitch angle from level, when you're certain you want to command a roll or flip. This can be applied to both MC and FW platforms. + +### KILLSWITCH + +Allows the flight controller to be instantly disarmed and locked out, regardless of other Settings, Saves or Checks. As with the disarm switch. + +### LEDLOW + +Turns off the RGB LEDs + +### LOITER CHANGE (FW) + +Reverses set loiter direction when mode selected. + +### MANUAL (FW) + +Direct servo control in fixed-wing. This mode was called PASSTHROUGH mode up to version 1.8.1. + +In this mode there is no stabilization. Please note that MANUAL mode also overrides nav modes except RTH. To switch to a nav mode such as POSHOLD from MANUAL, MANUAL needs to be turned off first. + +What FC does in MANUAL mode is: Motor mixing, Servo Mixing, Expo settings, Throws limiting (see the `manual_*_rate` settings). Note that Failsafe is still active in this mode and can override the controls. + +### MC BRAKING (MC) + +Used with POSHOLD mode, this mode provides faster manual braking when the pitch stick is released. +For this mode to work, it requires `nav_user_control_mode = CRUISE` to be enabled. +**Use with caution**. This mode can cause temporary runaway with some settings and under some conditions. + +### MIXER PROFILE 2 + +This mode is primarily used to activate Mixer profile 2, which contains multirotor control and PID settings for VTOL models. + +### MIXER TRANSITION + +Used to transition VTOL aircraft from the _multirotor control profile_ to the _fixedwing control profile_ and back again. This is useful for allowing a VTOL to increase forward airspeed, before entering full fixedwing flight. So as not to stall or lose altitude in the transition process. Or it can also be used to slow the aircraft in fixedwing flight, for braking and better control stability before it enters the multirotor (VTOL) state. + +### MSP RC OVERRIDE + +Allows defined RC channels to be overridden by MSP `MSP_SET_RAW_RC` messages. The channels to be overridden are defined by the CLI setting `msp_override_channels`. There is a [code example](https://codeberg.org/stronnag/msp_override) that provides further information and a sample application illustrating the use of MSP RC OVERRIDE. + +### MULTI FUNCTION + +This function use a single mode to select between different functions based on feedback provided by the Multi Function OSD field. Functions are selected by briefly toggling the mode ON/OFF with this sequence, repeating until the required function is displayed in the OSD. The function is then triggered by activating the mode for > 3s. Deactivating the mode for > 3s resets everything leaving the OSD field blank. Ideally a momentary switch should be used to operate the mode although it should also work with a normal switch. Current functions include - +* Re-displaying any warnings +* Emergency landing activation +* Safehome suspend +* Trackback suspend +* Turtle mode activation +* Emergency arming function + +It also provides warnings that are displayed for 10s when first triggered after which the warning disappears to be replaced with an alert symbol with a number showing the active warning total. Active warnings are then re-displayed for 5s on a rolling 30s cycle. The field is blank if there are no warnings. Current Warnings are provided for - +* Battery state +* Vibration level +* GPS Fix or Failure +* RTH Sanity (>200m heading in wrong direction) +* Altitude Sanity (difference between estimated and GPS altitude > 20m) +* Compass failure +* Ground Test mode + +### NAV LAUNCH (FW) + +Airplane launch assistant + +This flight mode is intended to provide assistance for launching the fixed-wing UAVs. Launch detection works by monitoring airplane acceleration - once it breaches the threshold for a certain amount of time launch sequence is started. + +Gliders have different needs than motorized planes. See below for note on glider launch setup. + +The entire time `NAV LAUNCH` mode it will try and stabilize plane, it will target zero roll, zero yaw and predefined climb angle. The I-gain of the PIFF regulator is also disabled to prevent I-gain growing during launch until motor is started. When successful launch is detected it waits for preconfigured amount of time before starting motor. + +`NAV LAUNCH` is automatically aborted after 5 seconds or by any pilot input on PITCH/ROLL stick. When it has aborted it goes to whichever selected mode, which can be Angle, Rate, Horizon, RTH or a waypoint mission (if no other mode is selected it will go to Rate mode). + +It's safe to keep it activated the `NAV LAUNCH` mode during flight after the launch has being completed. Keep in mind that if you accidentally disarm while flying you need to disable `NAV LAUNCH` mode to being able to control the model again. + +See INAV CLI for all available adjustable parameters, they start with `nav_fw_launch_` + +Sequence for launching airplane using `NAV LAUNCH` mode looks like this: + +1. Set switch to `NAV LAUNCH` mode prior to arming (note that it won't actually enable until arming) +1. ARM the plane. Motor should start spinning at min_throttle (if `MOTOR_STOP` is active, motor won't spin) +1. Put throttle stick to desired throttle value to be set **after** launch is finished. Motor should start spinning with `nav_fw_launch_idle_thr`. Default is 1000 so it will respect `MOTOR_STOP` if active. Verify that motor doesn't respond to throttle stick motion. Don't touch the pitch/roll stick! From version 3.0 `nav_fw_launch_idle_motor_delay` can be set to delay the motor starting at idle (useful for launching large aircraft). When idle motor delay is used the launch beep sound changes a few seconds before the motor is about to start as a warning to the pilot (beep becomes more rapid). +1. Throw the airplane. It must be thrown leveled, or thrown by slinging it by wingtip. +1. Motors will start at pre-configured `nav_fw_launch_thr` (default 1700) after `nav_fw_launch_motor_delay` (500ms) +1. Launch sequence will finish when pilot switch off the NAV LAUNCH mode or move the sticks. + +If it won't detect launch it's possible that you need to lower your threshold. Look at the CLI variables. + +CAUTION: Motors will spin if you unset `NAV LAUNCH` mode after arming. + +From version 1.9 `NAV LAUNCH` can be permanently enabled via the configurator or the CLI using `feature FW_LAUNCH` in this case `NAV LAUNCH` doesn't need to be enabled via a transmitter switch prior to arming. +If you want to launch the plane manually just move pitch/roll stick after you have armed the plane and you have back throttle control. +If you inadvertently disarm mid-air before raising the throttle again (you should lower the throttle to arm again) move pitch/roll stick and you will have throttle control back. + +**MANUAL THROTTLE LAUNCH** + +From INAV 6.0.0 it is possible to use NAV Launch with manual throttle control. This is really intended as a more controllable alternative to the shake to start motor and throw method of launching. When enabled using setting [nav_fw_launch_manual_throttle](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_launch_manual_throttle) the throttle is controlled manually throughout the launch using the throttle stick. There is no motor idle or detection used to start the motor, motor control is entirely manual and active via the throttle stick once armed. INAV only controls roll and pitch attitude during the launch climb out. +**NOTE:** If this option is used with no GPS fix available it is recommended to throw the plane as soon as the throttle is raised in order to avoid possible degraded control issues and premature end of the launch timeout (moving the throttle stick back to idle will reset the affected launch parameters if required). + +**GLIDER / SLOPER SETUP** + +For obtaining launch assistance for hand-thrown gliders, it's a bit tricky. One possible solution is to setup the throttle as in input for switching modes. At lowest throttle setting, disarm and enter passthru. Just above minimal throttle, turn on Nav Launch, then just above that, Arm and activate Angle - all simultaneously "on" for launch. + +This will allow the FC to reset the launch sequence and be ready for toss with Angle activated after launch. + +Setup launch parameters appropriately: + +`nav_fw_launch_climb_angle = XX 45?` + +(Climb angle for launch sequence (degrees), is also restrained by global max_angle_inclination_pit) + +`set nav_fw_launch_thr = 1700` + +^^this command for a glider can be problematic. Not obvious, since Airplanes change PID values for throttle based on `set tpa_rate = XXX` and `set tpa_breakpoint = XXXX` (adjust accordingly). Also, not well documented but PIDs are boosted at low throttles by 1.5X!! Can cause unexplained behavior at launch. For some gliders - having PID gains reduced for toss is beneficial (DLG launch may be fastest speed the glider travels) + +`nav_fw_launch_velocity = XXX 300?` + +(Forward velocity threshold for swing-launch detection [cm/s]) + +One option is to add Horizon mode at very top end of throttle, to enable acro flying with ability to drop back to angle mode for emergency recovery. + +### OSD ALT + +Switches to the different alternative OSD displays ALT1, ALT2 or ALT3. The default OSD is shown when none of these are selected. + +### OSD SW + +Switches off the OSD. + +### PREARM + +When PREARM is assigned a range, INAV then prevents Arming until the PREARM condition is met and will raise a prearm error if Arming is attempted. After the craft is armed, then INAV stops monitoring the PREARM condition. + +### SERVO AUTOTRIM (FW) +_Tuning mode_ + +In flight adjustment of servo midpoint for straight flight + +This was changed in 3.0. Only servos with a "stabilized" rule on the INC Servo Mixer are trimmed. Also note that the automatic version of this introduced in 3.0 requires a GPS and detectable motion in order to work. + +_The purpose of this mode is to set new midpoints for servos 2 to 5. Makes sure you assign these servo numbers to your control surfaces or they will not be trimmed. If you have another servo (e.g. a servo gimbal) assigned to to servos 2 to 5, then this servo _will_ be trimmed._ + +This is so when switching into manual mode the plane will fly straight, its also to help the PIFF controller know where the plane is expected to fly straight. + +How to use: + +1. This is intended to use in air. +2. Fly straight, choose what mode that suites you best. (`manual`, `angle` or `acro`) +3. Enable `SERVO AUTOTRIM` mode, and keep flying straight for 2 seconds. After 2 seconds it will set new midpoints based on average servo position during those 2 seconds. +4. If you're are NOT happy with new midpoints disable `SERVO AUTOTRIM` mode and it will revert back to old settings. If you want to keep new midpoints keep `SERVO AUTOTRIM` turned on, land aircraft and disarm. New midpoints will be saved. + +You may want to inspect your new midpoints after landing, if the servo offset is a lot you may alter your linkage mechanically and redo servo midpoint. + +This is not to be confused with tuning your aircraft for leveled flight in `ANGLE` mode, to do this you need to adjust your board alignment so straight flight for that aircraft is show the board being level ( 0 pitch and 0 roll ). + +### SOARING (FW) + +Fixed wing mode for soaring flight with motor off so intended for sailplanes or motor gliders. Mode becomes active only when Position Hold or Cruise/Course Hold modes are also selected providing semi-autonomous soaring whilst circling or flying straight with heading hold. + +When mode is active altitude control is disabled and Angle mode allowed to free float (disabled) within the pitch range set by `nav_fw_soaring_pitch_deadband` (float pitch angle either side of level). The motor can be stopped by setting `nav_fw_soaring_motor_stop`. + +### SURFACE + +Enable terrain following when you have a rangefinder enabled. + +This will use a LIDAR or SONAR to follow the shape of the ground,as shown by the orange line in this image. + +![surface_mode](https://github.com/user-attachments/assets/31cf7126-45b9-4305-9c3a-521caf1b550b) + + +Pilots occasionally ask about combining the rangefinder reading with the barometer. +The image should show why these two different measurements are not compatible - +the aircraft can't fly both the orange line and the purple line at the same time. + +Set inav_max_surface_altitude and nav_max_terrain_follow_alt to the maximum distance (in centimeters) that your rangefinder is reliably accurate. + + +### TELEMETRY + +### TURN ASSIST + +Normally YAW stick makes a turn around a vertical axis of the craft - this is why when you fly forward in RATE and do a 180-deg turn using only YAW you'll end up looking upwards and flying backwards. In ANGLE mode this also causes an effect known as a pirouetting where turn is not smooth the horizon line is not maintained. + +In RATE mode pilot compensated for this effect by using both ROLL and YAW sticks to coordinate the rotation and keep attitude (horizon line). + +TURN ASSISTANT mode calculates this additional ROLL command required to maintain a coordinated YAW turn effectively making YAW stick turn the aircraft around vertical axis relative to the ground. + +In RATE mode it allows one to makes a perfect yaw-stick only turn without changing attitude of the machine. There might be slight drift due to not instant response of PID control, but still much easier to pilot for a RATE-mode beginners. + +In ANGLE mode it also makes yaw turns smoother and completely pirouette-less. This is because TURN ASSIST introduces feed-forward control in pitch/roll and maintains attitude naturally and without delay. + +From INAV 1.7 turn assist will work one planes, copy paste from pull request: + +This extends TURN_ASSIST flight mode on airplanes - when doing a turn on an airplane it will calculate required yaw and pitch rate to keep airplane pointed at horizon. + +TAS (from airspeed sensor) will be used for calculation if available - otherwise code will use cruise airspeed defined by fw_reference_airspeed. + +### TURTLE (MC) + +Provides a means of flipping over a multicopter that has crash landed upside down, by using the roll or pitch sticks. + +### USER +These are shown as USER1 & USER2 & USER3 & USER4 and also known as `PinIO` , when broken out on many flight controllers. +The four USER selections are generic in nature. But are often used for certain functions, depending on what the flight controller manufacturer decides to place on that mode. + +**e.g.** +- Some FC manufactures have `USER 1` as a VTX power switch. Which includes the electronic hardware, to power ON and OFF your HD or Analogue VTX. +- They may also add the flight controller hardware to allow for analogue dual camera switching on `USER 2`. +- While it is common to see `USER 3` selected to turn ON or OFF the power to a free standing HD camera. +- And `USER 4` to allow for the remote Start/Stop recording of a free standing HD camera. + +**Note:** This should not be taken as a set order. Always read the hardware definition in FC manufacturers manual. + +### WP Planner + +This is a Navigation-Mode that allows you to plot a waypoint mission as you fly. See more [details](./Navigation-modes.md#wp-planner---on-the-fly-waypoint-mission-planner) + +# AUXILIARY CONFIGURATION + +Spare auxiliary receiver channels can be used to enable/disable modes. Some modes can only be enabled this way. + +Configure your transmitter so that switches or dials (potentiometers) send channel data on channels 5 and upwards (the first 4 channels are usually occupied by the throttle, aileron, rudder, and elevator channels). + +_e.g. You can configure a 3 position switch to send 1000 when the switch is low, 1500 when the switch is in the middle and 2000 when the switch is high._ + +Configure your TX/RX channel limits to use values between 1000 and 2000. The range used by mode ranges is fixed to 900 to 2100. + +When a channel is within a specified range the corresponding mode is enabled. + +Use the GUI configuration tool to allow easy configuration when channel. + +### CLI + +There is a CLI command, `aux` that allows auxiliary configuration. It takes 5 arguments as follows: + +* AUD range slot number (0 - 39) +* mode id (see mode list below) +* AUX channel index (AUX1 = 0, AUX2 = 1,... etc) +* low position, from 900 to 2100. Should be a multiple of 25. +* high position, from 900 to 2100. Should be a multiple of 25. + +If the low and high position are the same then the values are ignored. + +e.g. + +Configure AUX range slot 0 to enable ARM when AUX1 is within 1700 and 2100. + +``` +aux 0 0 0 1700 2100 +``` + +You can display the AUX configuration by using the `aux` command with no arguments. + +### Mode ID List +* "ARM" 0 +* "ANGLE" 1 +* "HORIZON" 2 +* "NAV ALTHOLD" 3 +* "HEADING HOLD" 5 +* "HEADFREE" 6 +* "HEADADJ" 7 +* "CAMSTAB" 8 +* "NAV RTH" 10 +* "NAV POSHOLD" 11 +* "MANUAL" 12 +* "BEEPER" 13 +* "LEDS OFF" 15 +* "LIGHTS" 16 +* "OSD OFF" 19 +* "TELEMETRY" 20 +* "AUTO TUNE" 21 +* "BLACKBOX" 26 +* "FAILSAFE" 27 +* "NAV WP" 28 +* "AIR MODE" 29 +* "HOME RESET" 30 +* "GCS NAV" 31 +* "FPV ANGLE MIX" 32 +* "SURFACE" 33 +* "FLAPERON" 34 +* "TURN ASSIST" 35 +* "NAV LAUNCH" 36 +* "SERVO AUTOTRIM" 37 +* "KILLSWITCH" 38 +* "CAMERA CONTROL 1" 39 +* "CAMERA CONTROL 2" 40 +* "CAMERA CONTROL 3" 41 +* "OSD ALT 1" 42 +* "OSD ALT 2" 43 +* "OSD ALT 3" 44 +* "NAV COURSE HOLD" 45 +* "MC BRAKING" 46 +* "USER1" 47 +* "USER2" 48 +* "LOITER CHANGE" 49 +* "MSP RC OVERRIDE" 50 +* "PREARM" 51 +* "TURTLE" 52 +* "NAV CRUISE" 53 +* "AUTO LEVEL" 54 +* "WP PLANNER" 55 +* "SOARING" 56 diff --git a/versioned_docs/version-8.0.1/features/Navigation-modes.md b/versioned_docs/version-8.0.1/features/Navigation-modes.md new file mode 100644 index 0000000..75c85b5 --- /dev/null +++ b/versioned_docs/version-8.0.1/features/Navigation-modes.md @@ -0,0 +1,280 @@ +--- +title: Navigation Modes +--- + +**This Wiki page needs updating in regards to renamed CLI variables.** + +This page lists and explains all the different navigational flight modes of INAV: + +- [NAV ALTHOLD - Altitude hold](#althold---altitude-hold) +- [NAV POSHOLD - Horizontal position hold](#nav-poshold---Position-hold) +- [NAV COURSE HOLD - Course Hold](#nav-course-hold---course-hold) +- [NAV CRUISE - Course Hold + Altitude Hold](#nav-cruise---course-hold--altitude-hold) +- [NAV RTH - Return to home](#rth---return-to-home) +- [NAV WP - Autonomous waypoint mission](#wp---autonomous-waypoint-mission) +- [WP PLANNER - On the fly waypoint mission planner](#wp-planner---on-the-fly-waypoint-mission-planner) +- [GCS NAV - Ground control station](#gcs_nav---ground-control-station) + +For safety reasons, INAV’s navigation modes can be activated only if: +- ACC and MAG (multirotor only) are [calibrated](../quickstart/Sensor-calibration.md) properly +- a valid 3D GPS fix is available +- a valid altitude source is available +- the FC is armed + +This applies to enabling the navigation modes in the Configurator as well as at the flying field. +(For bench tests without(!) propellers you may change “set nav_extra_arming_safety = ON” to “ALLOW_BYPASS” in CLI. Then use yaw right when arming to bypass the checks.) + +- Flightmodes are self contained. For example: with RTH and WP (Waypoints) it's not necessary to enable angle, althold or mag, it enables what it needs. Read more below in POSHOLD section. +- On fixed wing aircraft, enabling CRUISE, RTH, WP or POSHOLD also enables TURN ASSIST. TURN ASSIST applies elevator and rudder input when the airplane is banked to obtain a coordinated turn. + +| | COURSE HOLD | CRUISE | POSHOLD | WAYPOINT | RTH | ALTHOLD | +| ---- | ---- | ---- | ---- | ---- | ---- | ---- | +| ANGLE | X | X | X | X | X | | +| ALTHOLD | | X | X | X | X | | +| TURN ASSIST | X | X | X | X | X | | +| MAG | | | | X | X | | +| BARO | | | | X | X | X | + +**Prior to version 2.6 on a fixed wing the motor will stop in all Nav modes except Nav RTH and Nav WP if the throttle is reduced below the Min_Check setting. From version 2.6 this behaviour is controlled using the nav_overrides_motor_stop setting which by default keeps the motor running in all Nav modes.** + +- There is a companion [[wiki page further describing way point missions, tools and telemetry options|iNavFlight Missions]]. + +Note: All INAV parameters for distance, velocity, and acceleration are input in cm, cm/s and cm/s^2. + +Let's have a look at each mode of operation in detail. + +## ALTHOLD - Altitude hold +ALTHOLD is not a flight mode in it's own right. It is a modifier which, when activated in combination with a flight mode, maintains the aircraft's altitude. + +**Please see the platform specific notes for ALTHOLD below.** + +SONAR: Altitude hold code will use sonar automatically on low altitudes (< 3m) if hardware is available. + +Using ALTHOLD with a plane (fixed wing: fw) with GPS: Since INAV 1.5 it's recommended to keep baro enabled, and for INAV 1.6 the plan is to rely even less on GPS altitude when baro is enabled. + +**In general you shouldn't use ALTHOLD with ACRO/HORIZON: ALTHOLD doesn't account for extreme acro manoeuvres.** + +Activate ALTHOLD by **ALTHOLD** flight mode. +Altitude, as calculated by INAV's position estimator, is recorded to BLACKBOX as navPos[2]. + +### a) Using ALTHOLD with a multicopter (mc): +Using ALTHOLD with a multicopter, you need a barometer for reliable stable flight. + +Activate AIRMODE to keep the copter stable in fast descent - now you can do the whole flight in altitude hold - from take-off to landing. + +Climb rate in ALTHOLD mode: +Throttle input indicates climb or sink up to a predetermined maximum rate (see CLI variables). +"set nav_max_climb_rate = 500" and "set nav_manual_climb_rate = 200" define the maximum climb and decent rate in autonomous/manual flight modes. +The neutral position of the throttle stick to hold current altitude is defined by +- “set nav_use_midthr_for_althold=ON”: use mid position of throttle stick as neutral. By default the mid position value is typically 1500us as set in the "Receiver" tab. This option may be most useful for people who have althold enabled at all times, not switchign bqwteen althold and non-althold modes. +- “set nav_use_midthr_for_althold =OFF”: use current stick position (i.e. when activating ALTHOLD) as neutral. This option may be most useful if you intend to switch althold on and off during a flight. [Yet, if "nav_use_midthr_for_althold=OFF”, and you enable ALTHOLD with throttle stick too low (like on the ground) INAV will take “thr_mid” as a safe default for neutral. “thr_mid” is defined in the “Receiver” tab and should be set to hover throttle.] + +In the moment you engage ALTHOLD, INAV always sends “nav_mc_hover_thr” to the motors as the starting value of the altitude control loop. You should configure this to your copter's hover setting, if your copter doesn't hover close to the default value of 1500us. Otherwise your copter will begin ALTHOLD with a jump or drop. + +Example: Let's assume "nav_mc_hover_thr” is already set correctly to your copter's hover throttle and “set nav_use_midthr_for_althold =OFF”. Let's say you have your throttle stick at 30%, and you enter ALTHOLD, your copter will maintain hover at this 30%. If throttle is increased up to 40% it will start to climb. (Even if your copter needs 60% throttle to actually climb up in normal flight without ALTHOLD.) + +It's important to note that when the battery is full, "nav_mc_hover_thr” could be a lower value than when the battery is weaker. With a weaker battery more throttle will be needed to maintain a hover. A practical way to establish an approximate valid value is to use the INAV OSD screen to test values real-time when in the field. Once an approximate "nav_mc_hover_thr” has been established, then adjust the PIDs as described in the "PIDs for altitude hold" section below. + +"set alt_hold_deadband = 50": You have to change throttle command (e.g. move throttle stick) by at least this amount to make the copter climb or descend and change target altitude for ALTHOLD. +If ALTHOLD is activated at zero throttle INAV will account for deadband and move the neutral "zero climb rate" position a little bit up to make sure you are able to descend. + + +PIDs for altitude hold: +_**The following values can be accessed using INAV OSD when configured for FPV from the "ALT MAG" screen within the "PIDS" section. Alternatively, the comparable variable, in parenthesis (), can be entered in the CLI of INAV Configurator.**_ +- ALT P (nav_mc_pos_z_p) - defines how fast copter will attempt to compensate for altitude error (converts alt error to desired climb rate) +- ALT I (nav_auto_climb_rate) - defines how fast copter will accelerate to reach desired climb rate +- VEL P (nav_mc_vel_z_p) - defines how much throttle copter will add to achieve desired acceleration +- VEL I (nav_mc_vel_z_i)- controls compensation for hover throttle (and vertical air movement, thermals). This can essentially be zero if hover throttle is precisely 1500us. Too much "VEL I" will lead to vertical oscillations, too low "VEL I" will cause drops or jumps when ALTHOLD is switched on. +- VEL D (nav_mc_vel_z_d)- acts as a dampener for VEL P and VEL I, will slower the response and reduce oscillations from too high VEL P and VEL I +- If ALT P (nav_mc_pos_z_p) and ALT I (nav_auto_climb_rate) have been set to zero (0) during the PID adjustments, setting ALT P (nav_mc_pos_z_p) to a non-zero value (100?), will have the effect of changing the ALTHOLD altitude using the throttle. Once again, the easiest trial and error testing is done through the INAV OSD while in the field. + +Inability to maintain altitude can be caused by a number of reasons: +1. insufficient ALT_P and/or ALT_I +2. non-functional baro (please go to "Sensors" tab in Configurator and verify that baro graph changes as you move the quad up and down +3. seriously underpowered quad (ALTHOLD is able to compensate only to some degree. If your quad hovers at 1700 linear throttle without any expo, ALTHOLD might fail to compensate) +4. Gaining altitude during fast flight is likely due to increased air pressure and that is treated as going down in altitude - try covering your baro with (more) foam. + +ALT+VEL PID Tuning +Let's make a small experiment: Make sure baro is well isolated. You may also want to reduce baro weight: +- "set inav_w_z_baro_p = 0.5" and "set ALT P(nav_mc_pos_z_p) = 0" and try flying. This way the controller will attempt to keep zero climb rate without any reference to altitude. The quad should slowly drift either up or down. If it would be jumping up and down, your "VEL * (nav_mc_vel_z_*)" gains are too high. + +- As a second step you can try zeroing out "VEL P (nav_mc_vel_z_p)" and "VEL I (nav_mc_vel_z_i)" and "set VEL D (nav_mc_vel_z_d) = 100". Now the quad should be drifting up/down even slower. Raise "VEL D (nav_mc_vel_z_d)" to the edge of oscillations. + +- Now raise "VEL P (nav_mc_vel_z_p)" to the edge of oscillations. Now ALTHOLD should be almost perfect. + +- And finally "set nav_mc_hover_thr" slightly (50-100) higher/lower than your actual hover throttle and tune "VEL I (nav_mc_vel_z_i)" until the quad is able to compensate. + +Keep in mind that no tuning can fix bad baro isolation issue. + +If quad is buzzing while ALTHOLD is activated try lowering "VEL P (nav_mc_vel_z_p)" a bit. + +What is the trick with "VEL I (nav_mc_vel_z_i)"? +"VEL I (nav_mc_vel_z_i)" is used to compensate for "nav_mc_hover_thr" (hover throttle) being set to a slightly incorrect value. You can't set hover throttle to an exact value, there is always influence from thermals, battery charge level etc. Too much "VEL I (nav_mc_vel_z_i)" will lead to vertical oscillations, too low "VEL I (nav_mc_vel_z_i)" will cause drops or jumps when ALTHOLD is enabled, very low "VEL I (nav_mc_vel_z_i)" can result in total inability to maintain altitude. + +To deal with oscillations you can try lowering your "ALT P (nav_mc_alt_p)", "VEL P (nav_mc_vel_p)", "ALT I (nav_auto_climb_rate)", and "nav_manual_climb_rate". + +Climb rate is calculated from the readings of the accelerometer, barometer and – if available – from GPS (“set inav_use_gps_velned = ON”). How strongly the averages of these noisy signals are taken into account in the estimation of altitude change by INAV is controlled by +- set inav_w_z_baro_p = 0.350 +- set inav_w_z_gps_p = 0.200 +for vertical position (z) and +- set inav_w_z_gps_v = 0.500 +for vertical velocity. Too high “inav_w_z_baro_p” will make ALTHOLD nervous, and too low will make it drift so you risk running into the ground when cruising around. Using GPS readings for vertical velocity allows for a lower weight for baro to make ALTHOLD smoother without making it less accurate. + +// : explain remaining relevant settings + +### b) Using ALTHOLD with an airplane (fixed wing, FW): +**With Fixed Wing models, INAV is not intended to use ALTHOLD controller in anything but ANGLE mode. It should not be used on it's own, or with other modes.** + +INAV controls pitch angle and throttle. It assumes that altitude is held (roughly) when pitch angle is zero. If plane has to climb, INAV will also increase throttle. If plane has to dive, INAV will reduce throttle and glide. The strength of this mixing is controlled by “nav_fw_pitch2thr”. +Trim the aircraft and set Fixed Wing Level Trim in such a way that your plane is flying level both in "MANUAL" and in "ANGLE", when you don't touch the sticks. + +INAV’s parameters for fixed wing: +- set nav_fw_cruise_thr = 1400 # cruise throttle +- set nav_fw_min_thr = 1200 # minimum throttle +- set nav_fw_max_thr = 1700 # maximum throttle +- set nav_fw_bank_angle = 20 +- set nav_fw_climb_angle = 20 +- set nav_fw_dive_angle = 15 +- set nav_fw_pitch2thr = 10 # pitch to throttle +- set nav_fw_loiter_radius = 5000 + +## NAV POSHOLD - Position hold + +MULTIROTOR + +For multirotors it will hold 3D position. Altitude is controlled as ALTHOLD mode above - leaving the throttle stick centered will maintain the current altitude. +You can use your roll and pitch stick to move around. The POSHOLD will be resumed when you center the roll/pitch stick again. HEADING HOLD is now included automatically to achieve 3D stability and it is therefore unwise to add it yourself as well. It is adjustable in the CLI via the parameter 'heading_hold_rate_limit'. The default at the time of writing is heading_hold_rate_limit = 90. + +POSHOLD permits smooth controlled flight and can be modified via the ADVANCED TUNING TAB under the heading Multirotor Navigation Settings + + The User Control Mode can be either ATTI or CRUISE: + +- ATTI - When the Pitch/Roll sticks are moved, autopilot position control is disengaged. So the multirotor behaves with the freedom of ANGLE mode. +- CRUISE - The autopilot position control always remains active. So when the Pitch/Roll sticks are moved, the input is transformed from a command + to speed and merged with the current position. To provide more precise 3D position control over the craft. But will feel less fluid than ATTI. + +A number of other parameters can also be set: + +- Default navigation speed +- Max. navigation speed +- Max. CRUISE speed +- Multirotor max. banking angle +- Use mid. throttle for ALTHOLD +- Hover throttle + + +FIXED WING + +For fixed wing it will loiter in circles which radius is defined by the `nav_fw_loiter_radius` variable. The throttle is automatic. The altitude is controlled with the pitch stick (AH). + +Always check POSHOLD is working correctly, before you use RTH or start a WP mission. + +Hints for safe operation: +- Activate without props installed to check for reasonable operation. +- When misconfigured, this mode can result in dramatic failure to hold position. Attitude (yaw & motion) inputs can/will result in rapid and unexpected motion. + +## NAV COURSE HOLD - Course Hold + +Course hold is only available for multirotor from INAV 7.0. + +When enabled the craft will try to maintain the current course and compensate for any external disturbances (2D CRUISE). Control behaviour is different for fixed wing and multirotor as follows: + +**Fixed wing** +The flight direction is controlled directly with ROLL stick as usual or with the YAW stick which provides a smoother way to adjust the flight direction. + +**Multirotor** +The heading is adjusted using the YAW stick or the ROLL stick (ROLL stick behaves exactly the same as the YAW stick). Cruise speed is increased by raising the pitch stick with the speed set in proportion to stick deflection up to a maximum limit of `nav_manual_speed`. This speed is maintained after the stick returns to centre. If the multirotor is already moving when Course Hold is selected the current speed will be maintained up to the `nav_manual_speed` limit. Speed is decreased by lowering the pitch stick with the rate of reduction proportional to stick position such that at maximum deflection it should take around 2s to slow to a stop. Position is held when the speed drops below 0.5m/s. + +`nav_cruise_yaw_rate` sets the yaw rate at full stick deflection (only applicable for YAW stick control on fixed wing). + +If the mode is enabled in conjunction with NAV ALTHOLD the current altitude will also be maintained (CRUISE). Altitude can be adjusted, as usual, via the pitch stick for fixed wing or the throttle stick for multirotor. ANGLE mode is active so the craft will auto level and heading hold is active on a multirotor. + +## NAV CRUISE - Course Hold + Altitude Hold + +Equivalent to the combination of NAV COURSE HOLD and NAV ALTHOLD described above. + +## RTH - Return to home +RTH will attempt to bring copter/plane to launch position. Launch position is defined as a point where aircraft was armed. RTH will control both position and altitude. You will have to manually control altitude if your aircraft does not have an altitude sensor (barometer). + +With default settings RTH will land immediately if you are closer than 5 meters from launch position. If further away it will make sure to have at least 10 meters of altitude, then start going home at 3m/s, and land. It will disarm itself if so configured, otherwise you will have to manually disarm once on the ground. + +There are many different modes for Altitude, see the [RTH mode page](./Navigation-Mode-Return-to-Home.md#rth-altitude-control-modes) for details. + +Activated by **RTH** flight mode. + + +## WP - Autonomous waypoint mission +Autonomous waypoint missions allow the craft to fly a predefined sequence of mission waypoints. The mission waypoints include information about the type of waypoint, latitude, longitude, height and speed between the waypoints as well as other settings that control the behaviour during a mission. GUIs such as INAV Configurator Mission Control, [MWP Tools](https://github.com/stronnag/mwptools), EZ-GUI, Mission Planner for INAV, Mobile Flight and can be used to set the waypoints and upload the mission as well as store missions locally for reuse. Uploaded missions are saved in FC volatile memory until a reboot or a new uploaded mission overwrites the old one. Missions can also be saved to EEPROM non volatile memory which retains the mission after power off/reboot. + +When waypoint mode is activated (using a switch as other modes), the quad/plane will start to fly the waypoint mission following the waypoints in numerical order. Waypoint missions can be interrupted during a mission by switching NAV WP off (Manual mode on a fixed wing or RTH will also interrupt a WP mission). Up to INAV 4.0 WP missions always start from the first WP. From INAV 4.0 it is possible to resume an interrupted mission from an intermediate WP using the [nav_wp_mission_restart](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_wp_mission_restart) setting. + +Up to 30 waypoints can be set on F1 boards. On F3 boards and better 60 waypoints are available. This is increased to 120 waypoints from INAV 4.0. + +There is an additional [[wiki page further describing way point missions, tools and telemetry options|iNavFlight Missions]]. + +The [MSP navigation message protocol documentation](../advanced/MSP-Navigation-Messages.md) describes optional parameters affecting WP behaviour. + +### Fixed Wing Waypoint Tracking Accuracy and Turn Smoothing +Waypoint tracking accuracy forces the craft to quickly head toward and track along the waypoint course line as closely as possible. 2 settings control the alignment behaviour. [nav_fw_wp_tracking_accuracy](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_tracking_accuracy) adjusts the stability of the alignment. Higher values dampen the response reducing possible overshoot and oscillation. [nav_fw_wp_tracking_max_angle](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_tracking_max_angle) +sets the maximum alignment convergence angle to the waypoint course line (see below). This is the maximum angle allowed during alignment and in reality will only be acheived when some distance away from the course line with the angle reducing as the craft gets closer to alignment. Lower values result in smoother alignment with the course line but a greater distance along the course line will be required until this is achieved. + +Turn Smoothing helps to smooth turns during WP missions by switching to a loiter turn at waypoints with the turn initiated slightly before the waypoint is actually reached. This helps to avoid the overshoot often seen on tighter turns. The [nav_fw_wp_turn_smoothing](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_turn_smoothing) setting provides 2 options as shown below. + +(Available from INAV 6.0) + +![](https://user-images.githubusercontent.com/56191411/216628721-034b4864-212d-47c7-89dd-c0f4c012cb0f.png) + +### Multi-Missions +Multi-missions allows up to 9 missions to be stored in the FC at the same time. It works with missions saved to and loaded from EEPROM rather than missions loaded into the FC by other means. It requires the OSD `MISSION INFO` field be enabled in order to select loaded missions. + +Multi-missions can be planned in Configurator Mission Control or MWP Tools and saved to/loaded from the FC as normal. It is also possible to load them into the FC [using the CLI.](https://github.com/iNavFlight/inav/blob/master/docs/Navigation.md#cli-command-wp-to-manage-waypoints) + +The OSD `MISSION INFO` field will display the total number of missions loaded on power up. The required mission can be selected either by using the CMS MISSIONS menu or by using the roll stick to change the mission number in the `MISSION INFO` field. `MISSION INFO` will display the mission waypoint count if the current mission number is loaded or 'LOAD' if it isn't. To load a mission use the Mission load stick command. It is also possible to change missions in flight using adjustment function `Multi mission Index Adjustment` or by selecting `MISSION CHANGE` mode. The mission index is changed in `MISSION CHANGE` mode using the WP mode switch to cycle through the available missions. The newly selected mission becomes active when either the adjustment function or `MISSION CHANGE` mode is deselected. + +Selecting mission numbers 1 to 9 will load missions saved in EEPROM. Mission selection behaviour changed slightly with INAV 6.0 as follows: + +**Pre INAV 6.0** +It is possible to select Mission number 0 which appears in the `MISSION INFO` field as "WP CNT". This shows the current active WP count loaded in FC volatile memory and changes depending on the Arm state. When disarmed with a mission loaded it shows the total number of WPs for all missions stored in EEPROM. After arming and until another mission is loaded on disarm it displays the number of WPs in the loaded mission. "WP CNT" will also display the waypoint count for missions loaded to the FC from a source other than EEPROM, e.g. via telemetry. When less than 2 missions are loaded in the FC EEPROM mission numbers can only be selected using the CMS MISSIONS menu. + +**From INAV 6.0** +Only mission numbers 1 - 9 can be selected and "WP CNT" only appears if a mission has been loaded from a source other than EEPROM. Also waypoint count now only shows the number of WPs in the selected mission. + +The only limitation with multi missions relates to single WP RTH missions. There seems little purpose in such a mission but if used it must be saved as mission number 1 (if saved at any other position it will truncate loading of other missions beyond that number). + +## WP PLANNER - On the fly waypoint mission planner +WP PLANNER mode allows a mission to be planned "on the fly" simply by moving the craft to a required location and saving a waypoint at that point then repeating for further waypoints until the mission is complete. + +The OSD `MISSION INFO` field must be enabled and WP mode must be off before WP PLANNER mode can be used. With the mode selected the `MISSION INFO` field will display SAVE. To save a waypoint at the current location just operate the WP Mode switch. `MISSION INFO` will display OK if the waypoint was saved and the WP count will increment up. WP Mode must be selected off before another waypoint can be saved (OK will change back to SAVE). `MISSION INFO` will show WAIT if position data isn't valid, e.g. no GPS lock, or FULL if all available waypoints have been used. + +The mission can be run at any time by turning WP PLANNER mode off and selecting WP mode as usual. In this case the `MISSION INFO` field will display PLAN indicating a WP PLANNER mission is currently active. + +The mission can be reset if `nav_mission_planner_reset` is ON and the WP PLANNER Mode switch toggled ON-OFF-ON (resets WP count to 0). It is possible to save the mission to the FC EEPROM on disarm in the usual way, e.g. by using the Save WP Mission stick command. + +It should be noted that unlike other Nav modes WP PLANNER will work when disarmed. It should also be noted that it saves the WP altitude using the sea level datum so if a WP is set with the craft on the ground it will use ground level as the WP altitude setting regardless of the subsequent takeoff location. + +## GCS_NAV - Ground control station +This mode is just an permission for GCS to change position hold coordinates and the altitude. +So it's not a flight mode itself, and needs to be combined with other flight modes. + +In order to let the GCS have full control over the aircraft, e.g. 'follow me', the following modes must be activated: `NAV POSHOLD` with `GCS_NAV`. In order to update the home position, no other mode is required. + +For more [detail](../advanced/INAV-remote-management-control-and-telemetry.md#follow-me-gcs-nav). + +## GPS loss during navigation +Loss of GPS during navigation will have the following affect on the different modes: + +- RTH and WP: Emergency landing triggered. Switching the modes off will stop the emergency landing allowing the craft to be flown manually. +- CRUISE/COURSE HOLD: Heading hold no longer maintained (Altitude hold only maintained during CRUISE if ALTHOLD mode set independently). +- POSHOLD: Falls back to forced ANGLE mode. +- ALTHOLD mode should still work normally if a barometer is available. + +## Emergency Landing +An emergency landing will be triggered during WP and RTH modes if navigation sensors fail or in the case of RTH if the craft heads off in the wrong direction. + +It is also possible to manually trigger an emergency landing at any time using [MULTIFUNCTION](./Modes.md#multi-function) mode or by using [POSHOLD](./Navigation-modes.md#nav-poshold---Position-hold) mode. To trigger using POSHOLD mode rapidly toggle the mode ON/OFF at least 5 times. Repeat this action to cancel the emergency landing once started. + +## Mode switch diagram + +A diagram to indicate flight modes relation to navigation modes and illustrate sensor requirements: + +![](/img/content/nav_modes_diagram.jpg) diff --git a/versioned_docs/version-8.0.1/features/Sensor-auto-detect-and-hardware-failure-detection.md b/versioned_docs/version-8.0.1/features/Sensor-auto-detect-and-hardware-failure-detection.md new file mode 100644 index 0000000..c908c4f --- /dev/null +++ b/versioned_docs/version-8.0.1/features/Sensor-auto-detect-and-hardware-failure-detection.md @@ -0,0 +1,32 @@ +--- +title: Sensor Auto Detect and Hardware Failure Detection +--- + +# How auto detect works in INAV + +On INAV when mag_hardware and baro_hardware is set to `AUTO` it tries to auto detect which sensor is connected. +When it finds a sensor it will change the parameter to the one found, example `BMP280`. If it fails to find any sensor it will set *_hardware to `NONE` + +Reason for switching from `AUTO` to the detected sensor is to make the hardware failure detection work properly. + +Default value after a new firmware flash is `AUTO`, this will cause the firmware to look for sensors on first boot, and set the found sensors. + +If you connect a magnetometer after first boot it will not auto-detect it, then you will have to either specify `mag_hardware` manually, or do a new `mag_hardware = AUTO` to try and auto detect mag. ( This also applies if you already have an external mag connected, but don't have it powered up on first boot ) + +# Hardware failure detection + +Since version 1.5 INAV features hardware failure detection. At run time all sensors - GPS, BARO, MAG, ACC, GYRO, SONAR are periodically checked by a diagnostic system. There are 4 cases for each sensor: + +**Case #1**: If sensor is not configured (`*_hardware` setting set to `NONE` or in case of GPS feature is not enabled) it's not monitored by diagnostic system, reported as `NOT AVAILABLE` and is not considered as a hardware failure. + +If sensor is configured it's checked periodically and it's status is reported to Configurator via MSP and also used for pre-flight checks. + +**Case #2**: Sensor is configured, but not detected. This can happen if you configure a sensor that is not present i.e. by accidentally setting `mag_hardware` to `MAG3110` while your compass chip is `HMC5883`. In this case sensor is reported as `NOT DETECTED` and this status is considered as a hardware failure. + +**Case #3**: Sensor is configured, detected correctly, but reports inconsistent readings. This check may not be implemented for certain sensor but if it does such sensor is reported as `NOT HEALTHY` and is considered as a hardware failure. + +**Case #4**: Sensor is configured, detected correctly and reports sane and consistent data. This is reported as `GOOD` status. + +If any of the sensors is in `NOT DETECTED` or `NOT HEALTHY` state - the board will not ARM and `FAIL` will be indicated for `Hardware health` pre-arming check in the Configurator. + +Hardware detection failure does not work while in flight. Only detection working is if INAV looses position data, and it does not have knowledge of where it is anymore, example loosing GPS lock. This will cause the machine to exit GPS modes, and if its during fail-safe RTH it will emergency land. diff --git a/versioned_docs/version-8.0.1/features/_category_.json b/versioned_docs/version-8.0.1/features/_category_.json new file mode 100644 index 0000000..e456a6a --- /dev/null +++ b/versioned_docs/version-8.0.1/features/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Features", + "position": 2 +} diff --git a/versioned_docs/version-8.0.1/legacyinfo/Default-values-for-different-type-of-aircrafts.md b/versioned_docs/version-8.0.1/legacyinfo/Default-values-for-different-type-of-aircrafts.md new file mode 100644 index 0000000..414cfe8 --- /dev/null +++ b/versioned_docs/version-8.0.1/legacyinfo/Default-values-for-different-type-of-aircrafts.md @@ -0,0 +1,340 @@ +--- +title: Default Values for Different Type of Aircrafts +--- + +**This is outdated, INAV 1.6 is out and is using PRESET. Values here are old and variable names have changed by adding "mc" and "fw" to differentiate between multicopter and fixed wing.** + +Values written here must be based on 1.2 or later! + +This is not a replacement for tuning your PIDs, this is only a starting point from you to tune from. There are various tutorials on the internet on how to tune your PIDs. + +Worth reading regards to deciding to use asynchronous mode. https://quadmeup.com/inav-how-to-setup-asynchronous-gyro/ + +### History: **PLEASE WRITE HERE IF YOU CHANGE ANYTHING AND WHY.** +``` +05.01.3017 oleøst: Changed some settings in 250 class. +21.11.2016 oleoat: Removed disabling of baro because fixed in INAV 1.4 +21.11.2016 oleoat: Changed recommend gyro_lpf on flying wing, should probably be changed on acrobatic airplanes aswell +17.11.2016 oleost: Added disabled baro for fixedwing until [543](https://github.com/iNavFlight/inav/pull/543) is fixed +17.11.2016 oleost: Added values for fixed wing. +03.10.2016 artekw: Added default settings for F450 +01.10.2016 oleost: Removed old PIDs based on pre 1.2 +10.07.2016 oleost: Added disabling mag on flying wing aswell +24.06.2016 oleost: Created first version of this wiki +24.06.2016 oleost: Changed default to "mag_hardware = 1" on regular regular airplane because airplanes flies better with gps heading instead of mag heading. +24.06.2016 oleost: removed looptime 1000, to low for f1 targets. +2016-11-21 stronnag Added Quad 250 settings for F3/ INAV 1.4 +2016-11-21 stronnag Added Tri 600 settings for F3/ INAV 1.4 +``` + +# Change to default INAV settings + +Changes **you** think that should be done to INAV globally: + +``` +24.06.2016 oleost: Change default to velned on because it generally looks like a better solution. (use_gps_velned = 1) + +``` + +# Multirotor + +**150 Size:** + +_PIDs:_ + +``` + +``` + +_Navigation PIDs:_ + +``` + +``` + +_Other Values:_ + +``` + +``` + +**250 Size:** + + +_PIDs:_ + +``` +set p_pitch = 55 +set i_pitch = 40 +set d_pitch = 15 +set p_roll = 55 +set i_roll = 40 +set d_roll = 15 +set p_yaw = 90 +set i_yaw = 45 +set d_yaw = 20 +set p_level = 20 +set i_level = 15 +set d_level = 75 +``` + + +_Navigation PIDs:_ + +``` + +``` + +_Other Values:_ + +``` +set gyro_lpf = 256hz +set tpa_rate = 10 +set tpa_breakpoint = 1650 + +Also reduce looptime if your FC is capable of it. +set looptime = 1000 +set gyro_sync = on +set gyro_sync_denom = 8 +``` + +**450 Size:** +``` +Weight: ~1200g (with battery) +Props: 10x4.5 +Battery: 3s 5200mAh +``` + +_PIDs:_ +``` +set p_pitch = 90 +set i_pitch = 34 +set d_pitch = 54 +set p_roll = 90 +set i_roll = 34 +set d_roll = 54 +set p_yaw = 70 +set i_yaw = 20 +set d_yaw = 0 +set p_level = 22 +set i_level = 15 +set d_level = 75 +``` +_Navigation PIDs:_ + +``` +set nav_alt_p = 50 +set nav_alt_i = 0 +set nav_alt_d = 0 +set nav_vel_p = 100 +set nav_vel_i = 50 +set nav_vel_d = 10 +set nav_pos_p = 65 +set nav_pos_i = 120 +set nav_pos_d = 10 +set nav_posr_p = 180 +set nav_posr_i = 15 +set nav_posr_d = 100 +set nav_navr_p = 10 +set nav_navr_i = 5 +set nav_navr_d = 8 +``` + +_Other Values:_ + +``` +set imu_dcm_ki = 0 +set gyro_sync = ON +set gyro_sync_denom = 2 +set gyro_lpf = 42HZ +``` + +**600 Tricopter:** + +Home design 600mm tricopter. Same amateur pilot who only ever flies in horizon /LOS. + +```` +3S, 4200mAh (Graphene), 10x5 HQ Thin Electic props, 1000kv. c. 900grams all up. +INAV 1.4 for the rockin' async_gyro. +Gets about 18 minutes gentle / nav modes, maybe 16 mins for aggressive manual flying. + +F3 (SPEVO). Enjoys the relatively high PIDs. +```` + +_PIDs:_ + +``` +set p_pitch = 110 +set i_pitch = 20 +set d_pitch = 52 +set p_roll = 110 +set i_roll = 20 +set d_roll = 52 +set p_yaw = 75 +set i_yaw = 20 +set d_yaw = 0 +set p_level = 20 +set i_level = 20 +set d_level = 75 +``` + +_Navigation PIDs:_ + +``` +set nav_alt_p = 50 +set nav_alt_i = 0 +set nav_alt_d = 0 +set nav_vel_p = 100 +set nav_vel_i = 50 +set nav_vel_d = 10 +set nav_pos_p = 65 +set nav_pos_i = 120 +set nav_pos_d = 0 +set nav_posr_p = 180 +set nav_posr_i = 15 +set nav_posr_d = 100 +set nav_navr_p = 10 +set nav_navr_i = 5 +set nav_navr_d = 8 +``` + +_Other Values:_ + +``` +smix reverse 5 2 r # for the tail servo :) +set looptime = 1000 +set gyro_sync = ON +set gyro_sync_denom = 8 +set async_mode = GYRO +set gyro_lpf = 256HZ +set motor_pwm_rate = 2000 +set motor_pwm_protocol = ONESHOT125 +set servo_pwm_rate = 160 + +set gps_provider = UBLOX +set gps_sbas_mode = EGNOS +set gps_dyn_model = AIR_1G + +set rc_expo = 70 +set rc_yaw_expo = 20 +set thr_mid = 50 +set thr_expo = 0 +set roll_rate = 55 +set pitch_rate = 48 +set yaw_rate = 20 +set tpa_rate = 20 +set tpa_breakpoint = 1650 +``` + + +**600 Size:** + +_PIDs:_ + +``` + +``` + +_Navigation PIDs:_ + +``` + +``` + +_Other Values:_ + +``` + +``` + + +# Fixedwing + +**Regular plane** + +_PIDs:_ + +``` + +``` + +_Navigation PIDs:_ + +``` +set nav_alt_p = 50 +set nav_alt_i = 0 +set nav_alt_d = 0 +set nav_vel_p = 100 +set nav_vel_i = 50 +set nav_vel_d = 10 +set nav_pos_p = 65 +set nav_pos_i = 120 +set nav_pos_d = 10 +set nav_posr_p = 180 +set nav_posr_i = 150 +set nav_posr_d = 100 +set nav_navr_p = 200 +set nav_navr_i = 10 +set nav_navr_d = 0 +``` + +_Other Values:_ + +``` +set mag_hardware = 1 +set auto_disarm_delay = 0 +set small_angle= 70 +``` + +**Flying wing** + +_PIDs:_ + +``` +set p_pitch = 20 +set i_pitch = 30 +set d_pitch = 15 +set p_roll = 25 +set i_roll = 30 +set d_roll = 15 +set p_yaw = 0 +set i_yaw = 0 +set d_yaw = 0 +set p_level = 20 +set i_level = 5 +set d_level = 75 + +``` + +_Navigation PIDs:_ + +``` + +``` + +_Other Values:_ + +``` +set mag_hardware = none +set gyro_sync = ON +set gyro_sync_denom = 1 +set gyro_lpf = 98HZ +set gyro_soft_lpf_hz = 40 +set acc_soft_lpf_hz = 15 +set dterm_lpf_hz = 30 +set nav_fw_launch_accel = 1500 +set nav_fw_launch_detect_time = 40 +set nav_fw_launch_thr = 1600 +set nav_fw_launch_motor_delay = 150 +set naw_fw_launch_timeout = 5000 +set naw_fw_launch_climb_angle = 13 +set max_angle_inclination_rll = 600 +set max_angle_inclination_pit = 450 + +set rc_expo = 40 +set tpa_rate = 33 +set tpa_breakpoint = 1300 + +set auto_disarm_delay = 0 +set small_angle= 70 +``` diff --git a/versioned_docs/version-8.0.1/legacyinfo/Fixed-Wing-Tuning-for-INAV-3.0.md b/versioned_docs/version-8.0.1/legacyinfo/Fixed-Wing-Tuning-for-INAV-3.0.md new file mode 100644 index 0000000..c2374a7 --- /dev/null +++ b/versioned_docs/version-8.0.1/legacyinfo/Fixed-Wing-Tuning-for-INAV-3.0.md @@ -0,0 +1,29 @@ +--- +title: Fixed Wing Tuning for iNav 3.0 +--- + +This is a basic overview of the steps to perform autotune and auto board pitch alignment in INAV 3.0 + +# Initial Setup +* Enable "Continuous trim servos on Fixed Wing" in configuration tab +* Modes Tab + * Create acro/autotune flight mode. It's recommended to add P,I,FF values on your OSD to see values changing. + * Create angle mode w/ autolevel. + +# Tuning Flight +* Take off +* Fly in acro mode +* Switch on autotune +* Give full roll and pitch inputs +* Turn off autotune +* Switch to angle/autolevel mode +* Switch back to acro +* Land +* Disarm +* Save(stick command) + +When satisfied with performance, remove "autolevel" and "autotune" modes. + +"Fixed Wing Level Trim" can be checked in the "PID Tuning" tab at the bottom of the "Mechanics" internal tab. + +Confirm in the "Outputs" tab that your servo "MID" positions are within a value of 1450 and 1550. If outside this range, it is recommended to mechanically trim your control surfaces to 1500 value. After a good servo center has been attained you can disable "Continuous trim servos on Fixed Wing" diff --git a/versioned_docs/version-8.0.1/legacyinfo/Legacy-Mixers.md b/versioned_docs/version-8.0.1/legacyinfo/Legacy-Mixers.md new file mode 100644 index 0000000..b1dceaa --- /dev/null +++ b/versioned_docs/version-8.0.1/legacyinfo/Legacy-Mixers.md @@ -0,0 +1,137 @@ +--- +title: Legacy Mixers +--- + +## Overview + +In INAV 2.0 (and hence in *development* after the release of inav 1.9.1), all mixers are removed from the flight controller. Mixers can be assigned by either the Configurator 2.0, or in the CLI. If the CLI is used: + +* The `mixer` statement is removed +* The new settings `platform_type` and `model_preview_type` are required, see Cli.md. + +For further exotic mixes, see also https://github.com/iNavFlight/inav/wiki/Custom-mixes-for-exotic-setups + +# CLI mmix / smix for legacy mixers + +The following captures `mmix` / `smix` values in the FC for 1.9.1 and earlier. + +``` +# mmix load TRI +mmix 0 1.000 0.000 1.333 0.000 +mmix 1 1.000 -1.000 -0.667 0.000 +mmix 2 1.000 1.000 -0.667 0.000 + +smix 0 5 2 100 0 + +# mmix load QUADP +mmix 0 1.000 0.000 1.000 -1.000 +mmix 1 1.000 -1.000 0.000 1.000 +mmix 2 1.000 1.000 0.000 1.000 +mmix 3 1.000 0.000 -1.000 -1.000 + +# mmix load QUADX +mmix 0 1.000 -1.000 1.000 -1.000 +mmix 1 1.000 -1.000 -1.000 1.000 +mmix 2 1.000 1.000 1.000 1.000 +mmix 3 1.000 1.000 -1.000 -1.000 + +# mmix load Y6 +mmix 0 1.000 0.000 1.333 1.000 +mmix 1 1.000 -1.000 -0.667 -1.000 +mmix 2 1.000 1.000 -0.667 -1.000 +mmix 3 1.000 0.000 1.333 -1.000 +mmix 4 1.000 -1.000 -0.667 1.000 +mmix 5 1.000 1.000 -0.667 1.000 + +# mmix load HEX6 +mmix 0 1.000 -0.866 0.500 1.000 +mmix 1 1.000 -0.866 -0.500 -1.000 +mmix 2 1.000 0.866 0.500 1.000 +mmix 3 1.000 0.866 -0.500 -1.000 +mmix 4 1.000 0.000 -1.000 1.000 +mmix 5 1.000 0.000 1.000 -1.000 + +# mmix load FLYING_WING +mmix 0 1.000 0.000 0.000 0.000 +mmix 1 1.000 0.000 0.000 0.000 + +smix 0 3 0 50 0 +smix 1 3 1 50 0 +smix 2 4 0 -50 0 +smix 3 4 1 50 0 + +# mmix load Y4 +mmix 0 1.000 0.000 1.000 -1.000 +mmix 1 1.000 -1.000 -1.000 0.000 +mmix 2 1.000 0.000 1.000 1.000 +mmix 3 1.000 1.000 -1.000 0.000 + +# mmix load HEX6X +mmix 0 1.000 -0.500 0.866 1.000 +mmix 1 1.000 -0.500 -0.866 1.000 +mmix 2 1.000 0.500 0.866 -1.000 +mmix 3 1.000 0.500 -0.866 -1.000 +mmix 4 1.000 -1.000 0.000 -1.000 +mmix 5 1.000 1.000 0.000 1.000 + +# mmix load OCTOX8 +mmix 0 1.000 -1.000 1.000 -1.000 +mmix 1 1.000 -1.000 -1.000 1.000 +mmix 2 1.000 1.000 1.000 1.000 +mmix 3 1.000 1.000 -1.000 -1.000 +mmix 4 1.000 -1.000 1.000 1.000 +mmix 5 1.000 -1.000 -1.000 -1.000 +mmix 6 1.000 1.000 1.000 -1.000 +mmix 7 1.000 1.000 -1.000 1.000 + +# mmix load OCTOFLATP +mmix 0 1.000 0.707 -0.707 1.000 +mmix 1 1.000 -0.707 -0.707 1.000 +mmix 2 1.000 -0.707 0.707 1.000 +mmix 3 1.000 0.707 0.707 1.000 +mmix 4 1.000 0.000 -1.000 -1.000 +mmix 5 1.000 -1.000 0.000 -1.000 +mmix 6 1.000 0.000 1.000 -1.000 +mmix 7 1.000 1.000 0.000 -1.000 + +# mmix load OCTOFLATX +mmix 0 1.000 1.000 -0.414 1.000 +mmix 1 1.000 -0.414 -1.000 1.000 +mmix 2 1.000 -1.000 0.414 1.000 +mmix 3 1.000 0.414 1.000 1.000 +mmix 4 1.000 0.414 -1.000 -1.000 +mmix 5 1.000 -1.000 -0.414 -1.000 +mmix 6 1.000 -0.414 1.000 -1.000 +mmix 7 1.000 1.000 0.414 -1.000 + +# mmix load AIRPLANE +mmix 0 1.000 0.000 0.000 0.000 +mmix 1 1.000 0.000 0.000 0.000 + +smix 0 3 0 100 0 +smix 1 4 0 100 0 +smix 2 3 14 100 0 +smix 3 4 14 -100 0 +smix 4 5 2 100 0 +smix 5 2 1 100 0 + +# mmix load VTAIL4 +mmix 0 1.000 -0.580 0.580 1.000 +mmix 1 1.000 -0.460 -0.390 -0.500 +mmix 2 1.000 0.580 0.580 -1.000 +mmix 3 1.000 0.460 -0.390 0.500 + +# mmix load HEX6H +mmix 0 1.000 -1.000 1.000 -1.000 +mmix 1 1.000 -1.000 -1.000 1.000 +mmix 2 1.000 1.000 1.000 1.000 +mmix 3 1.000 1.000 -1.000 -1.000 +mmix 4 1.000 0.000 0.000 0.000 +mmix 5 1.000 0.000 0.000 0.000 + +# mmix load ATAIL4 +mmix 0 1.000 0.000 1.000 1.000 +mmix 1 1.000 -1.000 -1.000 0.000 +mmix 2 1.000 0.000 1.000 -1.000 +mmix 3 1.000 1.000 -1.000 0.000 +``` diff --git a/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Colibri-RACE.md b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Colibri-RACE.md new file mode 100644 index 0000000..7b15269 --- /dev/null +++ b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Colibri-RACE.md @@ -0,0 +1,130 @@ +--- +title: Legacy Target Colibri RACE +--- + +# Board - Colibri RACE + +The Colibri RACE is a STM32F3 based flight control designed specifically to work with the TBS POWERCUBE multi rotor stack. + +## Hardware Features: +* STM32F303 based chipset for ultimate performance +* PPM, SBUS, DSM, DSMX input (5V and 3.3V provided over internal BUS). No inverters or hacks needed. +* 6 PWM ESC output channels (autoconnect, internal BUS) + * RGB LED strip support incl. power management + * Extension port for GPS / external compass / pressure sensor + * UART port for peripherals (Blackbox, FrSky telemetry etc.) + * Choose between plug & play sockets or solder pads for R/C and buzzer + * 5V buzzer output + * MPU6500 new generation accelerometer/gyro + * 3x status LED (DCDC pwr/ 3.3V pwr/ status) + * Battery monitoring for 12V, 5V and VBat supply + * Size: 36mmx36mm (30.5mm standard raster) + * Weight: 4.4g + + For more details please visit: + http://www.team-blacksheep.com/powercube + +## Serial Ports + + | Value | Identifier | Board Markings | Notes | + | ----- | ------------ | -------------- | ------------------------------------------| + | 1 | VCP | USB PORT | Main Port For MSP | + | 2 | USART1 | FREE PORT | PC4 and PC5(Tx and Rx respectively) | + | 3 | USART2 | PPM Serial | PA15 | + | 4 | USART3 | GPS PORT | PB10 and PB11(Tx and Rx respectively) | + +## Pinouts + + Full pinout details are available in the manual, here: + + http://www.team-blacksheep.com/colibri_race + + +### SWD - ICSP + + | Pin | Function | Notes | + | --- | -------------- | -------------------------------------------- | + | 1 | VCC_IN | 3.3 Volt | + | 2 | SWDIO | | + | 3 | nRESET | | + | 4 | SWCLK | | + | 5 | Ground | | + | 6 | SWO/TDO | | + +### Internal Bus + + | Pin | Function | Notes | + | --- | -------------- | -------------------------------------------- | + | 1 | PWM1 | MOTOR 1 | + | 2 | PWM2 | MOTOR 2 | + | 3 | PWM3 | MOTOR 3 | + | 4 | PWM4 | MOTOR 4 | + | 5 | PWM5 | MOTOR 5 (For Y6 or Hex X) | + | 6 | PWM6 | MOTOR 6 (For Y6 or Hex X) | + | 7 | BST SDA | Use For TBS CorePro Control Device | + | 8 | BST SCL | Use For TBS CorePro Control Device | + | 9 | PWM7 | Can be a normal GPIO (PA1) or PWM | + | 10 | PWM8 | Can be a normal GPIO (PA2) or PWM | + | 11 | 12.2V DCDC | If 12v is detected, the Blue LED will turn on| + | 12 | 5.1V DCDC | Voltage for MCU | + +### Servo + + | Pin | Function | Notes | + | --- | -------------- | -------------------------------------------- | + | 1 | Ground | | + | 2 | VCC_OUT | 5.1 Volt output to LCD Strip | + | 3 | PWM Servo | PB14 - PWM10 | + +### IO_1 - LED Strip + + | Pin | Function | Notes | + | --- | ----------------- | -------------------------------------------- | + | 1 | LED_STRIP | Enable `feature LED_STRIP` | + | 2 | VCC_OUT | 5.1 Volt output to LCD Strip | + | 3 | Ground | | + +### IO_2 - Sensor Interface + + | Pin | Function | Notes | + | --- | ----------------- | -------------------------------------------- | + | 1 | VCC_OUT | 4.7 Volt output to the device | + | 2 | Ground | | + | 3 | UART3 TX | GPS | + | 4 | UART3 RX | GPS | + | 5 | SDA | mag, pressure, or other i2c device | + | 6 | SCL | mag, pressure, or other i2c device | + +### IO_3 - RC input + + IO_3 is used for RX_PPM/RX_SERIAL. Under the `PORT` tab, set RX_SERIAL to UART2 when using RX_SERIAL. + + | Pin | Function | Notes | + | --- | ----------------- | -------------------------------------------- | + | 1 | PPM/Serial | Can PPM or Serial input | + | 2 | VCC_OUT | 3.3 Volt output to the device | + | 3 | Ground | | + | 4 | VCC_OUT | 5.1 Volt output to the device | + +### IO_4 - Buzzer + + | Pin | Function | Notes | + | --- | ----------------- | -------------------------------------------- | + | 1 | BUZZER | Normal high (5.1v) | + | 2 | VCC_OUT | 5.1 Volt output to the device | + +### IO_5 - Free UART + + | Pin | Function | Notes | + | --- | ----------------- | -------------------------------------------- | + | 1 | UART1 TX | Free UART | + | 2 | UART1 RX | Free UART | + | 3 | Ground | | + | 4 | VCC_OUT | 4.7 Volt output to the device | + +### IO_6 - IR TX (extension) + + | Pin | Function | Notes | + | --- | ----------------- | -------------------------------------------- | + | 1 | IR TX | | + | 2 | Ground | | diff --git a/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Motolab.md b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Motolab.md new file mode 100644 index 0000000..639ea4b --- /dev/null +++ b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Motolab.md @@ -0,0 +1,105 @@ +--- +title: Legacy Target Motolab +--- + +# Board - MotoLab + +The MOTOLAB build target supports the STM32F3-based boards provided by MotoLab. + +At present this includes the TornadoFC and MotoF3. The TornadoFC is described here: + +http://www.rcgroups.com/forums/showthread.php?t=2473157 + +The MotoF3 documentation will be provided when the board is available. + +Both boards use the STM32F303 microcontroller and have the following features: + +* 256K bytes of flash memory +* Floating point math coprocessor +* Three hardware serial port UARTs +* USB using the built-in USB phy that does not interfere with any hadware UART +* Stable voltage regulation +* High-current buzzer/LED output +* Serial LED interface +* Low-pass filtered VBAT input with 1/10 divider ratio +* 8 short-circuit protected PWM outputs, with 5V buffering on the TornadoFC +* On-board 6S-compatible switching regulator (MotoF3) +* Direct mounting option for a Pololu switching regulator for up to 6S lipo operation (TornadoFC) + + +# Flashing + +The MotoLab boards use the internal DFU USB interface on the STM32F3 microcontroller which is not compatible with the INAV configurator flashing tool. + +Instead, on Windows you can use the Impulse Flashing Utility from ImpulseRC, available here: + +http://www.warpquad.com/ImpulseFlash.zip + +Download and unzip the program. Start the program, plug in the USB on the target board, and drag and drop the intended binary file onto the program icon. The program will put the STM32F3 into bootloader mode automatically and load the binary file to the flash. + +For programming on Linux, use the dfu-util program which is installed by default on Ubuntu-based systems. Connect the boot pins on the board and plug in the USB. + +Verify that the system identifies the DFU device with this command: +``` +dfu-util -l +``` + +The output should list a "Found DFU" device, something like this: +``` +dfu-util 0.5 + +(C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc. +(C) 2010-2011 Tormod Volden (DfuSe support) +This program is Free Software and has ABSOLUTELY NO WARRANTY + +dfu-util does currently only support DFU version 1.0 + +Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash /0x08000000/128*0002Kg" +Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=1, name="@Option Bytes /0x1FFFF800/01*016 e" +``` + +Use this command to load the binary file to the flash memory on the board: +``` +dfu-util --alt 0 -s 0x08000000 -D +``` + +The output should look something like this: +``` +dfu-util 0.5 + +(C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc. +(C) 2010-2011 Tormod Volden (DfuSe support) +This program is Free Software and has ABSOLUTELY NO WARRANTY + +dfu-util does currently only support DFU version 1.0 + +Opening DFU USB device... ID 0483:df11 +Run-time device DFU version 011a +Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash /0x08000000/128*0002Kg" +Claiming USB DFU Interface... +Setting Alternate Setting #0 ... +Determining device status: state = dfuDNLOAD-IDLE, status = 0 +aborting previous incomplete transfer +Determining device status: state = dfuIDLE, status = 0 +dfuIDLE, continuing +DFU mode device DFU version 011a +Device returned transfer size 2048 +No valid DFU suffix signature +Warning: File has no DFU suffix +DfuSe interface name: "Internal Flash " +``` + +A binary file is required for the Impulse flashing Utility and dfu-util. The binary file can be built as follows: +``` +make TARGET=MOTOLAB clean +make TARGET=MOTOLAB binary +``` + +To completely erase the flash, create an all-zero file with this command on linux: +``` +dd if=/dev/zero of=zero.bin bs=1 count=262144 +``` + +## Todo + +Pinout documentation diff --git a/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Omnibus-F3.md b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Omnibus-F3.md new file mode 100644 index 0000000..6c05de2 --- /dev/null +++ b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Omnibus-F3.md @@ -0,0 +1,91 @@ +--- +title: Legacy Target Omnibus F3 +--- + +# Board - OMNIBUS F3 + +> This board is not supported in recent INAV releases + +## Hardware Features + +Refer to the product web page: +[OMNIBUS AIO F3 Flight Control](http://shop.myairbot.com/index.php/flight-control/cleanflight-baseflight/omnibusv11.html) + +### Hardware Notes + +There are few things to note on how things are connected on the board. + +1. VBAT (J4) +This is a battery input to the board, and is also a input to voltage sensor. + +2. J11 Power distribution +The RAM is user defined power rail, and all RAM through holes (J6, J7 and J11) are connected together. By connecting 5V or VBAT to RAM at J11, the RAM becomes 5V or VBAT power rail respectively. The VBAT on J11 can also be used to power the Board if necessary. + +3. RSSI (J4) +The pin is labelled as RSSI, but it will not be used for RSSI input for a hardware configuration limitation. In this document, the "RSSI" is used to indicate the pin location, not the function. + +4. UART1 in boot-loader/DFU mode +The UART1 is scanned during boot-loader/DFU mode, together with USB for possible interaction with a host PC. It is observed that devices that autonomously transmits some data, such as GPS, will prevent the MCU to talk to the USB. It is advised not to connect or disconnect such devices to/from UART1. UART2 is safe from this catch. + +## INAV Specific Target Configuration + +The first support for the OMNIBUS F3 appeared in BetaFlight. +The OMNIBUS target in INAV has different configuration from the BetaFlight support, to maximize the hardware resource utilization for navigation oriented use cases. + + [PIN CONFIGURATION PIC HERE] + +### PWM Outputs + +Six PWM outputs (PWM1~PWM6) are supported, but PWM5 and PWM6 is not available when UART3 is in use. +PWM7 and PWM8 are dedicated for I2C; in this document, they are used to indicate the pin location, not the function. + +If servos are used on a multirotor mixer (i.e. Tricopter) PWM1 is remapped to servo and motor 1 is moved to PWM2 etc. + +Note: Tested only for QUAD-X configuration. + +### Hardware UART Ports + +PPM/SBUS jumper for J8 is assumed to be configured for PPM (SBUS=R18 removed). With newer boards (the 1.1 Version) you don't have to swap an smd resistor to use SBUS anymore. It just works out of the box. + +| UART | Location | Note | +|-------|----------|-------------------| +| UART1 |J13 | | +| UART2 |J12 | | +| UART3 |J22 | PWM5=TX3,PWM6=RX3 | + +All UARTs are Serial RX capable. + +### I2C + +I2C is available on J22 PWM7 and PWM8 + +|signal | Location | Alt. Location | +|-------|------------|---------------| +|SCL | J22 (PWM8) | J3 (SCL) | +|SDA | J22 (PWM7) | J3 (SDA) | + +### RANGEFINDER + +HC-SR04 rangefinder is supported when NOT using PPM. + +|signal | Location | +|-------|------------| +|TRIG | J8 (PPM) | +|ECHO | J4 (RSSI) | + +5V rangefinder can be connected directly without inline resistors. + +### OSD + +Integrated OSD is supported. + +### RSSI Sensor Input + +The RSSI sensor adc is not supported due to the hardware configuration limitation. + +## Usage in a Fixed Wing +Due to the way INAV handles PWM outputs the first 2 PWM outputs are reserved for the motor outputs. When using SBUS on UART3 as recommended this leaves only 2 additional outputs for the servos, as output 5 and 6 are blocked by UART3 serial for SBUS and 7 and 8 are used for I2C. + +You can free PWM outputs 5 and 6 by simply connecting SBUS up to UART1. For FrSky there is no hardware inverter needed as the F3 chip UARTs can handle this without additional hardware. Just make sure that `sbus_inversion = ON` is set. However, you will not be able to use UART3, e.G. for telemetry. + +This allows to control a standard airplane with rudder, ailerons and elevator. If you use flaps or a servo gimbal, you can bypass the FC by connecting it up to the receiver directly. diff --git a/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Paris-Air-Hero-32-F3.md b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Paris-Air-Hero-32-F3.md new file mode 100644 index 0000000..a837122 --- /dev/null +++ b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Paris-Air-Hero-32-F3.md @@ -0,0 +1,49 @@ +--- +title: Legacy Target Paris Air Hero 32 F3 +--- + +# Board - Paris Air Hero 32 + +This is the AIR3 PARIS Sirius AirHERO 32 F3 board from MultiWiiCopter +Source: http://www.multiwiicopter.com/products/inav-air3-fixed-wing + +## Sensors + +MPU6500 via SPI interface. +BMP280 via SPI interface + +## Ports + +6 x 3pin ESC / Servo outputs +1 x 8pin JST connector (PPM/PWM/UART2) +1 x 4pin JST connector (UART3) + +## I2C bus + +I2C bus is made available with a special target - AIRHEROF3_QUAD. This target limits motor outputs to 4 and adds I2C bus at M5/M6 connectors. + +## Pinouts + +The 10 pin RC I/O connector has the following pinouts when used in RX_PPM/RX_SERIAL mode. + +From right to left when looking at the socket from the edge of the board. + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------- | +| 1 | Ground | | +| 2 | +5V | | +| 3 | RX_PPM | Enable `feature RX_PPM` | +| 4 | AIRSPEED | Airspeed sensor (3.3V max) | +| 5 | USART2 TX | | +| 6 | USART2 RX | | +| 7 | SS1 RX | Enable `feature SOFT_SERIAL` | +| 8 | SS1 TX | | + + +## Serial Ports + +| Value | Identifier | RX | TX | Notes | +| ----- | ------------ | ---------- | ------------------ | ------------------------------------------------------------------------------------------- | +| 1 | USART1 | RX / PA10 | TX / PA9 | Internally connected to USB port via CP2102 IC | +| 2 | USART2 | RC4 / PA3 | RC3 / PA2 | | +| 3 | USART3 | F3 / PB11 | F2 / PB10 | | diff --git a/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Paris-Air-Hero-32.md b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Paris-Air-Hero-32.md new file mode 100644 index 0000000..5289934 --- /dev/null +++ b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Paris-Air-Hero-32.md @@ -0,0 +1,49 @@ +--- +title: Legacy Target Paris Air Hero 32 +--- + +# Board - Paris Air Hero 32 + +## Sensors + +MPU6500 via SPI interface. + +## Ports + +6 x 3pin ESC / Servo outputs +1 x 8pin JST connector (PPM/PWM/UART2) +1 x 4pin JST connector (UART3/I2C) + +## Pinouts + +The 10 pin RC I/O connector has the following pinouts when used in RX_PPM/RX_SERIAL mode. + +From right to left when looking at the socket from the edge of the board. + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------- | +| 1 | Ground | | +| 2 | +5V | | +| 3 | RX_PPM | Enable `feature RX_PPM` | +| 4 | RSSI_ADC | Enable `feature RSSI_ADC`. Connect to the output of a PWM-RSSI conditioner, 0v-3.3v input | +| 5 | USART2 TX | | +| 6 | USART2 RX | Built-in inverter | +| 7 | LED_STRIP | Enable `feature LED_STRIP` | +| 8 | unused | | + +When SOFTSERIAL is enabled, LED_STRIP and CURRENT_METER are unavailable, but one SoftSerial port is made available to use instead. + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------- | +| 7 | SOFTSERIAL1 RX | Enable `feature SOFTSERIAL` | +| 8 | SOFTSERIAL1 TX | | + + +## Serial Ports + +| Value | Identifier | RX | TX | Notes | +| ----- | ------------ | ---------- | ------------------ | ------------------------------------------------------------------------------------------- | +| 1 | USART1 | RX / PA10 | TX / PA9 / TELEM | TELEM output is always inverted (for FrSky). Internally connected to USB port via CP2102 IC | +| 2 | USART2 | RC4 / PA3 | RC3 / PA2 | | +| 3 | USART3 | F3 / PB11 | F2 / PB10 | Flex port is configured as UART3 when port is configured | +| 4 | SOFTSERIAL1 | RC5 / PA6 | RC6 / PA7 | | diff --git a/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-SPRacingF3.md b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-SPRacingF3.md new file mode 100644 index 0000000..d64c9a2 --- /dev/null +++ b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-SPRacingF3.md @@ -0,0 +1,101 @@ +--- +title: Legacy Target SPRacingF3 +--- + +# Board - SPRacingF3 + +The Seriously Pro Racing MOF3 board (SPRacingF3) is the first board designed specifically for INAV. + +Full details available on the website, here: + +http://seriouslypro.com/spracingf3 + +## Hardware Features + +* No compromise I/O. Use all the features all the time; e.g. Connect your OSD + SmartPort + SBus + GPS + LED Strip + Battery Monitoring + HC-SR04 + 8 motors - all at the same time! +* On-board high-capacity black box flight log recorder - optimize your tuning and see the results of your setup without guesswork. (Acro and Deluxe) +* Next-generation STM32 F3 processor with hardware floating point unit for efficient flight calculations and faster ARM-Cortex M4 core. +* Stackable design - perfect for integrating with OSDs and power distribution boards. +* 16 PWM I/O lines for ESCs, Servos and legacy receivers. 8 available on standard pin headers. 8 via side mounted connectors. +* Supports SBus, SumH, SumD, Spektrum1024/2048, XBus, PPM, PWM receivers. No external inverters required (built-in). +* Dedicated output for programmable LEDs - great for orientation, racing and night flying. +* Dedicated I2C port for connection of OLED display without needing flight battery. +* Battery monitoring ports for voltage and current. +* Buzzer port for audible warnings and notifications. +* Solder pads in addition to connectors for HC-SR04, PPM, RSSI, Current, GPIO, LED Strip, 3.3v, +* Developer friendly debugging port (SWD) and boot mode selection, unbrickable bootloader. +* Symmetrical design for a super tidy wiring. +* Wire up using using pin headers, JST-SH sockets or solder pads. Use either right-angled or straight pin-headers. +* Barometer mounted on the bottom of the board for easy wind isolation. + +## Serial Ports + +| Value | Identifier | RX | TX | 5v Tolerant | Notes | +| ----- | ------------ | ------------ | ------------ | ----------- | ------------------------------------------------------------------------------------------- | +| 1 | USART1 | PA10 | PA9 | YES | Internally connected to USB port via CP2102 IC. Also available on a USART1 JST connector and on through hole pins. | +| 2 | USART2 | PA15 | PA14 | YES | Available on USART2 JST port only. | +| 3 | USART3 | PB11 / IO2_3 | PB10 / IO2_4 | NO | Available on IO_2, USART3 JST port and through hole pins. | + +* You cannot use SWD and USART2 at the same time. +* You may encounter flashing problems if you have something connected to the USART1 RX/TX pins. Power other devices of and/or disconnect them. + +## Pinouts + +Full pinout details are available in the manual, here: + +http://seriouslypro.com/spracingf3#manual + +### IO_1 + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 1 | Ground | | +| 2 | VCC_IN | Voltage as-supplied by BEC. | +| 3 | RX_PPM | Enable `feature RX_PPM` | +| 4 | GPIO | | +| 5 | SoftSerial1_RX | | +| 6 | SoftSerial1_TX | | +| 7 | LED_STRIP | Enable `feature LED_STRIP` | +| 8 | VCC | 3.3v output for LOW CURRENT application only | + +### IO_2 + +| Pin | Function | Notes | +| --- | ------------------------- | -------------------------------------------- | +| 1 | Ground | | +| 2 | VCC_IN | Voltage as-supplied by BEC. | +| 3 | RX_SERIAL | UART3 RX | +| 4 | | UART3_TX | +| 5 | HC-SR04_TRIG/SoftSerial2_RX | Enable `feature SOFTSERIAL` or HC-SR04 rangefinder | +| 6 | HC-SR04_ECHO/SoftSerial2_TX | Enable `feature SOFTSERIAL` or HC-SR04 rangefinder | +| 7 | ADC_1 | Current Sensor | +| 8 | ADC_2 | RSSI | + +### UART1/2/3 + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 1 | Ground | | +| 2 | VCC_IN | Voltage as-supplied by BEC. | +| 3 | TXD | | +| 4 | RXD | | + +### I2C + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 1 | Ground | | +| 2 | 5.0v | Voltage as-supplied by BEC OR USB, always on | +| 3 | SCL | | +| 4 | SDA | | + +### SWD + +The port cannot be used at the same time as UART2. + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 1 | Ground | | +| 2 | NRST | Voltage as-supplied by BEC OR USB, always on | +| 3 | SWDIO | | +| 4 | SWDCLK | | diff --git a/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-SPRacingF3EVO.md b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-SPRacingF3EVO.md new file mode 100644 index 0000000..0236926 --- /dev/null +++ b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-SPRacingF3EVO.md @@ -0,0 +1,163 @@ +--- +title: Legacy Target SPRacingF3EVO +--- + +# Board - Seriously Pro SP Racing F3 EVO + +The Seriously Pro Racing F3 Evo board (SPRacingF3EVO) is the evolution of the first board designed specifically for Cleanflight. + +Purchasing boards directly from SeriouslyPro / SP Racing and official retailers helps fund Cleanflight development, it's the reason the Seriously Pro boards exist! Official retailers are always listed on the SeriouslyPro.com website. + +Full details available on the website, here: + +http://seriouslypro.com/spracingf3evo + +## Hardware Features + +* Next-generation STM32 F3 processor with hardware floating point unit for efficient flight calculations and faster ARM-Cortex M4 core. +* MicroSD-Card socket for black box flight log recorder - optimize your tuning and see the results of your setup without guesswork. +* Race transponder built in - just turn up at a race and have your lap times recorded. +* Features the latest Accelerometer, Gyro and Mag/Compass and Baro/Altitude sensor technology. +* Wire up using using pin headers for all major connections for excellent crash-durability. Use either right-angled or straight pin-headers. +* No compromise I/O. Use all the features all the time; e.g. Connect your USB + OSD + SmartPort + SBus + GPS + LED Strip + Battery Monitoring + 8 motors - all at the same time! +* 8 PWM output lines for ESCs and Servos. Arranged for easy wiring on standard pin headers. +* Supports direct connection of SBus, SumH, SumD, Spektrum1024/2048, XBus receivers. No external inverters required (built-in). +* Supports direct connection of 3.3v Spektrum Satellite receivers via 3 pin through-hole JST-ZH connector. +* Dedicated PPM receiver input. +* 3 Serial Ports - NOT shared with the USB socket. +* Telemetry port +* Micro USB socket. +* Dedicated output for programmable LEDs - great for orientation, racing and night flying. (Currently mutually exclusive with the Transponder). +* Dedicated I2C port for connection of OLED display without needing flight battery. +* Battery monitoring for voltage and current. +* RSSI monitoring (analogue or PWM). +* Buzzer port for audible warnings and notifications. +* Developer friendly debugging port (SWD) and boot mode selection, unbrickable bootloader. +* Symmetrical design for a super tidy wiring. +* JST-SH sockets only for I2C, UART2 and SWD. UART2 also on through-hole pins. +* Flashing via USB or serial port. +* Stackable design - perfect for integrating with OSDs and power distribution boards. +* Standard mounting - 36x36mm with standard 30.5mm mounting holes. +* LEDs for 3v, 5v and Status for easy diagnostics. +* Copper-etched Cleanflight logo. + +## Serial Ports + +| Value | Identifier | RX | TX | 5v Tolerant | Notes | +| ----- | ------------ | ------------ | ------------ | ----------- | ------------------------------------------------------------------------------------------- | +| 1 | USART1 | PA10 | PA9 | YES | 2 through-hole pins. Use for connecting to OSD/GPS/BlueTooth. | +| 2 | USART2 | PA15 | PA14 / SWCLK | YES | JST socket and PPM header. Use to connect to RX. | +| 3 | USART3 | PB11 / AF7 | PB10 / AF7 | NO | Available on 4 through-hole pins. 3.3V signals only ! Use for GPS, Spektrum Satellite RX, SmartPort Telemetry, HoTT telemetry, etc. | + +* You cannot use SWD and USART2 at the same time. +* When using a Serial RX receiver the TXD (T2) pin cannot be used for telemetry. Use UART3 TXD instead. +* Two SoftSerial is supported. Enabling SoftSerial disables Servo output 3,4,5,6 +* Windows DFU Flashing requires Zadig (see configurator) + +### SoftSerial + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------- | +| 5 | SOFTSERIAL1 RX | SoftSerial replaces Servo 3,4,5,6| +| 6 | SOFTSERIAL1 TX | | +| 7 | SOFTSERIAL2 RX | | +| 8 | SOFTSERIAL2 TX | | + + +## Pinouts + +Full pinout details are available in the manual, here: + +http://seriouslypro.com/files/SPRacingF3EVO-Manual-latest.pdf + +### IO_1 + +The 6 pin IO_1 connector has the following pinouts when used in RX_SERIAL mode. + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 1 | Ground | | +| 2 | VCC_IN | Voltage as-supplied by BEC. | +| 3 | RX_SERIAL | Enable `feature RX_SERIAL` | +| 4 | | | +| 5 | +V BATTERY | Voltage as-supplied by Battery. | +| 6 | -V BATTERY | Voltage as-supplied by Battery. | + +When RX_PPM is used the IO_1 pinout is as follows. + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 1 | Ground | | +| 2 | VCC_IN | Voltage as-supplied by BEC. | +| 3 | RX_PPM | Enable `feature RX_PPM` | +| 4 | TELEMETRY | Enable `feature TELEMETRY` | +| 5 | +V BATTERY | Voltage as-supplied by Battery. | +| 6 | -V BATTERY | Voltage as-supplied by Battery. | + +### IO_2 + +When TRANSPONDER is used and the IR solder pads are shorted, the 6 pin IO_2 pinout is as follows. + +| Pin | Function | Notes | +| --- | ------------------------- | -------------------------------------------- | +| 1 | IR- | Short leg of the IR LED | +| 2 | IR+ | Long leg of the IR LED | +| 3 | CURRENT | Current Sensor | +| 4 | RSSI | RSSI (PWM or Analog - select by solder pads) | +| 5 | BUZZER+ | 5V Source | +| 6 | BUZZER- | Buzzer signal | + +When LEDSTRIP is used and the LED solder pads are shorted, the 6 pin IO_2 pinout is as follows. + +| Pin | Function | Notes | +| --- | ------------------------- | -------------------------------------------- | +| 1 | | | +| 2 | LEDSTRIP | WS2812 Ledstrip data | +| 3 | CURRENT | Current Sensor | +| 4 | RSSI | RSSI (PWM or Analog - select by solder pads) | +| 5 | BUZZER+ | 5V Source | +| 6 | BUZZER- | Buzzer signal | + +### UART1 + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 3 | TXD | | +| 4 | RXD | | + +### UART2/3 + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 1 | Ground | | +| 2 | VCC_IN | Voltage as-supplied by BEC. | +| 3 | TXD | | +| 4 | RXD | | + +### Spektrum Satellite + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 3 | 3.3V | | +| 2 | Ground | | +| 1 | RXD | | + +### I2C + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 1 | Ground | | +| 2 | 5.0v | Voltage as-supplied by BEC OR USB, always on | +| 3 | SCL | 3.3V signals only | +| 4 | SDA | 3.3V signals only | + +### SWD + +The port cannot be used at the same time as UART2. + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 1 | Ground | | +| 2 | NRST | | +| 3 | SWDIO | | +| 4 | SWDCLK | | diff --git a/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-SPRacingF3EVO_1SS.md b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-SPRacingF3EVO_1SS.md new file mode 100644 index 0000000..1fb4dee --- /dev/null +++ b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-SPRacingF3EVO_1SS.md @@ -0,0 +1,160 @@ +--- +title: Legacy Target SPRacingF3EVO 1SS +--- + +# Board - Seriously Pro SP Racing F3 EVO + +The Seriously Pro Racing F3 Evo board (SPRacingF3EVO) is the evolution of the first board designed specifically for Cleanflight. + +Purchasing boards directly from SeriouslyPro / SP Racing and official retailers helps fund Cleanflight development, it's the reason the Seriously Pro boards exist! Official retailers are always listed on the SeriouslyPro.com website. + +Full details available on the website, here: + +http://seriouslypro.com/spracingf3evo + +## Hardware Features + +* Next-generation STM32 F3 processor with hardware floating point unit for efficient flight calculations and faster ARM-Cortex M4 core. +* MicroSD-Card socket for black box flight log recorder - optimize your tuning and see the results of your setup without guesswork. +* Race transponder built in - just turn up at a race and have your lap times recorded. +* Features the latest Accelerometer, Gyro and Mag/Compass and Baro/Altitude sensor technology. +* Wire up using using pin headers for all major connections for excellent crash-durability. Use either right-angled or straight pin-headers. +* No compromise I/O. Use all the features all the time; e.g. Connect your USB + OSD + SmartPort + SBus + GPS + LED Strip + Battery Monitoring + 8 motors - all at the same time! +* 8 PWM output lines for ESCs and Servos. Arranged for easy wiring on standard pin headers. +* Supports direct connection of SBus, SumH, SumD, Spektrum1024/2048, XBus receivers. No external inverters required (built-in). +* Supports direct connection of 3.3v Spektrum Satellite receivers via 3 pin through-hole JST-ZH connector. +* Dedicated PPM receiver input. +* 3 Serial Ports - NOT shared with the USB socket. +* Telemetry port +* Micro USB socket. +* Dedicated output for programmable LEDs - great for orientation, racing and night flying. (Currently mutually exclusive with the Transponder). +* Dedicated I2C port for connection of OLED display without needing flight battery. +* Battery monitoring for voltage and current. +* RSSI monitoring (analogue or PWM). +* Buzzer port for audible warnings and notifications. +* Developer friendly debugging port (SWD) and boot mode selection, unbrickable bootloader. +* Symmetrical design for a super tidy wiring. +* JST-SH sockets only for I2C, UART2 and SWD. UART2 also on through-hole pins. +* Flashing via USB or serial port. +* Stackable design - perfect for integrating with OSDs and power distribution boards. +* Standard mounting - 36x36mm with standard 30.5mm mounting holes. +* LEDs for 3v, 5v and Status for easy diagnostics. +* Copper-etched Cleanflight logo. + +## Serial Ports + +| Value | Identifier | RX | TX | 5v Tolerant | Notes | +| ----- | ------------ | ------------ | ------------ | ----------- | ------------------------------------------------------------------------------------------- | +| 1 | USART1 | PA10 | PA9 | YES | 2 through-hole pins. Use for connecting to OSD/GPS/BlueTooth. | +| 2 | USART2 | PA15 | PA14 / SWCLK | YES | JST socket and PPM header. Use to connect to RX. | +| 3 | USART3 | PB11 / AF7 | PB10 / AF7 | NO | Available on 4 through-hole pins. 3.3V signals only ! Use for GPS, Spektrum Satellite RX, SmartPort Telemetry, HoTT telemetry, etc. | + +* You cannot use SWD and USART2 at the same time. +* When using a Serial RX receiver the TXD (T2) pin cannot be used for telemetry. Use UART3 TXD instead. +* One Software serial is supported in th SPRacingF3EVO_1SS version, see table below +* Windows DFU Flashing requires Zadig (see configurator) + +### SoftSerial + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------- | +| 7 | SOFTSERIAL1 RX | SoftSerial disables Servo 5,6 | +| 8 | SOFTSERIAL1 TX | | + +## Pinouts + +Full pinout details are available in the manual, here: + +http://seriouslypro.com/files/SPRacingF3EVO-Manual-latest.pdf + +### IO_1 + +The 6 pin IO_1 connector has the following pinouts when used in RX_SERIAL mode. + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 1 | Ground | | +| 2 | VCC_IN | Voltage as-supplied by BEC. | +| 3 | RX_SERIAL | Enable `feature RX_SERIAL` | +| 4 | | | +| 5 | +V BATTERY | Voltage as-supplied by Battery. | +| 6 | -V BATTERY | Voltage as-supplied by Battery. | + +When RX_PPM is used the IO_1 pinout is as follows. + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 1 | Ground | | +| 2 | VCC_IN | Voltage as-supplied by BEC. | +| 3 | RX_PPM | Enable `feature RX_PPM` | +| 4 | TELEMETRY | Enable `feature TELEMETRY` | +| 5 | +V BATTERY | Voltage as-supplied by Battery. | +| 6 | -V BATTERY | Voltage as-supplied by Battery. | + +### IO_2 + +When TRANSPONDER is used and the IR solder pads are shorted, the 6 pin IO_2 pinout is as follows. + +| Pin | Function | Notes | +| --- | ------------------------- | -------------------------------------------- | +| 1 | IR- | Short leg of the IR LED | +| 2 | IR+ | Long leg of the IR LED | +| 3 | CURRENT | Current Sensor | +| 4 | RSSI | RSSI (PWM or Analog - select by solder pads) | +| 5 | BUZZER+ | 5V Source | +| 6 | BUZZER- | Buzzer signal | + +When LEDSTRIP is used and the LED solder pads are shorted, the 6 pin IO_2 pinout is as follows. + +| Pin | Function | Notes | +| --- | ------------------------- | -------------------------------------------- | +| 1 | | | +| 2 | LEDSTRIP | WS2812 Ledstrip data | +| 3 | CURRENT | Current Sensor | +| 4 | RSSI | RSSI (PWM or Analog - select by solder pads) | +| 5 | BUZZER+ | 5V Source | +| 6 | BUZZER- | Buzzer signal | + +### UART1 + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 3 | TXD | | +| 4 | RXD | | + +### UART2/3 + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 1 | Ground | | +| 2 | VCC_IN | Voltage as-supplied by BEC. | +| 3 | TXD | | +| 4 | RXD | | + +### Spektrum Satellite + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 3 | 3.3V | | +| 2 | Ground | | +| 1 | RXD | | + +### I2C + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 1 | Ground | | +| 2 | 5.0v | Voltage as-supplied by BEC OR USB, always on | +| 3 | SCL | 3.3V signals only | +| 4 | SDA | 3.3V signals only | + +### SWD + +The port cannot be used at the same time as UART2. + +| Pin | Function | Notes | +| --- | -------------- | -------------------------------------------- | +| 1 | Ground | | +| 2 | NRST | | +| 3 | SWDIO | | +| 4 | SWDCLK | | diff --git a/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Sparky.md b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Sparky.md new file mode 100644 index 0000000..fb89d43 --- /dev/null +++ b/versioned_docs/version-8.0.1/legacyinfo/Legacy-target-Sparky.md @@ -0,0 +1,211 @@ +--- +title: Legacy Target Sparky +--- + +# Board - Sparky + +The Sparky is a very low cost and very powerful board. + +* 3 hardware serial ports. +* Built-in serial port inverters which allows S.BUS receivers to be used without external inverters. +* USB (can be used at the same time as the serial ports). +* 10 PWM outputs. +* Dedicated PPM/SerialRX input pin. +* MPU9150 I2C Acc/Gyro/Mag +* Baro + +Tested with revision 1 & 2 boards. + +## TODO + +* Rangefinder +* Display (via Flex port) +* SoftSerial - though having 3 hardware serial ports makes it a little redundant. +* Airplane PWM mappings. + +# Voltage and current monitoring (ADC support) + +Voltage monitoring is possible when enabled via PWM9 pin and current can be monitored via PWM8 pin. The voltage divider and current sensor need to be connected externally. The vbatscale cli parameter need to be adjusted to fit the sensor specification. For more details regarding the sensor hardware you can check here: https://github.com/TauLabs/TauLabs/wiki/User-Guide:-Battery-Configuration + +# Flashing + +## Via Device Firmware Upload (DFU, USB) - Windows + +These instructions are for flashing the Sparky board under Windows using DfuSE. +Credits go to Thomas Shue (Full video of the below steps can be found here: https://www.youtube.com/watch?v=I4yHiRVRY94) + +Required Software: +DfuSE Version 3.0.2 (latest version 3.0.4 causes errors): http://code.google.com/p/multipilot32/downloads/detail?name=DfuSe.rar +STM VCP Driver 1.4.0: http://www.st.com/web/en/catalog/tools/PF257938 + +A binary file is required for DFU, not a .hex file. If one is not included in the release then build one as follows. + +``` +Unpack DfuSE and the STM VCP Drivers into a folder on your Hardrive +Download the latest Sparky release (inav_SPARKY.hex) from: +https://github.com/iNavFlight/inav/releases and store it on your Hardrive + +In your DfuSE folder go to BIN and start DfuFileMgr.exe +Select: "I want to GENERATE a DFUfile from S19,HEX or BIN files" press OK +Press: "S19 or Hex.." +Go to the folder where you saved the inav_SPARKY.hex file, select it and press open +(you might need to change the filetype in the DfuSE explorer window to "hex Files (*.hex)" to be able to see the file) +Press: "Generate" and select the .dfu output file and location +If all worked well you should see " Success for 'Image for lternate Setting 00 (ST..)'!" + +``` + +Put the device into DFU mode by powering on the sparky with the bootloader pins temporarily bridged. The only light that should come on is the blue PWR led. + +Check the windows device manager to make sure the board is recognized correctly. +It should show up as "STM Device in DFU mode" under Universal Serial Bus Controllers + +If it shows up as "STMicroelectronics Virtual COM" under Ports (COM & LPT) instead then the board is not in DFU mode. Disconnect the board, short the bootloader pins again while connecting the board. + +If the board shows up as "STM 32 Bootloader" device in the device manager, the drivers need to be updated manually. +Select the device in the device manager, press "update drivers", select "manual update drivers" and choose the location where you extracted the STM VCP Drivers, select "let me choose which driver to install". You shoud now be able to select either the STM32 Bootloader driver or the STM in DFU mode driver. Select the later and install. + + +Then flash the binary as below. + +``` +In your DfuSE folder go to BIN and start DfuSeDemo.exe +Select the Sparky Board (STM in DFU Mode) from the Available DFU and compatible HID Devices drop down list +Press "Choose.." at the bootom of the window and select the .dfu file created in the previous step +"File correctly loaded" should appear in the status bar +Press "Upgrade" and confirm with "Yes" +The status bar will show the upload progress and confirm that the upload is complete at the end + +``` + +Disconnect and reconnect the board from USB and continue to configure it via the INAV configurator as per normal + + +## Via Device Firmware Upload (DFU, USB) - Mac OS X / Linux + +These instructions are for dfu-util, tested using dfu-util 0.7 for OSX from the OpenTX project. + +http://www.open-tx.org/2013/07/15/dfu-util-07-for-mac-taranis-flashing-utility/ + +A binary file is required for DFU, not a .hex file. If one is not included in the release then build one as follows. + +``` +make TARGET=SPARKY clean +make TARGET=SPARKY binary +``` + +Put the device into DFU mode by powering on the sparky with the bootloader pins temporarily bridged. The only light that should come on is the blue PWR led. + +Run 'dfu-util -l' to make sure the device is listed, as below. + +``` +$ dfu-util -l +dfu-util 0.7 + +Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc. +Copyright 2010-2012 Tormod Volden and Stefan Schmidt +This program is Free Software and has ABSOLUTELY NO WARRANTY +Please report bugs to dfu-util@lists.gnumonks.org + +Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash /0x08000000/128*0002Kg" +Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=1, name="@Option Bytes /0x1FFFF800/01*016 e" +``` + +Then flash the binary as below. + +``` +dfu-util -D obj/inav_SPARKY.bin --alt 0 -R -s 0x08000000 +``` + +The output should be similar to this: + +``` +dfu-util 0.7 + +Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc. +Copyright 2010-2012 Tormod Volden and Stefan Schmidt +This program is Free Software and has ABSOLUTELY NO WARRANTY +Please report bugs to dfu-util@lists.gnumonks.org + +Opening DFU capable USB device... ID 0483:df11 +Run-time device DFU version 011a +Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash /0x08000000/128*0002Kg" +Claiming USB DFU Interface... +Setting Alternate Setting #0 ... +Determining device status: state = dfuERROR, status = 10 +dfuERROR, clearing status +Determining device status: state = dfuIDLE, status = 0 +dfuIDLE, continuing +DFU mode device DFU version 011a +Device returned transfer size 2048 +No valid DFU suffix signature +Warning: File has no DFU suffix +DfuSe interface name: "Internal Flash " +Downloading to address = 0x08000000, size = 76764 +...................................... +File downloaded successfully +can't detach +Resetting USB to switch back to runtime mode + +``` +On Linux you might want to take care that the modemmanager isn't trying to use your sparky as modem getting it into bootloader mode while doing so. In doubt you probably want to uninstall it. It could also be good idea to get udev fixed. It looks like teensy did just that -> http://www.pjrc.com/teensy/49-teensy.rules (untested) + +To make a full chip erase you can use a file created by +``` +dd if=/dev/zero of=zero.bin bs=1 count=262144 +``` +This can be used by dfu-util. + +## Via SWD + +On the bottom of the board there is an SWD header socket onto switch a JST-SH connector can be soldered. +Once you have SWD connected you can use the st-link or j-link tools to flash a binary. + +See Sparky schematic for CONN2 pinouts. + +## TauLabs bootloader + +Flashing INAV will erase the TauLabs bootloader, this is not a problem and can easily be restored using the st flashloader tool. + +# Serial Ports + +| Value | Identifier | RX | TX | Notes | +| ----- | ------------ | --------- | ---------- | -------------------------------------------------------------- | +| 1 | USB VCP | RX (USB) | TX (USB) | | +| 2 | USART1 | RX / PB7 | TX / PB6 | Conn1 / Flexi Port. | +| 3 | USART2 | RX / PA3 | PWM6 / PA2 | On RX is on INPUT header. Best port for Serial RX input | +| 4 | USART3 | RX / PB11 | TX / PB10 | RX/TX is on one end of the 6-pin header about the PWM outputs. | + +USB VCP *can* be used at the same time as other serial port. + +All USART ports all support automatic hardware inversion which allows direct connection of serial rx receivers like the FrSky X4RSB - no external inverter needed. + + +# Battery Monitoring Connections + +| Pin | Signal | Function | +| ---- | ------ | --------------- | +| PWM9 | PA4 | Battery Voltage | +| PWM8 | PA7 | Current Meter | + +## Voltage Monitoring + +The Sparky has no battery divider cricuit, PWM9 has an inline 10k resistor which has to be factored into the resistor calculations. +The divider circuit should eventally create a voltage between 0v and 3.3v (MAX) at the MCU input pin. + +WARNING: Double check the output of your voltage divider using a voltmeter *before* connecting to the FC. + +### Example Circuit + +For a 3Cell battery divider the following circuit works: + +`Battery (+) ---< R1 >--- PWM9 ---< R2 >--- Battery (-)` + +* R1 = 8k2 (Grey Red Red) +* R2 = 2k0 (Red Black Red) + +This gives a 2.2k for an 11.2v battery. The `vbat_scale` for this divider should be set around `52`. + +## Current Monitoring + +Connect a current sensor to PWM8/PA7 that gives a range between 0v and 3.3v out (MAX). diff --git a/versioned_docs/version-8.0.1/legacyinfo/OrangeRX-LRS-RX-and-OMNIBUS-F4.md b/versioned_docs/version-8.0.1/legacyinfo/OrangeRX-LRS-RX-and-OMNIBUS-F4.md new file mode 100644 index 0000000..4287c35 --- /dev/null +++ b/versioned_docs/version-8.0.1/legacyinfo/OrangeRX-LRS-RX-and-OMNIBUS-F4.md @@ -0,0 +1,59 @@ +--- +title: OrangeRX LRS RX and OMNIBUS F4 +--- + +The OrangeRX LRS receiver is one of the more popular 433MHz options on the market. +It is sold by Hobbyking and has been around for many years. + +When using this receiver with a flight controller such as Omnibus F4 there are +several options for communicating the receiver with flight controller: + +## PPM + +The easiest option is to use a sevo lead and connect the PWM5 (Port 6) to +receiver port on the board. There is a small issue with that approach in that +this particular receiver's PPM signal is too weak for the flight controller to +receive. + +The reason for it is there are additional 1k resistors on the digital lines +leading from the MCU to pins. There are 2 options to fix it: + +### Modify the receiver + +The easiest and most recommended one is to bridge the resistor with a piece of +a thin wire. Soldering that is very easy. That way you can also remove the +wire if you so desire at a later time. + +### Modift the flight controller + +This option is pretty easy at first: on the flight controller, left to the +receiver pins there are two 0 Ohm resistors labelled SBUS and PPM. Removing the +bottom one (looking at the bord such that the USB port is pointing downwards) +will get the PPM signal too. However, that resistor is very small and in a very +tight spot so making a mistake there is really easy. + +### Telemetry + +When using PPM telemetry won't work. Use SUMD instead. + +## SBUS + +SBUS is normally inverted in hardware. That is also the case wth Omnibus F4. +To be able to connect SBUS to the OrangeRX LRS receiver you need to have +a signal inverter or use the UART1 port (available in the bottom-left corner +when the USB port is pointing downwards). This will take the unininverted +SBUS signal from UART1 TX go straight to the RX pin on the receiver. + +In iNAV setup UART1 for serial receiver. + +## SUMD + +The last option is SUMD which is the best option if you want full 16 channels. +It also works best when used with telemetry. + +To use SUMD connect UART1 RX of the flight controlller with TX pin of the receiver. + +In iNAV setup UART1 for serial receiver. + +If you would like to use telemetry connect UART1 TX pin of the flight controller +to RX pin of the receiver and enable telemetry on UART1 in iNAV. diff --git a/versioned_docs/version-8.0.1/legacyinfo/Pixel-OSD-FAQs.md b/versioned_docs/version-8.0.1/legacyinfo/Pixel-OSD-FAQs.md new file mode 100644 index 0000000..7801cb3 --- /dev/null +++ b/versioned_docs/version-8.0.1/legacyinfo/Pixel-OSD-FAQs.md @@ -0,0 +1,7 @@ +--- +title: Pixel OSD FAQs +--- + +### I see black squares where text should be. + +Be sure to have uploaded a font via the configurator's OSD tab and that the Pixel OSD was powered on while you did that. Depending on your FC, you might have to connect a battery. diff --git a/versioned_docs/version-8.0.1/legacyinfo/_category_.json b/versioned_docs/version-8.0.1/legacyinfo/_category_.json new file mode 100644 index 0000000..d512d77 --- /dev/null +++ b/versioned_docs/version-8.0.1/legacyinfo/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Legacyinfo", + "position": 4 +} diff --git a/versioned_docs/version-8.0.1/quickstart/Blinkenlights.md b/versioned_docs/version-8.0.1/quickstart/Blinkenlights.md new file mode 100644 index 0000000..a011f44 --- /dev/null +++ b/versioned_docs/version-8.0.1/quickstart/Blinkenlights.md @@ -0,0 +1,29 @@ +--- +title: Blinkenlights +--- + +#Why does my Flight Controller blink/beep lots of times when powering up ? + +_Stolen (only call it research) wholesale from the betaflight wiki ...._ + +5 short blink/beeps followed by any number of long blinks/beeps indicates an error code. +Number of long blinks indicates the following error: + +1. ***FAILURE_DEVELOPER***: External interrupt of sensor failed to initialize. +2. ***FAILURE_MISSING_ACC***: Accelerometer/gyro sensor is missing +3. ***FAILURE_ACC_INIT***: Accelerometer/gyro sensor failed to initialize +4. ***FAILURE_ACC_INCOMPATIBLE***: The found accelerometer/gyro sensor is not compatible/not the expected one +5. ***FAILURE_INVALID_EEPROM_CONTENTS***: EEPROM/FLASH configuration content is invalid +6. ***FAILURE_FLASH_WRITE_FAILED***: Write of configuration to EEPROM/FLASH failed +7. ***FAILURE_GYRO_INIT_FAILED***: Gyro initialization of SPI MPU6000 accelerometer/gyro failed + +The most common one seem to be error 2 where the accelerometer/gyro sensor can't be found, this is caused by a bad sensor or bad connections to the sensor, could happen because of a bad crash. On most boards gyro and accelerometer is the same chip so acro flying isn't possible when the accelerometer isn't found, it's not just the accelerometer that's bad but the whole chip. + +Error 3, 4 and 7 could also be caused by a bad accelerometer/gyro sensor. +Error 5 and 6 indicates memory read/write problem of the MCU (main processor). +In most cases a new flight controller board will be needed if the user isn't for example able to re-solder the sensor. + +Above are Hard Faults the Processor detects upon boot-up and initialization. Additional reasons for flashing LED and/or beeping are: + No signal from RX. This could be simply the TX is off or the wrong Model/binding selected or a hard fault of the RX like no power or bad cable. + Accelerometer Not calibrated if the ACC is enabled (check the CLI). If acc is enabled then it must be cal'ed once and typically done in the config GUI. + Copter titled too far if the Acc is enabled. diff --git a/versioned_docs/version-8.0.1/quickstart/Fixed-Wing-Guide.md b/versioned_docs/version-8.0.1/quickstart/Fixed-Wing-Guide.md new file mode 100644 index 0000000..73600f4 --- /dev/null +++ b/versioned_docs/version-8.0.1/quickstart/Fixed-Wing-Guide.md @@ -0,0 +1,193 @@ +--- +title: Fixed Wing Guide +--- + +# The Basics of Getting INAV Working on an Airplane + +### Flight controllers designed for fixed wing + +Any flight controller can be used for fixed wing builds, however flight controllers specifically designed for this purpose will make the build simpler and require less additional components. For example, using a flight controller designed for multi rotors on a fixed wing setup usually requires an additional 5V regulator or a BEC for powering the servos, while flight controllers designed for planes will provide an independent 5V line to feed the servos. + +Some of the most popular flight controllers for fixed wing are: + +- [Matek F405-WING](https://inavflight.com/shop/s/bg/1292190) (target F405SE) +- [Matek F722-WING](https://inavflight.com/shop/s/bg/1408793) +- [Matek F411-WING](https://inavflight.com/shop/s/bg/1323063) +- [FuriousFPV F-35](https://inavflight.com/shop/s/bg/1278861) + +### Suggested GPS Units + +- [Beitian BN220](https://inavflight.com/shop/p/BN220) +- [Beitian BN180](https://inavflight.com/shop/p/BN180) +- [Matek M8Q](https://inavflight.com/shop/s/bg/1337287) + +### Step 1: Getting Your Flight Controller Ready. + +* Flash the latest version of INAV using the [INAV Configurator](https://github.com/iNavFlight/inav-configurator/releases) + +* Do an entire [sensor calibration](./Sensor-calibration.md). Level should be the angle of the plane itself when flying straight. **Do not skip this step**. + +* Select a preset from the INAV presets tab that fits your aircraft the best, then press "Save & Reboot" + +### Step 2: Hooking Everything Up. + +The image below shows the standard wiring for both a flying wing and for a normal fixed wing model with ailerons, elevator & rudder. You connect each servo to the corresponding PWM output on your flight controller. + +**Note:** If you are using INAV with a Mini Talon you'll need a [Custom Mix](../advanced/Custom-mixes-for-exotic-setups.md#v-tail-fixed-wing) so that the servos move correctly or if using a Skyhunter (Nano, Micro, Mini & full sized) then there is also a custom mix available [here](../advanced/Custom-mixes-for-exotic-setups.md#skyhunter-nano-no-rudder). + + + +* Servo and ESC/MOTOR. ( Keep in mind servos positive wire **should** go to an independent BEC instead of connecting to the flight controller itself. ) + + * Airplane + * Output 1 - Motor/ESC + * Output 2 - Empty / Or 2. motor + * Output 3 - Elevator + * Output 4 - Aileron + * Output 5 - Aileron + * Output 6 - Rudder + + * Flying Wing + * Output 1 - Motor/ESC + * Output 2 - Empty / Or 2. motor + * Output 3 - Port Elevon + * Output 4 - Starboard Elevon + +An example if using SpracingF3: + +* If using GPS connect it to UART 2. +* If using GPS setup UART2 for GPS at baud 57600 and enable GPS in configurations (if that doesn't work, try 115200). +* If using Sbus connect it to UART 3 / or the uart which are dedicated for sbus on your board. +* If using regular PPM connect it to IO 1 pin 1. +* If using telemetry connect it with softserial. ( If using Smartport read [this](https://github.com/iNavFlight/inav/blob/master/docs/Board%20-%20Airbot%20F4%20and%20Flip32%20F4.md#frsky-smartport-using-softwareserial) ) + +### Step 3: Set up Your Receiver + +Go to the Configuration tab and select your "Receiver Mode" for the receiver you have. + +If you are using a serial based receiver (like SBUS), go to the ports tab and and turn on "Serial RX" for the port that you connected it to. Other receiver types like MSP require other port setups. + +### Step 4: Setting up Your Remote, Endpoints and Reversing of Servos. + +Your transmitter should use **NO mixing at all** (so separate channels for Thr, Ail, Rud, Ele). + +Check that when moving the sticks, the right channels moves in the receiver window. Also everything should be centered at 1500us, and full stick movement should be 1000-2000us. Use sub trim and travel range on your TX to set this up. + +The correct way is: + +* Throttle stick push away - increased value +* Yaw (Rudder) stick right - increased value +* Pitch (Elevator) stick push away - increased value +* Roll (Ailerons) stick right - increased value + +Next is checking that your servo moves as expected: + +1. Servo goes the right way when moving sticks. [Youtube help video](https://www.youtube.com/watch?v=Gf74geZyKYk&t=1s) +1. The servo movement does not exceed wanted maximum deflection of control surfaces. +1. The servo midpoint has control surfaces perfectly at center. + +**Note:** Check the following in Manual mode (formerly passthrough mode). In the other modes you won't see full deflection on the bench. If you don't know how to set up Manual mode, see https://www.youtube.com/watch?v=oJTPuEUZOAE + +In the "Output" Tab: + +* If they go reverse, turn on the "Reverse" switch. +* If they exceed maximum wanted deflection reduce min/max +* If control surfaces is not perfectly centered adjust servo midpoint. (This is after setting them up as close as possible mechanically ) + +**Note:** You can change the servo mapping in the mixer tab. + +At this point everything should work as expected. + +1: When moving sticks on TX the control surfaces should move correctly, do an [High Five](https://www.youtube.com/watch?v=Gf74geZyKYk) test +2: When moving the airplane in the air in angle mode control surfaces should counter-act movement correctly. The controls surfaces needs to move the same way as the airplane is moved to counteract and stabilize the airplane. You may need to **temporarily** triple the amount on P-gain on Roll, Pitch and Yaw axis in the "PID tuning" tab. (So its easy to see movement.) + +### Step 5, Replace Default Values + +* Type this and save in CLI to set the max roll and pitch angle in `ANGLE` mode to 60°: +``set max_angle_inclination_rll = 600`` +``set max_angle_inclination_pit = 600`` + +* Increase small angle (so INAV will let you arm in any position) type this and save in CLI: +``set small_angle = 180`` + +* If you wish for your fixed wing model to loiter instead of attempting a landing after RTH mode is selected & the model returning home, you can set the model to loiter by typing this and saving in CLI: +``set nav_rth_allow_landing = NEVER`` + +* In INAV when the RTH mode is enabled, the model will climb FIRST then return home. If you set this value below, the model will **turn and then climb** on it's way back to the home position: +``set nav_rth_climb_first = OFF`` +(Generally the default would be more useful than possibly turning back into any scenery that caused the RTH) + +* In INAV the default RTH height is 10 metres (approx 32') which might be too low for flying sites with trees. You can change this to 70 metres (approx 230') by setting this value in the CLI tab and typing save afterwards: +``set nav_rth_altitude = 7000`` + +* If you intend to glide for more than 10 seconds it's suggested that you also set this value, so that the model doesn't "failsafe" by itself when using zero throttle during a glide: ``set failsafe_throttle_low_delay = 0`` +(This will only stop the low throttle "timed" safety Guard Failsafe and an RC Loss could still result in a DISARM when at low throttle) Stay current with latest iNAV FS options. + +* Setup `failsafe` mode. If you select your receiver to go to RTH mode in modes tab, it will not control throttle if throttle is zero. + +* Setup the right failsafe action. For most users it is advised to use ``set failsafe_procedure = RTH``. + +* Take a few minutes to read through how the different [Flight Modes](../features/Modes.md) affect the model in the air. + +* Have `manual` mode configured so if it happens anything with gyro / accelerometer in the air you can use manual control. This includes if your flight controller resets during flight because of example an brownout. + +* Read through the INAV [CLI commands](https://github.com/iNavFlight/inav/blob/master/docs/Cli.md), especially ALL marked with "**fw_ **" This will give you hints how the modes for fixed wings work. + +### Step 6: Optional, but Recommended: + +* [Tune your PIFF controller](../advanced/Tune-INAV-PIFF-controller-for-fixedwing.md) ( INAV versions 1.6 & later ) + +* To make altitude hold smoother you can adjust ``set nav_fw_pos_z_p`` , ``set nav_fw_pos_z_i`` and ``set nav_fw_pos_z_d``. Good values to start are 30/10/10. + +* Use Airmode mode to get full stabilization and servo throw with no throttle applied. + +* [Setting up failsafe with return to home.](../features/Failsafe.md#setting-up-failsafe-with-return-to-home) + +* If your compass is not 100% properly setup just disable it instead. **A calibrated compass can cause orientation drift during flight that may not show up in the configurator** (especially built-in ones on your FC). Really consider disabling it unless you need it. INAV uses GPS heading normally, Only on ground before GPS speed has been high enough or if error between GPS heading and compass heading exceed 60deg will it use compass heading + +* Use ``feature MOTOR_STOP`` for more safety. Motor will not spin if just armed. + +* Use ``set tpa_rate`` and ``set tpa_breakpoint`` to optimise your PIFF for higher speeds. Good value to start is 40% at your cruise throttle position as breakpoint. + +* Servo speed limits the control rate of your FC. You can lower ``set gyro_hardware_lpf`` to 20 + +* Adjust ``set roll_rate`` and ``set pitch_rate`` to the flight characteristics of your plane. For a race wing values like ``set roll_rate = 36`` and ``set pitch_rate = 18`` are a good starting point. + +* Set your [RTH mode](../features/Navigation-modes.md#rth-altitude-control-modes) to your liking + +* Increase ``set nav_fw_bank_angle`` for tighter turns. + +* ``set inav_reset_home = FIRST_ARM`` Unless you want your home position to be reset during mid air re-armings. + +### Last Step, a Test Flight!: + +* Double check following again: + * 3d model in configurator moves correctly when moving airplane by hand. And that the aircraft is showing leveled when your holding the aircraft leveled in air. + * Do the [High Five](https://youtu.be/Gf74geZyKYk) test in manual mode, verify everything is moving as expected. + * Enable `Angle` / `Horizon` mode and verify the control surfaces moves correctly when moving aircraft by hand and by sticks on TX + +* Arm and launch your aircraft using prefered mode, example `manual` for the maiden flight launch. + * If airplane is not flying leveled when in self leveling mode like `Horizon` you need to trim your [board aligment](./Sensor-calibration.md#board-orientation-and-level-calibration) + * If airplane flies leveled, do an [Servo Autotrim](../features/Modes.md#servo-autotrim) + * Tune your PIFF values, either manually or with [AUTOTUNE](../features/Modes.md#autotune) + +* For GPS features + * Test `NAV ALTHOLD` and see that it holds altitude. + * Test `NAV ALTHOLD` and `NAV POSHOLD` combined + * Test `RTH` flight mode + * Test [failsafe](../features/Failsafe.md) + + +### Optional / Guides related to Fixed Wing: + +* Using a seperate BEC for servos to prevent the FC from restarting due to brownouts or interferences of the servos. [Example](http://www.rcgroups.com/forums/showpost.php?p=34254665&postcount=4006) INAV will not be able to function after an brownout, Pilot must switch into manual mode and fly manually and land the airplane. + +* [Using a minimosd](https://github.com/iNavFlight/inav/wiki/Howto:-CC3D-flight-controller,-minimOSD-and-GPS-for-fixed-wing#osd-setup) + +* Howto in flight trim servos. [Aileron example at rcgroups.com](http://www.rcgroups.com/forums/showpost.php?p=35059861&postcount=6741) [Fixed wing example](https://www.rcgroups.com/forums/showpost.php?p=36039077&postcount=8732) + +* Prefer using digital servos to analog ones. Digital servos are much faster. [Explanation](https://www.rcgroups.com/forums/showpost.php?p=36649528&postcount=10480) + +* Add an capacitor on the +5v powering servos to avoid issues. ( Especially with digital servos ) [Link explanation](http://www.vstabi.info/en/node/1422) [Example to buy](http://www.multiwiicopter.com/products/c1-anti-brownout-cap-for-rc-drone-servos) + +* [Why do I have limited servo throw-in-my airplane](./Why-do-I-have-limited-servo-throw-in-my-airplane.md) diff --git a/versioned_docs/version-8.0.1/quickstart/Getting-started-with-iNav.md b/versioned_docs/version-8.0.1/quickstart/Getting-started-with-iNav.md new file mode 100644 index 0000000..e776c16 --- /dev/null +++ b/versioned_docs/version-8.0.1/quickstart/Getting-started-with-iNav.md @@ -0,0 +1,66 @@ +--- +title: Getting Started with iNav +--- + +### Getting started + +## Where to download?! +Install the latest version of [INAV Configurator](https://github.com/iNavFlight/inav-configurator/releases) and use it to download and flash the firmware. Note that the Chrome app is no longer supported by Google. + +Be aware on the first boot after a reflash, or clean erase, iNAV tries to auto detect MAG, BARO, and SPEED (Pitot-tube). If none of them are detected, it will indicate this with red icons on the sensor bar. It will also fail on `Hardware health` on the Pre-arming checks. To fix this, reboot the controller and it should be fine. + +Go through the index on the right side to find useful information. + +### Hardware needed for GPS assisted modes. + +* Multirotors: GPS, magnetometer, barometer. +* Fixed wings: GPS. (Can also use magnetometer and barometer but not needed.) + +[Video showing how to edit and tailor INAV for you needs.](https://youtu.be/n3Z1fOQJAg8) + +## GPS +INAV supports Ublox, DJI NAZA, NMEA (Removed in V7), multiwii's i2c-nav board and MultiWiiCopter's i2c-gps modules. + +M8N versions ( example [Ublox NEO-M8N](https://inavflight.com/shop/s/bg/1005394) and [Beitian BN-880](https://inavflight.com/shop/p/BN880) ) have been tested and are recommended, but both M6N and M7N should work. + +With the default INAV settings, INAV will configure the ublox GPS for you. There is no need to use software like u-center. + +Also be aware that some of our flight controllers can cause interference with the GPS, causing low satellites, or even no satellites at all. Keep the GPS as far away from the flight controller as possible. Either shield your GPS, or flight controller from any equipment that could cause interference. + +You can learn how to setup your GPS unit for use with INAV on [on this page](./GPS--and-Compass-setup.md). + +## Notes / Common issues + +* Old version of INAV configurator, verify that your on the latest version see [link](https://chrome.google.com/webstore/detail/inav-configurator/fmaidjmgkdkpafmbnmigkpdnpdhopgel). If it has failed to update, simply uninstall and re-install the configurator. + +* Unable to enable NAV related modes, see [Navigation-modes](../features/Navigation-modes.md) for possible reasons for why. + +* INAV does not show "GPS Signal Strength" for each satellite in the Cleanflight configurator. Instead, only the first one is used to show [HDOP](https://en.wikipedia.org/wiki/Dilution_of_precision_%28GPS%29) + +* INAV has only one PID controller called fp-pid. + +* INAV has an extra safety feature that prevents you from arming your aircraft if certain conditions are met, or not met. This is controlled by the CLI variable "Nav_extra_arming_safety", which is turned on by default. + +1. No valid GPS lock (needs 3d lock and more satelites than inav_gps_min_sats). +1. Navigation modes are turned on while trying to arm. + + +* INAV has GPS modes that differ from Cleanflight, or names them differently. Read [this wiki page](../features/Navigation-modes.md) for how to use them, and combine them, to get the wanted position hold. + +* If your copter is toilet-bowling, which means, in the beginning it holds its position and then starts to make bigger and bigger circles, you probably have your magnetometer calibrated incorrectly, or it’s seeing the magnetic field of power lines or the beeper. +If you are using your FC onboard mag, try to place the the FC as far away as possible from the parts causing magnetic interference e.g. mounting it on/under the top plate on small racers. + +* No GPS lock after setting it up, and the GPS icon lights up green, are often due to electric noise from the flight controller or other equipment such as 1.2ghz video TX. Try putting the GPS on a mast. You can also shield the GPS or FC using aluminum foil or copper foil. + +* Barometer is held at 0 meter until the first time you arm. This is to ensure that it starts at 0 meter instead of 10 meters because of temperature drift (this is why raising your flight controller while connected to configurator shows increasing altitude, but then is dragged to 0 meter). + +* When installing or upgrading INAV on a board with OSD, always load one OSD font from the configurator OSD tab. iNAV uses its own OSD fonts and usually every release adds new characters or icons. + +* Do not use Serial RX over a software serial. It cannot reliably handle SBUS or IBUS for instance. + +**Checklist if you're having an issue with something:** +1. Join our Telegram group following this [link](https://t.me/INAVFlight) +2. Try and look through the wiki regarding the issue you have. You can also search the Wiki. +3. Read the first post at [rcgroups Cleanflight INAV thread](http://www.rcgroups.com/forums/showthread.php?t=2495732). Also read the last 5 pages in the thread to see if someone else has already mentioned it. Also try and search in the thread. +4. Explain your issue, include CLI dump and blackbox log if you have a logger. Mention what you have tried, and also if it's working as intended in stock Cleanflight / Earlier versions of INAV +5. [Template for asking for help](http://www.rcgroups.com/forums/showpost.php?p=35637535&postcount=7930) diff --git a/versioned_docs/version-8.0.1/quickstart/Howto:-CC3D-flight-controller,-minimOSD,-GPS-and-LTM-telemetry-for-fixed-wing.md b/versioned_docs/version-8.0.1/quickstart/Howto:-CC3D-flight-controller,-minimOSD,-GPS-and-LTM-telemetry-for-fixed-wing.md new file mode 100644 index 0000000..8506640 --- /dev/null +++ b/versioned_docs/version-8.0.1/quickstart/Howto:-CC3D-flight-controller,-minimOSD,-GPS-and-LTM-telemetry-for-fixed-wing.md @@ -0,0 +1,251 @@ +--- +title: "Howto: CC3D Flight Controller, MinimOSD, GPS and LTM Telemetry for Fixed Wing" +--- + +# HOWTO setup iNAV for fixed wing + +## Index +1. Features + +2. What is needed + +3. Flashing iNAV firmware to CC3D. + +4. Basic settings + +Flight controller orientation. + +Port settings + +Configuration + +Failsafe + +Telemetry (LTM) + +Transmitter setup + +Motors + +Servo setup + +Recommended power layout + +OSD setup + + + +## 1. Features +- Stabilization (Angle, Horizon modes) +- RTH (baro and mag are not needed for fixed wing) +- Waypoint missions (with EZGUI android apk). +- Battery monitoring +- RSSI monitoring +- Failsafe +- Telemetry +- etc + +## 2. What is needed +- Flight controller (one from the list, this guide shows how to setup CC3D) +- OSD (minimOSD or any other that supports Cleanflight) +- RX with telemetry support (just in case you want also telemetry). And a telemetry capable ground system. +- GPS receiver (any that supports at least 5Hz update) +- FPV hardware, airframe, RC + +## 3. Flashing iNAV firmware to CC3D. +First you need to download a precompiled firmware for the board [here](https://github.com/iNavFlight/inav/releases). Select one of the releases precompiled for CC3D: +- _inav_x.x.x_CC3D.hex_ +- _inav_x.x.x_CC3D_PPM1.hex_ (for PPM input on Pin 3 and RSSI_ADC on Pin 8. See Board_CC3D document in /docs) + +You only can flash cc3d through FTDI and MainPort (USART1). Not usb, neither FlexiPort. + +Next, you can check [numerous guides](https://www.youtube.com/watch?v=eClp-YBeSms&t=0s) how to flash CC3D with third party firmware (Attention, you'll need a FTDI adapter for the purpose). Of course you need to specify the previously downloaded firmware for the flashing. + +## 4. Basic settings + +### Port settings +It is done using Ports tab ![Ports tab](http://s8.hostingkartinok.com/uploads/images/2017/02/631dc2afa3f22266a8308532735b836e.png). + +- UART1 - leave default value. You'll connect here either OSD or FTDI to setup the FC. If you want telemetry select it in Inav configurator, so you can have telemetry when the aircraft is armed. In this case, your OSD should be capable to read LTM, in order to mantain working OSD and telemetry at the same time. You have to connect the TX line from CC3D to both OSD and RX telemetry capable receiver (as openlrsng systems). MWOSD can read both MSP and LTM telemetry. +- UART3 - for GPS. Switch on the option and select the correct port speed (38400 or 57600). Please pay attention that when using a ublox GPS receiver family 6-8 you don't need to make any configurations in the u-center. The flight controller under iNAV will do everything what is needed. + +### Configuration +On the Configuration tab in the Mixer group select the Airplane or Flying Wing depending on the airframe you are using. +![Airplane](http://s8.hostingkartinok.com/uploads/images/2017/02/cbcafe5219dcc85798b0cf2e2a86fcde.png) +Do not pay attention on the servo numbering! It will be described later. +Now you need to make the accelerometer calibration. It is mandatory to fulfill it and it is better to do it before installing the FC into airframe. Please follow the [instructions](./Sensor-calibration.md) to perform the 6 point accelerometer calibration. +Do not activate "enable motor and servo otput" until you are sure the kind of airplane has been selected correctly. Otherwise, servos can receive high frecuencies (as for ESCs) and burn. + +### Flight controller orientation. +After the calibration is done you may select the sutable board orientation +![Orientation](http://s8.hostingkartinok.com/uploads/images/2017/02/5fc75e098b96313009ac4a192954b714.png) +If you need to install your FC board into airplane such a way that the forward arrow points to some other direction, you need to change the FC orientation. This can be done or in the iNAV GUI or from CLI. I prefer doing it from GUI. Follow the Configuration tab and Board and sensor Alignment. If you want to mount the CC3D flight controller with USB plug to the left you need to set the Yaw Degrees parameter to 90. If you are going to mount the FC with USB plug facing right, then the Yaw Degrees = 270, etc. + +Now you are ready to connect your hardware according to the schemes: + +Parallel PWM Receiver ([click here](http://s8.hostingkartinok.com/uploads/images/2016/02/a47fb019c7783371053239a3d23a8d46.jpg) to see the real hardware photo) + + + +PPM Receiver + + + +Of course, according to the receiver used you need to use the aproppriate firmware for CC3D - inav_1.6.0_CC3D.hex for parallel PWM or inav_1.6.0_CC3D_PPM1.hex PPM receiver. For more information about CC3D pinout check the [CC3D](https://github.com/iNavFlight/inav/blob/master/docs/Board%20-%20CC3D.md) page + +I usually don't like the motor rotation on arm, so I switch on the "Don't spin motors when armed" feature. + +The new iNAV firmware has all PWM outputs disable until you switch on the "Enable motor and servo output" + +Switch on the GPS feature, and select the protocol. +![GPS and other settings](http://s8.hostingkartinok.com/uploads/images/2017/02/299f7c79a6293db997088e129a696caf.png) + +If your GPS receiver have enough satellites visible you'll be able to check the 3D fix in GPS tab +![3D fix] (http://s8.hostingkartinok.com/uploads/images/2017/02/2db676b5f03d436480919b1cbc945fb5.png) + +By default INAV won't arm without GPS fix if the GPS feature is ON. To disable it use CLI: "set nav_extra_arming_safety = OFF". And it is highly recomended to switch it back ON before real flights. + +If your receiver connection is other than Parallel PWM Receiver, then you'll be able to setup battery voltage, current, RSSI monitoring. It is very userful. So IMHO a PPM is a must for CC3D FC. + +On the Receiver tab set up the channel order and their correspondence to TX sticks movements. + +On the Modes tab set up the flight modes according to the position of the AUX channels. For example, if you have a 3pos switch for the AUX1 you can get at minimum the following: + +* minimum channel value - do not select any mode - only gyros will work. The hand launch take off in this mode is excellent. +* middle value - Angle or Horizon. +* maximum value - RTH. Automatic return home. + +![Flight modes](http://s8.hostingkartinok.com/uploads/images/2017/02/60c42df3c50ead25347f0252b51f55da.png) + +### Failsafe + +Check [this link](../features/Failsafe.md) for RTH failsafe + +Starting from INAV 1.6 the Filesafe feature is very transparent and clear. For the failsafe to work you'll need: +* Setup the receiver output no signal when your TX is off +* OR assign the Failsafe mode to one of the channels and force it to trigger when your TX is off + +Set the desired Failsafe behavior. I prefer RTH. +![My failsafe](http://s8.hostingkartinok.com/uploads/images/2017/02/f91f666e2b97dce17462bb6534592519.png) + +###Telemetry + +Connect your TX line and configure FC as explained above. Nowadays you can use several telemetry systems as [mwptools](https://github.com/stronnag/mwptools), [EZGUI](http://ez-gui.com/), [LTM Telemetry OLED](https://github.com/sppnk/LTM-Telemetry-OLED) and possibly others. The USART port can be shared with a OSD or used only for one of both features. For example, you can fly FPV w/o telemetry (just in your googles) or fly thermal soaring 3rd view w/o OSD. Or have both. Amazing you can do this with a simple cc3d, isnt it?. + +###Transmitter setup + +You should adjust (normal or reverse) on your transmitter so sticks correspond to below: + +In reciever tab: +* Throttle stick push away - increased value +* Yaw (Rudder) stick right - increased value +* Pitch (Elevator) stick push away - increased value +* Roll (Ailerons) stick right - increased value + +Also use subtrim to get center value of 1500us and use travel adjustment to get at lowest value 1000us and highest 2000us when moving sticks. +![My receiver settings](http://s8.hostingkartinok.com/uploads/images/2017/02/b2199bbbb760c7c7c1b3699c89cc4883.png) + +### Motors + +After this follow to the Motors tab, rock your plane and notice what levels are moving depending on PITCH, ROLL and YAW angles. You can remember it or write it down. ROLL - 4,5; PITCH - 3, YAW - 6. + +![Motors tab](http://s8.hostingkartinok.com/uploads/images/2017/02/6996d5db9400c8d5330fc10bde0817a8.png) + +Turn on your transmitter, switch to the Angle or Horizon flight mode and follow the Servos tab. + +### Servo setup + +![Servo tab](http://s8.hostingkartinok.com/uploads/images/2017/02/baafb90dc93d5553a945b684dd2f4ac8.png) + +Here you need to be very attentive. In this tab you set up endpoints, neutral, rates and reverse for stabilization modes. Servo numbering in the tab starts from 0! + +For the Elevator, tilt the plane's tail down, and the Elevator should go down. If the elevator goes up, then you need to set the Rate (the right-most drop down list) Servo 2 with negative sign. + +Tilt the left wing down. Left Aileron should go down and right one should go up. If it is not so, then put negative Rate values for Servo 3 and Servo 4 (if your ailerons are connected by means of Y-cable, than you can change the settings for only one Servo or connect the Y-cable to other Servo out). + +Turn the tail to the left, and the Rudder should go to the left. Otherwise switch the Servo 5 Rate to negative. + +After this stick movement should also move servos the correct way. (General rules: Elevator stick down - elevator goes up, Aileron stick to the left - left aileron is up, right aileron is down, Rudder stick to the left, rudder goes to the left) + +Attention! all the endpoints, neutrals, trimmers should be done on this tab, not in transmitter! + +### Recommended power layout + +To prevent brownout its wise to power servos with one BEC and the flight controller + other equipment with another BEC. + +This is one way to accomplish it: + +Glued a new row of pins onto the case of the flightcontroller, the must be connected together. (See the bottom of pins) + +All servos and ESC is connected to flightcontroller, except positive wire which goes to the new row. (This line gets its power from the BEC in the ESC) + +Another external BEC is connected at random positive and negativ pin on flight controller to power it, the receiver and GPS. + +This way if one servo get stuck and draws alot of amps you shouldnt risk your flight system to power down. + +![Connection Diagram](http://s13.postimg.org/5kpkb9ppz/Connection_Diagram.png) +![Real life example](http://s28.postimg.org/jjg5paz65/Real_life_example_power_supply.png) + +### PID/PIFF Settings +The default PID settings that are set using Presets tab are a good starting point but usually you may need to chnge them if you want yor plane to fly really stable. +Here are my PIFF settings for a small 800mm flying wing - EPP Rainbow. +![My PID settings](http://s8.hostingkartinok.com/uploads/images/2017/02/317e88fbcaee882142291b81260a5e3d.png) + +DigitalEntity wrote about the PIFF controller setup procedure the following, I have nothing to add: + +If you have inflight adjustments - this will be easier for you. I tuned like this: + +0) Fly ANGLE mode, LOS, calm day. Started with these PIFFs: P=5, I=10, D/FF = 20 + +1) Give hard roll command, watch how plane executes it. It should be smooth from start to finish, without (or with minimal) oscillation at the end of the roll, without much wobble. If it oscillates at the end of maneuver - reduce FF; if it starts fast, then slows down and after a moment pushes it further - that's indication of too low FF + +2) Repeat for pitch + +3) I dialed up FF as much as possible until I started to get oscillations at the end of maneuver and backed about 20% + +4) If it doesn't reach commanded angle - increase I-gain (best verifiable with OSD indication for roll/pitch angles + +5) Wait for some wind (to get some turbulence) + +6) Dial up P to fight turbulence better. In ANGLE mode I+FF will keep aircraft nice and level, but P will improve turbulence handling. WARNING - increasing P will cause much more active servos and reduce their life expectancy. + +### OSD setup +I prefer using MW-OSD. It supports many protocols and also has native support of iNAV. Say you have a minimOSD or micro minimOSD. So first you need to upload [MWOSD](http://www.mwosd.com/) firmware to your minimOSD. You can find pretty straight forward install guide following the [link](https://github.com/ShikOfTheRa/scarab-osd/blob/master/OTHER/DOCUMENTATION/FirmwareFlashing.md). As usual you use Arduino IDE for global OSD config. All changes are done in the Config.h file. In our case we need to leave uncommented the following lines: + +OSD HARDWARE settings: + +`#define MINIMOSD` + +CONTROLLER SOFTWARE + +`#define iNAV` + +AIRCRAFT/INSTALLATION TYPE settings + +`#define FIXEDWING` + +TELEMETRY LTM settings + +`#define FORCE_MSP` // Uncomment to enable use of MSP as well as telemetry. Uses more memory + +`#define PROTOCOL_LTM` // To use LTM protocol instead of MSP + +`#define BAUDRATE 9600` + + +Usualy it is enough. + +You may enable also rather helpful `#define MAPMODE` under FEATURES that allows you to see the map indication of relative positions of home and aircraft. + +Configure config.h allowing LTM if you want to share USART1 with your telemetry system, as explained above. + +All other settings are done in MWOSD configurator. Everything you need is to select the font you like, OSD indicators' positions. As iNAV takes care of voltage/current/rssi monitoring you'll need to ask the MWOSD to take these values from the FC (see the fig) + +The screenshot of the MWOSD configuration is shown below: +![MWOSD config](http://s8.hostingkartinok.com/uploads/images/2017/02/57085e4054b03a4ee52179224bc5f337.png) + +Watch this demo video of the iNAV flight and RTH function: + +[![iNAV on FT Duster](http://img.youtube.com/vi/GYd7mxGxNL8/0.jpg)](https://www.youtube.com/watch?v=GYd7mxGxNL8) + +Good luck! diff --git a/versioned_docs/version-8.0.1/quickstart/Howto:-CC3D-flight-controller,-minimOSD-,-telemetry-and-GPS-for-fixed-wing.md b/versioned_docs/version-8.0.1/quickstart/Howto:-CC3D-flight-controller,-minimOSD-,-telemetry-and-GPS-for-fixed-wing.md new file mode 100644 index 0000000..1ab452d --- /dev/null +++ b/versioned_docs/version-8.0.1/quickstart/Howto:-CC3D-flight-controller,-minimOSD-,-telemetry-and-GPS-for-fixed-wing.md @@ -0,0 +1,237 @@ +--- +title: "Howto: CC3D Flight Controller, MinimOSD , Telemetry and GPS for Fixed Wing" +--- + +# HOWTO setup iNAV for fixed wing + +## Index +1. Features + +2. What is needed + +3. Flashing iNAV firmware to CC3D. + +4. Basic settings + +Flight controller orientation. + +Port settings + +Configuration + +Failsafe + +Transmitter setup + +Motors + +Servo setup + +Recommended power layout + +OSD setup + + + +## 1. Features +- Stabilization (Angle, Horizon modes) +- RTH (baro and mag are not needed for fixed wing) +- Waypoint missions (with EZGUI android apk). +- Battery monitoring +- RSSI monitoring +- Failsafe +- Telemetry +- etc + +## 2. What is needed +- Flight controller (one from the list, this guide shows how to setup CC3D) +- OSD (minimOSD or any other that supports Cleanflight) +- RX with telemetry support (just in case you want also telemetry). And a telemetry capable ground system. +- GPS receiver (any that supports at least 5Hz update) +- FPV hardware, airframe, RC + +## 3. Flashing iNAV firmware to CC3D. +First you need to download a precompiled firmware for the board [here](https://github.com/iNavFlight/inav/releases). Select one of the releases precompiled for CC3D: +- _inav_x.x.x_CC3D.hex_ for PWM receiver +- _inav_x.x.x_CC3D_PPM1.hex_ for PPM receiver + +Next, you can check [numerous guides](https://www.youtube.com/watch?v=eClp-YBeSms&t=0s) how to flash CC3D with third party firmware (Attention, you'll need a FTDI adapter for the purpose). Of course you need to specify the previously downloaded firmware for the flashing. For now, if you have servos, it is not advisable to flash with them attached, because there is high frequency sent with default configuration, and you can burn them (the way -for now- is flash, configure plane and then attach servos). + +## 4. Basic settings + +### Port settings +It is done using Ports tab ![Ports tab](http://s8.hostingkartinok.com/uploads/images/2017/02/631dc2afa3f22266a8308532735b836e.png). + +- UART1 - leave default value. You'll connect here either OSD or FTDI to setup the FC. If you want telemetry select it in Inav configurator, so you can have telemetry when the aircraft is armed. In this case, your OSD should be capable to read LTM, in order to mantain working OSD and telemetry at the same time. You have to connect the TX line from CC3D to both OSD and RX telemetry capable receiver (as openlrsng systems). MWOSD can read both MSP and LTM telemetry. +- UART3 - for GPS. Switch on the option and select the correct port speed (38400 or 57600). Please pay attention that when using a ublox GPS receiver family 6-8 you don't need to make any configurations in the u-center. The flight controller under iNAV will do everything what is needed. + +### Configuration +On the Configuration tab in the Mixer group select the Airplane or Flying Wing depending on the airframe you are using. +![Airplane](http://s8.hostingkartinok.com/uploads/images/2017/02/cbcafe5219dcc85798b0cf2e2a86fcde.png) +Do not pay attention on the servo numbering! It will be described later. +Now you need to make the accelerometer calibration. It is mandatory to fulfill it and it is better to do it before installing the FC into airframe. Please follow the [instructions](./Sensor-calibration.md) to perform the 6 point accelerometer calibration. + +### Flight controller orientation. +After the calibration is done you may select the sutable board orientation +![Orientation](http://s8.hostingkartinok.com/uploads/images/2017/02/5fc75e098b96313009ac4a192954b714.png) +If you need to install your FC board into airplane such a way that the forward arrow points to some other direction, you need to change the FC orientation. This can be done or in the iNAV GUI or from CLI. I prefer doing it from GUI. Follow the Configuration tab and Board and sensor Alignment. If you want to mount the CC3D flight controller with USB plug to the left you need to set the Yaw Degrees parameter to 90. If you are going to mount the FC with USB plug facing right, then the Yaw Degrees = 270, etc. + +Now you are ready to connect your hardware according to the schemes: + +Parallel PWM Receiver ([click here](http://s8.hostingkartinok.com/uploads/images/2016/02/a47fb019c7783371053239a3d23a8d46.jpg) to see the real hardware photo) + + + +PPM Receiver + + + +Of course, according to the receiver used you need to use the aproppriate firmware for CC3D - inav_1.6.0_CC3D.hex for parallel PWM or inav_1.6.0_CC3D_PPM1.hex PPM receiver. For more information about CC3D pinout check the [CC3D](https://github.com/iNavFlight/inav/blob/master/docs/Board%20-%20CC3D.md) page + +I usually don't like the motor rotation on arm, so I switch on the "Don't spin motors when armed" feature. + +The new INAV firmware has all PWM outputs disable until you switch on the "Enable motor and servo output" + +Switch on the GPS feature, and select the protocol. +![GPS and other settings](http://s8.hostingkartinok.com/uploads/images/2017/02/299f7c79a6293db997088e129a696caf.png) + +If your GPS receiver have enough satellites visible you'll be able to check the 3D fix in GPS tab +![3D fix] (http://s8.hostingkartinok.com/uploads/images/2017/02/2db676b5f03d436480919b1cbc945fb5.png) + +By default INAV won't arm without GPS fix if the GPS feature is ON. To disable it use CLI: "set nav_extra_arming_safety = OFF". And it is highly recomended to switch it back ON before real flights. + +If your receiver connection is other than Parallel PWM Receiver, then you'll be able to setup battery voltage, current, RSSI monitoring. It is very userful. So IMHO a PPM is a must for CC3D FC. + +On the Receiver tab set up the channel order and their correspondence to TX sticks movements. + +On the Modes tab set up the flight modes according to the position of the AUX channels. For example, if you have a 3pos switch for the AUX1 you can get at minimum the following: + +* minimum channel value - do not select any mode - only gyros will work. The hand launch take off in this mode is excellent. +* middle value - Angle or Horizon. +* maximum value - RTH. Automatic return home. + +![Flight modes](http://s8.hostingkartinok.com/uploads/images/2017/02/60c42df3c50ead25347f0252b51f55da.png) + +### Failsafe + +Check [this link](../features/Failsafe.md) for RTH failsafe + +Starting from iNav 1.6 the Filesafe feature is very transparent and clear. For the failsafe to work you'll need: +* Setup the receiver output no signal when your TX is off +* OR assign the Failsafe mode to one of the channels and force it to trigger when your TX is off + +Set the desired Failsafe behavior. I prefer RTH. +![My failsafe](http://s8.hostingkartinok.com/uploads/images/2017/02/f91f666e2b97dce17462bb6534592519.png) + +###Telemetry + +Connect your TX line and configure FC as explained above. Nowadays you can use several telemetry systems as [mwptools](https://github.com/stronnag/mwptools), [EZGUI](http://ez-gui.com/), [LTM Telemetry OLED](https://github.com/sppnk/LTM-Telemetry-OLED) and possibly others. The USART port can be shared with a OSD or used only for one of both features. For example, you can fly FPV w/o telemetry (just in your googles) or fly thermal soaring 3rd view w/o OSD. Or have both. Amazing you can do this with a simple cc3d, isnt it?. + +###Transmitter setup + +You should adjust (normal or reverse) on your transmitter so sticks correspond to below: + +In reciever tab: +* Throttle stick push away - increased value +* Yaw (Rudder) stick right - increased value +* Pitch (Elevator) stick push away - increased value +* Roll (Ailerons) stick right - increased value + +Also use subtrim to get center value of 1500us and use travel adjustment to get at lowest value 1000us and highest 2000us when moving sticks. +![My receiver settings](http://s8.hostingkartinok.com/uploads/images/2017/02/b2199bbbb760c7c7c1b3699c89cc4883.png) + +### Motors + +After this follow to the Motors tab, rock your plane and notice what levels are moving depending on PITCH, ROLL and YAW angles. You can remember it or write it down. ROLL - 4,5; PITCH - 3, YAW - 6. + +![Motors tab](http://s8.hostingkartinok.com/uploads/images/2017/02/6996d5db9400c8d5330fc10bde0817a8.png) + +Turn on your transmitter, switch to the Angle or Horizon flight mode and follow the Servos tab. + +### Servo setup + +![Servo tab](http://s8.hostingkartinok.com/uploads/images/2017/02/baafb90dc93d5553a945b684dd2f4ac8.png) + +Here you need to be very attentive. In this tab you set up endpoints, neutral, rates and reverse for stabilization modes. Servo numbering in the tab starts from 0! + +For the Elevator, tilt the plane's tail down, and the Elevator should go down. If the elevator goes up, then you need to set the Rate (the right-most drop down list) Servo 2 with negative sign. + +Tilt the left wing down. Left Aileron should go down and right one should go up. If it is not so, then put negative Rate values for Servo 3 and Servo 4 (if your ailerons are connected by means of Y-cable, than you can change the settings for only one Servo or connect the Y-cable to other Servo out). + +Turn the tail to the left, and the Rudder should go to the left. Otherwise switch the Servo 5 Rate to negative. + +After this stick movement should also move servos the correct way. (General rules: Elevator stick down - elevator goes up, Aileron stick to the left - left aileron is up, right aileron is down, Rudder stick to the left, rudder goes to the left) + +Attention! all the endpoints, neutrals, trimmers should be done on this tab, not in transmitter! + +### Recommended power layout + +To prevent brownout its wise to power servos with one BEC and the flight controller + other equipment with another BEC. + +This is one way to accomplish it: + +Glued a new row of pins onto the case of the flightcontroller, the must be connected together. (See the bottom of pins) + +All servos and ESC is connected to flightcontroller, except positive wire which goes to the new row. (This line gets its power from the BEC in the ESC) + +Another external BEC is connected at random positive and negativ pin on flight controller to power it, the receiver and GPS. + +This way if one servo get stuck and draws alot of amps you shouldnt risk your flight system to power down. + +![Connection Diagram](http://s13.postimg.org/5kpkb9ppz/Connection_Diagram.png) +![Real life example](http://s28.postimg.org/jjg5paz65/Real_life_example_power_supply.png) + +### PID/PIFF Settings +The default PID settings that are set using Presets tab are a good starting point but usually you may need to chnge them if you want yor plane to fly really stable. +Here are my PIFF settings for a small 800mm flying wing - EPP Rainbow. +![My PID settings](http://s8.hostingkartinok.com/uploads/images/2017/02/317e88fbcaee882142291b81260a5e3d.png) + +DigitalEntity wrote about the PIFF controller setup procedure the following, I have nothing to add: + +If you have inflight adjustments - this will be easier for you. I tuned like this: + +0) Fly ANGLE mode, LOS, calm day. Started with these PIFFs: P=5, I=10, D/FF = 20 + +1) Give hard roll command, watch how plane executes it. It should be smooth from start to finish, without (or with minimal) oscillation at the end of the roll, without much wobble. If it oscillates at the end of maneuver - reduce FF; if it starts fast, then slows down and after a moment pushes it further - that's indication of too low FF + +2) Repeat for pitch + +3) I dialed up FF as much as possible until I started to get oscillations at the end of maneuver and backed about 20% + +4) If it doesn't reach commanded angle - increase I-gain (best verifiable with OSD indication for roll/pitch angles + +5) Wait for some wind (to get some turbulence) + +6) Dial up P to fight turbulence better. In ANGLE mode I+FF will keep aircraft nice and level, but P will improve turbulence handling. WARNING - increasing P will cause much more active servos and reduce their life expectancy. + +### OSD setup +I prefer using MW-OSD. It supports many protocols and also has native support of iNAV. Say you have a minimOSD or micro minimOSD. So first you need to upload [MWOSD](http://www.mwosd.com/) firmware to your minimOSD. You can find pretty straight forward install guide following the [link](https://github.com/ShikOfTheRa/scarab-osd/blob/master/OTHER/DOCUMENTATION/FirmwareFlashing.md). As usual you use Arduino IDE for global OSD config. All changes are done in the Config.h file. In our case we need to leave uncommented the following lines: + +OSD HARDWARE settings: + +`#define MINIMOSD` + +CONTROLLER SOFTWARE + +`#define iNAV` + +AIRCRAFT/INSTALLATION TYPE settings + +`#define FIXEDWING` + +Usualy it is enough. + +You may enable also rather helpful '#define MAPMODE' under FEATURES that allows you to see the map indication of relative positions of home and aircraft. + +Configure config.h allowing LTM if you want to share USART1 with your telemetry system, as explained above. + +All other settings are done in MWOSD configurator. Everything you need is to select the font you like, OSD indicators' positions. As iNAV takes care of voltage/current/rssi monitoring you'll need to ask the MWOSD to take these values from the FC (see the fig) + +The screenshot of the MWOSD configuration is shown below: +![MWOSD config](http://s8.hostingkartinok.com/uploads/images/2017/02/57085e4054b03a4ee52179224bc5f337.png) + +Watch this demo video of the iNAV flight and RTH function: + +[![iNAV on FT Duster](http://img.youtube.com/vi/GYd7mxGxNL8/0.jpg)](https://www.youtube.com/watch?v=GYd7mxGxNL8) + +Good luck! diff --git a/versioned_docs/version-8.0.1/quickstart/Multirotor-guide.md b/versioned_docs/version-8.0.1/quickstart/Multirotor-guide.md new file mode 100644 index 0000000..70e78de --- /dev/null +++ b/versioned_docs/version-8.0.1/quickstart/Multirotor-guide.md @@ -0,0 +1,48 @@ +--- +title: Multirotor Guide +--- + +## 0. Setup hardware + +* Balance props and motors, install FC on a vibration-damping mount if possible. + +## 1. Getting your flight controller ready. + +* Download latest configurator from [here](https://github.com/iNavFlight/inav-configurator/releases) +* Flash newest INAV with full chip erase option selected +* Do the advanced 6-point [sensor calibration](./Sensor-calibration.md) +* Select your Mixer. Most common ones are already available as presets. For exotic setups, see [Custom mixes for exotic setups](../advanced/Custom-mixes-for-exotic-setups.md#setups-that-can-be-implemented-with-custom-mixer); if you don't do this, you will not see any motors in the motors tab. +* Be sure the model moves on the configurator as it is moving on the bench. If not, adjust board alignment from the Configuration tab +* If you have a magnetometer, you may need to attach a battery for magnetometer calibration. Rotate the quadcopter 360 degrees on all 3 axes. + +## 2. Configure your TX + +No special mixers have to be applied on the TX. Just bypass all the channels as they are to the FC. +Set trim on your TX to zero. Use subtrim to adjust your TX midpoints to be precisely 1500 when Roll/Pitch/Yaw sticks are centered. You can check the input values in the Receiver tab in INAV configurator. All values should be in the range 1000-2000uS. + +## 3. Tune your copter's Pitch/Roll/Yaw/Level PIDs and other values + +Many presets are available on the specific configurator tab and they mostly represent a good starting point. +Be sure to load the correct present and double check the applied configuration. + +[Default values for different type of aircrafts](../legacyinfo/Default-values-for-different-type-of-aircrafts.md) + +## 4. Trim copter to level flight +DO NOT USE TRIM on your Transmitter to stop your copter drifting. Use board alignment settings or accelerometer trim stick combos. +You can use RX stick combination to trim the quadcopter: [Controls](https://github.com/iNavFlight/inav/blob/master/docs/Controls.md) + +## 5. Check your sensors +* If any, be sure the baro readings are correct and be sure the barometer is shielded with some foam to avoid to be disturbed by the air pushed on it by the propellers. +* If a magnetometer is in use, be sure to check it is providing the correct heading information. After having calibrated it (outside, far away from buildings and parking lots) be sure that when you point the multirotor nose to the north the heading is 0 and it still is around 0 even if you tilt the multirotor a bit on pitch and roll axis. Be also sure that the magnetometer is placed reasonably away from interference sources (such as power wires). +Having a good compass reading is **crucial** for navigation function to work correctly. + +## 6. Setup and verify failsafe on TX and INAV +[Guide for setting up failsafe](../features/Failsafe.md#setting-up-failsafe-with-return-to-home) + +## 7. Determine and set hover throttle +To let the altitude hold controller work correctly, you need to input your hover throttle (the throttle you need to apply to make the multirotor hover) into the **nav_mc_hover_thr** CLI variable or just set it via the configurator configuration tab. +If your copter jumps/rises when you activate altitude hold, reduce your nav_mc_hover_thr a bit. If your copter falls, increase it a bit; fine tune until there is no jump or fall when activating altitude hold. + + +## 8. Get to know the CLI values. +INAV offers a lot of customization through CLI variables. It is strongly recommended to read through [INAV CLI variables](../advanced/iNav-CLI-variables.md) and [available CLI variables](https://github.com/iNavFlight/inav/blob/master/docs/Cli.md) diff --git a/versioned_docs/version-8.0.1/quickstart/Something-is-disabled----Reasons.md b/versioned_docs/version-8.0.1/quickstart/Something-is-disabled----Reasons.md new file mode 100644 index 0000000..7857445 --- /dev/null +++ b/versioned_docs/version-8.0.1/quickstart/Something-is-disabled----Reasons.md @@ -0,0 +1,116 @@ +--- +title: "\"Something\" Is Disabled Reasons" +--- + +## Something is disabled + +INAV may fail to perform some action as expected, typically arming or engaging waypoints. This articles documents the reasons for some of these events. + +## Arming disabled reasons + +INAV will refuse to arm for the following reasons (e.g. from cli `status`): + +| Reason (CLI Mnemonic) | Bit Mask (Hex) | Explanation | +| ------ | ----- | ----------- | +| `FS` | `00000080` | The RX is not recognised as providing a valid signal | +| `ANGLE` | `00000100` | The vehicle is not level as defined by the CLI `small_angle` setting | +| `CAL` | `00000200` | The pre-arm sensor calibration has not completed. The barometer is somewhat susceptible to lengthy calibration, which may be mitigated by the CLI setting `baro_cal_tolerance`, e.g. `set baro_cal_tolerance = 500` (find a suitable value by experimentation). | +| `OVRLD` | `00000400` | The CPU load is excessive. May be caused by too an aggressive loop time setting. | +| `NAV` | `00000800` | Where the CLI setting `nav_extra_arming_safety = ON` is used, this may be caused by reasons shown in the [table below](#navigation-unsafe-reasons) | +| `COMPASS` | `00001000` | The compass is not calibrated. Perform the calibration procedure | +| `ACC` | `00002000` | The accelerometer is not calibrated. Perform the 6 point calibration procedure | +| `ARMSW` | `00004000` | The arm switch was engaged as the FC booted | +| `HWFAIL` | `00008000`| A required hardware device (Gyro, Accelerometer, Baro, Compass, RangeFinder, Pitot, GPS or OpticalFlow) has failed / is not recognized | +| `BOXFS` | `00010000` | A failsafe switch is engaged | +| `KILLSW` | `00020000` | A kill switch is engaged | +| `RX` | `00040000` | The RC link is not detected (RX not detected) | +| `THR` | `00080000` | The throttle setting is not a minimum | +| `CLI` | `00100000` | The CLI is active (note: you will always /unavoidably see this when in the CLI) | +| `CMS` | `00200000` | The CMS menu is active | +| `OSD` | `00400000` | The OSD menu is active | +| `ROLL/PITCH` | `00800000` | Roll and/or pitch is not centred | +| `AUTOTRIM` | `01000000` | Servo autotrim is engaged | +| `OOM ` | `02000000` | The FC is out of memory | +| `SETTINGFAIL` | `04000000` | A CLI setting is out of range. The erroneous setting should be indicated in a CLI `dump`. If you can't then reset the offending setting, reflash with full chip erase and reapplying settings from scratch may help.| +| `PWMOUT` | `08000000` | PWM output error. Motor or servo output initialisation failed. | +| `NOPREARM` | `10000000` | PREARM is enabled and timed out | +| `DSHOTBEEPER` | `20000000` | DSHOTBEEPER is enabled and is active | +| `LANDED` | `40000000` | Landing detected. | + +Note: On older processors, just the bitmask is shown, which can be decoded by the numeric values in the table. A numeric value may be a combination of conditions, for example: + +``` +0x184000 = 00100000 + 00080000 + 00004000 (CLI active, throttle not at minimum, arm engaged) +``` +The values are correct for INAV 6.1.0 as of 2023-04. + +### Navigation Unsafe reasons + +Requires that a navigation mode (which includes failsafe RTH) is configured + +| Navigation Unsafe | +| ------------------ | +| The GPS has insufficient satellites (this is checked even if you disable GPS, but have a NAV mode configured in Modes tab) | +| A navigation switch is engaged (e.g.PH, WP, RTH) | +| First WP distance exceeded | +| Sensor quality is unacceptable: EPH/EPV > 10m (note the limit in the CLI `inav_max_eph_epv` is in cm, default 1000). Check also `inav_baro_epv` | +| The WP mission contains an invalid JUMP sequence | +| The first waypoint is beyond the distance defined by the CLI setting: INAV 5.1 and below uses `nav_wp_safe_distance`. From INAV 6.0 use `nav_wp_max_safe_distance` | + +* `nav_wp_safe_distance` : The default is 100m (10000cm, as the value is entered in cm), 0 disables this check. + + ``` + # get nav_wp_safe_distance + nav_wp_safe_distance = 10000 + Allowed range: 0 - 65000 + ``` +* `nav_wp_max_safe_distance` : The default is 100m, 0 disables this check. This setting is entered in metres. + + ``` + # get nav_wp_safe_distance + nav_wp_safe_distance = 100 + Allowed range: 0 - 1500 + ``` +* Invalid JUMP. + - First item can't be JUMP (can't calculate 1st WP distance, impossible for backward jumps) + - Can't jump to immediately adjacent WPs (pointless) + - Can't jump beyond WP list (undefined behaviour) + - Can only jump to geo-referenced WPs (otherwise, undefined behaviour) + +## Waypoints will not execute + +The pilot *thinks* that they have loaded a waypoint mission, but the mission will not execute when the assigned switch is engaged. + +* No mission is actually loaded into the FC. Note that waypints have to be in volatile memory (that is cleared on powercycle), not in EEPROM. If waypoints have been saved to EEPROM it is necessary to restore the WPs to volatile memory before the mission can be executed. + +* The Fixed Wing aircraft is in `MANUAL` / `PASSTHROUGH` mode. + +* The craft is currently executing RTH + +## RTH fails to engage + +* The GPS signal is degraded (eph / epv exceed, CLI setting `inav_max_eph_epv`) + +## Diagnostics + +Diagnosing arming failure and WP execution failure often requires the use of a tool external to the FC; the following may help: + +* The INAV configurator displays reasons for arming failure +* A blackbox log provides post event diagnostics +* The INAV CLI (available from a terminal, the configurator and many ground-stations) displays arming disabled reasons: + + ``` + # status + ... + Arming disabled flags: NAV HWFAIL RX CLI + ``` +* A ground station may provide diagnostics, for example [mwp](https://github.com/stronnag/mwptools) provides an 'Arming Disabled' alert icon with 'popover' description / explanation, mission upload validation checks and 'first WP distance' exceeded warnings. +* Video explanation via https://quadmeup.com/troubleshooting-inav-why-inav-is-not-arming/ +* **Your favourite diagnostic tool / technique goes here** + +## Postscript + +For 'Navigation is unsafe', you may, of course `set nav_extra_arming_safety = ALLOW_BYPASS`; however there is a clue is in the name. +**Arming with `ALLOW_BYPASS` is performed by holding full right yaw whilst switch arming.** + +Prior to INAV 6.0, there is also `nav_extra_arming_safety = OFF`, which is not recommended. At least with `ALLOW_BYPASS` you know you've done something potentially dangerous. diff --git a/versioned_docs/version-8.0.1/quickstart/TROUBLESHOOTING.md b/versioned_docs/version-8.0.1/quickstart/TROUBLESHOOTING.md new file mode 100644 index 0000000..a609278 --- /dev/null +++ b/versioned_docs/version-8.0.1/quickstart/TROUBLESHOOTING.md @@ -0,0 +1,24 @@ +--- +title: TROUBLESHOOTING +--- + +# UAV won't arm +1. Verify that it is level. You can bypass this requirement by typing "set Small_angle=180" then "save" in the CLI. +2. Run-time calibration not completed. Put the UAV flat and immobile on a surface and wait 10 seconds. +3. GPS doesn't have a lock. Move to an area with no sky obstruction or interference and wait. If lock still doesn't happen after a minute, relocate your GPS far from on-board electrics or shield the bottom part with [copper tape](https://www.ebay.com/itm/Copper-Foil-Tape-2-X-10ft-EMI-Conductive-Adhesive-Ship-from-USA/152118807659?hash=item236afccc6b:g:q2IAAOSwpdpVaIrt:rk:3:pf:0). +4. Compass not calibrated. Start compass calibration from configurator or stick control and, within 30 seconds, face all 6 face of the UAV to the ground. +If none of the above work, verify in your goggles or CLI "status" command the cause. Hardware malfunction might be the cause. + +# UAV shakes +1. Verify that frame & motors are solidly bolted together, on an H-frame double up the bottom plate. +2. lower P on Roll and Pitch from configurator, adjustments or stick control +3. drop PID to 1,1,1 for Pitch and Roll and do a PID tuning from scrartch https://youtu.be/4sjXJ5HoU_c or https://youtu.be/ehyXLsvaEhw + +# POS HOLD drifting +(moving in circle a.k.a Toilet bowling or running away) +1. SETTINGS: go inside configuration and verify that your MAG alignment is [set properly](./GPS--and-Compass-setup.md) +2. CALIBRATION: redo MAG calibration +3. TEST MAG INSULATION: on the bench, add headings to OSD then props off, connect battery, motor tabs rev up your motors and see in your goggles if the headings changes. If it changes you have bad insulation so move the mag away from your quad's electricals or apply copper tape between mag and main power lines. If you want to test this with flight condition current, fly your quad outside in ACRO, doing punch-through with no yaw movement. + +# Transition to ALT HOLD is bad +1. Get your UAV in a stable hover in ACRO or ANGLE mode, find the amount of throttle required (openTX>Output>Throttle number at the top). Dial this number in configurator>Advanced Tuning tab>Hover Throttle. Note: if the value you find is >1700, your motors are underpowered to lift your quad, consider different props and motor combination. diff --git a/versioned_docs/version-8.0.1/quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md b/versioned_docs/version-8.0.1/quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md new file mode 100644 index 0000000..ba30efa --- /dev/null +++ b/versioned_docs/version-8.0.1/quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md @@ -0,0 +1,173 @@ +--- +title: Upgrading from an Older Version of iNav to the Current Version +--- + +![](http://static.rcgroups.net/forums/attachments/6/1/0/3/7/6/a9088858-102-inav.png) + +This page is intended to make it easy for you to upgrade your INAV older version to the current INAV version. The process is straightforward as long as you follow the instructions detailed here. + +**The current version of INAV is 2.6** (as the time this document was been last updated). + +> Note that INAV version numbers has a pattern: There are three numbers separated by dots (2.6.0). +> - The first number is the major version. This number changes only when BIG changes are made on INAV. +> - The second number is the minor version. This number changes only when SMALL changes are made on INAV. +> - The third number is the revision number. This number changes only when some bug is fixed on INAV and no new functionality is added. +> +> To determine the version, only the first two numbers are important. + +In general, all comes to the following steps: +* Get the latest configurator. +* Get the current settings from your flight controller board +* Determine the current version and the TARGET of INAV firmware flashed to your flight controller board. +* Check which values has changed over the newer versions, and adjust your settings as necessary +* Flash the latest INAV firmware on your flight controller board +* Paste the adjusted settings on the Command Line Interface (CLI) +* Upload your preferred font to the OSD chip +* Take additional upgrading actions (if needed) + +**Note about F1 and F3 microcontrollers**: Flight controller boards with STM32**F1** chips (like NAZE32 or CC3D) will only work up to the 1.7.3 version. Flight controller boards with STM32**F3** chips (like SPRACINGF3 or OMNIBUS) will only work up to the 2.6.0 version. We do recommend that you use a F4, F7 or H7 based Flight Controller board for new setups. + +## Get the latest INAV configurator + +Download and install (on your computer) the latest configurator at the [INAV Configurator Releases page](https://github.com/iNavFlight/inav-configurator/releases). + +## Get all the current settings from your flight controller board + +1. Open the configurator program on your computer. +2. Connect the flight controller board to the USB port on PC, then click connect button on the configurator. +3. Go to the CLI tab and type `diff all`. It should return a big text with all your settings. +4. Copy this text and paste it on your favorite text editor (like Notepad), then save it as a backup. + +## Determine your current INAV firmware version and target + +On your settings file, just at the beginning, you should have something like this: + +``` +# version +# INAV/MATEKF405 2.2.1 Jul 3 2019 / 22:31:06 (a6d847482) +# GCC-8.2.1 20181213 (release) [gcc-8-branch revision 267074] +``` + +Take note of the TARGET which is just after the `INAV/` and VERSION number which is just after the target +(In this case, TARGET is **MATEKF405** and VERSION is **2.2.1**) + +## Check which values has changed over the newer versions, and adjust as necessary + +Now it's time to change your settings file so it becomes compatible with the latest INAV firmware. Follow your specific version instructions. + +### From 2.5 to 2.6 +* If you are using Home Offset feature (lines with `nav_rth_home_offset_`), then you should remove this lines and use the `safehome` function instead. +* If you are using Override Motor Stop feature (`nav_overrides_motor_stop` setting), you need to change the value of this setting by one of the new possible values, which are `OFF`, `AUTO_ONLY` or `ALL_NAV`. +* Remove this deprecated settings if present: `gyro_notch1_hz`, `gyro_notch2_hz`, `gyro_notch1_cutoff`, `gyro_notch2_cutoff`, `use_dterm_fir_filter`, `dterm_setpoint_weight`, `dterm_notch_hz`, `dterm_notch_cutoff`, `mc_iterm_relax_type` + +### From 2.4 to 2.6 +* `aux` lines needs to be changed. Use [this tool](https://box2perm.vercel.app/) to migrate your `aux` lines. +* Replace `yaw_motor_direction` by `motor_direction_inverted` if present +* Replace `telemetry_uart_unidir` by `telemetry_halfduplex` if present +* Remove this deprecated settings if present: `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`, `vtx_freq`, `gyro_notch1_hz`, `gyro_notch2_hz`, `gyro_notch1_cutoff`, `gyro_notch2_cutoff`, `use_dterm_fir_filter`, `dterm_setpoint_weight`, `dterm_notch_hz`, `dterm_notch_cutoff`, `mc_iterm_relax_type` +* If you are using Home Offset feature (lines with `nav_rth_home_offset_`), then you should remove this lines and use the `safehome` function instead. +* If you are using Override Motor Stop feature (`nav_overrides_motor_stop` setting), you need to change the value of this setting by one of the new possible values, which are `OFF`, `AUTO_ONLY` or `ALL_NAV`. + +### From 2.2 or 2.3 to 2.6 +* Find `min_throttle` line, and replace it by `throttle_idle`, setting the percentage of the idle throttle. The default is 15. +* `aux` lines needs to be changed. Use [this tool](https://box2perm.vercel.app/) to migrate your `aux` lines. +* Replace `yaw_motor_direction` by `motor_direction_inverted` if present +* Replace `telemetry_uart_unidir` by `telemetry_halfduplex` if present +* Remove this deprecated settings if present: `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`, `vtx_freq`, `gyro_notch1_hz`, `gyro_notch2_hz`, `gyro_notch1_cutoff`, `gyro_notch2_cutoff`, `use_dterm_fir_filter`, `dterm_setpoint_weight`, `dterm_notch_hz`, `dterm_notch_cutoff`, `mc_iterm_relax_type` + +### From 2.0 or 2.1 to 2.6 +* Find `min_throttle` line, and replace it by `throttle_idle`, setting the percentage of the idle throttle. The default is 15. +* 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. +* `aux` lines needs to be changed. Use [this tool](https://box2perm.vercel.app/) to migrate your `aux` lines. +* Replace `yaw_motor_direction` by `motor_direction_inverted` if present +* Replace `telemetry_uart_unidir` by `telemetry_halfduplex` if present +* Remove this deprecated setting if present: `vtx_freq`, `gyro_notch1_hz`, `gyro_notch2_hz`, `gyro_notch1_cutoff`, `gyro_notch2_cutoff`, `use_dterm_fir_filter`, `dterm_setpoint_weight`, `dterm_notch_hz`, `dterm_notch_cutoff`, `mc_iterm_relax_type` + +### From 1.9 to 2.6 +* Find `min_throttle` line, and replace it by `throttle_idle`, setting the percentage of the idle throttle. The default is 15. +* 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. +* Delete all lines starting with: mixer acczero accgain magzero osd. +* `aux` lines needs to be changed. Use [this tool](https://box2perm.vercel.app/) to migrate your `aux` lines. +* Replace `yaw_motor_direction` by `motor_direction_inverted` if present +* Replace `telemetry_uart_unidir` by `telemetry_halfduplex` if present +* Remove this deprecated setting if present: `vtx_freq` + +### From 1.7 or 1.8 to 2.6 +* Find `min_throttle` line, and replace it by `throttle_idle`, setting the percentage of the idle throttle. The default is 15. +* 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. +* Delete all lines starting with: mixer acczero accgain magzero osd. +* Find `vbat_scale`, `vbat_max_cell_voltage`, `vbat_warning_cell_voltage` and `vbat_min_cell_voltage` values on your settings, and multiply their values by 10. +* `aux` lines needs to be changed. Use [this tool](https://box2perm.vercel.app/) to migrate your `aux` lines. +* Replace `yaw_motor_direction` by `motor_direction_inverted` if present +* Replace `telemetry_uart_unidir` by `telemetry_halfduplex` if present +* Remove this deprecated setting if present: `vtx_freq` + +### From 1.6 to 2.6 +* Find `min_throttle` line, and replace it by `throttle_idle`, setting the percentage of the idle throttle. The default is 15. +* 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. +* Delete all lines starting with: mixer acczero accgain magzero osd. +* Find `vbat_scale`, `vbat_max_cell_voltage`, `vbat_warning_cell_voltage` and `vbat_min_cell_voltage` values on your settings, and multiply their values by 10. +* Find `mag_hold_rate_limit` and replace by `heading_hold_rate_limit` (renamed parameter). +* Find `nav_max_speed` and replace by `nav_auto_speed` (renamed parameter). +* Find `nav_max_climb_rate` and replace by `nav_auto_climb_rate` (renamed parameter). +* Remove this deprecated settinsg if present: `vtx_freq`, `nav_fw_roll2pitch` +* `aux` lines needs to be changed. Use [this tool](https://box2perm.vercel.app/) to migrate your `aux` lines. +* Replace `yaw_motor_direction` by `motor_direction_inverted` if present +* Replace `telemetry_uart_unidir` by `telemetry_halfduplex` if present +* Find all lines starting with `servo`, and remove the fifth and the sixth arguments of the parameter. + +Example: `servo 3 1070 1950 1500 90 90 -80 -1` + +Will become: `servo 3 1070 1950 1500 -80 -1` + +### From 1.5 or earlier versions + +Your version is A LOT outdated. We really recommend you to set everything up from scratch. Your current settings will not be as much as useful. But don't worry, INAV became much easier to set up since this version. + +## Flash the lastest INAV firmware to your board +Now it's time to flash the lastest INAV firmware to your flight controller board.. +* On INAV Configurator, go to the "Firmware Flasher" tab. +* Select the proper TARGET of the flight controller board. +* Make sure that the "Full Erase" option is ENABLED. +* Click "Load Firmware (Online)" button, and then after it loads the online firmware, click "Flash Firmware" button. +* Wait for the completion of the process. + +## Paste the adjusted settings on the CLI +* Click the "Connect" button on INAV configurator. +* Go to the CLI tab. +* Copy all the settings text from your adjusted text file and paste on the CLI input text box, then press ENTER. +* Wait for all the settings to be typed on the output text box. +* If no errors occurred, Flight controller should save the settings and reboot by itself. + +## Upload your preferred font to the OSD chip +The font file changes between versions! That's why you need to update the font stored on the OSD chip every time you upgrade INAV version in order to OSD work properly. +* Go to the OSD Tab on the Configurator. +* In the bottom right corner, there's a "Font" button. Click it. +* Select the font that best pleases you, and then click "Upload" button. +* Wait for the process to complete. Flight Controller will reboot automatically. + +## If you are upgrading from version 2.5 or earlier +* If you have a compass, it has to be recalibrated! +* Do not migrate Multirotor PID and filter settings from previous releases of INAV. Use Multirotor default preset (3"-7") instead and make required changes on top of that + +## If you are upgrading from version 1 +There was a big update from 1.9 to 2.0, there's a new mixer framework, a new OSD framework and new calibration scales for accelerometer and magnetometer. For that reason, you'll need to set this up again and the previous settings will not work. + +* Go to the Mixer tab and load and apply your desired mixer. +* Calibrate the accelerometer following the steps in the dedicated tab. Only first two steps need to be made in the right order. +* Calibration of the magnetometer should be done at the field. The magnetic field indoors can be distorted and led to a bad calibration. +* Restore manually your OSD layout using the screenshot and upload the font you like using the dedicated button. + +## Check if everything is working as it should + +* Carefully check all the configuration and check on the bench without installed propellers if everything looks good. In particular, check if the model preview behaves correctly when you are moving your model and check surfaces movements for an airplane. +* Arming with sticks command is not supported anymore, so if you were using sticks commands for arming, don't forget to add an arming switch in the Modes tab on the configurator. + +## Enjoy the lastest INAV version! + +If you done everything right, now your aircraft should be flying ok. + +INAV adds lots of new features at every new version! This guide helped you to make your aircraft fly with the newer version as good as it was flying before, but now it's time learn all the new tricks that INAV can do! +Check [this page](../advanced/New-features-over-versions-log.md) to see everything that the newer versions of INAV can do! + +Enjoy! diff --git a/versioned_docs/version-8.0.1/quickstart/Welcome-to-INAV,-useful-links-and-products.md b/versioned_docs/version-8.0.1/quickstart/Welcome-to-INAV,-useful-links-and-products.md new file mode 100644 index 0000000..b249b93 --- /dev/null +++ b/versioned_docs/version-8.0.1/quickstart/Welcome-to-INAV,-useful-links-and-products.md @@ -0,0 +1,82 @@ +--- +title: "Welcome to INAV, Useful Links and Products" +--- + +![](https://telegra.ph/file/412011e1cf4219dbd18f1.png) + +**Hello everyone and welcome to INAV!** + +We hope you will enjoy spending time in the chat (https://t.me/INAVFlight) and the Facebook Group (https://www.facebook.com/groups/INAVOfficial), following the rules of a quiet life, and indeed flying your machines with INAV. + +Before asking for help, please check if you can find the solution for your issue here: + +1) https://github.com/iNavFlight/inav/wiki + +2) https://github.com/iNavFlight/inav/tree/master/docs + +Any contribution to the above documentation is, indeed, highly appreciated. + +If you find any issues in the flight controller code please feel free to open an issue on our GitHub issue tracker at https://github.com/iNavFlight/inav/issues, if you find an issue with the configurator software open an issue here https://github.com/iNavFlight/inav-configurator/issues + +**Going to build a copter or a plane that will run INAV?** + +You are very welcome to ask for suggestions and tips in the chat! + +Buying from the following links will help in supporting more hardware, debugging and fixing bugs and expanding the functionalities of the flight controller. From every purchase you make, without any additional cost for you, a small commission will be given to INAV developers! + +If you are building a **plane**: + +https://github.com/iNavFlight/inav/wiki/Fixed-Wing-Guide + +## Recommended hardware + +### Flight controllers +* [Matek H743-SLIM](https://inavflight.com/shop/s/bg/1755036) +* [Speedybee F7 V2](https://inavflight.com/shop/s/bg/1839168) +* [Matek F722-SE](https://inavflight.com/shop/p/MATEKF722SE) +* [Matek F765-WSE](https://inavflight.com/shop/s/bg/1890404) +* [Matek F722-MiniSE](https://inavflight.com/shop/s/bg/1707404) + +### Airplane models +* [AR Wing Pro](https://inavflight.com/shop/s/bg/1756841) +* [AtomRC Dolphin](https://inavflight.com/shop/s/bg/1758430) +* [SonicModell Binary](https://inavflight.com/shop/s/bg/1473014) +* [Volantex Ranger 2000](https://inavflight.com/shop/s/bg/1151700) +* [Mini AR Wing](https://inavflight.com/shop/s/bg/1341528) + +### Radios +* [Radiomaster TX16S](https://inavflight.com/shop/s/bg/1746075) +* [FrSky Q X7](https://inavflight.com/shop/s/bg/1196246) +* [FlySky FS-i6X](https://inavflight.com/shop/s/bg/1090406) + +### Long range radio systems +* [Radiomaster TX16S + TBS Crossfire Starter Set](https://inavflight.com/shop/s/bg/1735618) +* [ImmersionsRC Ghost](https://inavflight.com/shop/s/bg/1722555) +* [FrSky R9M 2019 + R9MX](https://inavflight.com/shop/s/bg/1707906) + +### GPS & Sensors +* [Beitian BN180 GPS](https://inavflight.com/shop/p/BN180) +* [Beitian BN880Q GPS+COMPASS](https://inavflight.com/shop/s/bg/1450469) +* [Beitian BN880 GPS+COMPASS ](https://inavflight.com/shop/p/BN880) +* [Matek M8Q-5883](https://inavflight.com/shop/s/bg/1337288) +* [Matek Lidar+OpFlow board](https://inavflight.com/shop/s/bg/1604930) +* [Matek Digital Airspeed Sensor](https://inavflight.com/shop/s/bg/1710131) +* [Benewake TFmini Lidar](https://inavflight.com/shop/s/bg/1449740) + + +### FPV +* [DJI FPV Goggles](https://inavflight.com/shop/s/bg/1800745) +* [Caddx Air Unit](https://inavflight.com/shop/s/bg/1546926) +* [Caddx Vista HD](https://inavflight.com/shop/s/bg/1625165) +* [Foxeer T-Rex FPV camera](https://inavflight.com/shop/s/bg/1756536) +* [RunCam Eagle 3 FPV camera](https://inavflight.com/shop/s/bg/1723926) +* [Eachine Cobra X FPV goggles](https://inavflight.com/shop/s/bg/1778518) +* [Skyzone SKY04X FPV goggles](https://inavflight.com/shop/s/bg/1755006) + +### Other +* [ViFly ShortSaver 2](https://inavflight.com/shop/s/bg/1788341) +* [ViFly Finer buzzer](https://inavflight.com/shop/s/bg/1329066) + +You can get more suggestions following this [link](./Welcome-to-INAV,-useful-links-and-products.md) too. + +_Thanks, and happy flying!_ diff --git a/versioned_docs/version-8.0.1/quickstart/Why-do-I-have-limited-servo-throw-in-my-airplane.md b/versioned_docs/version-8.0.1/quickstart/Why-do-I-have-limited-servo-throw-in-my-airplane.md new file mode 100644 index 0000000..afcb134 --- /dev/null +++ b/versioned_docs/version-8.0.1/quickstart/Why-do-I-have-limited-servo-throw-in-my-airplane.md @@ -0,0 +1,50 @@ +--- +title: Why Do I Have Limited Servo Throw in My Airplane +--- + +# Explanation of why you have limited throw in any stabilisation mode. ( Including Rate / Acro ) + +First basic PIFF controller: + +* P-gain will change your servo movement when it sees an error between wanted motion ( deg/s ) and actual motion ( deg/s ) +* I-gain will change your servo movement when it sees an error between wanted motion ( deg/s ) and actual motion ( deg/s ), however I-gain also knows the concept of time, and therefor will contuinue to increase servo movement until actual motion is the same as wanted motion. +* FF-gain doesnt not care about actual motion, and does only move servos based on wanted motion. + +Also Angle mode itself have an P-gain to level the aircraft back to level. + +Also an sidenote is that I-gain is suppressed before takeoff and without throttle, EVEN with airmode enable you need to first have had some throttle to see the I-gain working, this is important to know if you want to "bench" test behavior. + +Passthrough bypasses all this an moves servos directly. + +In other words, the only thing that will limit passthrough servo limits and rates set up in the Servos tab. + +# What is stabilisation? And how do you as the pilot control the airplane in a stabilised mode? + +In passthrough everything is easy, you move sticks on radio, the FC does some mixing according to which airplane/flying wing you have, and then you move the servos directly. + +In stabiliation mode however you dont control the servos at **ALL**. Everything is controlled by actual motion, and wanted motion. When you move the sticks you are commanding motion, example 30deg/s roll. + +Then the P-gain will start working, the I-gain will start working and the FF-gain will start working, if tuned properly it will hit the wanted motion. + +So what does this have to do with limited servo throws? + +1. For actual testing on bench you will need to arm and apply throttle to see how much the servos actual moves in flight. + +2: + +An typical wing can example manage 500 deg/s, default rate values for INAV is 200deg/s. + +QUIZ: You command 100% right roll, which would be 200deg/s. What would happend if it did give you full servo throw? + +Yes, it would have hit 500deg/s instead and overshoot target motion. + +Sum up: + +You dont **need** full servo throw! It all depends how you want to [tune](../advanced/Tune-INAV-PIFF-controller-for-fixedwing.md) your airplane. + +IF you want full throw, your rate settings ( deg/s ) should match what your plane is able to do at full servo throw. Then in stabilitation mode you increase your P-gain or FF-gain untill you get full throw on servos. + + +Sidenote: For older firmeware, If you want to calm your airplane in `passthrough` mode, you will need an programmable TX. Program it so when enabling `passthrough` on a switch, the switch also reduce channel range and adds expo. + +In modern firmware, with `manual` mode (which replaces `passthrough`), the FC imposes expo and rates. diff --git a/versioned_docs/version-8.0.1/quickstart/YouTube-video-guides.md b/versioned_docs/version-8.0.1/quickstart/YouTube-video-guides.md new file mode 100644 index 0000000..6bfb164 --- /dev/null +++ b/versioned_docs/version-8.0.1/quickstart/YouTube-video-guides.md @@ -0,0 +1,47 @@ +--- +title: YouTube Video Guides +--- + +# Must watch + +- [INAV 7 Ferocious Falcon](https://youtu.be/8Q8t_KwlSAQ) +- [INAV on a flying wing video tutorial](https://www.youtube.com/playlist?list=PLOUQ8o2_nCLkZlulvqsX_vRMfXd5zM7Ha) +- [INAV on multirotor drone tutorial](https://youtube.com/playlist?list=PLOUQ8o2_nCLkfcKsWobDLtBNIBzwlwRC8) +- [Betaflight to INAV migration guide](https://www.youtube.com/watch?v=1hhsqyXeKew) +- [Can I copy my tune from Betaflight?](https://youtu.be/jgqjhSxd9EA) +- [How to use Autotune](https://youtu.be/Gsi1-0NXm0Y) +- [How to use servo autotrim](https://youtu.be/BOy0d9-s6Uc) +- [INAV on 7" FPV drones](https://youtu.be/phafJYNzTR0) +- [What is Ez Tune?](https://youtu.be/94foP_mxBLk) +- [INAV on a flying wing full tutorial](https://www.youtube.com/playlist?list=PLOUQ8o2_nCLkZlulvqsX_vRMfXd5zM7Ha) +- [How to use Autotune](https://youtu.be/Gsi1-0NXm0Y) +- [How to use servo autotrim](https://youtu.be/BOy0d9-s6Uc) +- [INAV on 7" FPV drones](https://youtu.be/phafJYNzTR0) +- [INAV from flash to flight for multirotor drones](https://youtube.com/playlist?list=PLOUQ8o2_nCLkfcKsWobDLtBNIBzwlwRC8) +- [INAV Fixed Wing Tuning Guide](https://youtu.be/A45vc4OihgY) +- [INAV Cruise Mode for multirotors](https://youtu.be/4pgDxexuSnU) +- [Circular geofence with INAV](https://youtu.be/qxkhDCLynU4) +- [Position Hold tutorial](https://youtu.be/a-pjXIXVkSU) +- [What is Ez Tune?](https://youtu.be/94foP_mxBLk) +- [Differential thrust for airplanes](https://youtu.be/UeroXOmn_8Y) + +## Troubleshooting videos + +* [Why it climbs in Altitude Hold](https://youtu.be/aE5oVbBtlig) +* [Why motors are hot?](https://youtu.be/zukTkEER-24) +* [Airmode problems](https://youtu.be/83BpUHay44k) +* [Why INAV is not arming](https://www.youtube.com/watch?v=7MAdgGkBkXs) +* [Why magnetometer is not working](https://www.youtube.com/watch?v=-zaIE-s8aHQ) +* [Why not getting full servo throw on flying wing](https://www.youtube.com/watch?v=o2RwTeBbvos) +* [Toilet bowling instead of Position Hold](https://www.youtube.com/watch?v=FlEm0-pXNf0) + +## Other + +* [INAV setup for tracked vehicles](https://youtu.be/9194OzsHOFc) +* [INAV on a rover tutorial](https://youtu.be/obfc62VWhyw) +* [Betaflight to INAV migration](https://youtu.be/1hhsqyXeKew) +* [Painless360 INAV playlist](http://www.youtube.com/playlist?list=PLYsWjANuAm4qdXEGFSeUhOZ10-H8YTSnH) +* [Can I copy my tune from Betaflight?](https://youtu.be/jgqjhSxd9EA) +* [INAV channel forwarding](https://youtu.be/sjML2r4dcIw) +* [Magnetometers are optional](https://youtu.be/uoSMMGpb9-o) +* [Is GPS required?](https://youtu.be/6jIb0c2dlxE) diff --git a/versioned_docs/version-8.0.1/quickstart/_category_.json b/versioned_docs/version-8.0.1/quickstart/_category_.json new file mode 100644 index 0000000..d1ffbef --- /dev/null +++ b/versioned_docs/version-8.0.1/quickstart/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Quickstart", + "position": 1 +} diff --git a/versioned_sidebars/version-8.0.1-sidebars.json b/versioned_sidebars/version-8.0.1-sidebars.json new file mode 100644 index 0000000..5f41a72 --- /dev/null +++ b/versioned_sidebars/version-8.0.1-sidebars.json @@ -0,0 +1,8 @@ +{ + "documentationSidebar": [ + { + "type": "autogenerated", + "dirName": "." + } + ] +} diff --git a/versions.json b/versions.json index 439e9fb..7c239ee 100644 --- a/versions.json +++ b/versions.json @@ -1,4 +1,5 @@ [ + "8.0.1", "7.1.2", "6.1.1", "5.1.0",