diff --git a/README.md b/README.md
index 8e5df3a..4cfad7d 100644
--- a/README.md
+++ b/README.md
@@ -17,14 +17,14 @@ To build and run the docs locally, install npm on your system and follow the Doc
- Make sure all packages are installed with `npm install`.
- Run the dev server with `npm run start`.
-The temporary documentation can be accessed at this URL: https://www.spiffygoose.com/inavdocs/
+Documentation can be accessed at this URL: https://inavflight.github.io/
## Versioning Scheme
The website utilizes Docusaurus's versioning feature to keep track of major changes to the firmware.
-The current version is the active stable release in the main `./docs` directory that is intended to be continually updated with minor updates until the next version.
-Upon the release of the next stable version, the current version will be archived (versioned) into its own directory using `npm run docusaurus docs:version x.y.z`
-Lastly, the next current version's label will updated in `docusaurus.config.ts`.
+The current version is the active stable release in `/versioned_docs/version-x.x.x` directory that has been frozen with no further updates.
+Upon the release of the next stable version, a new version will be created into its own directory using `npm run docusaurus docs:version x.y.z`
+Lastly, the next current version's label will have to updated manually in `docusaurus.config.ts`.
## Plugins Used
diff --git a/docs/advanced/AAT-Automatic-Antenna-Tracker.md b/docs/advanced/AAT-Automatic-Antenna-Tracker.md
new file mode 100644
index 0000000..108a002
--- /dev/null
+++ b/docs/advanced/AAT-Automatic-Antenna-Tracker.md
@@ -0,0 +1,55 @@
+---
+title: Automatic Antenna Tracker
+---
+
+## Introduction
+
+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.
+
+[](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:
+
+[](https://www.rcgroups.com/forums/showthread.php?3815901-New-product-low-cost-antenna-tracker-for-iNav-Betaflight-Ardupilot-KISS-etc)
\ No newline at end of file
diff --git a/docs/advanced/Boards,-Targets-and-PWM-allocations.md b/docs/advanced/Boards,-Targets-and-PWM-allocations.md
new file mode 100644
index 0000000..606228e
--- /dev/null
+++ b/docs/advanced/Boards,-Targets-and-PWM-allocations.md
@@ -0,0 +1,1627 @@
+---
+title: 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 |
+| ------ | -------------- |
+| MC_MOTOR | Multi-rotor motor |
+| FW_MOTOR | Fixed wing motor |
+| MC_SERVO | Multi-rotor servo |
+| FW_SERVO | Fixed wing servo |
+| LED | LED strip |
+| PWM, ANY | Some other PWM function |
+
+*List generated 2022-01-30 from the [inav master branch](https://github.com/iNavFlight/inav/) by [`parse_targets.rb`](http://seyrsnys.myzen.co.uk/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.
+
+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: AIKONF4
+
+Board is not DSHOT enabled.
+
+### Target: AIKONF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+| 6 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+
+## Board: AIRBOTF4
+
+Board is DSHOT enabled.
+
+### Target: AIRBOTF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO, ANY |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 7 | PWM, FW_SERVO |
+| 8 | PWM, FW_SERVO |
+| 9 | PWM, FW_SERVO |
+| 10 | PWM, FW_SERVO |
+
+## Board: AIRBOTF7
+
+Board is DSHOT enabled.
+
+### Target: AIRBOTF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+
+### Target: OMNIBUSF7NANOV7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+
+## Board: ALIENFLIGHTNGF7
+
+Board is not DSHOT enabled.
+
+### Target: ALIENFLIGHTNGF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_SERVO |
+| 2 | MC_SERVO |
+| 3 | MC_SERVO |
+| 4 | MC_SERVO |
+| 5 | MC_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+| 9 | MC_MOTOR, FW_SERVO |
+| 10 | MC_MOTOR, FW_SERVO |
+| 11 | MC_MOTOR, FW_SERVO |
+| 12 | MC_MOTOR, FW_SERVO |
+
+## Board: ANYFC
+
+Board is not DSHOT enabled.
+
+### Target: ANYFC
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_MOTOR |
+| 5 | MC_MOTOR, FW_MOTOR |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+| 9 | MC_MOTOR, FW_SERVO |
+| 10 | MC_MOTOR, FW_SERVO |
+
+## Board: ANYFCF7
+
+Board is not DSHOT enabled.
+
+### Target: ANYFCF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | PWM, MC_SERVO |
+| 2 | PWM, MC_SERVO |
+| 3 | PWM, MC_SERVO |
+| 4 | PWM, MC_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_MOTOR |
+| 9 | MC_MOTOR, FW_MOTOR |
+| 10 | MC_MOTOR, FW_SERVO |
+| 11 | MC_MOTOR, FW_SERVO |
+| 12 | MC_MOTOR, FW_SERVO |
+| 13 | MC_MOTOR, FW_SERVO, LED |
+| 14 | MC_MOTOR, FW_SERVO |
+
+### Target: ANYFCF7_EXTERNAL_BARO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | PWM, MC_SERVO |
+| 2 | PWM, MC_SERVO |
+| 3 | PWM, MC_SERVO |
+| 4 | PWM, MC_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_MOTOR |
+| 9 | MC_MOTOR, FW_MOTOR |
+| 10 | MC_MOTOR, FW_SERVO |
+| 11 | MC_MOTOR, FW_SERVO |
+| 12 | MC_MOTOR, FW_SERVO |
+| 13 | MC_MOTOR, FW_SERVO, LED |
+| 14 | MC_MOTOR, FW_SERVO |
+
+## Board: ASGARD32F4
+
+Board is DSHOT enabled.
+
+### Target: ASGARD32F4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+
+## Board: ASGARD32F7
+
+Board is DSHOT enabled.
+
+### Target: ASGARD32F7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+
+## Board: BEEROTORF4
+
+Board is not DSHOT enabled.
+
+### Target: BEEROTORF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 8 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+## Board: BETAFLIGHTF4
+
+Board is DSHOT enabled.
+
+### Target: BETAFLIGHTF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+## Board: BETAFPVF722
+
+Board is DSHOT enabled.
+
+### Target: BETAFPVF722
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+| 5 | MC_MOTOR |
+| 6 | MC_MOTOR |
+
+## Board: BLUEJAYF4
+
+Board is not DSHOT enabled.
+
+### Target: BLUEJAYF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO, LED |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: CLRACINGF4AIR
+
+Board is not DSHOT enabled.
+
+### Target: CLRACINGF4AIR
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+### Target: CLRACINGF4AIRV2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_MOTOR |
+| 5 | MC_MOTOR, FW_MOTOR |
+| 6 | MC_MOTOR, FW_SERVO |
+
+### Target: CLRACINGF4AIRV3
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_MOTOR |
+| 5 | MC_MOTOR, FW_MOTOR |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: COLIBRI
+
+Board is not DSHOT enabled.
+
+### Target: COLIBRI
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+| 8 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+
+### Target: QUANTON
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+| 8 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+
+## Board: DALRCF405
+
+Board is DSHOT enabled.
+
+### Target: DALRCF405
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_MOTOR |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+
+## Board: DALRCF722DUAL
+
+Board is DSHOT enabled.
+
+### Target: DALRCF722DUAL
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_MOTOR |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: F4BY
+
+Board is not DSHOT enabled.
+
+### Target: F4BY
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+
+## Board: FF_F35_LIGHTNING
+
+Board is DSHOT enabled.
+
+### Target: FF_F35_LIGHTNING
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+### Target: WINGFC
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: FF_FORTINIF4
+
+Board is not DSHOT enabled.
+
+### Target: FF_FORTINIF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+## Board: FF_PIKOF4
+
+Board is not DSHOT enabled.
+
+### Target: FF_PIKOF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+### Target: FF_PIKOF4OSD
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: FIREWORKSV2
+
+Board is DSHOT enabled.
+
+### Target: FIREWORKSV2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | FW_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | FW_MOTOR |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+
+### Target: OMNIBUSF4V6
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | FW_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | FW_MOTOR |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+
+## Board: FLYWOOF411
+
+Board is DSHOT enabled.
+
+### Target: FLYWOOF411
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_MOTOR |
+
+### Target: FLYWOOF411_V2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+## Board: FLYWOOF745
+
+Board is DSHOT enabled.
+
+### Target: FLYWOOF745
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 6 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 7 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 8 | MC_MOTOR, FW_SERVO, MC_SERVO |
+
+### Target: FLYWOOF745NANO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 6 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 7 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 8 | MC_MOTOR, FW_SERVO, MC_SERVO |
+
+## Board: FLYWOOF7DUAL
+
+Board is DSHOT enabled.
+
+### Target: FLYWOOF7DUAL
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: FOXEERF405
+
+Board is DSHOT enabled.
+
+### Target: FOXEERF405
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: FOXEERF722DUAL
+
+Board is DSHOT enabled.
+
+### Target: FOXEERF722DUAL
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+### Target: FOXEERF722V2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: FOXEERF745AIO
+
+Board is DSHOT enabled.
+
+### Target: FOXEERF745AIO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+
+## Board: FRSKYF4
+
+Board is not DSHOT enabled.
+
+### Target: FRSKYF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: FRSKYPILOT
+
+Board is DSHOT enabled.
+
+### Target: FRSKYPILOT
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_SERVO, FW_MOTOR |
+| 2 | MC_SERVO, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+| 9 | MC_MOTOR, FW_SERVO |
+| 10 | MC_MOTOR, FW_SERVO |
+| 11 | MC_MOTOR, FW_SERVO |
+| 12 | MC_MOTOR, FW_SERVO |
+
+### Target: FRSKYPILOT_LED
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_SERVO, FW_MOTOR |
+| 2 | MC_SERVO, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+| 9 | MC_MOTOR, FW_SERVO |
+
+## Board: FRSKY_ROVERF7
+
+Board is DSHOT enabled.
+
+### Target: FRSKY_ROVERF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_SERVO |
+| 5 | MC_SERVO |
+
+## Board: FURYF4OSD
+
+Board is DSHOT enabled.
+
+### Target: FURYF4OSD
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_MOTOR |
+
+### Target: MAMBAF405
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_MOTOR |
+
+## Board: HGLRCF722
+
+Board is DSHOT enabled.
+
+### Target: HGLRCF722
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+| 8 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+
+## Board: IFLIGHTF4_SUCCEXD
+
+Board is DSHOT enabled.
+
+### Target: IFLIGHTF4_SUCCEXD
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+
+## Board: IFLIGHTF4_TWING
+
+Board is not DSHOT enabled.
+
+### Target: IFLIGHTF4_TWING
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+## Board: IFLIGHTF7_TWING
+
+Board is DSHOT enabled.
+
+### Target: IFLIGHTF7_TWING
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_MOTOR, MC_SERVO |
+| 6 | MC_MOTOR, FW_MOTOR, MC_SERVO |
+| 7 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 8 | MC_MOTOR, FW_SERVO, MC_SERVO |
+
+## Board: IFLIGHT_BLITZ_F722
+
+Board is DSHOT enabled.
+
+### Target: IFLIGHT_BLITZ_F722
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+
+## Board: KAKUTEF4
+
+Board is DSHOT enabled.
+
+### Target: KAKUTEF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+### Target: KAKUTEF4V2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+## Board: KAKUTEF7
+
+Board is DSHOT enabled.
+
+### Target: KAKUTEF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 6 | MC_MOTOR, FW_SERVO, MC_SERVO |
+
+### Target: KAKUTEF7HDV
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 6 | MC_MOTOR, FW_SERVO, MC_SERVO |
+
+### Target: KAKUTEF7MINI
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 6 | MC_MOTOR, FW_SERVO, MC_SERVO |
+
+## Board: KAKUTEF7MINIV3
+
+Board is DSHOT enabled.
+
+### Target: KAKUTEF7MINIV3
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_MOTOR |
+| 4 | MC_MOTOR, FW_MOTOR |
+| 5 | MC_SERVO, FW_SERVO |
+| 6 | MC_SERVO, FW_SERVO |
+
+## Board: KAKUTEH7
+
+Board is DSHOT enabled.
+
+### Target: KAKUTEH7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+
+## Board: MAMBAF405US
+
+Board is DSHOT enabled.
+
+### Target: MAMBAF405US
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+### Target: MAMBAF405US_I2C
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+## Board: MAMBAF722
+
+Board is DSHOT enabled.
+
+### Target: MAMBAF722
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+### Target: MAMBAF722_I2C
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+## Board: MAMBAH743
+
+Board is DSHOT enabled.
+
+### Target: MAMBAH743
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_MOTOR |
+| 8 | MC_MOTOR, FW_MOTOR |
+
+## Board: MATEKF405
+
+Board is DSHOT enabled.
+
+### Target: MATEKF405
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, LED |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+
+### Target: MATEKF405_SERVOS6
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, LED |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+
+### Target: MATEKF405OSD
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, LED |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+
+## Board: MATEKF405CAN
+
+Board is DSHOT enabled.
+
+### Target: MATEKF405CAN
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_MOTOR |
+| 8 | MC_MOTOR, FW_MOTOR |
+
+## Board: MATEKF405SE
+
+Board is DSHOT enabled.
+
+### Target: MATEKF405SE
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+| 8 | MC_SERVO, FW_SERVO |
+| 9 | MC_SERVO, FW_SERVO |
+
+## Board: MATEKF411
+
+Board is DSHOT enabled.
+
+### Target: MATEKF411
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_SERVO, FW_SERVO |
+| 6 | MC_SERVO, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+
+### Target: MATEKF411_FD_SFTSRL
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_SERVO, FW_SERVO |
+| 6 | MC_SERVO, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+
+### Target: MATEKF411_RSSI
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_SERVO, FW_SERVO |
+| 6 | MC_SERVO, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+
+### Target: MATEKF411_SFTSRL2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_SERVO, FW_SERVO |
+| 6 | MC_SERVO, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+
+## Board: MATEKF411SE
+
+Board is DSHOT enabled.
+
+### Target: MATEKF411SE
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_SERVO, FW_SERVO |
+
+### Target: MATEKF411SE_PINIO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_SERVO, FW_SERVO |
+
+### Target: MATEKF411SE_FD_SFTSRL1
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_SERVO, FW_SERVO |
+
+### Target: MATEKF411SE_SS2_CH6
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+
+## Board: MATEKF722
+
+Board is DSHOT enabled.
+
+### Target: MATEKF722
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_MOTOR |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+
+### Target: MATEKF722_HEXSERVO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_MOTOR |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+
+## Board: MATEKF722PX
+
+Board is DSHOT enabled.
+
+### Target: MATEKF722PX
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+| 9 | MC_SERVO, FW_SERVO |
+| 10 | MC_SERVO, FW_SERVO |
+
+### Target: MATEKF722WPX
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+| 9 | MC_SERVO, FW_SERVO |
+| 10 | MC_SERVO, FW_SERVO |
+
+## Board: MATEKF722SE
+
+Board is DSHOT enabled.
+
+### Target: MATEKF722SE
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_SERVO, FW_MOTOR |
+| 8 | MC_SERVO, FW_MOTOR |
+
+### Target: MATEKF722MINI
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_SERVO, FW_MOTOR |
+| 8 | MC_SERVO, FW_MOTOR |
+
+### Target: MATEKF722SE_8MOTOR
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+
+## Board: MATEKF765
+
+Board is DSHOT enabled.
+
+### Target: MATEKF765
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+| 8 | MC_SERVO, FW_SERVO |
+| 9 | MC_SERVO, FW_SERVO |
+| 10 | MC_SERVO, FW_SERVO |
+| 11 | MC_MOTOR, FW_SERVO |
+| 12 | MC_MOTOR, FW_SERVO |
+
+### Target: MATEKF765SE
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+| 8 | MC_SERVO, FW_SERVO |
+| 9 | MC_SERVO, FW_SERVO |
+| 10 | MC_SERVO, FW_SERVO |
+| 11 | MC_MOTOR, FW_SERVO |
+| 12 | MC_MOTOR, FW_SERVO |
+
+## Board: MATEKH743
+
+Board is DSHOT enabled.
+
+### Target: MATEKH743
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+| 9 | MC_MOTOR, FW_SERVO |
+| 10 | MC_MOTOR, FW_SERVO |
+| 11 | MC_SERVO, FW_SERVO |
+| 12 | MC_SERVO, FW_SERVO |
+
+## Board: NOX
+
+Board is not DSHOT enabled.
+
+### Target: NOX
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+## Board: DYSF4PRO
+
+Board is DSHOT enabled.
+
+### Target: DYSF4PRO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO, LED |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+### Target: DYSF4PROV2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO, LED |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+### Target: OMNIBUSF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO, LED |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+### Target: OMNIBUSF4PRO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+### Target: OMNIBUSF4PRO_LEDSTRIPM5
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+### Target: OMNIBUSF4V3_S5_S6_2SS
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+### Target: OMNIBUSF4V3_S5S6_SS
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+### Target: OMNIBUSF4V3_S6_SS
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+### Target: OMNIBUSF4V3
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+## Board: OMNIBUSF7
+
+Board is DSHOT enabled.
+
+### Target: OMNIBUSF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+### Target: OMNIBUSF7V2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+## Board: OMNIBUSF7NXT
+
+Board is DSHOT enabled.
+
+### Target: OMNIBUSF7NXT
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_MOTOR |
+| 6 | MC_MOTOR, FW_MOTOR |
+
+## Board: PIXRACER
+
+Board is not DSHOT enabled.
+
+### Target: PIXRACER
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_MOTOR |
+| 6 | MC_MOTOR, FW_MOTOR |
+
+## Board: REVO
+
+Board is DSHOT enabled.
+
+### Target: REVO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO, ANY |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 7 | PWM, FW_SERVO |
+| 8 | PWM, FW_SERVO |
+| 9 | PWM, FW_SERVO |
+| 10 | PWM, FW_SERVO |
+
+## Board: SKYSTARSF405HD
+
+Board is DSHOT enabled.
+
+### Target: SKYSTARSF405HD
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_MOTOR |
+
+## Board: SPARKY2
+
+Board is not DSHOT enabled.
+
+### Target: SPARKY2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+## Board: SPEEDYBEEF4
+
+Board is DSHOT enabled.
+
+### Target: SPEEDYBEEF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+### Target: SPEEDYBEEF4_SFTSRL1
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+### Target: SPEEDYBEEF4_SFTSRL2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+## Board: SPEEDYBEEF7
+
+Board is DSHOT enabled.
+
+### Target: SPEEDYBEEF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | LED, MC_MOTOR, FW_SERVO |
+
+## Board: SPEEDYBEEF7MINI
+
+Board is DSHOT enabled.
+
+### Target: SPEEDYBEEF7MINI
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_SERVO, FW_MOTOR |
+| 8 | MC_SERVO, FW_MOTOR |
+
+## Board: SPEEDYBEEF7V2
+
+Board is DSHOT enabled.
+
+### Target: SPEEDYBEEF7V2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_MOTOR |
+
+## Board: SPRACINGF4EVO
+
+Board is not DSHOT enabled.
+
+### Target: SPRACINGF4EVO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+| 8 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+
+## Board: SPRACINGF7DUAL
+
+Board is DSHOT enabled.
+
+### Target: SPRACINGF7DUAL
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+| 5 | MC_MOTOR |
+| 6 | MC_MOTOR |
+| 7 | MC_MOTOR |
+| 8 | MC_MOTOR |
+| 9 | MC_MOTOR |
+| 10 | MC_MOTOR |
+| 11 | FW_SERVO, PWM |
+| 12 | FW_SERVO, PWM |
+
+## Board: TMOTORF7V2
+
+Board is DSHOT enabled.
+
+### Target: TMOTORF7V2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_MOTOR |
+| 4 | MC_MOTOR, FW_MOTOR |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+| 9 | PWM, FW_SERVO |
+
+## Board: YUPIF7
+
+Board is DSHOT enabled.
+
+### Target: YUPIF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO, LED |
+
+## Board: ZEEZF7
+
+Board is DSHOT enabled.
+
+### Target: ZEEZF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+
+### Target: ZEEZF7V2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+
diff --git a/docs/advanced/Building-custom-firmware.md b/docs/advanced/Building-custom-firmware.md
new file mode 100644
index 0000000..2923137
--- /dev/null
+++ b/docs/advanced/Building-custom-firmware.md
@@ -0,0 +1,210 @@
+---
+title: Building Custom Firmware
+---
+
+## Rationale
+
+Prebuilt targets may not include the (sensor) hardware you wish to use. If the hardware is already supported in iNav, it is relatively simple to build your own custom firmware.
+
+For F1 targets (NAZE and friends) we are at the limit of what can be supported with the flash space available. If you want to fly F1 on anything but a very standard and limited set of hardware, it is already necessary to build custom firmware, sometimes for something as simple as a different baro sensor.
+
+This guide attempts to explain the steps necessary to make simple, configuration based changes in order to generate custom firmware. It is **not** a detailed development guide.
+
+## Prerequisite
+
+You need a working development environment. There is [build environment documentation](https://github.com/iNavFlight/inav/tree/master/docs/development) for the major platforms (Linux, MacOS, Windows). This documentation tends to quickly become obsolete as compiler versions evolve (as will this page:). In particular, using contemporary compiler version (e.g. as of June 2017, `arm-none-eabi-gcc` 6.3.\*) is recommended, as a contemporary compiler will most likely match that being used by iNav developers. For example, the [Building in Ubuntu](https://github.com/iNavFlight/inav/blob/master/docs/development/Building%20in%20Ubuntu.md) document is completely out of date; a modern Linux distribution (Ubuntu or Fedora current release) will provide a contemporary (good) compiler without having to use 3rd party repositories. Arch Linux may provide the opposite problem, its (June 2017) offering `arm-none-eabi-gcc` 7.1.\* creates larger hex files than the 6.3 series, and downgrading may be recommended. If in doubt, please ask on the [RC Groups thread](https://www.rcgroups.com/forums/showthread.php?2495732-Cleanflight-iNav-%28navigation-rewrite%29-project) for advice.
+
+Note that the above version numbers are going to be completely obsolete as you read this article.
+
+### Virtual Machine Environment
+
+A step by step guide to creating a virtual machine as an Inav build environment is described in the wiki [[Making a new Virtualbox to make your own INAV]]. While the instructions are slanted towards Windows and Virtualbox, they are applicable to any OS and virtualisation engine.
+
+## Target Specific Files
+
+### Overview
+
+For basic configuration changes, the files are found under `src/main/targets`. At the top level this includes a separate directory for each target:
+```
+src/main/target
+├── AIRBOTF4
+├── AIRHEROF3
+├── ALIENFLIGHTF3
+├── ALIENFLIGHTF4
+├── ANYFC
+├── ANYFCF7
+├── ANYFCM7
+├── BEEROTORF4
+├── BLUEJAYF4
+├── CC3D
+├── CHEBUZZF3
+├── CJMCU
+├── COLIBRI
+├── COLIBRI_RACE
+├── common.h
+├── CRAZEPONYMINI
+├── EUSTM32F103RC
+├── F4BY
+├── FALCORE
+├── FISHDRONEF4
+├── FURYF3
+├── KFC32F3_INAV
+├── KROOZX
+├── link
+├── LUX_RACE
+├── MOTOLAB
+├── NAZE
+├── OLIMEXINO
+├── OMNIBUS
+├── OMNIBUSF4
+├── PIKOBLX_limited
+├── PIXRACER
+├── PORT103R
+├── RCEXPLORERF3
+├── REVO
+├── RMDO
+├── SPARKY
+├── SPARKY2
+├── SPRACINGF3
+├── SPRACINGF3EVO
+├── SPRACINGF3MINI
+├── STM32F3DISCOVERY
+├── stm32f7xx_hal_conf.h
+├── system_stm32f30x.c
+├── system_stm32f30x.h
+├── system_stm32f4xx.c
+├── system_stm32f4xx.h
+├── system_stm32f7xx.c
+├── system_stm32f7xx.h
+└── YUPIF4
+````
+Under each target, there will be at least the files we are interested in:
+* `target.h` : Defines the supported hardware on this target; and
+* `target.mk` : Defines the source files we need to build that target.
+
+e.g. in the NAZE target specific directory:
+
+```
+├── NAZE
+│ ├── AIRHERO32.mk
+│ ├── hardware_revision.c
+│ ├── hardware_revision.h
+│ ├── target.c
+│ ├── target.h
+│ └── target.mk
+
+```
+
+
+## Worked Example
+
+This example will consider enabling the BMP085 / BMP180 barometer on the NAZE (for example to use a GY-652 [BMP180 / HMC5983] I2C baro and compass module on an acro Naze or Flip32).
+
+### Use a separate branch
+
+```
+$ git checkout -b my_super_special_branch
+```
+
+This will isolate your work from the base repo and allow making a pull request if you decide to contribute your changes back to the project.
+
+### target.h
+
+If we examine `src/main/target/NAZE/target.h` we see there are two barometers defined:
+````
+#define BARO
+#define USE_BARO_MS5611 // needed for Flip32 board
+#define USE_BARO_BMP280
+````
+So we can remove one (or both) of these and instead define the use of BMP085 (BMP085 and BMP180 use the same software driver). So even this is not so easy, as you need to know that fact as well. Edit `src/main/target/NAZE/target.h` so the baro definition looks like:
+
+````
+#define BARO
+//#define USE_BARO_MS5611 // needed for Flip32 board
+#define USE_BARO_BMP085
+````
+Here, the MS5611 is removed (commented out with a double slash), and the BMP280 line is changed to use BMP085. One way to verify names can be to look in other, more well equipped targets; the SPRACINGF3 is sometimes a good place to look, so from `src/main/target/SPRACINGF3/target.h` we can see:
+````
+#define BARO
+#define USE_BARO_MS5611
+#define USE_BARO_BMP085
+#define USE_BARO_BMP280
+````
+### target.mk
+
+We're not done yet; we need to edit `target.mk` to tell the compiler which files we need for our bespoke sensor selection. If we look in the `src/main/target/NAZE/target.mk` file we see:
+````
+TARGET_SRC = \
+ drivers/accgyro/accgyro_mpu.c \
+ drivers/accgyro/accgyro_mpu6050.c \
+ drivers/accgyro/accgyro_mpu6500.c \
+ drivers/accgyro/accgyro_spi_mpu6500.c \
+ drivers/barometer/barometer_bmp280.c \
+ drivers/barometer/barometer_ms56xx.c \
+ drivers/compass/compass_hmc5883l.c \
+ drivers/flash_m25p16.c \
+ drivers/light_ws2811strip.c \
+ drivers/light_ws2811strip_stdperiph.c \
+ io/flashfs.c \
+ hardware_revision.c
+````
+So we're going to have to replace the barometer source file path; we can either root around the source tree or more easily, just look in some place that we know must use it, like `src/main/target/SPRACINGF3/target.mk` were we see:
+````
+TARGET_SRC = \
+ drivers/accgyro/accgyro_mpu.c \
+ drivers/accgyro/accgyro_mpu6050.c \
+ drivers/barometer/barometer_bmp085.c \
+ drivers/barometer/barometer_bmp280.c \
+ drivers/barometer/barometer_ms56xx.c \
+ /* and more */
+````
+So update the relevent part of `src/main/target/NAZE/target.mk`:
+````
+TARGET_SRC = \
+ drivers/accgyro/accgyro_mpu.c \
+ drivers/accgyro/accgyro_mpu6050.c \
+ drivers/accgyro/accgyro_mpu6500.c \
+ drivers/accgyro/accgyro_spi_mpu6500.c \
+ drivers/barometer/barometer_bmp085.c \
+ drivers/compass/compass_hmc5883l.c \
+ drivers/flash_m25p16.c \
+ drivers/light_ws2811strip.c \
+ drivers/light_ws2811strip_stdperiph.c \
+ io/flashfs.c \
+ hardware_revision.c
+````
+Note: It was not really necessary to remove the BMP280 or MS5611 lines; as the defines were removed from `target.h` we would have effectively compiled an empty file.
+
+### Building
+
+So now make the target.
+````
+$ make TARGET=NAZE
+...
+Linking NAZE
+arm-none-eabi-size ./obj/main/inav_NAZE.elf
+ text data bss dec hex filename
+ 126840 1244 17012 145096 236c8 ./obj/main/inav_NAZE.elf
+arm-none-eabi-objcopy -O ihex --set-start 0x8000000 obj/main/inav_NAZE.elf obj/inav_1.7.2_NAZE.hex
+````
+It fits in the 128K flash. Compare to a 'standard' build (MS5611/BMP280):
+````
+arm-none-eabi-size ./obj/main/inav_NAZE.elf
+ text data bss dec hex filename
+ 127616 1244 17036 145896 239e8 ./obj/main/inav_NAZE.elf
+arm-none-eabi-objcopy -O ihex --set-start 0x8000000 obj/main/inav_NAZE.elf obj/inav_1.7.2_NAZE.hex
+````
+## Caveats
+
+This solves the original problem (how to build a NAZE target with BMP085/BMP180).
+
+You can now commit the changes to your branch, otherwise if one wants to update the source tree (e.g.)
+````
+git pull
+````
+git will complain that there are uncommitted changes and won't perform the update. There are a number of solutions, some beyond the scope of this simple guide, however the easiest are:
+
+* Commit to your private branch as above; or
+* `$ git reset --hard` before pulling ; or
+* Stash away the original files and restore them after pulling.
+
diff --git a/docs/advanced/Custom-mixes-for-exotic-setups.md b/docs/advanced/Custom-mixes-for-exotic-setups.md
new file mode 100644
index 0000000..96991a0
--- /dev/null
+++ b/docs/advanced/Custom-mixes-for-exotic-setups.md
@@ -0,0 +1,260 @@
+---
+title: Custom Mixes
+# slug: custommixes
+---
+
+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/docs/advanced/Developer-info.md b/docs/advanced/Developer-info.md
new file mode 100644
index 0000000..3f8ef7a
--- /dev/null
+++ b/docs/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.
+
+
+
+## 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:
+
+
+
+### 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**
+
+
+
+### 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.
+
+
+
+## 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.
+
+
+
+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)
+* The y axis points to the right (geometrically) (pitch axis)
+* The z axis points upwards (geometrically) (yaw axis)
+
+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.
\ No newline at end of file
diff --git a/docs/advanced/Features-safe-to-add-and-remove-to-fit-your-needs..md b/docs/advanced/Features-safe-to-add-and-remove-to-fit-your-needs..md
new file mode 100644
index 0000000..9b5d2ab
--- /dev/null
+++ b/docs/advanced/Features-safe-to-add-and-remove-to-fit-your-needs..md
@@ -0,0 +1,52 @@
+---
+title: Features Safe to Add and Remove
+---
+
+## 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
\ No newline at end of file
diff --git a/docs/advanced/INAV-MSP-frames-changelog.md b/docs/advanced/INAV-MSP-frames-changelog.md
new file mode 100644
index 0000000..d30fea3
--- /dev/null
+++ b/docs/advanced/INAV-MSP-frames-changelog.md
@@ -0,0 +1,311 @@
+---
+title: INAV MSP Frame 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
\ No newline at end of file
diff --git a/docs/advanced/INAV-blackbox-variables.md b/docs/advanced/INAV-blackbox-variables.md
new file mode 100644
index 0000000..c49d21f
--- /dev/null
+++ b/docs/advanced/INAV-blackbox-variables.md
@@ -0,0 +1,166 @@
+---
+title: INAV Blackbox Varibles
+---
+
+## 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 velocity 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 | | |
+| 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 | | V |
+| amperage | | | | |
+| 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 | fraction of 1g |
+| accSmooth[1] | acc[y] | acceleration | east | fraction of 1g |
+| accSmooth[2] | acc[z] | acceleration | vertical | fraction of 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 | | quality of GPS fix | | |
+| navFlags | | quality of GPS fix | | |
+| navEPH | | quality of GPS fix | | |
+| navEPV | | quality of GPS fix | | |
+| 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 |
+| navVel[1] | navVel[1] | velocity of copter | east | cm |
+| navVel[2] | navVel[2] | velocity of copter | vertical | cm |
+| navAcc[0] | navAcc[0] | velocity of copter | north | cm |
+| navAcc[1] | navAcc[1] | velocity of copter | east | cm |
+| navAcc[2] | navAcc[2] | velocity of copter | vertical | cm |
+| navTgtVel[0] | navTgtVel[0] | target value: position | north | cm |
+| navTgtVel[1] | navTgtVel[1] | target value: position | east | cm |
+| navTgtVel[2] | navTgtVel[2] | target value: position | vertical | cm |
+| navTgtPos[0] | navTgtPos[0] | target value: velocity | north | cm |
+| navTgtPos[1] | navTgtPos[1] | target value: velocity | east | cm |
+| navTgtPos[2] | navTgtPos[2] | target value: velocity | vertical | cm |
+| navSurf[0] | navSurf[0] | | | |
+| flightModeFlags (flags) | | | | |
+| stateFlags (flags) | | | | |
+| failsafePhase (flags) | | | | |
+| rxSignalReceived | | | | |
+| rxFlightChannelsValid | | | | |
+| hwHealthStatus | | | | |
+| powerSupplyImpedance | | | | |
+| sagCompensatedVBat | | | | |
+| wind[0] | | | | |
+| wind[1] | | | | |
+| wind[2] | | | | |
+| GPS_home[0] | | longitude | | |
+| GPS_home[1] | | lattitude | | |
+| GPS_fixType | | GPS_fixType | | |
+| GPS_numSat | | number od sats | | |
+| GPS_coord[0] | | longitude | | |
+| GPS_coord[1] | | lattitude | | |
+| GPS_altitude | | GPS_altitude | | |
+| GPS_speed | | GPS_speed | | |
+| GPS_ground_course | | GPS_ground_course | | |
+| GPS_hdop | | quality of GPS fix | | |
+| GPS_eph | | quality of GPS fix | | |
+| GPS_epv | | quality of GPS fix | | |
diff --git a/docs/advanced/INAV-for-BetaFlight-users.md b/docs/advanced/INAV-for-BetaFlight-users.md
new file mode 100644
index 0000000..366d157
--- /dev/null
+++ b/docs/advanced/INAV-for-BetaFlight-users.md
@@ -0,0 +1,62 @@
+---
+title: INAV For Betaflight Users
+---
+
+Do you already know how to setup and fly a BetaFlight multirotor, and now is willing to try INAV?
+
+**Good**! You are on the right place.
+
+INAV and BetaFlight are forks from CleanFlight, but nowadays they are all 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 shares 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 to understand it. To flash INAV on your Flight Controller board, the process is the same: Go to Firmware Flasher tab on the INAV Configurator and select the proper TARGET.
+
+Let's then review the differences:
+
+* Not all Flight Controller boards has 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 screen instructions and you’ll be fine.
+* For a fully autonomous multirotor (with automatic navigation capabilities like RTH and WP Missions), Flight Controller board must have an onboard barometer sensor. INAV can't navigate without one (on a multirotor aircraft).
+* Also, you have to cover the barometer sensor with a small piece of non-blocking foam, because the wind affects the sensor readings. This is the most common cause of altitude holding problems.
+* The GPS module must be fitted with a magnetometer sensor. GPS modules without a mag sensor do not allow INAV to navigate (on a multirotor aircraft) and will only be useful for loggin purposes.
+
+* GPS module must 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_
+
+
+* INAV does NOT has the resource remapping feature, which means that **you can't change the motors order**. Be careful to wire the motors signal wires on the correct order.
+* INAV supports DShot ESC protocol, but it doesn’t behave the same way as in BetaFlight. DShot 150 or 300 is more than enough for a reliable flight. Faster protocols will reduce the reliability, so avoid using them.
+* INAV supports loop frequencies up to 8kHz, but flies just fine with 2kHz. There’s no real benefit to use such higher frequencies as it will only make the CPU more busy for others tasks.
+* DShot telemetry is supported, but not Bi-directional single-wire telemetry.
+
+### Most important settings you should take a look before first flight
+
+* `set nav_mc_hover_thr = 1450` # Base throttle value that aircraft will use for altitude hold
+* `set max_angle_inclination_rll = 450` # 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 = 25` # Max bank angle that aircraft will do in automatic 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 GPS module use galileo satellites if it is supported (check local regulations about it)
+* `set nav_extra_arming_safety = OFF` # Let aircraft arm without GPS 3D fix (careful, navigation will not work if you do that!)
+* `set nav_wp_radius = 500` # Radius in centimeters to consider a waypoint reached
+* `set nav_wp_safe_distance = 20000` # If the first waypoint of a loaded mission is further than this value (in centimeters), INAV will not allow to arm.
+* `set nav_auto_speed = 1300` # Aircraft ground speed on automatic modes (in centimeters per second)
+* `set nav_auto_climb_rate = 200` # Aircraft vertical speed on automatic modes (centimeters per second)
+* `set nav_rth_allow_landing = FS_ONLY` # Allow aircraft to land by itself only if it’s in a Failsafe state.
+* `set nav_rth_altitude = 5000` # Altitude that aircraft will try to reach when doing RTH (in centimeters)
+* `set nav_rth_alt_mode = AT_LEAST_LINEAR_DESCENT` # Allow aircraft to come home descending to the RTH altitude. It saves energy by trading altitude for speed.
+
+
+
+_Linear descend demonstration graphic_
+
+
diff --git a/docs/advanced/MSP-Navigation-Messages.md b/docs/advanced/MSP-Navigation-Messages.md
new file mode 100644
index 0000000..dc73149
--- /dev/null
+++ b/docs/advanced/MSP-Navigation-Messages.md
@@ -0,0 +1,430 @@
+---
+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 [7] | ✔ | ✔ | ✔ | ✔ |
+| 2 | POSHOLD_UNLIM | | | | ✔ | ✔ | ✔ | [5] |
+| 3 | POSHOLD_TIME | Wait time (seconds) | (speed (cm/s)[1]) | Altitude Mode [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 [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.
+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.
+
+### 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:
+
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+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](../quickstart/Something-is-disabled----Reasons.md).
+
+* 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.
+
+
+```
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### 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".
+
+
+
+[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_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`.
+
+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`.
+
+
+
+## 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 values are also returned by the 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. WP #255 may also be used to set the vehicle's desired location (i.e. "follow me") when the following modes are asserted:
+
+* NAV_POSHOLD
+* GCS_NAV
+
+| 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).
+
+### 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](../features/Lightweight-Telemetry-(LTM).md)
+
+
+
+
+
+
+
+| gps_mode |
+uchar |
+None
+PosHold
+RTH
+Mission |
+
+
+| nav_state |
+uchar |
+None
+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 |
+
+
+| action |
+uchar |
+(last wp, next wp?) |
+
+
+| wp_number |
+uchar |
+(last wp, next wp?) |
+
+
+| nav_error |
+uchar |
+Navigation 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_bearing |
+int16 |
+(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.
+
+
+
+### 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).
diff --git a/docs/advanced/MSP-V2.md b/docs/advanced/MSP-V2.md
new file mode 100644
index 0000000..8708ad1
--- /dev/null
+++ b/docs/advanced/MSP-V2.md
@@ -0,0 +1,145 @@
+---
+title: MSP V2
+description: 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, usage to be defined (set to zero) |
+| 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) |
+
+## 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.
+
+
+
+## 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 implemntating | 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 | |
\ No newline at end of file
diff --git a/docs/advanced/Making-a-new-Virtualbox-to-make-your-own-INAV.md b/docs/advanced/Making-a-new-Virtualbox-to-make-your-own-INAV.md
new file mode 100644
index 0000000..46ac1f9
--- /dev/null
+++ b/docs/advanced/Making-a-new-Virtualbox-to-make-your-own-INAV.md
@@ -0,0 +1,22 @@
+---
+title: Make 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](https://github.com/iNavFlight/inav/wiki/Features-safe-to-add-and-remove-to-fit-your-needs.#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`
\ No newline at end of file
diff --git a/docs/advanced/New-features-over-versions-log.md b/docs/advanced/New-features-over-versions-log.md
new file mode 100644
index 0000000..a9545cf
--- /dev/null
+++ b/docs/advanced/New-features-over-versions-log.md
@@ -0,0 +1,91 @@
+---
+title: New Features Over Versions
+---
+
+
+
+This document is intended to show the most relevant new features of each version of INAV.
+It's also known as **INAV Version History**, or **INAV Changelog**.
+
+Every released version of INAV brings some changes on funcionality that is already working, bug fixes and new funcionalities. This document will focus only on the major changes and will not go deep on smaller ones. To check a detailed list of changes for each version, check the release notes on that version release download page.
+
+## 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)
+
+## 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.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 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 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 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.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.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.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.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.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)
+
+## Enjoy the newer features!
+
+If you have an older version of INAV on your aircraft, upgrade now and enjoy the newer features! We have a guide to help you to do that. [Check it out now](../quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md)!
\ No newline at end of file
diff --git a/docs/advanced/OSD-Hud-and-ESP32-radars.md b/docs/advanced/OSD-Hud-and-ESP32-radars.md
new file mode 100644
index 0000000..6a39c83
--- /dev/null
+++ b/docs/advanced/OSD-Hud-and-ESP32-radars.md
@@ -0,0 +1,184 @@
+---
+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.
+
+:::info
+**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, defaults 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 = 0
+set osd_hud_radar_range_min = 10
+set osd_hud_radar_range_max = 4000
+set osd_hud_radar_nearest = 0
+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/docs/advanced/PID-Attenuation-and-scaling.md b/docs/advanced/PID-Attenuation-and-scaling.md
new file mode 100644
index 0000000..4f620c8
--- /dev/null
+++ b/docs/advanced/PID-Attenuation-and-scaling.md
@@ -0,0 +1,44 @@
+---
+title: PID Attenuation and Scaling
+---
+
+**TPA** [***Throttle PID Attenuation***] is what allows vehicles, that are optimally tuned for hover or slow flight, dynamically adjust PID gains, so high throttle (fast forward flight or rapid climb) doesn't introduce oscillations.
+
+## Multirotors
+
+TPA applies a PID value reduction in relation to full Throttle. It is used to apply dampening of PID values as full throttle is reached.
+
+**TPA** = % of dampening that will occur at full throttle.
+
+**TPA Breakpoint** = the point in the throttle curve at which TPA will begin to be applied. Below that point PIDs are not attenuated at all.
+
+### How and Why to use this?
+
+If you are getting oscillations starting at say 3/4 throttle, set TPA Breakpoint = 1750 or lower (remember, this is assuming your throttle range is 1000-2000), and then slowly increase TPA until your oscillations are gone. Usually, you will want TPA Breakpoint to start a little sooner then when your oscillations start so you'll want to experiment with the values to reduce/remove the oscillations.
+
+### Example of multirotor TPA curve
+
+
+
+## Airplanes
+
+Airplanes are different from multirotors as PID gains should be attenuated according to airspeed, not throttle. However, until airspeed sensor support is introduced it's safe to assume that speed is directly proportional to throttle.
+
+For airplanes TPA works in a different way - it's not only attenuating PID gains at high throttle but also boosts them at low throttle allowing better control when gliding at low speeds with no throttle at all or slow flying with minimal throttle. TPA is expressed as a curve that boosts PIDs below TPA breakpoint and attenuates them above the breakpoint.
+
+**TPA** = amount of TPA curve to apply to PIDs. 100% TPA allows PIDs to be scaled by factor in range [0.5; 2].
+
+**TPA Breakpoint** = the point in the throttle curve at which PIDs are not attenuated
+
+**FW TPA Time Constant** = TPA smoothing and delay time constant to reflect non-instant speed/throttle response of the plane.
+
+### How to use this?
+
+Tune your PIDs at 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 worse and at higher throttle (up to full throttle) it begins to oscillate. Increase TPA amount until these oscillations are gone or minimal. You will instantly notice better handling at lower throttle values.
+
+The **TPA Time Constant** feature uses an asymmetric filter, that effects both increasing and decreasing throttle/speed. 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
+
+
\ No newline at end of file
diff --git a/docs/advanced/PID-for-various-aircrafts.md b/docs/advanced/PID-for-various-aircrafts.md
new file mode 100644
index 0000000..c765bbd
--- /dev/null
+++ b/docs/advanced/PID-for-various-aircrafts.md
@@ -0,0 +1,8 @@
+---
+title: PID For Various Aircrafts
+---
+
+## 2.2.1
+### 7"
+#### Tyro129
+
\ No newline at end of file
diff --git a/docs/advanced/Pixel-OSD-FAQs.md b/docs/advanced/Pixel-OSD-FAQs.md
new file mode 100644
index 0000000..fe47b72
--- /dev/null
+++ b/docs/advanced/Pixel-OSD-FAQs.md
@@ -0,0 +1,7 @@
+---
+title: Pixel OSD FAQ
+---
+
+## 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.
\ No newline at end of file
diff --git a/docs/advanced/Request-form-new-PRESET.md b/docs/advanced/Request-form-new-PRESET.md
new file mode 100644
index 0000000..6ac1d18
--- /dev/null
+++ b/docs/advanced/Request-form-new-PRESET.md
@@ -0,0 +1,7 @@
+---
+title: Request Forms For 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
\ No newline at end of file
diff --git a/docs/advanced/Supported-boards.md b/docs/advanced/Supported-boards.md
new file mode 100644
index 0000000..c71dd9b
--- /dev/null
+++ b/docs/advanced/Supported-boards.md
@@ -0,0 +1,33 @@
+---
+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](https://github.com/iNavFlight/inav/wiki/Welcome-to-INAV,-useful-links-and-products)
+### 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._
+
+### 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
\ No newline at end of file
diff --git a/docs/advanced/Target-and-Sensor-support.md b/docs/advanced/Target-and-Sensor-support.md
new file mode 100644
index 0000000..861e557
--- /dev/null
+++ b/docs/advanced/Target-and-Sensor-support.md
@@ -0,0 +1,98 @@
+---
+title: Target and Sensor Support
+---
+
+## Sensor Support
+
+The following table was machine generated by [mwptools' find_sensors.rb](https://raw.githubusercontent.com/stronnag/mwptools/master/src/samples/find_sensors.rb) script on 2021-06-05 against inav 3.0.0, 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 |
+| ------ | ---- | ---- | ---- | ----------- |
+| AIKONF4 | MPU6000 MPU6500 | BMP085 BMP280 MS5611 | AK8963 AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| AIRBOTF4 | MPU6000 MPU6500 | BMP085 BMP280 MS5611 | AK8963 AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C |
+| AIRBOTF7 \* (OMNIBUSF7NANOV7) | | BMP280 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| AIRHEROF3 \* (AIRHEROF3_QUAD) | MPU6500 | BMP280 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| ALIENFLIGHTF3 | MPU6050 MPU6500 MPU9250 | | AK8963 AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MPU9250 QMC5883 | |
+| ALIENFLIGHTF4 | MPU6500 MPU9250 | BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MPU9250 QMC5883 | |
+| ALIENFLIGHTNGF7 | MPU6500 MPU9250 | BMP280 MS5611 | AK8963 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MPU9250 QMC5883 | |
+| ANYFC | MPU6000 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| ANYFCF7 \* (ANYFCF7_EXTERNAL_BARO) | MPU6000 | BMP085 BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C |
+| ANYFCM7 | MPU6000 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| ASGARD32F4 | MPU6000 | BMP280 | | |
+| ASGARD32F7 | MPU6000 | BMP280 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| BEEROTORF4 | MPU6500 | BMP280 | AK8963 AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| BETAFLIGHTF3 | MPU6000 | | | |
+| BETAFLIGHTF4 | MPU6000 | BMP085 BMP280 MS5611 | AK8963 AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C |
+| BLUEJAYF4 | MPU6500 | BMP085 BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| CHEBUZZF3 | L3GD20 LSM303DLHC MPU6050 | MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| CLRACINGF4AIR \* (CLRACINGF4AIRV2 CLRACINGF4AIRV3) | MPU9250 | BMP280 SPI_BMP280 | MPU9250 | |
+| COLIBRI \* (QUANTON) | MPU6000 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04 |
+| COLIBRI_RACE | MPU6000 MPU6500 MPU9250 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MAG9250 QMC5883 | |
+| DALRCF405 | MPU6000 MPU6500 | BMP085 BMP280 MS5611 | AK8963 AK8975 HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C |
+| DALRCF722DUAL | MPU6000 | BMP085 BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| F4BY | ICM20689 MPU6000 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| FALCORE | MPU6500 | MS5607 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04 |
+| FF_F35_LIGHTNING \* (WINGFC) | MPU9250 | BMP280 | MPU9250 | |
+| FF_FORTINIF4 | MPU6500 | | | |
+| FF_PIKOF4 \* (FF_PIKOF4OSD) | MPU6000 MPU6500 | | | |
+| FIREWORKSV2 \* (OMNIBUSF4V6) | MPU6000 MPU6500 | BMP280 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C |
+| FISHDRONEF4 | MPU6500 MPU9250 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MPU9250 QMC5883 | |
+| FLYWOOF411 \* (FLYWOOF411_V2) | ICM20689 MPU6000 | BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| FLYWOOF745 \* (FLYWOOF745NANO) | MPU6000 | BMP280 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| FLYWOOF7DUAL | MPU6000 MPU6500 | BMP280 MS5611 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| FOXEERF405 | MPU6000 MPU6500 | BMP085 BMP280 MS5611 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| FOXEERF722DUAL \* (FOXEERF722V2) | MPU6000 MPU6500 | BMP280 MS5611 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| FRSKYF3 | MPU6050 | | | |
+| FRSKYF4 | MPU6000 | BMP280 | | |
+| FRSKYPILOT \* (FRSKYPILOT_LED) | MPU6000 MPU6500 | SPL06 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| FRSKY_ROVERF7 | MPU6000 | BMP085 BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| FURYF3 \* (FURYF3_SPIFLASH) | MPU6000 MPU6500 MPU9250 | BMP280 MS5611 | HMC5883 LIS3MDL MAG3110 MPU9250 QMC5883 | HCSR04 |
+| FURYF4OSD \* (MAMBAF405) | MPU6000 MPU6500 | BMP085 BMP280 DPS310 MS5611 | AK8963 AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C MSP |
+| HGLRCF722 | MPU6000 | BMP280 DPS310 MS5611 SPI_BMP280 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| IFLIGHTF4_SUCCEXD | MPU6000 | BMP085 BMP280 MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C MSP |
+| IFLIGHTF4_TWING | MPU6500 | BMP280 DPS310 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| IFLIGHTF7_TWING | MPU6500 | BMP280 DPS310 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| KAKUTEF4 \* (KAKUTEF4V2) | MPU6500 | | | |
+| KAKUTEF7 \* (KAKUTEF7HDV KAKUTEF7MINI) | ICM20689 MPU6000 | BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| KAKUTEF7MINIV3 | MPU6000 | BMP280 MS5611 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| KISSFC | MPU6050 | | | |
+| KROOZX | MPU6000 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| LUX_RACE | MPU6500 MPU9250 | | | |
+| MAMBAF405US \* (MAMBAF405US_I2C) | MPU6000 | BMP280 DPS310 MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| MAMBAF722 \* (MAMBAF722_I2C) | MPU6000 | BMP280 MS5611 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| MATEKF405 \* (MATEKF405_SERVOS6 MATEKF405OSD) | MPU6000 MPU6500 | BMP085 BMP280 DPS310 MS5611 | AK8963 AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C MSP |
+| MATEKF405CAN | MPU6500 | BMP280 DPS310 MS5611 | AK8963 AK8975 HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 RM3100 | HCSR04_I2C |
+| MATEKF405SE | MPU6000 | BMP085 BMP280 DPS310 MS5611 | AK8963 AK8975 HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C US42 |
+| MATEKF411 \* (MATEKF411_FD_SFTSRL MATEKF411_RSSI MATEKF411_SFTSRL2) | MPU6000 MPU6500 | BMP085 BMP280 DPS310 MS5611 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| MATEKF411SE \* (MATEKF411SE_PINIO MATEKF411SE_FD_SFTSRL1 MATEKF411SE_SS2_CH6) | MPU6000 | BMP085 BMP280 DPS310 MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C MSP |
+| MATEKF722 \* (MATEKF722_HEXSERVO) | MPU6500 | BMP085 BMP280 DPS310 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| MATEKF722PX \* (MATEKF722WPX) | MPU6000 | BMP280 DPS310 MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| MATEKF722SE \* (MATEKF722MINI) | MPU6000 MPU6500 | BMP280 DPS310 MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| MATEKF765 | MPU6000 MPU6500 | BMP280 DPS310 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| MATEKH743 | MPU6000 MPU6500 | BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| MOTOLAB | MPU6000 MPU6050 | | | |
+| NOX | MPU6000 | BMP280 SPI_BMP280 | | |
+| OMNIBUS | MPU6000 | BMP280 | HMC5883 IST8308 IST8310 QMC5883 | |
+| OMNIBUSF4 \* (DYSF4PROV2 OMNIBUSF4 OMNIBUSF4PRO OMNIBUSF4PRO_LEDSTRIPM5 OMNIBUSF4V3_S5_S6_2SS OMNIBUSF4V3_S5S6_SS OMNIBUSF4V3_S6_SS OMNIBUSF4V3) | MPU6000 MPU6500 | BMP085 BMP280 MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| OMNIBUSF7 \* (OMNIBUSF7V2) | | BMP280 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C |
+| OMNIBUSF7NXT | MPU6000 MPU6500 | LPS25H | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| PIKOBLX | MPU6000 | | | |
+| PIXRACER | MPU6500 MPU9250 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MPU9250 QMC5883 | |
+| RADIX | BMI160 | BMP280 | | |
+| RCEXPLORERF3 | MPU6000 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04 |
+| REVO | MPU6000 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| RUSH_BLADE_F7 | MPU6000 | BMP280 DPS310 MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| SPARKY | MPU6050 | BMP280 MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| SPARKY2 | MPU9250 | BMP085 BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MPU9250 QMC5883 | |
+| SPEEDYBEEF4 \* (SPEEDYBEEF4_SFTSRL1 SPEEDYBEEF4_SFTSRL2) | MPU6000 | BMP085 BMP280 MS5611 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| SPEEDYBEEF7 | ICM20689 | BMP280 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| SPRACINGF3 | MPU6050 | BMP085 BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04 HCSR04_I2C |
+| SPRACINGF3EVO \* (SPRACINGF3EVO_1SS) | MPU6500 MPU9250 | BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MPU9250 QMC5883 | HCSR04 SRF10 |
+| SPRACINGF3MINI | MPU6500 MPU9250 | BMP280 | AK8963 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04 |
+| SPRACINGF4EVO | MPU6500 MPU9250 | BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MPU9250 QMC5883 | |
+| SPRACINGF7DUAL | MPU6500 | BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| YUPIF4 \* (YUPIF4MINI YUPIF4R2) | MPU6500 | BMP280 MS5611 | HMC5883 QMC5883 | |
+| YUPIF7 | ICM20689 | BMP280 MS5611 | HMC5883 QMC5883 | |
+| ZEEZF7 \* (ZEEZF7V2) | MPU6000 | BMP280 DPS310 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
diff --git a/docs/advanced/Tune-INAV-PIFF-controller-for-fixedwing.md b/docs/advanced/Tune-INAV-PIFF-controller-for-fixedwing.md
new file mode 100644
index 0000000..070770b
--- /dev/null
+++ b/docs/advanced/Tune-INAV-PIFF-controller-for-fixedwing.md
@@ -0,0 +1,46 @@
+---
+title: Tune INAV PIDFF Controller for Fixed Wing
+---
+
+### 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](https://github.com/iNavFlight/inav/wiki/PID-Attenuation-and-scaling)
+
+* 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.
\ No newline at end of file
diff --git a/docs/advanced/UAV-Interconnect-Bus.md b/docs/advanced/UAV-Interconnect-Bus.md
new file mode 100644
index 0000000..5d78b70
--- /dev/null
+++ b/docs/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.
\ No newline at end of file
diff --git a/docs/advanced/Ublox-3.01-firmware-and-Galileo.md b/docs/advanced/Ublox-3.01-firmware-and-Galileo.md
new file mode 100644
index 0000000..f037035
--- /dev/null
+++ b/docs/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:
+
+
+
+### 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:
+
+
+
+
+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/docs/advanced/_category_.json b/docs/advanced/_category_.json
new file mode 100644
index 0000000..ee4f782
--- /dev/null
+++ b/docs/advanced/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Advanced",
+ "position": 4,
+ "link": {
+ "type": "generated-index",
+ "description": "Advanced configuration"
+ }
+ }
\ No newline at end of file
diff --git a/docs/advanced/iNav-CLI-variables.md b/docs/advanced/iNav-CLI-variables.md
new file mode 100644
index 0000000..2077c97
--- /dev/null
+++ b/docs/advanced/iNav-CLI-variables.md
@@ -0,0 +1,21 @@
+---
+title: iNAV CLI variables related to navigation features
+---
+
+:::note
+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).
\ No newline at end of file
diff --git a/docs/features/Bluetooth-setup-to-configure-your-flight-controller.md b/docs/features/Bluetooth-setup-to-configure-your-flight-controller.md
new file mode 100644
index 0000000..cc57d68
--- /dev/null
+++ b/docs/features/Bluetooth-setup-to-configure-your-flight-controller.md
@@ -0,0 +1,23 @@
+---
+title: Bluetooth Connection to Configurator
+---
+
+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.
+
+
+
+## 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.
\ No newline at end of file
diff --git a/docs/features/Failsafe.md b/docs/features/Failsafe.md
new file mode 100644
index 0000000..c8c87e7
--- /dev/null
+++ b/docs/features/Failsafe.md
@@ -0,0 +1,86 @@
+---
+title: Failsafe
+---
+
+## 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-Mode-Return-to-Home.md)
+
+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/docs/features/GPS-Failsafe-and-Glitch-Protection.md b/docs/features/GPS-Failsafe-and-Glitch-Protection.md
new file mode 100644
index 0000000..8f9a676
--- /dev/null
+++ b/docs/features/GPS-Failsafe-and-Glitch-Protection.md
@@ -0,0 +1,48 @@
+---
+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
+
+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
+In case of critical failure, Emergency Landing is triggered. In Emergency Landing state copter is forced into ANGLE mode, ROLL and PITCH input is centered to maintain level, pilot stick input is ignored and copter enters a controlled descent.
+
+While Emergency Landing is active pilot is unable to switch into ALTHOLD, POSHOLD, RTH or WP mode. If pilot wants to regain control of the copter he should switch to ANGLE, HORIZON or ACRO more.
+
+## 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.
\ No newline at end of file
diff --git a/docs/features/Lightweight-Telemetry-(LTM).md b/docs/features/Lightweight-Telemetry-(LTM).md
new file mode 100644
index 0000000..e1866f5
--- /dev/null
+++ b/docs/features/Lightweight-Telemetry-(LTM).md
@@ -0,0 +1,257 @@
+---
+title: Lightweight Telemetry (LTM)
+---
+
+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.
+
+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 is 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) 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 | 5Hhz at > 2400 baud |
+| A | Attitude Frame | 10 Hz at > 2400 baud |
+| S | Status Frame | 5Hhz 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 is used by NRF24L01 / deviationtx iNav protocol, which defines an additional frame for in-TX tuning. This frame is not transmitted for telemetry.
+
+| Function Byte | Usage |
+| ------------- | ----- |
+| T | Tuning frame (iNav 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 |
+
+### Attitide 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 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
+
+### Tuning Frame (T)
+
+The payload is 12 bytes. This frame is not transmitted by iNav telemetry.
+
+| Data | Format |
+| ---- | ---- |
+| P-roll | uint8 |
+| I-roll | uint8 |
+| D-roll | uint8 |
+| P-pitch | uint8 |
+| P-pitch | uint8 |
+| I-pitch | uint8 |
+| D-yaw | uint8 |
+| I-yaw | uint8 |
+| rates-roll | uint8 |
+| rates-pitch | uint8 |
+| rates-yaw | uint8 |
+
+### Checksum Calculation
+
+To calculate the checksum of the payload bytes, use the following example (Python):
+
+```
+def checksum(payload):
+ value = 0
+ for d in payload:
+ value ^= d
+ return value
+```
+
diff --git a/docs/features/Modes.md b/docs/features/Modes.md
new file mode 100644
index 0000000..6a99050
--- /dev/null
+++ b/docs/features/Modes.md
@@ -0,0 +1,333 @@
+---
+title: Modes
+description: Explaination of all the modes
+---
+
+:::info
+**REFER TO THIS PAGE FOR NAVIGATION MODES:** [Navigation-modes](./Navigation-modes.md)
+:::
+
+## Non-navigation modes index:
+
+- [AIR MODE](#air-mode)
+- [ANGLE](#angle)
+- ARM
+- [AUTOLEVEL](#autolevel-fw)
+- [AUTOTUNE](#autotune-fw)
+- [BEEPER](#beeper)
+- [BLACKBOX](#blackbox)
+- CAMERA CONTROL
+- [CAMSTAB](#camstab)
+- [FAILSAFE](#failsafe)
+- [FLAPERON](#flaperon-fw)
+- FPV ANGLE MIX
+- [HEADADJ](#headadj-mc)
+- [HEADFREE](#headfree-mc)
+- [HEADING HOLD](#heading-hold)
+- HOME RESET
+- [HORIZON](#horizon)
+- KILLSWITCH
+- [LEDLOW](#ledlow)
+- LIGHTS
+- [LOITER CHANGE](#loiter-change-fw)
+- [MANUAL](#manual-fw) (called PASSTHROUGH mode up to version 1.8.1)
+- [MC BRAKING](#mc-braking-mc)
+- MSP RC OVERRIDE
+- [NAV LAUNCH](#nav-launch-fw)
+- [OSD ALT](#osd-alt)
+- [OSD SW](#osd-sw)
+- PREARM
+- [SERVO AUTOTRIM](#servo-autotrim-fw)
+- [SOARING](#soaring-fw)
+- [SURFACE](#surface)
+- TELEMETRY
+- [TURN ASSIST](#turn-assist)
+- [TURTLE](#turtle-mc)
+- USER1 & USER2
+
+## Default flight mode ( No mode selected )
+
+The 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.
+
+
+## Mode Details
+
+The following indicate if a mode is specific to a particular craft type:
+
+FW = Fixed wing.\
+MC = Multicopter.
+
+### 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 Iterm 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`
+
+### ALTHOLD
+
+The altitude of the aircraft a the moment you activate this mode is fixed.
+
+### AUTOLEVEL (FW)
+
+AUTOLEVEL 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 ANGLE mode.
+
+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).
+
+### AUTOTUNE (FW)
+
+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).
+
+### 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
+
+### CAMSTAB
+
+Enables the servo gimbal
+
+### FAILSAFE
+
+Lets you activate flight controller failsafe with an aux channel.
+Read [Failsafe page](https://github.com/iNavFlight/inav/wiki/Failsafe) 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).
+
+### 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.
+
+### 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.
+
+### 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)
+
+//TODO//
+
+### 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. 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). Verify that motor don't respond to throttle stick motion. Don't touch the pitch/roll stick!
+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 inadvertedly 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.
+
+**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.
+
+### SERVO AUTOTRIM (FW)
+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
+
+### 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 a multicopter that has "landed" upside down.
+
+//Description TODO//
+
+## 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 above)
+* 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.
\ No newline at end of file
diff --git a/docs/features/Navigation-Mode-Return-to-Home.md b/docs/features/Navigation-Mode-Return-to-Home.md
new file mode 100644
index 0000000..4842b2a
--- /dev/null
+++ b/docs/features/Navigation-Mode-Return-to-Home.md
@@ -0,0 +1,131 @@
+---
+title: Navigation Mode Return to Home
+---
+
+## Introduction
+
+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.
+
+
+
+### 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_.
+
+
+
+### 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**.
+
+
+
+### 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.
+
+
+
+### 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**.
+
+
+
+### Predefined altitude linear descent (NAV_RTH_AT_LEAST_ALT_LINEAR_DESCENT)
+- _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.
+
+
+
+## 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://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://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://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.
+
+[](https://i.imgur.com/S9ARPtf.png)
+
+[](https://i.imgur.com/7GMqN9Q.png)
+
+## Other Relevant Settings
+### 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.
diff --git a/docs/features/Navigation-modes.md b/docs/features/Navigation-modes.md
new file mode 100644
index 0000000..f27dddf
--- /dev/null
+++ b/docs/features/Navigation-modes.md
@@ -0,0 +1,222 @@
+---
+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 - Fixed Wing Heading Hold](#nav-course-hold---fixed-wing-heading-hold)
+- [NAV CRUISE - Fixed Wing Heading + Altitude Hold](#nav-cruise---fixed-wing-heading--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 “OFF” in CLI.)
+
+- 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.
+
+| | POSHOLD | WAYPOINT | RTH | ALTHOLD |
+| ---- | ---- | ---- | ---- | ---- |
+| ANGLE | X | X | X | |
+| ALTHOLD | X | X | X | |
+| TURN ASSIST | 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
+When activated, the aircraft maintains its actual altitude unless changed by manual throttle input.
+Throttle input indicates climb or sink up to a predetermined maximum rate (see CLI variables). Using ALTHOLD with a multicopter, you need a barometer.
+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 mix up ALTHOLD and ACRO/HORIZON: ALTHOLD doesn't account for extreme acro maneuvers.
+
+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):
+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:
+"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.
+- “set nav_use_midthr_for_althold =OFF”: use current stick position (i.e. when activating ALTHOLD) as neutral. [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 or CRUISE 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”.
+Set board alignment 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
+
+For multirotor it will hold 3D position, throttle is automatic (AH).
+You can use your roll and pitch stick to move around. The position hold will be resumed when you center the roll/pitch stick again. You can also enable HEADING HOLD at the same time to lock the heading.
+
+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 - Fixed Wing Heading Hold
+
+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 (CRUISE). Altitude can be adjusted, as usual, via the pitch stick. ANGLE mode is forced to be active so the plane will auto level.
+
+## NAV CRUISE - Fixed Wing Heading + 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-altitudes) 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](../advanced/iNav-CLI-variables.md) 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]].
+
+### 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.
+
+Selecting mission numbers 1 to 9 will load missions saved in EEPROM. It is also 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. Note: when 1 or less missions are loaded in the FC EEPROM mission numbers can only be selected using the CMS MISSIONS menu.
+
+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 the following modes must be activated: `NAV POSHOLD` `NAV ALTHOLD` `MAG` TOGETHER with `GCS_NAV`.
+
+This can be combined in whichever way you want to permit, e.g manual yawing or altitude control.
+
+Keep in mind that if `NAV POSHOLD` is not combined with this mode you must combine `ANGLE` as the other modes are best combined with `ANGLE` mode.
+
+## 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.
+
+## Mode switch diagram
+
+A diagram to indicate flight modes relation to navigation modes and illustrate sensor requirements:
+
+
\ No newline at end of file
diff --git a/docs/features/OrangeRX-LRS-RX-and-OMNIBUS-F4.md b/docs/features/OrangeRX-LRS-RX-and-OMNIBUS-F4.md
new file mode 100644
index 0000000..266cbe0
--- /dev/null
+++ b/docs/features/OrangeRX-LRS-RX-and-OMNIBUS-F4.md
@@ -0,0 +1,59 @@
+---
+title: OrangeRX LRS 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/docs/features/Sensor-auto-detect-and-hardware-failure-detection.md b/docs/features/Sensor-auto-detect-and-hardware-failure-detection.md
new file mode 100644
index 0000000..ac58020
--- /dev/null
+++ b/docs/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.
\ No newline at end of file
diff --git a/docs/features/_category_.json b/docs/features/_category_.json
new file mode 100644
index 0000000..4e98c40
--- /dev/null
+++ b/docs/features/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Features",
+ "position": 3,
+ "link": {
+ "type": "generated-index",
+ "description": "Find out how INAV's features work."
+ }
+ }
\ No newline at end of file
diff --git a/docs/features/iNav-Telemetry.md b/docs/features/iNav-Telemetry.md
new file mode 100644
index 0000000..ad6a712
--- /dev/null
+++ b/docs/features/iNav-Telemetry.md
@@ -0,0 +1,48 @@
+---
+title: INAV Telemetry
+---
+
+## Overview
+
+This page discusses the telemetry options available in iNav. Some of the information is expanded upon in the [Mission Panning](./iNavFlight-Missions.md) page.
+
+## Definitions
+
+Factually and classically, telemetry is an automated communications process by which measurements and other data are collected at remote or inaccessible points and transmitted to receiving equipment for monitoring. The word is derived from Greek roots: tele = remote, and metron = measure.
+
+In iNav terms, it has a rather more specific meaning, describing a means by which measurement data is pushed automatically from the vehicle to another device, typically a CGS (Computer Ground Station) or OSD (On-screen Display).
+
+It is also the case in iNav that getting data into a CGS or OSD can be achieved _without_ defining a telemetry protocol (using MSP, below).
+
+This page attempts to disambiguate these options.
+
+## INav Messaging Protocols
+
+INav supports a number of protocols for message exchange (and telemetry).
+
+For iNav, the following rules apply:
+* If a telemetry protocol is defined for a UART, without MSP, then the 'push' telemetry protocol will be sent unconditionally.
+* If a UART defines both MSP and a telemetry protocol, then MSP is active when unarmed, and the push telemetry protocol is transmitted from the FC when armed.
+* If _just_ MSP is enabled for a USART, it is always available (armed and unarmed).
+
+The latter mode is preferred for use with CGS like mwp or EZ-GUI; the CGS can take advantage of the metadata available in MSP prior to arming (e.g. vehicle type, FC capabilities) and then use the efficient push telemetry when armed.
+
+* Multiwii Serial Protocol (MSP). This is a polled protocol, and thus in iNav terms, not considered 'telemetry', even when used for remote measurement. The application (OSD, CGS) polls the flight controller "send me status data" and the FC responds, "here's the status data"; "send me the GPS data" -> "here's the GPS data". This is supported by most OSDs and CGS. It has advantages and disadvantages:
+ - The remote (OSD, CGS) can determine what data it requests (+ve)
+ - The configurator uses MSP to communicate with and configure the FC (+ve)
+ - The remote (OSD, CGS) must maintain a timeout and retry, as data can be lost in transmission (-ve)
+ - For packet radio links (3DR, HC-12), this is slow (much slower than the data rate would indicate), due the overheads on creating and tearing down the packets.
+
+ **It is not necessary to define an "telemetry protocol" to use MSP alone.**
+
+* Lightweight Telemetry (LTM). LTM, as its name implies, is a light-weight protocol that has been enhanced for iNav specific attributes by the iNav developers. Its attraction is its ability to send useful flight data at high rates over slow data links, for example 10Hz update of attitude is possible at 4800 baud, and 5Hz at 2400 baud. LTM is supported 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), [LTM OSD](https://github.com/digitalentity/ltm-osd-simple), [Scarab OSD](https://github.com/ShikOfTheRa/scarab-osd) and possibly others. For more detail, see the [wiki LTM entry](https://github.com/iNavFlight/inav/wiki/Lightweight-Telemetry-(LTM))
+
+* Mavlink. Mavlink is the telemetry protocol (and configuration protocol) of APM and other FCs. It has limited support in iNav and requires more bandwidth than the svelte LTM. It does however allow the use of other CGS and OSD. Mavlink one way telemetry is supported by [Droid Planner 2 (Android)](https://github.com/DroidPlanner/Tower/releases/download/Droidplanner_v2.8.6_RC2/Droidplanner_v2.8.6_RC2.apk)
+
+* TX protocols. A number of TX devices (FrSky, Hott, IBUS, Smartport) can also receive telemetry.
+
+ ## Example
+
+
+
+In the above example, MSP is available on USART1 when unarmed, and LTM when armed (in this case used with a 3DR or HC-12 telemetry radio and the mwp groundstation). Note in particular, the baud rate is common for MSP and LTM.
diff --git a/docs/features/iNavFlight-Missions.md b/docs/features/iNavFlight-Missions.md
new file mode 100644
index 0000000..853afd7
--- /dev/null
+++ b/docs/features/iNavFlight-Missions.md
@@ -0,0 +1,387 @@
+---
+title: Missions
+---
+
+## Overview
+
+iNav supports autonomous flight using waypoints. In order to use this capability, it is also necessary to utilise and configure some supporting technologies, including:
+
+* A GCS (Ground Control Station). 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 and 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](./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](https://docs.google.com/document/d/16ZfS_qwc-rJeA7N5Tx0DA6wtgxl6HdGgaz-jE3lHBWs). 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.
+
+## Ground Control Stations
+
+Currently there are a number of GCS applications widely used for iNav mission management, including [Mission Planner for INAV](https://play.google.com/store/apps/details?id=com.eziosoft.ezgui.inav&hl=en) (Android), [MobileFlight](https://flyinghead.github.io/mobile-flight/) (IOS) and [mwp](https://github.com/stronnag/mwptools) (Linux). 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.
+
+[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) (at least, maybe MobileFlight as well) support mission planning (they share a common mission definition file format, so missions can be used in either tool), mission upload / download, mission monitoring and mission logging.
+
+Note: Earlier versions of this article recommended ezgui for use on Android. ezgui is no longer maintained and [Mission Planner for INAV](https://play.google.com/store/apps/details?id=com.eziosoft.ezgui.inav&hl=en) is the recommended Android application.
+
+### [Mission Planner for INAV](https://play.google.com/store/apps/details?id=com.eziosoft.ezgui.inav&hl=en) (Android)
+[Mission Planner for INAV](https://play.google.com/store/apps/details?id=com.eziosoft.ezgui.inav&hl=en) can be downloaded from Google Play Store. There is a free version which limits number of waypoints to 2 and (very reasonably priced) paid-for version with additional functionality. The application is not open source. For questions and help the RCG "Mission Planner for INAV" thread can be used: [RC Groups support forum](https://www.rcgroups.com/forums/showthread.php?3030784-Mission-Planner-for-INAV-%28Android%29).
+
+### Droid Planner 2 (Android)
+
+Droid Planner 2 can also be downloaded from the [GitHub](https://github.com/DroidPlanner/Tower/releases/download/Droidplanner_v2.8.6_RC2/Droidplanner_v2.8.6_RC2.apk). It is free and released under GNU Public License v3.
+
+Droid Planner only supports iNav's one-way MAVLink protocol. The following telemetry data is displayed:
+
+Vehicle position on map, active flight mode, heading, altitude, speed.
+
+A broken connection recovers once restored after any amount of time.
+The flight track remains on screen even when data link is broken -> lost model recovery.
+Log files can be opened in PC software Mission Planner.
+
+### [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).
+
+### Mobile Flight (IOS / iphone).
+
+Mobile Flight: Configuration and ground control app for iNav (and Betaflight) on iPhone http://www.rcgroups.com/forums/showthread.php?t=2601895&highlight=ios.
+
+### 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)
+
+### 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](https://github.com/iNavFlight/inav/wiki/iNavFlight-Missions#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](https://github.com/iNavFlight/inav/wiki/iNavFlight-Missions#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**.
+
+On F1 boards (Naze, Flip32), you can define 30 waypoints, for F3 and better FCs, 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-4.0.0/features/Legacy-Mixers.md b/docs/legacyinfo/Legacy-Mixers.md
similarity index 100%
rename from versioned_docs/version-4.0.0/features/Legacy-Mixers.md
rename to docs/legacyinfo/Legacy-Mixers.md
diff --git a/versioned_docs/version-4.0.0/features/Legacy-target-Colibri-RACE.md b/docs/legacyinfo/Legacy-target-Colibri-RACE.md
similarity index 100%
rename from versioned_docs/version-4.0.0/features/Legacy-target-Colibri-RACE.md
rename to docs/legacyinfo/Legacy-target-Colibri-RACE.md
diff --git a/versioned_docs/version-4.0.0/features/Legacy-target-Motolab.md b/docs/legacyinfo/Legacy-target-Motolab.md
similarity index 100%
rename from versioned_docs/version-4.0.0/features/Legacy-target-Motolab.md
rename to docs/legacyinfo/Legacy-target-Motolab.md
diff --git a/versioned_docs/version-4.0.0/features/Legacy-target-Omnibus-F3.md b/docs/legacyinfo/Legacy-target-Omnibus-F3.md
similarity index 100%
rename from versioned_docs/version-4.0.0/features/Legacy-target-Omnibus-F3.md
rename to docs/legacyinfo/Legacy-target-Omnibus-F3.md
diff --git a/versioned_docs/version-4.0.0/features/Legacy-target-Paris-Air-Hero-32-F3.md b/docs/legacyinfo/Legacy-target-Paris-Air-Hero-32-F3.md
similarity index 100%
rename from versioned_docs/version-4.0.0/features/Legacy-target-Paris-Air-Hero-32-F3.md
rename to docs/legacyinfo/Legacy-target-Paris-Air-Hero-32-F3.md
diff --git a/versioned_docs/version-4.0.0/features/Legacy-target-Paris-Air-Hero-32.md b/docs/legacyinfo/Legacy-target-Paris-Air-Hero-32.md
similarity index 100%
rename from versioned_docs/version-4.0.0/features/Legacy-target-Paris-Air-Hero-32.md
rename to docs/legacyinfo/Legacy-target-Paris-Air-Hero-32.md
diff --git a/versioned_docs/version-4.0.0/features/Legacy-target-SPRacingF3.md b/docs/legacyinfo/Legacy-target-SPRacingF3.md
similarity index 100%
rename from versioned_docs/version-4.0.0/features/Legacy-target-SPRacingF3.md
rename to docs/legacyinfo/Legacy-target-SPRacingF3.md
diff --git a/versioned_docs/version-4.0.0/features/Legacy-target-SPRacingF3EVO.md b/docs/legacyinfo/Legacy-target-SPRacingF3EVO.md
similarity index 100%
rename from versioned_docs/version-4.0.0/features/Legacy-target-SPRacingF3EVO.md
rename to docs/legacyinfo/Legacy-target-SPRacingF3EVO.md
diff --git a/versioned_docs/version-4.0.0/features/Legacy-target-SPRacingF3EVO_1SS.md b/docs/legacyinfo/Legacy-target-SPRacingF3EVO_1SS.md
similarity index 100%
rename from versioned_docs/version-4.0.0/features/Legacy-target-SPRacingF3EVO_1SS.md
rename to docs/legacyinfo/Legacy-target-SPRacingF3EVO_1SS.md
diff --git a/versioned_docs/version-4.0.0/features/Legacy-target-Sparky.md b/docs/legacyinfo/Legacy-target-Sparky.md
similarity index 100%
rename from versioned_docs/version-4.0.0/features/Legacy-target-Sparky.md
rename to docs/legacyinfo/Legacy-target-Sparky.md
diff --git a/versioned_docs/version-4.0.0/features/Legacy-targetChebuzzF3.md b/docs/legacyinfo/Legacy-targetChebuzzF3.md
similarity index 100%
rename from versioned_docs/version-4.0.0/features/Legacy-targetChebuzzF3.md
rename to docs/legacyinfo/Legacy-targetChebuzzF3.md
diff --git a/docs/legacyinfo/_category_.json b/docs/legacyinfo/_category_.json
new file mode 100644
index 0000000..b93f73c
--- /dev/null
+++ b/docs/legacyinfo/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Legacy Info",
+ "position": 5,
+ "link": {
+ "type": "generated-index",
+ "description": "Find out how INAV's features work."
+ }
+ }
\ No newline at end of file
diff --git a/docs/quickstart/Blinkenlights.md b/docs/quickstart/Blinkenlights.md
new file mode 100644
index 0000000..bb4cae9
--- /dev/null
+++ b/docs/quickstart/Blinkenlights.md
@@ -0,0 +1,31 @@
+---
+title: Blinking Lights
+---
+
+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/docs/quickstart/Default-values-for-different-type-of-aircrafts.md b/docs/quickstart/Default-values-for-different-type-of-aircrafts.md
new file mode 100644
index 0000000..7c2aece
--- /dev/null
+++ b/docs/quickstart/Default-values-for-different-type-of-aircrafts.md
@@ -0,0 +1,342 @@
+---
+title: Default Values for Different Types of Aircraft
+---
+
+:::warning
+**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
+```
\ No newline at end of file
diff --git a/docs/quickstart/Fixed-Wing-Guide.md b/docs/quickstart/Fixed-Wing-Guide.md
new file mode 100644
index 0000000..91739b5
--- /dev/null
+++ b/docs/quickstart/Fixed-Wing-Guide.md
@@ -0,0 +1,194 @@
+---
+title: Fixed Wing Guide
+sidebar_position: 2
+---
+
+## 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---172-onwards).
+
+
+
+* 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/Telemetry.md) )
+
+### 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)
+
+* 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-Mode-Return-to-Home.md) 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-fw)
+ * Tune your PIFF values, either manually or with [AUTOTUNE](https://github.com/iNavFlight/inav/wiki/Modes#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](./Howto:-CC3D-flight-controller,-minimOSD,-GPS-and-LTM-telemetry-for-fixed-wing.md#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)
\ No newline at end of file
diff --git a/docs/quickstart/Fixed-Wing-Tuning-for-INAV-3.0.md b/docs/quickstart/Fixed-Wing-Tuning-for-INAV-3.0.md
new file mode 100644
index 0000000..5a53a24
--- /dev/null
+++ b/docs/quickstart/Fixed-Wing-Tuning-for-INAV-3.0.md
@@ -0,0 +1,32 @@
+---
+title: Fixed Wing Tuning 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/docs/quickstart/GPS--and-Compass-setup.md b/docs/quickstart/GPS--and-Compass-setup.md
new file mode 100644
index 0000000..8ba1b46
--- /dev/null
+++ b/docs/quickstart/GPS--and-Compass-setup.md
@@ -0,0 +1,215 @@
+---
+title: GPS And Compass Setup
+---
+
+iNav supports Ublox, DJI NAZA, NMEA, multiwii's i2c-nav board and MultiWiiCopter's i2c-gps modules
+
+Tested and confirming working protocols are Ublox and DJI NAZA
+
+Recommended GPS are M8N versions.
+
+Modules known to work reasonably well:
+* [Beitian BN-880](https://inavflight.com/shop/p/BN880)
+* [Ublox NEO-M8N APM version](https://inavflight.com/shop/s/bg/1035454)
+
+Older versions as M6N and M7N also work, but the new M8N is far superior.
+Most GPS modules have a built in magnetometer (compass), but there are also some available without e.g. [Beitian BN-180](https://inavflight.com/shop/p/BN180) or [Beitian BN-220](https://inavflight.com/shop/p/BN220) which are perfect for planes and flying wings.
+
+With 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](https://github.com/iNavFlight/inav/wiki/Ublox-3.01-firmware-and-Galileo) to use Galileo satellites.
+
+With iNav 1.9 and later, Galileo can be enabled with the CLI setting `set gps_ublox_use_galileo = ON` (the default is off).
+
+If you want to use the external magnetometer (built in in your GPS) and you have a FC with the same magnetometer (HMC5883L is very common), you have to disable it physically on your FC: remove chip from board or cut a trace. You can't use two identical chips/magnetometers on the same I2C bus.
+ * When using DJI NAZA gps this is not true, DJI NAZA sends compass over serial and does not use the I2C bus)
+ * On MPU9250 board internal magnetometer is an AK8963, most GPS pucks are HMC5883L. So no need to remove hardware, only choose which one to use with cli command `mag_hardware`
+
+If you elect to use the internal FC magnetometer you are highly likely to have poor results due to magnetic interference (not recommended).
+
+## Installing the GPS unit
+
+Just to avoid the mistake many people do while installing a GPS unit (aka pointing the antenna towards the ground): _(thanks to Phil-MC for the images)_
+
+This side has to point towards the sky
+
+
+
+This side has to point towards the ground
+
+
+
+
+## Setting up the compass alignment
+
+Before attempting any navigation modes, you should verify that the compass alignment is correct (Configurator or CLI `set align_mag`)
+* Perform any tests away of sources of magnetic interference. Domestic applicances or even audio speakers can cause erroneous affects.
+* 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 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 manualy.
+For free Alignment, all three axis need to set manualy.
+A sensor flip is always to realise
+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
+
+Enhanced Eplaination in #6232
+[How to Align and Check if your readings are Correct ](https://github.com/iNavFlight/inav/issues/6232#issuecomment-727636397)
+
+Painless360 done a superior Video on this
+[Setup non Flat mounted External Compass. (Tilted) ](https://youtu.be/tjKPD69Lrgg)
+
+Someone Genius build a Software helper Tool for this.
+
+[Free Alignment Tool](https://kernel-machine.github.io/INavMagAlignHelper/)
+
+## 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 slight 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.
+
+* If you need help doing this, post the log in the iNav RC Groups forum (or Slack channel) and ask for help. There are a number of users familiar with this type of analysis who will 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 or softserial. Connect RX from GPS to TX on FC, TX from GPS to RX on FC
+- Activate GPS in the ports tab in cleanflight/iNav configurator and set it to 57600 using UART or 19200 using softserial (on your chosen port)
+- Activate GPS in the configuration tab, set it to ublox.
+
+- 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.
+ * F3 based board and newer uses default automatic magnetic declination, if your on F1 board or want to change magnetic declination manually you have to set correct declination of your spesific 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](./Sensor-calibration.md#compass-calibration)
+
+
+Note to change magnetic declination manually on F3 or newer board you have to turn off automatic function. `set inav_auto_mag_decl = OFF`.
+
+## NEO-M8N PixHawk GPS Unit / BN-880
+
+A readily available GPS unit is the "NEO-M8N" unit that is available from eBay, Amazon, Banggood & so on...
+
+They are cheap and because they use the Russian satellite network called GLONASS, obtaining a GPS fix is quicker and you can be flying around with anywhere between 9 to 20 satellites.
+
+Also as a bonus with such units they have a magnetometer (a compass) on the underside of the board too!
+
+
+
+
+
+An important note is that on top of the protective shell of the MN-M8N there is an arrow, this needs to point towards the front of your model. The BN-880 plug needs to point down and to the rear of your model. It is also recommended to [encase](https://www.thingiverse.com/search?q=bn-880&dwh=665c615230c1cbf) the BN-880 as it is quite fragile.
+
+**Important**:
+You need to switch the Rx and Tx wires around. So you connect your GPS Tx wire (yellow) to your desired Rx pin and the GPS Rx wire (White) to your Tx pin on your flight controller.
+
+A video showing you how to do this for a Omnibus F4 V2 board is in [this video on YouTube](https://www.youtube.com/watch?v=nQCQXuqQSd8)
+
+The Matek F405-ctr online documentation connects the GPS to a 5V pin under the board so on USB only the GPS and Mag won't be powered. If you want GPS lock on the bench, you can instead connect the BN-880 power to the 3V3 pin.
+
+Once you have connected the GPS to your flight control board
+
+- Open the iNav Configurator
+- Enable GPS on your desired UART port
+- Set the the baud rate to 115200
+- 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.
+
+If it is the first time you have connected the GPS unit, then it can take several minutes for a GPS fix to be obtained. This is perfectly normal.
+
+**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!)
+
+
+## Getting started with DJI NAZA GPS
+NOTE: By default F1 processors do not support DJI GPS. Most F3 processors do - check hardware support map.
+F1 can support DJI if you compile your own build with unused features removed.
+
+- Physically connect your GPS to your FC using UART. Connect RX from GPS to TX on FC, TX from GPS to RX on FC
+- Activate GPS in the ports tab in cleanflight/iNav configurator and set it to 115 200 on correct UART
+- Type this in CLI
+
+ feature GPS
+ set gps_provider = NAZA
+ set mag_hardware = GPSMAG
+ set align_mag = CW180FLIP
+
+Default DJI GPS puck pointing forward is set with CW180FLIP, but can be changed with CW0FLIP, CW90FLIP, CW180FLIP or CW270FLIP
+
+ * 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 spesific 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](./Sensor-calibration.md#compass-calibration)
+
+Note to change magnetic declination manually on F3 or newer board you have to turn off automatic function. `set inav_auto_mag_decl = OFF`.
+
+
+Thats it!
+
+
+## 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 |
+| 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`
+
+
+## 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, ESC´s 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.
\ No newline at end of file
diff --git a/docs/quickstart/Getting-started-with-iNav.md b/docs/quickstart/Getting-started-with-iNav.md
new file mode 100644
index 0000000..cc1e6eb
--- /dev/null
+++ b/docs/quickstart/Getting-started-with-iNav.md
@@ -0,0 +1,68 @@
+---
+title: Getting Started
+slug: getstarted
+sidebar_position: 1
+---
+
+# 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, 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/docs/quickstart/Howto:-CC3D-flight-controller,-minimOSD,-GPS-and-LTM-telemetry-for-fixed-wing.md b/docs/quickstart/Howto:-CC3D-flight-controller,-minimOSD,-GPS-and-LTM-telemetry-for-fixed-wing.md
new file mode 100644
index 0000000..0ad16db
--- /dev/null
+++ b/docs/quickstart/Howto:-CC3D-flight-controller,-minimOSD,-GPS-and-LTM-telemetry-for-fixed-wing.md
@@ -0,0 +1,250 @@
+---
+title: CC3D For Fixed Wing 2
+---
+
+
+## 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 .
+
+- 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.
+
+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](https://github.com/iNavFlight/inav/wiki/Sensor-calibration) 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
+
+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.
+
+
+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.
+
+
+
+### 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.
+
+
+###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.
+
+
+### 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.
+
+
+
+Turn on your transmitter, switch to the Angle or Horizon flight mode and follow the Servos tab.
+
+### Servo setup
+
+
+
+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.
+
+
+
+
+### 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.
+
+
+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:
+
+
+Watch this demo video of the iNAV flight and RTH function:
+
+[](https://www.youtube.com/watch?v=GYd7mxGxNL8)
+
+Good luck!
\ No newline at end of file
diff --git a/docs/quickstart/Howto:-CC3D-flight-controller,-minimOSD-,-telemetry-and-GPS-for-fixed-wing.md b/docs/quickstart/Howto:-CC3D-flight-controller,-minimOSD-,-telemetry-and-GPS-for-fixed-wing.md
new file mode 100644
index 0000000..1a58773
--- /dev/null
+++ b/docs/quickstart/Howto:-CC3D-flight-controller,-minimOSD-,-telemetry-and-GPS-for-fixed-wing.md
@@ -0,0 +1,235 @@
+---
+title: CC3D For Fixed Wing 1
+---
+
+## 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 .
+
+- 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.
+
+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](https://github.com/iNavFlight/inav/wiki/Sensor-calibration) to perform the 6 point accelerometer calibration.
+
+### Flight controller orientation.
+After the calibration is done you may select the sutable board orientation
+
+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.
+
+
+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.
+
+
+
+### Failsafe
+
+Check [this link](https://github.com/iNavFlight/inav/wiki/Failsafe) 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.
+
+
+###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.
+
+
+### 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.
+
+
+
+Turn on your transmitter, switch to the Angle or Horizon flight mode and follow the Servos tab.
+
+### Servo setup
+
+
+
+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.
+
+
+
+
+### 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.
+
+
+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:
+
+
+Watch this demo video of the iNAV flight and RTH function:
+
+[](https://www.youtube.com/watch?v=GYd7mxGxNL8)
+
+Good luck!
\ No newline at end of file
diff --git a/docs/quickstart/Multirotor-guide.md b/docs/quickstart/Multirotor-guide.md
new file mode 100644
index 0000000..6de39e9
--- /dev/null
+++ b/docs/quickstart/Multirotor-guide.md
@@ -0,0 +1,49 @@
+---
+title: Multirotor Guide
+sidebar_position: 3
+---
+
+## 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); 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](./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)
+
+## 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/docs/quickstart/Sensor-calibration.md b/docs/quickstart/Sensor-calibration.md
new file mode 100644
index 0000000..8bf1660
--- /dev/null
+++ b/docs/quickstart/Sensor-calibration.md
@@ -0,0 +1,97 @@
+---
+title: Sensor Calibration
+---
+
+**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](./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/docs/quickstart/Something-is-disabled----Reasons.md b/docs/quickstart/Something-is-disabled----Reasons.md
new file mode 100644
index 0000000..a5c4da3
--- /dev/null
+++ b/docs/quickstart/Something-is-disabled----Reasons.md
@@ -0,0 +1,105 @@
+---
+title: Something is disabled
+---
+
+## 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 has failed / is not recognised (e.g. GPS, Compass, Baro) |
+| `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 |
+
+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 4.0.0 as of 2021-12.
+
+### 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 |
+| Satellite quality is unacceptable: EPH/EPV > 10m (note the limit in the CLI `inav_max_eph_epv` is in cm, default 1000) |
+| The WP mission contains an invalid JUMP sequence |
+| The first waypoint is beyond the distance defined by the CLI setting `nav_wp_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
+ ```
+* 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. 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.
\ No newline at end of file
diff --git a/docs/quickstart/TROUBLESHOOTING.md b/docs/quickstart/TROUBLESHOOTING.md
new file mode 100644
index 0000000..c8a88fc
--- /dev/null
+++ b/docs/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](https://github.com/iNavFlight/inav/wiki/GPS--and-Compass-setup)
+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.
\ No newline at end of file
diff --git a/docs/quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md b/docs/quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md
new file mode 100644
index 0000000..e0d47ca
--- /dev/null
+++ b/docs/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
+---
+
+
+
+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!
\ No newline at end of file
diff --git a/docs/quickstart/Welcome-to-INAV,-useful-links-and-products.md b/docs/quickstart/Welcome-to-INAV,-useful-links-and-products.md
new file mode 100644
index 0000000..f6af55b
--- /dev/null
+++ b/docs/quickstart/Welcome-to-INAV,-useful-links-and-products.md
@@ -0,0 +1,82 @@
+---
+title: Useful Links and Products
+---
+
+
+
+**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](https://github.com/iNavFlight/inav/wiki/Welcome-to-INAV,-useful-links-and-products) too.
+
+_Thanks, and happy flying!_
\ No newline at end of file
diff --git a/docs/quickstart/Why-do-I-have-limited-servo-throw-in-my-airplane.md b/docs/quickstart/Why-do-I-have-limited-servo-throw-in-my-airplane.md
new file mode 100644
index 0000000..4a18191
--- /dev/null
+++ b/docs/quickstart/Why-do-I-have-limited-servo-throw-in-my-airplane.md
@@ -0,0 +1,50 @@
+---
+title: Why Do I Have Limited Servo Throws 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.
\ No newline at end of file
diff --git a/docs/quickstart/YouTube-video-guides.md b/docs/quickstart/YouTube-video-guides.md
new file mode 100644
index 0000000..a6c3294
--- /dev/null
+++ b/docs/quickstart/YouTube-video-guides.md
@@ -0,0 +1,25 @@
+---
+title: Link to YouTube video guides.
+---
+
+# Link to YouTube video guides.
+
+* [INAV 3 from flash to flight for multirotor drones](https://youtube.com/playlist?list=PLOUQ8o2_nCLkfcKsWobDLtBNIBzwlwRC8)
+* [INAV Fixed Wing Tuning Guide](https://youtu.be/A45vc4OihgY)
+* [Painless360 iNav playlist](http://www.youtube.com/playlist?list=PLYsWjANuAm4qdXEGFSeUhOZ10-H8YTSnH)
+* [Setting up & Using iNav 2017 by Matthew Ogborne](https://youtu.be/1DCCjPbHl_I?list=PLgoM4-umzSqd0clW-e_A12yKiOpV--3a2)
+* [Backup and restoring](https://www.youtube.com/watch?v=M5haTMW239E&feature=youtu.be)
+* [How to use presets](https://www.youtube.com/watch?v=tOXe_VHxVLg)
+* [Gyroscope and filtering part 1](https://www.youtube.com/watch?v=Bv5ajMgdsno)
+* [Gyroscope and filtering part 2](https://www.youtube.com/watch?v=G_XxKeLL4-k)
+
+* [Gyroscope and filtering part 4](https://www.youtube.com/watch?v=0WTEbQ8hOx4)
+* [INAV Troubleshooting: why INAV is not arming](https://www.youtube.com/watch?v=7MAdgGkBkXs)
+* [INAV Troubleshooting: magnetometer is not working](https://www.youtube.com/watch?v=-zaIE-s8aHQ)
+* [INAV Troubleshooting: not getting full servo throw on flying wing](https://www.youtube.com/watch?v=o2RwTeBbvos)
+* [INAV Troubleshooting: toilet bowling instead of Position Hold](https://www.youtube.com/watch?v=FlEm0-pXNf0)
+* [How to use Autotune](https://youtu.be/UOGfC3pvbWM)
+* [How to use servo autotrim](https://www.youtube.com/watch?v=XW1esQp_RvU)
+* [The most common iNav mistakes](https://youtu.be/fVJYodLimD8)
+* [INAV setup for tracked vehicles](https://youtu.be/9194OzsHOFc)
+* [Betaflight to INAV migration in 22 minutes](https://youtu.be/1hhsqyXeKew)
\ No newline at end of file
diff --git a/docs/quickstart/_category_.json b/docs/quickstart/_category_.json
new file mode 100644
index 0000000..d49165b
--- /dev/null
+++ b/docs/quickstart/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Quickstart",
+ "position": 2,
+ "link": {
+ "type": "generated-index",
+ "description": "Get quickly setup and flying with a basic configuration"
+ }
+ }
\ No newline at end of file
diff --git a/docs/welcome.md b/docs/welcome.md
index ddeacaa..b04ceb5 100644
--- a/docs/welcome.md
+++ b/docs/welcome.md
@@ -7,29 +7,14 @@ slug: welcome
# Welcome to the Docs
+INAV is a flight controller software for a multitude of air and land vehicles such as multirotors, fixed wings, VTOLs, rovers, and submarines.
+The software suite consists of:
+* INAV Firmware - what's flashed on the flight controller
+* INAV Configurator - a graphical desktop tool that allows for configuring and programming the vehicle
+* INAV Lua Widget - an EdgeTX widget that augments the INAV experience
+* INAV Blackbox Tools - a tool to convert and use flight data recorded on the flight controller
+
## Purpose
This unofficial, community made website is the next evolution for the INAV project's documentation.
-
The new documentation aims to consolidate everything INAV in a central and easy to use location.
-
-## How to Use
-
-:::info
-For absolute first timer users who want to get setup, please visit the **Installation** section first to get your environment prepared with Inav Configurator.
-:::
-
-The documentation is organized into three main sections:
-
-
diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index 913482d..67b427b 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -10,15 +10,15 @@ const config: Config = {
favicon: "img/favicon.ico",
// Set the production url of your site here
- url: "https://robotgoat.github.io/",
+ url: "https://inavflight.github.io/",
// Set the // pathname under which your site is served
// For GitHub pages deployment, it is often '//'
- baseUrl: "/inavdocs/",
+ baseUrl: "/",
// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: "iNavFlight", // Usually your GitHub org/user name.
- projectName: "inavdocs", // Usually your repo name.
+ projectName: "iNavFlight.github.io", // Usually your repo name.
onBrokenLinks: "throw",
// onBrokenMarkdownLinks: "warn", #deprecated comment out for now
@@ -61,7 +61,7 @@ const config: Config = {
sidebarPath: "./sidebars.ts",
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
- editUrl: "https://github.com/robotgoat/inavdocs/tree/main/",
+ editUrl: "https://github.com/iNavFlight/iNavFlight.github.io/tree/main/",
},
blog: {
showReadingTime: true,
@@ -71,7 +71,7 @@ const config: Config = {
},
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
- editUrl: "https://github.com/robotgoat/inavdocs/tree/main/",
+ editUrl: "https://github.com/iNavFlight/iNavFlight.github.io/tree/main/",
// Useful options to enforce blogging best practices
onInlineTags: "warn",
onInlineAuthors: "warn",
diff --git a/package-lock.json b/package-lock.json
index 140149d..f915178 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -30,9 +30,9 @@
}
},
"node_modules/@ai-sdk/gateway": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/@ai-sdk/gateway/-/gateway-2.0.12.tgz",
- "integrity": "sha512-W+cB1sOWvPcz9qiIsNtD+HxUrBUva2vWv2K1EFukuImX+HA0uZx3EyyOjhYQ9gtf/teqEG80M6OvJ7xx/VLV2A==",
+ "version": "2.0.15",
+ "resolved": "https://registry.npmjs.org/@ai-sdk/gateway/-/gateway-2.0.15.tgz",
+ "integrity": "sha512-i1YVKzC1dg9LGvt+GthhD7NlRhz9J4+ZRj3KELU14IZ/MHPsOBiFeEoCCIDLR+3tqT8/+5nIsK3eZ7DFRfMfdw==",
"license": "Apache-2.0",
"dependencies": {
"@ai-sdk/provider": "2.0.0",
@@ -76,13 +76,13 @@
}
},
"node_modules/@ai-sdk/react": {
- "version": "2.0.97",
- "resolved": "https://registry.npmjs.org/@ai-sdk/react/-/react-2.0.97.tgz",
- "integrity": "sha512-mFfD2OQ+YVwXoCwJUIRdVSQ4XRPxKl/cJwvjKHDGoUlhIoSd58vEjCbj5rlDXGAHcPit6OR0bJT7oINc/mT90w==",
+ "version": "2.0.102",
+ "resolved": "https://registry.npmjs.org/@ai-sdk/react/-/react-2.0.102.tgz",
+ "integrity": "sha512-EQnlat8yvyCRAVG/7ukdFNozuMdTY9DX6pN8KngfnJkBJtH+bpXZXkJlonbmd7RJ8oGMqRUAZhQSaOy0a4E1Yw==",
"license": "Apache-2.0",
"dependencies": {
"@ai-sdk/provider-utils": "3.0.17",
- "ai": "5.0.97",
+ "ai": "5.0.102",
"swr": "^2.2.5",
"throttleit": "2.1.0"
},
@@ -100,15 +100,15 @@
}
},
"node_modules/@algolia/abtesting": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.10.0.tgz",
- "integrity": "sha512-mQT3jwuTgX8QMoqbIR7mPlWkqQqBPQaPabQzm37xg2txMlaMogK/4hCiiESGdg39MlHZOVHeV+0VJuE7f5UK8A==",
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.11.0.tgz",
+ "integrity": "sha512-a7oQ8dwiyoyVmzLY0FcuBqyqcNSq78qlcOtHmNBumRlHCSnXDcuoYGBGPN1F6n8JoGhviDDsIaF/oQrzTzs6Lg==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.44.0",
- "@algolia/requester-browser-xhr": "5.44.0",
- "@algolia/requester-fetch": "5.44.0",
- "@algolia/requester-node-http": "5.44.0"
+ "@algolia/client-common": "5.45.0",
+ "@algolia/requester-browser-xhr": "5.45.0",
+ "@algolia/requester-fetch": "5.45.0",
+ "@algolia/requester-node-http": "5.45.0"
},
"engines": {
"node": ">= 14.0.0"
@@ -147,100 +147,100 @@
}
},
"node_modules/@algolia/client-abtesting": {
- "version": "5.44.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.44.0.tgz",
- "integrity": "sha512-KY5CcrWhRTUo/lV7KcyjrZkPOOF9bjgWpMj9z98VA+sXzVpZtkuskBLCKsWYFp2sbwchZFTd3wJM48H0IGgF7g==",
+ "version": "5.45.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.45.0.tgz",
+ "integrity": "sha512-WTW0VZA8xHMbzuQD5b3f41ovKZ0MNTIXkWfm0F2PU+XGcLxmxX15UqODzF2sWab0vSbi3URM1xLhJx+bXbd1eQ==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.44.0",
- "@algolia/requester-browser-xhr": "5.44.0",
- "@algolia/requester-fetch": "5.44.0",
- "@algolia/requester-node-http": "5.44.0"
+ "@algolia/client-common": "5.45.0",
+ "@algolia/requester-browser-xhr": "5.45.0",
+ "@algolia/requester-fetch": "5.45.0",
+ "@algolia/requester-node-http": "5.45.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/client-analytics": {
- "version": "5.44.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.44.0.tgz",
- "integrity": "sha512-LKOCE8S4ewI9bN3ot9RZoYASPi8b78E918/DVPW3HHjCMUe6i+NjbNG6KotU4RpP6AhRWZjjswbOkWelUO+OoA==",
+ "version": "5.45.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.45.0.tgz",
+ "integrity": "sha512-I3g7VtvG/QJOH3tQO7E7zWTwBfK/nIQXShFLR8RvPgWburZ626JNj332M3wHCYcaAMivN9WJG66S2JNXhm6+Xg==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.44.0",
- "@algolia/requester-browser-xhr": "5.44.0",
- "@algolia/requester-fetch": "5.44.0",
- "@algolia/requester-node-http": "5.44.0"
+ "@algolia/client-common": "5.45.0",
+ "@algolia/requester-browser-xhr": "5.45.0",
+ "@algolia/requester-fetch": "5.45.0",
+ "@algolia/requester-node-http": "5.45.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/client-common": {
- "version": "5.44.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.44.0.tgz",
- "integrity": "sha512-1yyJm4OYC2cztbS28XYVWwLXdwpLsMG4LoZLOltVglQ2+hc/i9q9fUDZyjRa2Bqt4DmkIfezagfMrokhyH4uxQ==",
+ "version": "5.45.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.45.0.tgz",
+ "integrity": "sha512-/nTqm1tLiPtbUr+8kHKyFiCOfhRfgC+JxLvOCq471gFZZOlsh6VtFRiKI60/zGmHTojFC6B0mD80PB7KeK94og==",
"license": "MIT",
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/client-insights": {
- "version": "5.44.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.44.0.tgz",
- "integrity": "sha512-wVQWK6jYYsbEOjIMI+e5voLGPUIbXrvDj392IckXaCPvQ6vCMTXakQqOYCd+znQdL76S+3wHDo77HZWiAYKrtA==",
+ "version": "5.45.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.45.0.tgz",
+ "integrity": "sha512-suQTx/1bRL1g/K2hRtbK3ANmbzaZCi13487sxxmqok+alBDKKw0/TI73ZiHjjFXM2NV52inwwcmW4fUR45206Q==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.44.0",
- "@algolia/requester-browser-xhr": "5.44.0",
- "@algolia/requester-fetch": "5.44.0",
- "@algolia/requester-node-http": "5.44.0"
+ "@algolia/client-common": "5.45.0",
+ "@algolia/requester-browser-xhr": "5.45.0",
+ "@algolia/requester-fetch": "5.45.0",
+ "@algolia/requester-node-http": "5.45.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/client-personalization": {
- "version": "5.44.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.44.0.tgz",
- "integrity": "sha512-lkgRjOjOkqmIkebHjHpU9rLJcJNUDMm+eVSW/KJQYLjGqykEZxal+nYJJTBbLceEU2roByP/+27ZmgIwCdf0iA==",
+ "version": "5.45.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.45.0.tgz",
+ "integrity": "sha512-CId/dbjpzI3eoUhPU6rt/z4GrRsDesqFISEMOwrqWNSrf4FJhiUIzN42Ac+Gzg69uC0RnzRYy60K1y4Na5VSMw==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.44.0",
- "@algolia/requester-browser-xhr": "5.44.0",
- "@algolia/requester-fetch": "5.44.0",
- "@algolia/requester-node-http": "5.44.0"
+ "@algolia/client-common": "5.45.0",
+ "@algolia/requester-browser-xhr": "5.45.0",
+ "@algolia/requester-fetch": "5.45.0",
+ "@algolia/requester-node-http": "5.45.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/client-query-suggestions": {
- "version": "5.44.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.44.0.tgz",
- "integrity": "sha512-sYfhgwKu6NDVmZHL1WEKVLsOx/jUXCY4BHKLUOcYa8k4COCs6USGgz6IjFkUf+niwq8NCECMmTC4o/fVQOalsA==",
+ "version": "5.45.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.45.0.tgz",
+ "integrity": "sha512-tjbBKfA8fjAiFtvl9g/MpIPiD6pf3fj7rirVfh1eMIUi8ybHP4ovDzIaE216vHuRXoePQVCkMd2CokKvYq1CLw==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.44.0",
- "@algolia/requester-browser-xhr": "5.44.0",
- "@algolia/requester-fetch": "5.44.0",
- "@algolia/requester-node-http": "5.44.0"
+ "@algolia/client-common": "5.45.0",
+ "@algolia/requester-browser-xhr": "5.45.0",
+ "@algolia/requester-fetch": "5.45.0",
+ "@algolia/requester-node-http": "5.45.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/client-search": {
- "version": "5.44.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.44.0.tgz",
- "integrity": "sha512-/FRKUM1G4xn3vV8+9xH1WJ9XknU8rkBGlefruq9jDhYUAvYozKimhrmC2pRqw/RyHhPivmgZCRuC8jHP8piz4Q==",
+ "version": "5.45.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.45.0.tgz",
+ "integrity": "sha512-nxuCid+Nszs4xqwIMDw11pRJPes2c+Th1yup/+LtpjFH8QWXkr3SirNYSD3OXAeM060HgWWPLA8/Fxk+vwxQOA==",
"license": "MIT",
"peer": true,
"dependencies": {
- "@algolia/client-common": "5.44.0",
- "@algolia/requester-browser-xhr": "5.44.0",
- "@algolia/requester-fetch": "5.44.0",
- "@algolia/requester-node-http": "5.44.0"
+ "@algolia/client-common": "5.45.0",
+ "@algolia/requester-browser-xhr": "5.45.0",
+ "@algolia/requester-fetch": "5.45.0",
+ "@algolia/requester-node-http": "5.45.0"
},
"engines": {
"node": ">= 14.0.0"
@@ -253,81 +253,81 @@
"license": "MIT"
},
"node_modules/@algolia/ingestion": {
- "version": "1.44.0",
- "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.44.0.tgz",
- "integrity": "sha512-5+S5ynwMmpTpCLXGjTDpeIa81J+R4BLH0lAojOhmeGSeGEHQTqacl/4sbPyDTcidvnWhaqtyf8m42ue6lvISAw==",
+ "version": "1.45.0",
+ "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.45.0.tgz",
+ "integrity": "sha512-t+1doBzhkQTeOOjLHMlm4slmXBhvgtEGQhOmNpMPTnIgWOyZyESWdm+XD984qM4Ej1i9FRh8VttOGrdGnAjAng==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.44.0",
- "@algolia/requester-browser-xhr": "5.44.0",
- "@algolia/requester-fetch": "5.44.0",
- "@algolia/requester-node-http": "5.44.0"
+ "@algolia/client-common": "5.45.0",
+ "@algolia/requester-browser-xhr": "5.45.0",
+ "@algolia/requester-fetch": "5.45.0",
+ "@algolia/requester-node-http": "5.45.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/monitoring": {
- "version": "1.44.0",
- "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.44.0.tgz",
- "integrity": "sha512-xhaTN8pXJjR6zkrecg4Cc9YZaQK2LKm2R+LkbAq+AYGBCWJxtSGlNwftozZzkUyq4AXWoyoc0x2SyBtq5LRtqQ==",
+ "version": "1.45.0",
+ "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.45.0.tgz",
+ "integrity": "sha512-IaX3ZX1A/0wlgWZue+1BNWlq5xtJgsRo7uUk/aSiYD7lPbJ7dFuZ+yTLFLKgbl4O0QcyHTj1/mSBj9ryF1Lizg==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.44.0",
- "@algolia/requester-browser-xhr": "5.44.0",
- "@algolia/requester-fetch": "5.44.0",
- "@algolia/requester-node-http": "5.44.0"
+ "@algolia/client-common": "5.45.0",
+ "@algolia/requester-browser-xhr": "5.45.0",
+ "@algolia/requester-fetch": "5.45.0",
+ "@algolia/requester-node-http": "5.45.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/recommend": {
- "version": "5.44.0",
- "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.44.0.tgz",
- "integrity": "sha512-GNcite/uOIS7wgRU1MT7SdNIupGSW+vbK9igIzMePvD2Dl8dy0O3urKPKIbTuZQqiVH1Cb84y5cgLvwNrdCj/Q==",
+ "version": "5.45.0",
+ "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.45.0.tgz",
+ "integrity": "sha512-1jeMLoOhkgezCCPsOqkScwYzAAc1Jr5T2hisZl0s32D94ZV7d1OHozBukgOjf8Dw+6Hgi6j52jlAdUWTtkX9Mg==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.44.0",
- "@algolia/requester-browser-xhr": "5.44.0",
- "@algolia/requester-fetch": "5.44.0",
- "@algolia/requester-node-http": "5.44.0"
+ "@algolia/client-common": "5.45.0",
+ "@algolia/requester-browser-xhr": "5.45.0",
+ "@algolia/requester-fetch": "5.45.0",
+ "@algolia/requester-node-http": "5.45.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/requester-browser-xhr": {
- "version": "5.44.0",
- "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.44.0.tgz",
- "integrity": "sha512-YZHBk72Cd7pcuNHzbhNzF/FbbYszlc7JhZlDyQAchnX5S7tcemSS96F39Sy8t4O4WQLpFvUf1MTNedlitWdOsQ==",
+ "version": "5.45.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.45.0.tgz",
+ "integrity": "sha512-46FIoUkQ9N7wq4/YkHS5/W9Yjm4Ab+q5kfbahdyMpkBPJ7IBlwuNEGnWUZIQ6JfUZuJVojRujPRHMihX4awUMg==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.44.0"
+ "@algolia/client-common": "5.45.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/requester-fetch": {
- "version": "5.44.0",
- "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.44.0.tgz",
- "integrity": "sha512-B9WHl+wQ7uf46t9cq+vVM/ypVbOeuldVDq9OtKsX2ApL2g/htx6ImB9ugDOOJmB5+fE31/XPTuCcYz/j03+idA==",
+ "version": "5.45.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.45.0.tgz",
+ "integrity": "sha512-XFTSAtCwy4HdBhSReN2rhSyH/nZOM3q3qe5ERG2FLbYId62heIlJBGVyAPRbltRwNlotlydbvSJ+SQ0ruWC2cw==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.44.0"
+ "@algolia/client-common": "5.45.0"
},
"engines": {
"node": ">= 14.0.0"
}
},
"node_modules/@algolia/requester-node-http": {
- "version": "5.44.0",
- "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.44.0.tgz",
- "integrity": "sha512-MULm0qeAIk4cdzZ/ehJnl1o7uB5NMokg83/3MKhPq0Pk7+I0uELGNbzIfAkvkKKEYcHALemKdArtySF9eKzh/A==",
+ "version": "5.45.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.45.0.tgz",
+ "integrity": "sha512-8mTg6lHx5i44raCU52APsu0EqMsdm4+7Hch/e4ZsYZw0hzwkuaMFh826ngnkYf9XOl58nHoou63aZ874m8AbpQ==",
"license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.44.0"
+ "@algolia/client-common": "5.45.0"
},
"engines": {
"node": ">= 14.0.0"
@@ -5376,9 +5376,9 @@
"license": "MIT"
},
"node_modules/@types/react": {
- "version": "19.2.6",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.6.tgz",
- "integrity": "sha512-p/jUvulfgU7oKtj6Xpk8cA2Y1xKTtICGpJYeJXz2YVO2UcvjQgeRMLDGfDeqeRW2Ta+0QNFwcc8X3GH8SxZz6w==",
+ "version": "19.2.7",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.7.tgz",
+ "integrity": "sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==",
"license": "MIT",
"peer": true,
"dependencies": {
@@ -5808,12 +5808,12 @@
}
},
"node_modules/ai": {
- "version": "5.0.97",
- "resolved": "https://registry.npmjs.org/ai/-/ai-5.0.97.tgz",
- "integrity": "sha512-8zBx0b/owis4eJI2tAlV8a1Rv0BANmLxontcAelkLNwEHhgfgXeKpDkhNB6OgV+BJSwboIUDkgd9312DdJnCOQ==",
+ "version": "5.0.102",
+ "resolved": "https://registry.npmjs.org/ai/-/ai-5.0.102.tgz",
+ "integrity": "sha512-snRK3nS5DESOjjpq7S74g8YszWVMzjagfHqlJWZsbtl9PyOS+2XUd8dt2wWg/jdaq/jh0aU66W1mx5qFjUQyEg==",
"license": "Apache-2.0",
"dependencies": {
- "@ai-sdk/gateway": "2.0.12",
+ "@ai-sdk/gateway": "2.0.15",
"@ai-sdk/provider": "2.0.0",
"@ai-sdk/provider-utils": "3.0.17",
"@opentelemetry/api": "1.9.0"
@@ -5872,26 +5872,26 @@
}
},
"node_modules/algoliasearch": {
- "version": "5.44.0",
- "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.44.0.tgz",
- "integrity": "sha512-f8IpsbdQjzTjr/4mJ/jv5UplrtyMnnciGax6/B0OnLCs2/GJTK13O4Y7Ff1AvJVAaztanH+m5nzPoUq6EAy+aA==",
+ "version": "5.45.0",
+ "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.45.0.tgz",
+ "integrity": "sha512-wrj4FGr14heLOYkBKV3Fbq5ZBGuIFeDJkTilYq/G+hH1CSlQBtYvG2X1j67flwv0fUeQJwnWxxRIunSemAZirA==",
"license": "MIT",
"peer": true,
"dependencies": {
- "@algolia/abtesting": "1.10.0",
- "@algolia/client-abtesting": "5.44.0",
- "@algolia/client-analytics": "5.44.0",
- "@algolia/client-common": "5.44.0",
- "@algolia/client-insights": "5.44.0",
- "@algolia/client-personalization": "5.44.0",
- "@algolia/client-query-suggestions": "5.44.0",
- "@algolia/client-search": "5.44.0",
- "@algolia/ingestion": "1.44.0",
- "@algolia/monitoring": "1.44.0",
- "@algolia/recommend": "5.44.0",
- "@algolia/requester-browser-xhr": "5.44.0",
- "@algolia/requester-fetch": "5.44.0",
- "@algolia/requester-node-http": "5.44.0"
+ "@algolia/abtesting": "1.11.0",
+ "@algolia/client-abtesting": "5.45.0",
+ "@algolia/client-analytics": "5.45.0",
+ "@algolia/client-common": "5.45.0",
+ "@algolia/client-insights": "5.45.0",
+ "@algolia/client-personalization": "5.45.0",
+ "@algolia/client-query-suggestions": "5.45.0",
+ "@algolia/client-search": "5.45.0",
+ "@algolia/ingestion": "1.45.0",
+ "@algolia/monitoring": "1.45.0",
+ "@algolia/recommend": "5.45.0",
+ "@algolia/requester-browser-xhr": "5.45.0",
+ "@algolia/requester-fetch": "5.45.0",
+ "@algolia/requester-node-http": "5.45.0"
},
"engines": {
"node": ">= 14.0.0"
@@ -6193,9 +6193,9 @@
"license": "MIT"
},
"node_modules/baseline-browser-mapping": {
- "version": "2.8.29",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.29.tgz",
- "integrity": "sha512-sXdt2elaVnhpDNRDz+1BDx1JQoJRuNk7oVlAlbGiFkLikHCAQiccexF/9e91zVi6RCgqspl04aP+6Cnl9zRLrA==",
+ "version": "2.8.31",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.31.tgz",
+ "integrity": "sha512-a28v2eWrrRWPpJSzxc+mKwm0ZtVx/G8SepdQZDArnXYU/XS+IF6mp8aB/4E+hH1tyGCoDo3KlUCdlSxGDsRkAw==",
"license": "Apache-2.0",
"bin": {
"baseline-browser-mapping": "dist/cli.js"
@@ -6540,9 +6540,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001756",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001756.tgz",
- "integrity": "sha512-4HnCNKbMLkLdhJz3TToeVWHSnfJvPaq6vu/eRP0Ahub/07n484XHhBF5AJoSGHdVrS8tKFauUQz8Bp9P7LVx7A==",
+ "version": "1.0.30001757",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001757.tgz",
+ "integrity": "sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ==",
"funding": [
{
"type": "opencollective",
@@ -8774,9 +8774,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.5.257",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.257.tgz",
- "integrity": "sha512-VNSOB6JZan5IQNMqaurYpZC4bDPXcvKlUwVD/ztMeVD7SwOpMYGOY7dgt+4lNiIHIpvv/FdULnZKqKEy2KcuHQ==",
+ "version": "1.5.261",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.261.tgz",
+ "integrity": "sha512-cmyHEWFqEt3ICUNF93ShneOF47DHoSDbLb7E/AonsWcbzg95N+kPXeLNfkdzgTT/vEUcoW76fxbLBkeYtfoM8A==",
"license": "ISC"
},
"node_modules/emoji-regex": {
@@ -12369,9 +12369,9 @@
}
},
"node_modules/mdast-util-to-hast": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz",
- "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==",
+ "version": "13.2.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz",
+ "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==",
"license": "MIT",
"dependencies": {
"@types/hast": "^3.0.0",
@@ -14557,9 +14557,9 @@
}
},
"node_modules/node-forge": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
- "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.2.tgz",
+ "integrity": "sha512-6xKiQ+cph9KImrRh0VsjH2d8/GXA4FIMlgU4B757iI1ApvcyA9VlouP0yZJha01V+huImO+kKMU7ih+2+E14fw==",
"license": "(BSD-3-Clause OR GPL-2.0)",
"engines": {
"node": ">= 6.13.0"
@@ -19798,15 +19798,19 @@
}
},
"node_modules/webpack-dev-middleware/node_modules/mime-types": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz",
- "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
+ "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
"license": "MIT",
"dependencies": {
"mime-db": "^1.54.0"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/webpack-dev-middleware/node_modules/range-parser": {
@@ -20301,9 +20305,9 @@
}
},
"node_modules/zod": {
- "version": "4.1.12",
- "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz",
- "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==",
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.13.tgz",
+ "integrity": "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==",
"license": "MIT",
"peer": true,
"funding": {
diff --git a/releasenotes/2021-11-12_v4.md b/releasenotes/2021-11-12_v4.md
new file mode 100644
index 0000000..5a6f266
--- /dev/null
+++ b/releasenotes/2021-11-12_v4.md
@@ -0,0 +1,264 @@
+---
+title: Official Release 4.0.0
+slug: 4.0.0
+authors: INAV
+---
+
+
+
+## Hello and welcome to INAV 4.0 "Red Kite"
+
+Please carefully read all of this document for the best possible experience and safety.
+
+
+
+Your contribution from the past month has been very welcome! Thanks!
+
+Tested and suggested hardware can be found [here](https://github.com/iNavFlight/inav/wiki/Welcome-to-INAV,-useful-links-and-products)
+
+# 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](https://github.com/iNavFlight/inav/wiki/Upgrading-from-an-older-version-of-INAV-to-the-current-version) 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](https://github.com/iNavFlight/inav/wiki/Navigation-Mode:-Return-to-Home) 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)
\ No newline at end of file
diff --git a/releasenotes/2022-01-25_v4.1.0.md b/releasenotes/2022-01-25_v4.1.0.md
new file mode 100644
index 0000000..51ba799
--- /dev/null
+++ b/releasenotes/2022-01-25_v4.1.0.md
@@ -0,0 +1,53 @@
+---
+title: Official Release 4.1.0
+slug: 4.1.0
+authors: INAV
+---
+
+
+
+## Hello and welcome to INAV 4.1 "Red Kite"
+
+Please carefully read all of this document for the best possible experience and safety.
+
+
+
+Your contribution from the past month has been very welcome! Thanks!
+
+Tested and suggested hardware can be found [here](https://github.com/iNavFlight/inav/wiki/Welcome-to-INAV,-useful-links-and-products)
+
+# 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](https://github.com/iNavFlight/inav/wiki/Upgrading-from-an-older-version-of-INAV-to-the-current-version) 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
\ No newline at end of file
diff --git a/releasenotes/2025-08-25-v8.md b/releasenotes/2025-08-25_v8.md
similarity index 100%
rename from releasenotes/2025-08-25-v8.md
rename to releasenotes/2025-08-25_v8.md
diff --git a/static/img/content/mspv1vsv2.png b/static/img/content/mspv1vsv2.png
new file mode 100644
index 0000000..dc61cf6
Binary files /dev/null and b/static/img/content/mspv1vsv2.png differ
diff --git a/versioned_docs/version-4.0.0/advanced/MSP-Navigation-Messages.md b/versioned_docs/version-4.0.0/advanced/MSP-Navigation-Messages.md
index c4a4bb9..dc73149 100644
--- a/versioned_docs/version-4.0.0/advanced/MSP-Navigation-Messages.md
+++ b/versioned_docs/version-4.0.0/advanced/MSP-Navigation-Messages.md
@@ -194,7 +194,7 @@ For safety, if no mission is defined, a single RTH action should be sent.
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 values are also returned by the FC, thus enabling the application to verify that the mission has been uploaded correctly.
-# Messages (Navigation related)
+## Messages (Navigation related)
| MNEMONIC | Value | Direction (relative to FC) |
| -------- | ---- | ---- |
@@ -206,7 +206,7 @@ In general, flag is 0, unless it's the last point in a mission, in which case it
| MSP_SET_HEAD | 211 | In |
| MSP_SET_WP | 209 | In (& out) |
-## MSP_WP / MSP_SET_WP
+### 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. WP #255 may also be used to set the vehicle's desired location (i.e. "follow me") when the following modes are asserted:
@@ -228,7 +228,7 @@ Special waypoints are 0, 254, and 255. #0 returns the RTH (Home) position, #254
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).
-## MSP_NAV_STATUS
+### 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](../features/Lightweight-Telemetry-(LTM).md)
@@ -302,7 +302,7 @@ Landing is in progress, check attitude if possible.
-## MSP_NAV_CONFIG (MW)
+### 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.
@@ -394,7 +394,7 @@ b1 : Baro takeover
-->
-## MSP_RADIO
+### MSP_RADIO
If you have a 3DR radio with the MW/MSP specific firmware, the follow data are sent from the radio, unsolicited.
@@ -408,7 +408,7 @@ If you have a 3DR radio with the MW/MSP specific firmware, the follow data are s
| noise | uchar | Local noise |
| remnoise | uchar | Remote noise |
-## FC Capabilities (MW only)
+### 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.
diff --git a/versioned_docs/version-4.0.0/features/Bluetooth-setup-to-configure-your-flight-controller.md b/versioned_docs/version-4.0.0/features/Bluetooth-setup-to-configure-your-flight-controller.md
index 01fbe4e..cc57d68 100644
--- a/versioned_docs/version-4.0.0/features/Bluetooth-setup-to-configure-your-flight-controller.md
+++ b/versioned_docs/version-4.0.0/features/Bluetooth-setup-to-configure-your-flight-controller.md
@@ -11,7 +11,7 @@ You want to extend the lifetime of your micro USB and look cool on the field? Wh
* [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
+## 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
diff --git a/versioned_docs/version-4.0.0/features/Modes.md b/versioned_docs/version-4.0.0/features/Modes.md
index 8dabe19..a2e8616 100644
--- a/versioned_docs/version-4.0.0/features/Modes.md
+++ b/versioned_docs/version-4.0.0/features/Modes.md
@@ -3,7 +3,9 @@ title: Modes
description: Explaination of all the modes
---
-**REFER TO THIS PAGE FOR NAVIGATION MODES:** [Navigation-modes](https://github.com/iNavFlight/inav/wiki/Navigation-modes)
+:::info
+**REFER TO THIS PAGE FOR NAVIGATION MODES:** [Navigation-modes](./Navigation-modes.md)
+:::
## Non-navigation modes index:
diff --git a/versioned_docs/version-4.0.0/features/Navigation-modes.md b/versioned_docs/version-4.0.0/features/Navigation-modes.md
index e251032..3d68ab4 100644
--- a/versioned_docs/version-4.0.0/features/Navigation-modes.md
+++ b/versioned_docs/version-4.0.0/features/Navigation-modes.md
@@ -168,7 +168,7 @@ 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.
+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](../advanced/iNav-CLI-variables.md) 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.
diff --git a/versioned_docs/version-4.0.0/features/iNav-Telemetry.md b/versioned_docs/version-4.0.0/features/iNav-Telemetry.md
index 279057a..ad6a712 100644
--- a/versioned_docs/version-4.0.0/features/iNav-Telemetry.md
+++ b/versioned_docs/version-4.0.0/features/iNav-Telemetry.md
@@ -4,7 +4,7 @@ title: INAV Telemetry
## Overview
-This page discusses the telemetry options available in iNav. Some of the information is expanded upon in the [Mission Panning](https://github.com/iNavFlight/inav/wiki/iNavFlight-Missions) page.
+This page discusses the telemetry options available in iNav. Some of the information is expanded upon in the [Mission Panning](./iNavFlight-Missions.md) page.
## Definitions
diff --git a/versioned_docs/version-4.0.0/features/iNavFlight-Missions.md b/versioned_docs/version-4.0.0/features/iNavFlight-Missions.md
index ebf0ca9..966df3a 100644
--- a/versioned_docs/version-4.0.0/features/iNavFlight-Missions.md
+++ b/versioned_docs/version-4.0.0/features/iNavFlight-Missions.md
@@ -9,7 +9,7 @@ iNav supports autonomous flight using waypoints. In order to use this capability
* A GCS (Ground Control Station). 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 and 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](https://github.com/iNavFlight/inav/wiki/Navigation-modes#wp---autonomous-waypoint-mission).
+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](./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
diff --git a/versioned_docs/version-4.0.0/legacyinfo/Legacy-Mixers.md b/versioned_docs/version-4.0.0/legacyinfo/Legacy-Mixers.md
new file mode 100644
index 0000000..3054f32
--- /dev/null
+++ b/versioned_docs/version-4.0.0/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 [custom mixes for exotic setups](../advanced/Custom-mixes-for-exotic-setups.md)
+
+# 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
+```
\ No newline at end of file
diff --git a/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-Colibri-RACE.md b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-Colibri-RACE.md
new file mode 100644
index 0000000..e955901
--- /dev/null
+++ b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-Colibri-RACE.md
@@ -0,0 +1,129 @@
+---
+title: Legacy Target 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-4.0.0/legacyinfo/Legacy-target-Motolab.md b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-Motolab.md
new file mode 100644
index 0000000..9e487cd
--- /dev/null
+++ b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-Motolab.md
@@ -0,0 +1,104 @@
+---
+title: 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-4.0.0/legacyinfo/Legacy-target-Omnibus-F3.md b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-Omnibus-F3.md
new file mode 100644
index 0000000..18593d3
--- /dev/null
+++ b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-Omnibus-F3.md
@@ -0,0 +1,92 @@
+---
+title: Legacy Target OMNIBUS F3
+---
+
+
+:::note
+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-4.0.0/legacyinfo/Legacy-target-Paris-Air-Hero-32-F3.md b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-Paris-Air-Hero-32-F3.md
new file mode 100644
index 0000000..8284d32
--- /dev/null
+++ b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-Paris-Air-Hero-32-F3.md
@@ -0,0 +1,48 @@
+---
+title: Legacy 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-4.0.0/legacyinfo/Legacy-target-Paris-Air-Hero-32.md b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-Paris-Air-Hero-32.md
new file mode 100644
index 0000000..ba9cfdd
--- /dev/null
+++ b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-Paris-Air-Hero-32.md
@@ -0,0 +1,48 @@
+---
+title: Legacy 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-4.0.0/legacyinfo/Legacy-target-SPRacingF3.md b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-SPRacingF3.md
new file mode 100644
index 0000000..941500b
--- /dev/null
+++ b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-SPRacingF3.md
@@ -0,0 +1,99 @@
+---
+title: Legacy 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-4.0.0/legacyinfo/Legacy-target-SPRacingF3EVO.md b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-SPRacingF3EVO.md
new file mode 100644
index 0000000..8387ce2
--- /dev/null
+++ b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-SPRacingF3EVO.md
@@ -0,0 +1,162 @@
+---
+title: Legacy 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-4.0.0/legacyinfo/Legacy-target-SPRacingF3EVO_1SS.md b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-SPRacingF3EVO_1SS.md
new file mode 100644
index 0000000..ffe36dc
--- /dev/null
+++ b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-SPRacingF3EVO_1SS.md
@@ -0,0 +1,161 @@
+---
+title: Legacy 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-4.0.0/legacyinfo/Legacy-target-Sparky.md b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-Sparky.md
new file mode 100644
index 0000000..c747e0a
--- /dev/null
+++ b/versioned_docs/version-4.0.0/legacyinfo/Legacy-target-Sparky.md
@@ -0,0 +1,209 @@
+---
+title: Legacy 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-4.0.0/legacyinfo/Legacy-targetChebuzzF3.md b/versioned_docs/version-4.0.0/legacyinfo/Legacy-targetChebuzzF3.md
new file mode 100644
index 0000000..d776d30
--- /dev/null
+++ b/versioned_docs/version-4.0.0/legacyinfo/Legacy-targetChebuzzF3.md
@@ -0,0 +1,91 @@
+---
+title: Legacy Target Chebuzz F3
+---
+
+## 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-4.0.0/legacyinfo/_category_.json b/versioned_docs/version-4.0.0/legacyinfo/_category_.json
new file mode 100644
index 0000000..605452f
--- /dev/null
+++ b/versioned_docs/version-4.0.0/legacyinfo/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Legacy Info",
+ "position": 5,
+ "link": {
+ "type": "generated-index",
+ "description": "Legacy information"
+ }
+ }
\ No newline at end of file
diff --git a/versioned_docs/version-4.0.0/quickstart/Fixed-Wing-Guide.md b/versioned_docs/version-4.0.0/quickstart/Fixed-Wing-Guide.md
index 209b1db..69a16e4 100644
--- a/versioned_docs/version-4.0.0/quickstart/Fixed-Wing-Guide.md
+++ b/versioned_docs/version-4.0.0/quickstart/Fixed-Wing-Guide.md
@@ -27,7 +27,7 @@ Some of the most popular flight controllers for fixed wing are:
* Flash the latest version of iNav using the [iNav Configurator](https://github.com/iNavFlight/inav-configurator/releases)
-* Do an entire [sensor calibration](https://github.com/iNavFlight/inav/wiki/Sensor-calibration). Level should be the angle of the plane itself when flying straight. **Do not skip this step**.
+* 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"
diff --git a/versioned_docs/version-4.0.0/quickstart/GPS--and-Compass-setup.md b/versioned_docs/version-4.0.0/quickstart/GPS--and-Compass-setup.md
index 23f79a0..95b4ccc 100644
--- a/versioned_docs/version-4.0.0/quickstart/GPS--and-Compass-setup.md
+++ b/versioned_docs/version-4.0.0/quickstart/GPS--and-Compass-setup.md
@@ -115,7 +115,7 @@ Only when you're content that the compass reads correctly for all throttle setti
* 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.
* F3 based board and newer uses default automatic magnetic declination, if your on F1 board or want to change magnetic declination manually you have to set correct declination of your spesific 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](https://github.com/iNavFlight/inav/wiki/Sensor-calibration#compass-calibration)
+ * Calibrate your compass according to [compass calibration](./Sensor-calibration.md#compass-calibration)
Note to change magnetic declination manually on F3 or newer board you have to turn off automatic function. `set inav_auto_mag_decl = OFF`.
diff --git a/versioned_docs/version-4.0.0/quickstart/Getting-started-with-iNav.md b/versioned_docs/version-4.0.0/quickstart/Getting-started-with-iNav.md
index c3eb068..438d9bb 100644
--- a/versioned_docs/version-4.0.0/quickstart/Getting-started-with-iNav.md
+++ b/versioned_docs/version-4.0.0/quickstart/Getting-started-with-iNav.md
@@ -29,13 +29,13 @@ With the default iNav settings, iNav will configure the ublox GPS for you. There
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](https://github.com/iNavFlight/inav/wiki/GPS--and-Compass-setup).
+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](https://github.com/iNavFlight/inav/wiki/Navigation-modes) for possible reasons for why.
+* 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)
@@ -47,7 +47,7 @@ You can learn how to setup your GPS unit for use with iNav on [on this page](htt
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](https://github.com/iNavFlight/inav/wiki/Navigation-modes) for how to use them, and combine them, to get the wanted position hold.
+* 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.
diff --git a/versioned_docs/version-4.1.0/advanced/AAT-Automatic-Antenna-Tracker.md b/versioned_docs/version-4.1.0/advanced/AAT-Automatic-Antenna-Tracker.md
new file mode 100644
index 0000000..108a002
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/AAT-Automatic-Antenna-Tracker.md
@@ -0,0 +1,55 @@
+---
+title: Automatic Antenna Tracker
+---
+
+## Introduction
+
+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.
+
+[](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:
+
+[](https://www.rcgroups.com/forums/showthread.php?3815901-New-product-low-cost-antenna-tracker-for-iNav-Betaflight-Ardupilot-KISS-etc)
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/advanced/Boards,-Targets-and-PWM-allocations.md b/versioned_docs/version-4.1.0/advanced/Boards,-Targets-and-PWM-allocations.md
new file mode 100644
index 0000000..606228e
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/Boards,-Targets-and-PWM-allocations.md
@@ -0,0 +1,1627 @@
+---
+title: 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 |
+| ------ | -------------- |
+| MC_MOTOR | Multi-rotor motor |
+| FW_MOTOR | Fixed wing motor |
+| MC_SERVO | Multi-rotor servo |
+| FW_SERVO | Fixed wing servo |
+| LED | LED strip |
+| PWM, ANY | Some other PWM function |
+
+*List generated 2022-01-30 from the [inav master branch](https://github.com/iNavFlight/inav/) by [`parse_targets.rb`](http://seyrsnys.myzen.co.uk/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.
+
+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: AIKONF4
+
+Board is not DSHOT enabled.
+
+### Target: AIKONF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+| 6 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+
+## Board: AIRBOTF4
+
+Board is DSHOT enabled.
+
+### Target: AIRBOTF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO, ANY |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 7 | PWM, FW_SERVO |
+| 8 | PWM, FW_SERVO |
+| 9 | PWM, FW_SERVO |
+| 10 | PWM, FW_SERVO |
+
+## Board: AIRBOTF7
+
+Board is DSHOT enabled.
+
+### Target: AIRBOTF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+
+### Target: OMNIBUSF7NANOV7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+
+## Board: ALIENFLIGHTNGF7
+
+Board is not DSHOT enabled.
+
+### Target: ALIENFLIGHTNGF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_SERVO |
+| 2 | MC_SERVO |
+| 3 | MC_SERVO |
+| 4 | MC_SERVO |
+| 5 | MC_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+| 9 | MC_MOTOR, FW_SERVO |
+| 10 | MC_MOTOR, FW_SERVO |
+| 11 | MC_MOTOR, FW_SERVO |
+| 12 | MC_MOTOR, FW_SERVO |
+
+## Board: ANYFC
+
+Board is not DSHOT enabled.
+
+### Target: ANYFC
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_MOTOR |
+| 5 | MC_MOTOR, FW_MOTOR |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+| 9 | MC_MOTOR, FW_SERVO |
+| 10 | MC_MOTOR, FW_SERVO |
+
+## Board: ANYFCF7
+
+Board is not DSHOT enabled.
+
+### Target: ANYFCF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | PWM, MC_SERVO |
+| 2 | PWM, MC_SERVO |
+| 3 | PWM, MC_SERVO |
+| 4 | PWM, MC_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_MOTOR |
+| 9 | MC_MOTOR, FW_MOTOR |
+| 10 | MC_MOTOR, FW_SERVO |
+| 11 | MC_MOTOR, FW_SERVO |
+| 12 | MC_MOTOR, FW_SERVO |
+| 13 | MC_MOTOR, FW_SERVO, LED |
+| 14 | MC_MOTOR, FW_SERVO |
+
+### Target: ANYFCF7_EXTERNAL_BARO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | PWM, MC_SERVO |
+| 2 | PWM, MC_SERVO |
+| 3 | PWM, MC_SERVO |
+| 4 | PWM, MC_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_MOTOR |
+| 9 | MC_MOTOR, FW_MOTOR |
+| 10 | MC_MOTOR, FW_SERVO |
+| 11 | MC_MOTOR, FW_SERVO |
+| 12 | MC_MOTOR, FW_SERVO |
+| 13 | MC_MOTOR, FW_SERVO, LED |
+| 14 | MC_MOTOR, FW_SERVO |
+
+## Board: ASGARD32F4
+
+Board is DSHOT enabled.
+
+### Target: ASGARD32F4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+
+## Board: ASGARD32F7
+
+Board is DSHOT enabled.
+
+### Target: ASGARD32F7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+
+## Board: BEEROTORF4
+
+Board is not DSHOT enabled.
+
+### Target: BEEROTORF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 8 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+## Board: BETAFLIGHTF4
+
+Board is DSHOT enabled.
+
+### Target: BETAFLIGHTF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+## Board: BETAFPVF722
+
+Board is DSHOT enabled.
+
+### Target: BETAFPVF722
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+| 5 | MC_MOTOR |
+| 6 | MC_MOTOR |
+
+## Board: BLUEJAYF4
+
+Board is not DSHOT enabled.
+
+### Target: BLUEJAYF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO, LED |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: CLRACINGF4AIR
+
+Board is not DSHOT enabled.
+
+### Target: CLRACINGF4AIR
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+### Target: CLRACINGF4AIRV2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_MOTOR |
+| 5 | MC_MOTOR, FW_MOTOR |
+| 6 | MC_MOTOR, FW_SERVO |
+
+### Target: CLRACINGF4AIRV3
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_MOTOR |
+| 5 | MC_MOTOR, FW_MOTOR |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: COLIBRI
+
+Board is not DSHOT enabled.
+
+### Target: COLIBRI
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+| 8 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+
+### Target: QUANTON
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+| 8 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+
+## Board: DALRCF405
+
+Board is DSHOT enabled.
+
+### Target: DALRCF405
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_MOTOR |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+
+## Board: DALRCF722DUAL
+
+Board is DSHOT enabled.
+
+### Target: DALRCF722DUAL
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_MOTOR |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: F4BY
+
+Board is not DSHOT enabled.
+
+### Target: F4BY
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+
+## Board: FF_F35_LIGHTNING
+
+Board is DSHOT enabled.
+
+### Target: FF_F35_LIGHTNING
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+### Target: WINGFC
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: FF_FORTINIF4
+
+Board is not DSHOT enabled.
+
+### Target: FF_FORTINIF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+## Board: FF_PIKOF4
+
+Board is not DSHOT enabled.
+
+### Target: FF_PIKOF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+### Target: FF_PIKOF4OSD
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: FIREWORKSV2
+
+Board is DSHOT enabled.
+
+### Target: FIREWORKSV2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | FW_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | FW_MOTOR |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+
+### Target: OMNIBUSF4V6
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | FW_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | FW_MOTOR |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+
+## Board: FLYWOOF411
+
+Board is DSHOT enabled.
+
+### Target: FLYWOOF411
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_MOTOR |
+
+### Target: FLYWOOF411_V2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+## Board: FLYWOOF745
+
+Board is DSHOT enabled.
+
+### Target: FLYWOOF745
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 6 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 7 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 8 | MC_MOTOR, FW_SERVO, MC_SERVO |
+
+### Target: FLYWOOF745NANO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 6 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 7 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 8 | MC_MOTOR, FW_SERVO, MC_SERVO |
+
+## Board: FLYWOOF7DUAL
+
+Board is DSHOT enabled.
+
+### Target: FLYWOOF7DUAL
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: FOXEERF405
+
+Board is DSHOT enabled.
+
+### Target: FOXEERF405
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: FOXEERF722DUAL
+
+Board is DSHOT enabled.
+
+### Target: FOXEERF722DUAL
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+### Target: FOXEERF722V2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: FOXEERF745AIO
+
+Board is DSHOT enabled.
+
+### Target: FOXEERF745AIO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+
+## Board: FRSKYF4
+
+Board is not DSHOT enabled.
+
+### Target: FRSKYF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+## Board: FRSKYPILOT
+
+Board is DSHOT enabled.
+
+### Target: FRSKYPILOT
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_SERVO, FW_MOTOR |
+| 2 | MC_SERVO, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+| 9 | MC_MOTOR, FW_SERVO |
+| 10 | MC_MOTOR, FW_SERVO |
+| 11 | MC_MOTOR, FW_SERVO |
+| 12 | MC_MOTOR, FW_SERVO |
+
+### Target: FRSKYPILOT_LED
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_SERVO, FW_MOTOR |
+| 2 | MC_SERVO, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+| 9 | MC_MOTOR, FW_SERVO |
+
+## Board: FRSKY_ROVERF7
+
+Board is DSHOT enabled.
+
+### Target: FRSKY_ROVERF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_SERVO |
+| 5 | MC_SERVO |
+
+## Board: FURYF4OSD
+
+Board is DSHOT enabled.
+
+### Target: FURYF4OSD
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_MOTOR |
+
+### Target: MAMBAF405
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_MOTOR |
+
+## Board: HGLRCF722
+
+Board is DSHOT enabled.
+
+### Target: HGLRCF722
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+| 8 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+
+## Board: IFLIGHTF4_SUCCEXD
+
+Board is DSHOT enabled.
+
+### Target: IFLIGHTF4_SUCCEXD
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+
+## Board: IFLIGHTF4_TWING
+
+Board is not DSHOT enabled.
+
+### Target: IFLIGHTF4_TWING
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+## Board: IFLIGHTF7_TWING
+
+Board is DSHOT enabled.
+
+### Target: IFLIGHTF7_TWING
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_MOTOR, MC_SERVO |
+| 6 | MC_MOTOR, FW_MOTOR, MC_SERVO |
+| 7 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 8 | MC_MOTOR, FW_SERVO, MC_SERVO |
+
+## Board: IFLIGHT_BLITZ_F722
+
+Board is DSHOT enabled.
+
+### Target: IFLIGHT_BLITZ_F722
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+
+## Board: KAKUTEF4
+
+Board is DSHOT enabled.
+
+### Target: KAKUTEF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+
+### Target: KAKUTEF4V2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+## Board: KAKUTEF7
+
+Board is DSHOT enabled.
+
+### Target: KAKUTEF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 6 | MC_MOTOR, FW_SERVO, MC_SERVO |
+
+### Target: KAKUTEF7HDV
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 6 | MC_MOTOR, FW_SERVO, MC_SERVO |
+
+### Target: KAKUTEF7MINI
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO, MC_SERVO |
+| 6 | MC_MOTOR, FW_SERVO, MC_SERVO |
+
+## Board: KAKUTEF7MINIV3
+
+Board is DSHOT enabled.
+
+### Target: KAKUTEF7MINIV3
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_MOTOR |
+| 4 | MC_MOTOR, FW_MOTOR |
+| 5 | MC_SERVO, FW_SERVO |
+| 6 | MC_SERVO, FW_SERVO |
+
+## Board: KAKUTEH7
+
+Board is DSHOT enabled.
+
+### Target: KAKUTEH7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+
+## Board: MAMBAF405US
+
+Board is DSHOT enabled.
+
+### Target: MAMBAF405US
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+### Target: MAMBAF405US_I2C
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+## Board: MAMBAF722
+
+Board is DSHOT enabled.
+
+### Target: MAMBAF722
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+### Target: MAMBAF722_I2C
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+## Board: MAMBAH743
+
+Board is DSHOT enabled.
+
+### Target: MAMBAH743
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_MOTOR |
+| 8 | MC_MOTOR, FW_MOTOR |
+
+## Board: MATEKF405
+
+Board is DSHOT enabled.
+
+### Target: MATEKF405
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, LED |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+
+### Target: MATEKF405_SERVOS6
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, LED |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+
+### Target: MATEKF405OSD
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, LED |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+
+## Board: MATEKF405CAN
+
+Board is DSHOT enabled.
+
+### Target: MATEKF405CAN
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_MOTOR |
+| 8 | MC_MOTOR, FW_MOTOR |
+
+## Board: MATEKF405SE
+
+Board is DSHOT enabled.
+
+### Target: MATEKF405SE
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+| 8 | MC_SERVO, FW_SERVO |
+| 9 | MC_SERVO, FW_SERVO |
+
+## Board: MATEKF411
+
+Board is DSHOT enabled.
+
+### Target: MATEKF411
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_SERVO, FW_SERVO |
+| 6 | MC_SERVO, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+
+### Target: MATEKF411_FD_SFTSRL
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_SERVO, FW_SERVO |
+| 6 | MC_SERVO, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+
+### Target: MATEKF411_RSSI
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_SERVO, FW_SERVO |
+| 6 | MC_SERVO, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+
+### Target: MATEKF411_SFTSRL2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_SERVO, FW_SERVO |
+| 6 | MC_SERVO, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+
+## Board: MATEKF411SE
+
+Board is DSHOT enabled.
+
+### Target: MATEKF411SE
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_SERVO, FW_SERVO |
+
+### Target: MATEKF411SE_PINIO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_SERVO, FW_SERVO |
+
+### Target: MATEKF411SE_FD_SFTSRL1
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_SERVO, FW_SERVO |
+
+### Target: MATEKF411SE_SS2_CH6
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+
+## Board: MATEKF722
+
+Board is DSHOT enabled.
+
+### Target: MATEKF722
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_MOTOR |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+
+### Target: MATEKF722_HEXSERVO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_MOTOR |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+
+## Board: MATEKF722PX
+
+Board is DSHOT enabled.
+
+### Target: MATEKF722PX
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+| 9 | MC_SERVO, FW_SERVO |
+| 10 | MC_SERVO, FW_SERVO |
+
+### Target: MATEKF722WPX
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+| 9 | MC_SERVO, FW_SERVO |
+| 10 | MC_SERVO, FW_SERVO |
+
+## Board: MATEKF722SE
+
+Board is DSHOT enabled.
+
+### Target: MATEKF722SE
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_SERVO, FW_MOTOR |
+| 8 | MC_SERVO, FW_MOTOR |
+
+### Target: MATEKF722MINI
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_SERVO, FW_MOTOR |
+| 8 | MC_SERVO, FW_MOTOR |
+
+### Target: MATEKF722SE_8MOTOR
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+
+## Board: MATEKF765
+
+Board is DSHOT enabled.
+
+### Target: MATEKF765
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+| 8 | MC_SERVO, FW_SERVO |
+| 9 | MC_SERVO, FW_SERVO |
+| 10 | MC_SERVO, FW_SERVO |
+| 11 | MC_MOTOR, FW_SERVO |
+| 12 | MC_MOTOR, FW_SERVO |
+
+### Target: MATEKF765SE
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_SERVO, FW_SERVO |
+| 8 | MC_SERVO, FW_SERVO |
+| 9 | MC_SERVO, FW_SERVO |
+| 10 | MC_SERVO, FW_SERVO |
+| 11 | MC_MOTOR, FW_SERVO |
+| 12 | MC_MOTOR, FW_SERVO |
+
+## Board: MATEKH743
+
+Board is DSHOT enabled.
+
+### Target: MATEKH743
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+| 9 | MC_MOTOR, FW_SERVO |
+| 10 | MC_MOTOR, FW_SERVO |
+| 11 | MC_SERVO, FW_SERVO |
+| 12 | MC_SERVO, FW_SERVO |
+
+## Board: NOX
+
+Board is not DSHOT enabled.
+
+### Target: NOX
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+## Board: DYSF4PRO
+
+Board is DSHOT enabled.
+
+### Target: DYSF4PRO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO, LED |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+### Target: DYSF4PROV2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO, LED |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+### Target: OMNIBUSF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO, LED |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+### Target: OMNIBUSF4PRO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+### Target: OMNIBUSF4PRO_LEDSTRIPM5
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+### Target: OMNIBUSF4V3_S5_S6_2SS
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+### Target: OMNIBUSF4V3_S5S6_SS
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+### Target: OMNIBUSF4V3_S6_SS
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+### Target: OMNIBUSF4V3
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+## Board: OMNIBUSF7
+
+Board is DSHOT enabled.
+
+### Target: OMNIBUSF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+### Target: OMNIBUSF7V2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+
+## Board: OMNIBUSF7NXT
+
+Board is DSHOT enabled.
+
+### Target: OMNIBUSF7NXT
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_MOTOR |
+| 6 | MC_MOTOR, FW_MOTOR |
+
+## Board: PIXRACER
+
+Board is not DSHOT enabled.
+
+### Target: PIXRACER
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_MOTOR |
+| 6 | MC_MOTOR, FW_MOTOR |
+
+## Board: REVO
+
+Board is DSHOT enabled.
+
+### Target: REVO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO, ANY |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 7 | PWM, FW_SERVO |
+| 8 | PWM, FW_SERVO |
+| 9 | PWM, FW_SERVO |
+| 10 | PWM, FW_SERVO |
+
+## Board: SKYSTARSF405HD
+
+Board is DSHOT enabled.
+
+### Target: SKYSTARSF405HD
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_MOTOR |
+
+## Board: SPARKY2
+
+Board is not DSHOT enabled.
+
+### Target: SPARKY2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+## Board: SPEEDYBEEF4
+
+Board is DSHOT enabled.
+
+### Target: SPEEDYBEEF4
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+### Target: SPEEDYBEEF4_SFTSRL1
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+### Target: SPEEDYBEEF4_SFTSRL2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_SERVO |
+
+## Board: SPEEDYBEEF7
+
+Board is DSHOT enabled.
+
+### Target: SPEEDYBEEF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | LED, MC_MOTOR, FW_SERVO |
+
+## Board: SPEEDYBEEF7MINI
+
+Board is DSHOT enabled.
+
+### Target: SPEEDYBEEF7MINI
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_SERVO, FW_MOTOR |
+| 8 | MC_SERVO, FW_MOTOR |
+
+## Board: SPEEDYBEEF7V2
+
+Board is DSHOT enabled.
+
+### Target: SPEEDYBEEF7V2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_MOTOR |
+
+## Board: SPRACINGF4EVO
+
+Board is not DSHOT enabled.
+
+### Target: SPRACINGF4EVO
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_SERVO |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+| 8 | MC_MOTOR, MC_SERVO, FW_MOTOR |
+
+## Board: SPRACINGF7DUAL
+
+Board is DSHOT enabled.
+
+### Target: SPRACINGF7DUAL
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+| 5 | MC_MOTOR |
+| 6 | MC_MOTOR |
+| 7 | MC_MOTOR |
+| 8 | MC_MOTOR |
+| 9 | MC_MOTOR |
+| 10 | MC_MOTOR |
+| 11 | FW_SERVO, PWM |
+| 12 | FW_SERVO, PWM |
+
+## Board: TMOTORF7V2
+
+Board is DSHOT enabled.
+
+### Target: TMOTORF7V2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_MOTOR |
+| 4 | MC_MOTOR, FW_MOTOR |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+| 9 | PWM, FW_SERVO |
+
+## Board: YUPIF7
+
+Board is DSHOT enabled.
+
+### Target: YUPIF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_SERVO |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, MC_SERVO, FW_SERVO |
+| 6 | MC_MOTOR, MC_SERVO, FW_SERVO, LED |
+
+## Board: ZEEZF7
+
+Board is DSHOT enabled.
+
+### Target: ZEEZF7
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR |
+| 2 | MC_MOTOR |
+| 3 | MC_MOTOR |
+| 4 | MC_MOTOR |
+
+### Target: ZEEZF7V2
+
+| PWM | Usage |
+| --- | ----- |
+| 1 | MC_MOTOR, FW_MOTOR |
+| 2 | MC_MOTOR, FW_MOTOR |
+| 3 | MC_MOTOR, FW_SERVO |
+| 4 | MC_MOTOR, FW_SERVO |
+| 5 | MC_MOTOR, FW_SERVO |
+| 6 | MC_MOTOR, FW_SERVO |
+| 7 | MC_MOTOR, FW_SERVO |
+| 8 | MC_MOTOR, FW_SERVO |
+
diff --git a/versioned_docs/version-4.1.0/advanced/Building-custom-firmware.md b/versioned_docs/version-4.1.0/advanced/Building-custom-firmware.md
new file mode 100644
index 0000000..2923137
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/Building-custom-firmware.md
@@ -0,0 +1,210 @@
+---
+title: Building Custom Firmware
+---
+
+## Rationale
+
+Prebuilt targets may not include the (sensor) hardware you wish to use. If the hardware is already supported in iNav, it is relatively simple to build your own custom firmware.
+
+For F1 targets (NAZE and friends) we are at the limit of what can be supported with the flash space available. If you want to fly F1 on anything but a very standard and limited set of hardware, it is already necessary to build custom firmware, sometimes for something as simple as a different baro sensor.
+
+This guide attempts to explain the steps necessary to make simple, configuration based changes in order to generate custom firmware. It is **not** a detailed development guide.
+
+## Prerequisite
+
+You need a working development environment. There is [build environment documentation](https://github.com/iNavFlight/inav/tree/master/docs/development) for the major platforms (Linux, MacOS, Windows). This documentation tends to quickly become obsolete as compiler versions evolve (as will this page:). In particular, using contemporary compiler version (e.g. as of June 2017, `arm-none-eabi-gcc` 6.3.\*) is recommended, as a contemporary compiler will most likely match that being used by iNav developers. For example, the [Building in Ubuntu](https://github.com/iNavFlight/inav/blob/master/docs/development/Building%20in%20Ubuntu.md) document is completely out of date; a modern Linux distribution (Ubuntu or Fedora current release) will provide a contemporary (good) compiler without having to use 3rd party repositories. Arch Linux may provide the opposite problem, its (June 2017) offering `arm-none-eabi-gcc` 7.1.\* creates larger hex files than the 6.3 series, and downgrading may be recommended. If in doubt, please ask on the [RC Groups thread](https://www.rcgroups.com/forums/showthread.php?2495732-Cleanflight-iNav-%28navigation-rewrite%29-project) for advice.
+
+Note that the above version numbers are going to be completely obsolete as you read this article.
+
+### Virtual Machine Environment
+
+A step by step guide to creating a virtual machine as an Inav build environment is described in the wiki [[Making a new Virtualbox to make your own INAV]]. While the instructions are slanted towards Windows and Virtualbox, they are applicable to any OS and virtualisation engine.
+
+## Target Specific Files
+
+### Overview
+
+For basic configuration changes, the files are found under `src/main/targets`. At the top level this includes a separate directory for each target:
+```
+src/main/target
+├── AIRBOTF4
+├── AIRHEROF3
+├── ALIENFLIGHTF3
+├── ALIENFLIGHTF4
+├── ANYFC
+├── ANYFCF7
+├── ANYFCM7
+├── BEEROTORF4
+├── BLUEJAYF4
+├── CC3D
+├── CHEBUZZF3
+├── CJMCU
+├── COLIBRI
+├── COLIBRI_RACE
+├── common.h
+├── CRAZEPONYMINI
+├── EUSTM32F103RC
+├── F4BY
+├── FALCORE
+├── FISHDRONEF4
+├── FURYF3
+├── KFC32F3_INAV
+├── KROOZX
+├── link
+├── LUX_RACE
+├── MOTOLAB
+├── NAZE
+├── OLIMEXINO
+├── OMNIBUS
+├── OMNIBUSF4
+├── PIKOBLX_limited
+├── PIXRACER
+├── PORT103R
+├── RCEXPLORERF3
+├── REVO
+├── RMDO
+├── SPARKY
+├── SPARKY2
+├── SPRACINGF3
+├── SPRACINGF3EVO
+├── SPRACINGF3MINI
+├── STM32F3DISCOVERY
+├── stm32f7xx_hal_conf.h
+├── system_stm32f30x.c
+├── system_stm32f30x.h
+├── system_stm32f4xx.c
+├── system_stm32f4xx.h
+├── system_stm32f7xx.c
+├── system_stm32f7xx.h
+└── YUPIF4
+````
+Under each target, there will be at least the files we are interested in:
+* `target.h` : Defines the supported hardware on this target; and
+* `target.mk` : Defines the source files we need to build that target.
+
+e.g. in the NAZE target specific directory:
+
+```
+├── NAZE
+│ ├── AIRHERO32.mk
+│ ├── hardware_revision.c
+│ ├── hardware_revision.h
+│ ├── target.c
+│ ├── target.h
+│ └── target.mk
+
+```
+
+
+## Worked Example
+
+This example will consider enabling the BMP085 / BMP180 barometer on the NAZE (for example to use a GY-652 [BMP180 / HMC5983] I2C baro and compass module on an acro Naze or Flip32).
+
+### Use a separate branch
+
+```
+$ git checkout -b my_super_special_branch
+```
+
+This will isolate your work from the base repo and allow making a pull request if you decide to contribute your changes back to the project.
+
+### target.h
+
+If we examine `src/main/target/NAZE/target.h` we see there are two barometers defined:
+````
+#define BARO
+#define USE_BARO_MS5611 // needed for Flip32 board
+#define USE_BARO_BMP280
+````
+So we can remove one (or both) of these and instead define the use of BMP085 (BMP085 and BMP180 use the same software driver). So even this is not so easy, as you need to know that fact as well. Edit `src/main/target/NAZE/target.h` so the baro definition looks like:
+
+````
+#define BARO
+//#define USE_BARO_MS5611 // needed for Flip32 board
+#define USE_BARO_BMP085
+````
+Here, the MS5611 is removed (commented out with a double slash), and the BMP280 line is changed to use BMP085. One way to verify names can be to look in other, more well equipped targets; the SPRACINGF3 is sometimes a good place to look, so from `src/main/target/SPRACINGF3/target.h` we can see:
+````
+#define BARO
+#define USE_BARO_MS5611
+#define USE_BARO_BMP085
+#define USE_BARO_BMP280
+````
+### target.mk
+
+We're not done yet; we need to edit `target.mk` to tell the compiler which files we need for our bespoke sensor selection. If we look in the `src/main/target/NAZE/target.mk` file we see:
+````
+TARGET_SRC = \
+ drivers/accgyro/accgyro_mpu.c \
+ drivers/accgyro/accgyro_mpu6050.c \
+ drivers/accgyro/accgyro_mpu6500.c \
+ drivers/accgyro/accgyro_spi_mpu6500.c \
+ drivers/barometer/barometer_bmp280.c \
+ drivers/barometer/barometer_ms56xx.c \
+ drivers/compass/compass_hmc5883l.c \
+ drivers/flash_m25p16.c \
+ drivers/light_ws2811strip.c \
+ drivers/light_ws2811strip_stdperiph.c \
+ io/flashfs.c \
+ hardware_revision.c
+````
+So we're going to have to replace the barometer source file path; we can either root around the source tree or more easily, just look in some place that we know must use it, like `src/main/target/SPRACINGF3/target.mk` were we see:
+````
+TARGET_SRC = \
+ drivers/accgyro/accgyro_mpu.c \
+ drivers/accgyro/accgyro_mpu6050.c \
+ drivers/barometer/barometer_bmp085.c \
+ drivers/barometer/barometer_bmp280.c \
+ drivers/barometer/barometer_ms56xx.c \
+ /* and more */
+````
+So update the relevent part of `src/main/target/NAZE/target.mk`:
+````
+TARGET_SRC = \
+ drivers/accgyro/accgyro_mpu.c \
+ drivers/accgyro/accgyro_mpu6050.c \
+ drivers/accgyro/accgyro_mpu6500.c \
+ drivers/accgyro/accgyro_spi_mpu6500.c \
+ drivers/barometer/barometer_bmp085.c \
+ drivers/compass/compass_hmc5883l.c \
+ drivers/flash_m25p16.c \
+ drivers/light_ws2811strip.c \
+ drivers/light_ws2811strip_stdperiph.c \
+ io/flashfs.c \
+ hardware_revision.c
+````
+Note: It was not really necessary to remove the BMP280 or MS5611 lines; as the defines were removed from `target.h` we would have effectively compiled an empty file.
+
+### Building
+
+So now make the target.
+````
+$ make TARGET=NAZE
+...
+Linking NAZE
+arm-none-eabi-size ./obj/main/inav_NAZE.elf
+ text data bss dec hex filename
+ 126840 1244 17012 145096 236c8 ./obj/main/inav_NAZE.elf
+arm-none-eabi-objcopy -O ihex --set-start 0x8000000 obj/main/inav_NAZE.elf obj/inav_1.7.2_NAZE.hex
+````
+It fits in the 128K flash. Compare to a 'standard' build (MS5611/BMP280):
+````
+arm-none-eabi-size ./obj/main/inav_NAZE.elf
+ text data bss dec hex filename
+ 127616 1244 17036 145896 239e8 ./obj/main/inav_NAZE.elf
+arm-none-eabi-objcopy -O ihex --set-start 0x8000000 obj/main/inav_NAZE.elf obj/inav_1.7.2_NAZE.hex
+````
+## Caveats
+
+This solves the original problem (how to build a NAZE target with BMP085/BMP180).
+
+You can now commit the changes to your branch, otherwise if one wants to update the source tree (e.g.)
+````
+git pull
+````
+git will complain that there are uncommitted changes and won't perform the update. There are a number of solutions, some beyond the scope of this simple guide, however the easiest are:
+
+* Commit to your private branch as above; or
+* `$ git reset --hard` before pulling ; or
+* Stash away the original files and restore them after pulling.
+
diff --git a/versioned_docs/version-4.1.0/advanced/Custom-mixes-for-exotic-setups.md b/versioned_docs/version-4.1.0/advanced/Custom-mixes-for-exotic-setups.md
new file mode 100644
index 0000000..96991a0
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/Custom-mixes-for-exotic-setups.md
@@ -0,0 +1,260 @@
+---
+title: Custom Mixes
+# slug: custommixes
+---
+
+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-4.1.0/advanced/Developer-info.md b/versioned_docs/version-4.1.0/advanced/Developer-info.md
new file mode 100644
index 0000000..3f8ef7a
--- /dev/null
+++ b/versioned_docs/version-4.1.0/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.
+
+
+
+## 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:
+
+
+
+### 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**
+
+
+
+### 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.
+
+
+
+## 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.
+
+
+
+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)
+* The y axis points to the right (geometrically) (pitch axis)
+* The z axis points upwards (geometrically) (yaw axis)
+
+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.
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/advanced/Features-safe-to-add-and-remove-to-fit-your-needs..md b/versioned_docs/version-4.1.0/advanced/Features-safe-to-add-and-remove-to-fit-your-needs..md
new file mode 100644
index 0000000..9b5d2ab
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/Features-safe-to-add-and-remove-to-fit-your-needs..md
@@ -0,0 +1,52 @@
+---
+title: Features Safe to Add and Remove
+---
+
+## 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
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/advanced/INAV-MSP-frames-changelog.md b/versioned_docs/version-4.1.0/advanced/INAV-MSP-frames-changelog.md
new file mode 100644
index 0000000..d30fea3
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/INAV-MSP-frames-changelog.md
@@ -0,0 +1,311 @@
+---
+title: INAV MSP Frame 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
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/advanced/INAV-blackbox-variables.md b/versioned_docs/version-4.1.0/advanced/INAV-blackbox-variables.md
new file mode 100644
index 0000000..c49d21f
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/INAV-blackbox-variables.md
@@ -0,0 +1,166 @@
+---
+title: INAV Blackbox Varibles
+---
+
+## 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 velocity 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 | | |
+| 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 | | V |
+| amperage | | | | |
+| 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 | fraction of 1g |
+| accSmooth[1] | acc[y] | acceleration | east | fraction of 1g |
+| accSmooth[2] | acc[z] | acceleration | vertical | fraction of 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 | | quality of GPS fix | | |
+| navFlags | | quality of GPS fix | | |
+| navEPH | | quality of GPS fix | | |
+| navEPV | | quality of GPS fix | | |
+| 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 |
+| navVel[1] | navVel[1] | velocity of copter | east | cm |
+| navVel[2] | navVel[2] | velocity of copter | vertical | cm |
+| navAcc[0] | navAcc[0] | velocity of copter | north | cm |
+| navAcc[1] | navAcc[1] | velocity of copter | east | cm |
+| navAcc[2] | navAcc[2] | velocity of copter | vertical | cm |
+| navTgtVel[0] | navTgtVel[0] | target value: position | north | cm |
+| navTgtVel[1] | navTgtVel[1] | target value: position | east | cm |
+| navTgtVel[2] | navTgtVel[2] | target value: position | vertical | cm |
+| navTgtPos[0] | navTgtPos[0] | target value: velocity | north | cm |
+| navTgtPos[1] | navTgtPos[1] | target value: velocity | east | cm |
+| navTgtPos[2] | navTgtPos[2] | target value: velocity | vertical | cm |
+| navSurf[0] | navSurf[0] | | | |
+| flightModeFlags (flags) | | | | |
+| stateFlags (flags) | | | | |
+| failsafePhase (flags) | | | | |
+| rxSignalReceived | | | | |
+| rxFlightChannelsValid | | | | |
+| hwHealthStatus | | | | |
+| powerSupplyImpedance | | | | |
+| sagCompensatedVBat | | | | |
+| wind[0] | | | | |
+| wind[1] | | | | |
+| wind[2] | | | | |
+| GPS_home[0] | | longitude | | |
+| GPS_home[1] | | lattitude | | |
+| GPS_fixType | | GPS_fixType | | |
+| GPS_numSat | | number od sats | | |
+| GPS_coord[0] | | longitude | | |
+| GPS_coord[1] | | lattitude | | |
+| GPS_altitude | | GPS_altitude | | |
+| GPS_speed | | GPS_speed | | |
+| GPS_ground_course | | GPS_ground_course | | |
+| GPS_hdop | | quality of GPS fix | | |
+| GPS_eph | | quality of GPS fix | | |
+| GPS_epv | | quality of GPS fix | | |
diff --git a/versioned_docs/version-4.1.0/advanced/INAV-for-BetaFlight-users.md b/versioned_docs/version-4.1.0/advanced/INAV-for-BetaFlight-users.md
new file mode 100644
index 0000000..366d157
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/INAV-for-BetaFlight-users.md
@@ -0,0 +1,62 @@
+---
+title: INAV For Betaflight Users
+---
+
+Do you already know how to setup and fly a BetaFlight multirotor, and now is willing to try INAV?
+
+**Good**! You are on the right place.
+
+INAV and BetaFlight are forks from CleanFlight, but nowadays they are all 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 shares 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 to understand it. To flash INAV on your Flight Controller board, the process is the same: Go to Firmware Flasher tab on the INAV Configurator and select the proper TARGET.
+
+Let's then review the differences:
+
+* Not all Flight Controller boards has 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 screen instructions and you’ll be fine.
+* For a fully autonomous multirotor (with automatic navigation capabilities like RTH and WP Missions), Flight Controller board must have an onboard barometer sensor. INAV can't navigate without one (on a multirotor aircraft).
+* Also, you have to cover the barometer sensor with a small piece of non-blocking foam, because the wind affects the sensor readings. This is the most common cause of altitude holding problems.
+* The GPS module must be fitted with a magnetometer sensor. GPS modules without a mag sensor do not allow INAV to navigate (on a multirotor aircraft) and will only be useful for loggin purposes.
+
+* GPS module must 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_
+
+
+* INAV does NOT has the resource remapping feature, which means that **you can't change the motors order**. Be careful to wire the motors signal wires on the correct order.
+* INAV supports DShot ESC protocol, but it doesn’t behave the same way as in BetaFlight. DShot 150 or 300 is more than enough for a reliable flight. Faster protocols will reduce the reliability, so avoid using them.
+* INAV supports loop frequencies up to 8kHz, but flies just fine with 2kHz. There’s no real benefit to use such higher frequencies as it will only make the CPU more busy for others tasks.
+* DShot telemetry is supported, but not Bi-directional single-wire telemetry.
+
+### Most important settings you should take a look before first flight
+
+* `set nav_mc_hover_thr = 1450` # Base throttle value that aircraft will use for altitude hold
+* `set max_angle_inclination_rll = 450` # 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 = 25` # Max bank angle that aircraft will do in automatic 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 GPS module use galileo satellites if it is supported (check local regulations about it)
+* `set nav_extra_arming_safety = OFF` # Let aircraft arm without GPS 3D fix (careful, navigation will not work if you do that!)
+* `set nav_wp_radius = 500` # Radius in centimeters to consider a waypoint reached
+* `set nav_wp_safe_distance = 20000` # If the first waypoint of a loaded mission is further than this value (in centimeters), INAV will not allow to arm.
+* `set nav_auto_speed = 1300` # Aircraft ground speed on automatic modes (in centimeters per second)
+* `set nav_auto_climb_rate = 200` # Aircraft vertical speed on automatic modes (centimeters per second)
+* `set nav_rth_allow_landing = FS_ONLY` # Allow aircraft to land by itself only if it’s in a Failsafe state.
+* `set nav_rth_altitude = 5000` # Altitude that aircraft will try to reach when doing RTH (in centimeters)
+* `set nav_rth_alt_mode = AT_LEAST_LINEAR_DESCENT` # Allow aircraft to come home descending to the RTH altitude. It saves energy by trading altitude for speed.
+
+
+
+_Linear descend demonstration graphic_
+
+
diff --git a/versioned_docs/version-4.1.0/advanced/MSP-Navigation-Messages.md b/versioned_docs/version-4.1.0/advanced/MSP-Navigation-Messages.md
new file mode 100644
index 0000000..dc73149
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/MSP-Navigation-Messages.md
@@ -0,0 +1,430 @@
+---
+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 [7] | ✔ | ✔ | ✔ | ✔ |
+| 2 | POSHOLD_UNLIM | | | | ✔ | ✔ | ✔ | [5] |
+| 3 | POSHOLD_TIME | Wait time (seconds) | (speed (cm/s)[1]) | Altitude Mode [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 [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.
+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.
+
+### 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:
+
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+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](../quickstart/Something-is-disabled----Reasons.md).
+
+* 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.
+
+
+```
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### 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".
+
+
+
+[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_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`.
+
+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`.
+
+
+
+## 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 values are also returned by the 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. WP #255 may also be used to set the vehicle's desired location (i.e. "follow me") when the following modes are asserted:
+
+* NAV_POSHOLD
+* GCS_NAV
+
+| 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).
+
+### 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](../features/Lightweight-Telemetry-(LTM).md)
+
+
+
+
+
+
+
+| gps_mode |
+uchar |
+None
+PosHold
+RTH
+Mission |
+
+
+| nav_state |
+uchar |
+None
+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 |
+
+
+| action |
+uchar |
+(last wp, next wp?) |
+
+
+| wp_number |
+uchar |
+(last wp, next wp?) |
+
+
+| nav_error |
+uchar |
+Navigation 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_bearing |
+int16 |
+(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.
+
+
+
+### 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).
diff --git a/versioned_docs/version-4.1.0/advanced/MSP-V2.md b/versioned_docs/version-4.1.0/advanced/MSP-V2.md
new file mode 100644
index 0000000..8708ad1
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/MSP-V2.md
@@ -0,0 +1,145 @@
+---
+title: MSP V2
+description: 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, usage to be defined (set to zero) |
+| 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) |
+
+## 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.
+
+
+
+## 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 implemntating | 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 | |
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/advanced/Making-a-new-Virtualbox-to-make-your-own-INAV.md b/versioned_docs/version-4.1.0/advanced/Making-a-new-Virtualbox-to-make-your-own-INAV.md
new file mode 100644
index 0000000..46ac1f9
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/Making-a-new-Virtualbox-to-make-your-own-INAV.md
@@ -0,0 +1,22 @@
+---
+title: Make 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](https://github.com/iNavFlight/inav/wiki/Features-safe-to-add-and-remove-to-fit-your-needs.#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`
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/advanced/New-features-over-versions-log.md b/versioned_docs/version-4.1.0/advanced/New-features-over-versions-log.md
new file mode 100644
index 0000000..a9545cf
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/New-features-over-versions-log.md
@@ -0,0 +1,91 @@
+---
+title: New Features Over Versions
+---
+
+
+
+This document is intended to show the most relevant new features of each version of INAV.
+It's also known as **INAV Version History**, or **INAV Changelog**.
+
+Every released version of INAV brings some changes on funcionality that is already working, bug fixes and new funcionalities. This document will focus only on the major changes and will not go deep on smaller ones. To check a detailed list of changes for each version, check the release notes on that version release download page.
+
+## 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)
+
+## 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.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 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 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 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.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.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.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.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.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)
+
+## Enjoy the newer features!
+
+If you have an older version of INAV on your aircraft, upgrade now and enjoy the newer features! We have a guide to help you to do that. [Check it out now](../quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md)!
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/advanced/OSD-Hud-and-ESP32-radars.md b/versioned_docs/version-4.1.0/advanced/OSD-Hud-and-ESP32-radars.md
new file mode 100644
index 0000000..6a39c83
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/OSD-Hud-and-ESP32-radars.md
@@ -0,0 +1,184 @@
+---
+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.
+
+:::info
+**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, defaults 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 = 0
+set osd_hud_radar_range_min = 10
+set osd_hud_radar_range_max = 4000
+set osd_hud_radar_nearest = 0
+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-4.1.0/advanced/PID-Attenuation-and-scaling.md b/versioned_docs/version-4.1.0/advanced/PID-Attenuation-and-scaling.md
new file mode 100644
index 0000000..4f620c8
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/PID-Attenuation-and-scaling.md
@@ -0,0 +1,44 @@
+---
+title: PID Attenuation and Scaling
+---
+
+**TPA** [***Throttle PID Attenuation***] is what allows vehicles, that are optimally tuned for hover or slow flight, dynamically adjust PID gains, so high throttle (fast forward flight or rapid climb) doesn't introduce oscillations.
+
+## Multirotors
+
+TPA applies a PID value reduction in relation to full Throttle. It is used to apply dampening of PID values as full throttle is reached.
+
+**TPA** = % of dampening that will occur at full throttle.
+
+**TPA Breakpoint** = the point in the throttle curve at which TPA will begin to be applied. Below that point PIDs are not attenuated at all.
+
+### How and Why to use this?
+
+If you are getting oscillations starting at say 3/4 throttle, set TPA Breakpoint = 1750 or lower (remember, this is assuming your throttle range is 1000-2000), and then slowly increase TPA until your oscillations are gone. Usually, you will want TPA Breakpoint to start a little sooner then when your oscillations start so you'll want to experiment with the values to reduce/remove the oscillations.
+
+### Example of multirotor TPA curve
+
+
+
+## Airplanes
+
+Airplanes are different from multirotors as PID gains should be attenuated according to airspeed, not throttle. However, until airspeed sensor support is introduced it's safe to assume that speed is directly proportional to throttle.
+
+For airplanes TPA works in a different way - it's not only attenuating PID gains at high throttle but also boosts them at low throttle allowing better control when gliding at low speeds with no throttle at all or slow flying with minimal throttle. TPA is expressed as a curve that boosts PIDs below TPA breakpoint and attenuates them above the breakpoint.
+
+**TPA** = amount of TPA curve to apply to PIDs. 100% TPA allows PIDs to be scaled by factor in range [0.5; 2].
+
+**TPA Breakpoint** = the point in the throttle curve at which PIDs are not attenuated
+
+**FW TPA Time Constant** = TPA smoothing and delay time constant to reflect non-instant speed/throttle response of the plane.
+
+### How to use this?
+
+Tune your PIDs at 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 worse and at higher throttle (up to full throttle) it begins to oscillate. Increase TPA amount until these oscillations are gone or minimal. You will instantly notice better handling at lower throttle values.
+
+The **TPA Time Constant** feature uses an asymmetric filter, that effects both increasing and decreasing throttle/speed. 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
+
+
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/advanced/PID-for-various-aircrafts.md b/versioned_docs/version-4.1.0/advanced/PID-for-various-aircrafts.md
new file mode 100644
index 0000000..c765bbd
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/PID-for-various-aircrafts.md
@@ -0,0 +1,8 @@
+---
+title: PID For Various Aircrafts
+---
+
+## 2.2.1
+### 7"
+#### Tyro129
+
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/advanced/Pixel-OSD-FAQs.md b/versioned_docs/version-4.1.0/advanced/Pixel-OSD-FAQs.md
new file mode 100644
index 0000000..fe47b72
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/Pixel-OSD-FAQs.md
@@ -0,0 +1,7 @@
+---
+title: Pixel OSD FAQ
+---
+
+## 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.
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/advanced/Request-form-new-PRESET.md b/versioned_docs/version-4.1.0/advanced/Request-form-new-PRESET.md
new file mode 100644
index 0000000..6ac1d18
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/Request-form-new-PRESET.md
@@ -0,0 +1,7 @@
+---
+title: Request Forms For 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
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/advanced/Supported-boards.md b/versioned_docs/version-4.1.0/advanced/Supported-boards.md
new file mode 100644
index 0000000..c71dd9b
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/Supported-boards.md
@@ -0,0 +1,33 @@
+---
+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](https://github.com/iNavFlight/inav/wiki/Welcome-to-INAV,-useful-links-and-products)
+### 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._
+
+### 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
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/advanced/Target-and-Sensor-support.md b/versioned_docs/version-4.1.0/advanced/Target-and-Sensor-support.md
new file mode 100644
index 0000000..861e557
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/Target-and-Sensor-support.md
@@ -0,0 +1,98 @@
+---
+title: Target and Sensor Support
+---
+
+## Sensor Support
+
+The following table was machine generated by [mwptools' find_sensors.rb](https://raw.githubusercontent.com/stronnag/mwptools/master/src/samples/find_sensors.rb) script on 2021-06-05 against inav 3.0.0, 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 |
+| ------ | ---- | ---- | ---- | ----------- |
+| AIKONF4 | MPU6000 MPU6500 | BMP085 BMP280 MS5611 | AK8963 AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| AIRBOTF4 | MPU6000 MPU6500 | BMP085 BMP280 MS5611 | AK8963 AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C |
+| AIRBOTF7 \* (OMNIBUSF7NANOV7) | | BMP280 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| AIRHEROF3 \* (AIRHEROF3_QUAD) | MPU6500 | BMP280 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| ALIENFLIGHTF3 | MPU6050 MPU6500 MPU9250 | | AK8963 AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MPU9250 QMC5883 | |
+| ALIENFLIGHTF4 | MPU6500 MPU9250 | BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MPU9250 QMC5883 | |
+| ALIENFLIGHTNGF7 | MPU6500 MPU9250 | BMP280 MS5611 | AK8963 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MPU9250 QMC5883 | |
+| ANYFC | MPU6000 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| ANYFCF7 \* (ANYFCF7_EXTERNAL_BARO) | MPU6000 | BMP085 BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C |
+| ANYFCM7 | MPU6000 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| ASGARD32F4 | MPU6000 | BMP280 | | |
+| ASGARD32F7 | MPU6000 | BMP280 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| BEEROTORF4 | MPU6500 | BMP280 | AK8963 AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| BETAFLIGHTF3 | MPU6000 | | | |
+| BETAFLIGHTF4 | MPU6000 | BMP085 BMP280 MS5611 | AK8963 AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C |
+| BLUEJAYF4 | MPU6500 | BMP085 BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| CHEBUZZF3 | L3GD20 LSM303DLHC MPU6050 | MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| CLRACINGF4AIR \* (CLRACINGF4AIRV2 CLRACINGF4AIRV3) | MPU9250 | BMP280 SPI_BMP280 | MPU9250 | |
+| COLIBRI \* (QUANTON) | MPU6000 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04 |
+| COLIBRI_RACE | MPU6000 MPU6500 MPU9250 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MAG9250 QMC5883 | |
+| DALRCF405 | MPU6000 MPU6500 | BMP085 BMP280 MS5611 | AK8963 AK8975 HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C |
+| DALRCF722DUAL | MPU6000 | BMP085 BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| F4BY | ICM20689 MPU6000 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| FALCORE | MPU6500 | MS5607 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04 |
+| FF_F35_LIGHTNING \* (WINGFC) | MPU9250 | BMP280 | MPU9250 | |
+| FF_FORTINIF4 | MPU6500 | | | |
+| FF_PIKOF4 \* (FF_PIKOF4OSD) | MPU6000 MPU6500 | | | |
+| FIREWORKSV2 \* (OMNIBUSF4V6) | MPU6000 MPU6500 | BMP280 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C |
+| FISHDRONEF4 | MPU6500 MPU9250 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MPU9250 QMC5883 | |
+| FLYWOOF411 \* (FLYWOOF411_V2) | ICM20689 MPU6000 | BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| FLYWOOF745 \* (FLYWOOF745NANO) | MPU6000 | BMP280 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| FLYWOOF7DUAL | MPU6000 MPU6500 | BMP280 MS5611 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| FOXEERF405 | MPU6000 MPU6500 | BMP085 BMP280 MS5611 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| FOXEERF722DUAL \* (FOXEERF722V2) | MPU6000 MPU6500 | BMP280 MS5611 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| FRSKYF3 | MPU6050 | | | |
+| FRSKYF4 | MPU6000 | BMP280 | | |
+| FRSKYPILOT \* (FRSKYPILOT_LED) | MPU6000 MPU6500 | SPL06 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| FRSKY_ROVERF7 | MPU6000 | BMP085 BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| FURYF3 \* (FURYF3_SPIFLASH) | MPU6000 MPU6500 MPU9250 | BMP280 MS5611 | HMC5883 LIS3MDL MAG3110 MPU9250 QMC5883 | HCSR04 |
+| FURYF4OSD \* (MAMBAF405) | MPU6000 MPU6500 | BMP085 BMP280 DPS310 MS5611 | AK8963 AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C MSP |
+| HGLRCF722 | MPU6000 | BMP280 DPS310 MS5611 SPI_BMP280 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| IFLIGHTF4_SUCCEXD | MPU6000 | BMP085 BMP280 MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C MSP |
+| IFLIGHTF4_TWING | MPU6500 | BMP280 DPS310 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| IFLIGHTF7_TWING | MPU6500 | BMP280 DPS310 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| KAKUTEF4 \* (KAKUTEF4V2) | MPU6500 | | | |
+| KAKUTEF7 \* (KAKUTEF7HDV KAKUTEF7MINI) | ICM20689 MPU6000 | BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| KAKUTEF7MINIV3 | MPU6000 | BMP280 MS5611 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| KISSFC | MPU6050 | | | |
+| KROOZX | MPU6000 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| LUX_RACE | MPU6500 MPU9250 | | | |
+| MAMBAF405US \* (MAMBAF405US_I2C) | MPU6000 | BMP280 DPS310 MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| MAMBAF722 \* (MAMBAF722_I2C) | MPU6000 | BMP280 MS5611 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| MATEKF405 \* (MATEKF405_SERVOS6 MATEKF405OSD) | MPU6000 MPU6500 | BMP085 BMP280 DPS310 MS5611 | AK8963 AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C MSP |
+| MATEKF405CAN | MPU6500 | BMP280 DPS310 MS5611 | AK8963 AK8975 HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 RM3100 | HCSR04_I2C |
+| MATEKF405SE | MPU6000 | BMP085 BMP280 DPS310 MS5611 | AK8963 AK8975 HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C US42 |
+| MATEKF411 \* (MATEKF411_FD_SFTSRL MATEKF411_RSSI MATEKF411_SFTSRL2) | MPU6000 MPU6500 | BMP085 BMP280 DPS310 MS5611 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| MATEKF411SE \* (MATEKF411SE_PINIO MATEKF411SE_FD_SFTSRL1 MATEKF411SE_SS2_CH6) | MPU6000 | BMP085 BMP280 DPS310 MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C MSP |
+| MATEKF722 \* (MATEKF722_HEXSERVO) | MPU6500 | BMP085 BMP280 DPS310 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| MATEKF722PX \* (MATEKF722WPX) | MPU6000 | BMP280 DPS310 MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| MATEKF722SE \* (MATEKF722MINI) | MPU6000 MPU6500 | BMP280 DPS310 MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| MATEKF765 | MPU6000 MPU6500 | BMP280 DPS310 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| MATEKH743 | MPU6000 MPU6500 | BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| MOTOLAB | MPU6000 MPU6050 | | | |
+| NOX | MPU6000 | BMP280 SPI_BMP280 | | |
+| OMNIBUS | MPU6000 | BMP280 | HMC5883 IST8308 IST8310 QMC5883 | |
+| OMNIBUSF4 \* (DYSF4PROV2 OMNIBUSF4 OMNIBUSF4PRO OMNIBUSF4PRO_LEDSTRIPM5 OMNIBUSF4V3_S5_S6_2SS OMNIBUSF4V3_S5S6_SS OMNIBUSF4V3_S6_SS OMNIBUSF4V3) | MPU6000 MPU6500 | BMP085 BMP280 MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| OMNIBUSF7 \* (OMNIBUSF7V2) | | BMP280 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04_I2C |
+| OMNIBUSF7NXT | MPU6000 MPU6500 | LPS25H | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| PIKOBLX | MPU6000 | | | |
+| PIXRACER | MPU6500 MPU9250 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MPU9250 QMC5883 | |
+| RADIX | BMI160 | BMP280 | | |
+| RCEXPLORERF3 | MPU6000 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04 |
+| REVO | MPU6000 | MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| RUSH_BLADE_F7 | MPU6000 | BMP280 DPS310 MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| SPARKY | MPU6050 | BMP280 MS5611 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| SPARKY2 | MPU9250 | BMP085 BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MPU9250 QMC5883 | |
+| SPEEDYBEEF4 \* (SPEEDYBEEF4_SFTSRL1 SPEEDYBEEF4_SFTSRL2) | MPU6000 | BMP085 BMP280 MS5611 | HMC5883 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| SPEEDYBEEF7 | ICM20689 | BMP280 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| SPRACINGF3 | MPU6050 | BMP085 BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04 HCSR04_I2C |
+| SPRACINGF3EVO \* (SPRACINGF3EVO_1SS) | MPU6500 MPU9250 | BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MPU9250 QMC5883 | HCSR04 SRF10 |
+| SPRACINGF3MINI | MPU6500 MPU9250 | BMP280 | AK8963 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | HCSR04 |
+| SPRACINGF4EVO | MPU6500 MPU9250 | BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 MPU9250 QMC5883 | |
+| SPRACINGF7DUAL | MPU6500 | BMP280 MS5611 | HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
+| YUPIF4 \* (YUPIF4MINI YUPIF4R2) | MPU6500 | BMP280 MS5611 | HMC5883 QMC5883 | |
+| YUPIF7 | ICM20689 | BMP280 MS5611 | HMC5883 QMC5883 | |
+| ZEEZF7 \* (ZEEZF7V2) | MPU6000 | BMP280 DPS310 | AK8975 HMC5883 IST8308 IST8310 LIS3MDL MAG3110 QMC5883 | |
diff --git a/versioned_docs/version-4.1.0/advanced/Tune-INAV-PIFF-controller-for-fixedwing.md b/versioned_docs/version-4.1.0/advanced/Tune-INAV-PIFF-controller-for-fixedwing.md
new file mode 100644
index 0000000..070770b
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/Tune-INAV-PIFF-controller-for-fixedwing.md
@@ -0,0 +1,46 @@
+---
+title: Tune INAV PIDFF Controller for Fixed Wing
+---
+
+### 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](https://github.com/iNavFlight/inav/wiki/PID-Attenuation-and-scaling)
+
+* 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.
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/advanced/UAV-Interconnect-Bus.md b/versioned_docs/version-4.1.0/advanced/UAV-Interconnect-Bus.md
new file mode 100644
index 0000000..5d78b70
--- /dev/null
+++ b/versioned_docs/version-4.1.0/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.
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/advanced/Ublox-3.01-firmware-and-Galileo.md b/versioned_docs/version-4.1.0/advanced/Ublox-3.01-firmware-and-Galileo.md
new file mode 100644
index 0000000..f037035
--- /dev/null
+++ b/versioned_docs/version-4.1.0/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:
+
+
+
+### 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:
+
+
+
+
+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-4.1.0/advanced/_category_.json b/versioned_docs/version-4.1.0/advanced/_category_.json
new file mode 100644
index 0000000..ee4f782
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Advanced",
+ "position": 4,
+ "link": {
+ "type": "generated-index",
+ "description": "Advanced configuration"
+ }
+ }
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/advanced/iNav-CLI-variables.md b/versioned_docs/version-4.1.0/advanced/iNav-CLI-variables.md
new file mode 100644
index 0000000..2077c97
--- /dev/null
+++ b/versioned_docs/version-4.1.0/advanced/iNav-CLI-variables.md
@@ -0,0 +1,21 @@
+---
+title: iNAV CLI variables related to navigation features
+---
+
+:::note
+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).
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/features/Bluetooth-setup-to-configure-your-flight-controller.md b/versioned_docs/version-4.1.0/features/Bluetooth-setup-to-configure-your-flight-controller.md
new file mode 100644
index 0000000..cc57d68
--- /dev/null
+++ b/versioned_docs/version-4.1.0/features/Bluetooth-setup-to-configure-your-flight-controller.md
@@ -0,0 +1,23 @@
+---
+title: Bluetooth Connection to Configurator
+---
+
+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.
+
+
+
+## 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.
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/features/Failsafe.md b/versioned_docs/version-4.1.0/features/Failsafe.md
new file mode 100644
index 0000000..c8c87e7
--- /dev/null
+++ b/versioned_docs/version-4.1.0/features/Failsafe.md
@@ -0,0 +1,86 @@
+---
+title: Failsafe
+---
+
+## 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-Mode-Return-to-Home.md)
+
+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-4.1.0/features/GPS-Failsafe-and-Glitch-Protection.md b/versioned_docs/version-4.1.0/features/GPS-Failsafe-and-Glitch-Protection.md
new file mode 100644
index 0000000..8f9a676
--- /dev/null
+++ b/versioned_docs/version-4.1.0/features/GPS-Failsafe-and-Glitch-Protection.md
@@ -0,0 +1,48 @@
+---
+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
+
+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
+In case of critical failure, Emergency Landing is triggered. In Emergency Landing state copter is forced into ANGLE mode, ROLL and PITCH input is centered to maintain level, pilot stick input is ignored and copter enters a controlled descent.
+
+While Emergency Landing is active pilot is unable to switch into ALTHOLD, POSHOLD, RTH or WP mode. If pilot wants to regain control of the copter he should switch to ANGLE, HORIZON or ACRO more.
+
+## 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.
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/features/Lightweight-Telemetry-(LTM).md b/versioned_docs/version-4.1.0/features/Lightweight-Telemetry-(LTM).md
new file mode 100644
index 0000000..e1866f5
--- /dev/null
+++ b/versioned_docs/version-4.1.0/features/Lightweight-Telemetry-(LTM).md
@@ -0,0 +1,257 @@
+---
+title: Lightweight Telemetry (LTM)
+---
+
+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.
+
+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 is 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) 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 | 5Hhz at > 2400 baud |
+| A | Attitude Frame | 10 Hz at > 2400 baud |
+| S | Status Frame | 5Hhz 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 is used by NRF24L01 / deviationtx iNav protocol, which defines an additional frame for in-TX tuning. This frame is not transmitted for telemetry.
+
+| Function Byte | Usage |
+| ------------- | ----- |
+| T | Tuning frame (iNav 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 |
+
+### Attitide 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 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
+
+### Tuning Frame (T)
+
+The payload is 12 bytes. This frame is not transmitted by iNav telemetry.
+
+| Data | Format |
+| ---- | ---- |
+| P-roll | uint8 |
+| I-roll | uint8 |
+| D-roll | uint8 |
+| P-pitch | uint8 |
+| P-pitch | uint8 |
+| I-pitch | uint8 |
+| D-yaw | uint8 |
+| I-yaw | uint8 |
+| rates-roll | uint8 |
+| rates-pitch | uint8 |
+| rates-yaw | uint8 |
+
+### Checksum Calculation
+
+To calculate the checksum of the payload bytes, use the following example (Python):
+
+```
+def checksum(payload):
+ value = 0
+ for d in payload:
+ value ^= d
+ return value
+```
+
diff --git a/versioned_docs/version-4.1.0/features/Modes.md b/versioned_docs/version-4.1.0/features/Modes.md
new file mode 100644
index 0000000..6a99050
--- /dev/null
+++ b/versioned_docs/version-4.1.0/features/Modes.md
@@ -0,0 +1,333 @@
+---
+title: Modes
+description: Explaination of all the modes
+---
+
+:::info
+**REFER TO THIS PAGE FOR NAVIGATION MODES:** [Navigation-modes](./Navigation-modes.md)
+:::
+
+## Non-navigation modes index:
+
+- [AIR MODE](#air-mode)
+- [ANGLE](#angle)
+- ARM
+- [AUTOLEVEL](#autolevel-fw)
+- [AUTOTUNE](#autotune-fw)
+- [BEEPER](#beeper)
+- [BLACKBOX](#blackbox)
+- CAMERA CONTROL
+- [CAMSTAB](#camstab)
+- [FAILSAFE](#failsafe)
+- [FLAPERON](#flaperon-fw)
+- FPV ANGLE MIX
+- [HEADADJ](#headadj-mc)
+- [HEADFREE](#headfree-mc)
+- [HEADING HOLD](#heading-hold)
+- HOME RESET
+- [HORIZON](#horizon)
+- KILLSWITCH
+- [LEDLOW](#ledlow)
+- LIGHTS
+- [LOITER CHANGE](#loiter-change-fw)
+- [MANUAL](#manual-fw) (called PASSTHROUGH mode up to version 1.8.1)
+- [MC BRAKING](#mc-braking-mc)
+- MSP RC OVERRIDE
+- [NAV LAUNCH](#nav-launch-fw)
+- [OSD ALT](#osd-alt)
+- [OSD SW](#osd-sw)
+- PREARM
+- [SERVO AUTOTRIM](#servo-autotrim-fw)
+- [SOARING](#soaring-fw)
+- [SURFACE](#surface)
+- TELEMETRY
+- [TURN ASSIST](#turn-assist)
+- [TURTLE](#turtle-mc)
+- USER1 & USER2
+
+## Default flight mode ( No mode selected )
+
+The 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.
+
+
+## Mode Details
+
+The following indicate if a mode is specific to a particular craft type:
+
+FW = Fixed wing.\
+MC = Multicopter.
+
+### 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 Iterm 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`
+
+### ALTHOLD
+
+The altitude of the aircraft a the moment you activate this mode is fixed.
+
+### AUTOLEVEL (FW)
+
+AUTOLEVEL 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 ANGLE mode.
+
+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).
+
+### AUTOTUNE (FW)
+
+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).
+
+### 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
+
+### CAMSTAB
+
+Enables the servo gimbal
+
+### FAILSAFE
+
+Lets you activate flight controller failsafe with an aux channel.
+Read [Failsafe page](https://github.com/iNavFlight/inav/wiki/Failsafe) 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).
+
+### 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.
+
+### 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.
+
+### 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)
+
+//TODO//
+
+### 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. 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). Verify that motor don't respond to throttle stick motion. Don't touch the pitch/roll stick!
+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 inadvertedly 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.
+
+**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.
+
+### SERVO AUTOTRIM (FW)
+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
+
+### 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 a multicopter that has "landed" upside down.
+
+//Description TODO//
+
+## 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 above)
+* 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.
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/features/Navigation-Mode-Return-to-Home.md b/versioned_docs/version-4.1.0/features/Navigation-Mode-Return-to-Home.md
new file mode 100644
index 0000000..4842b2a
--- /dev/null
+++ b/versioned_docs/version-4.1.0/features/Navigation-Mode-Return-to-Home.md
@@ -0,0 +1,131 @@
+---
+title: Navigation Mode Return to Home
+---
+
+## Introduction
+
+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.
+
+
+
+### 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_.
+
+
+
+### 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**.
+
+
+
+### 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.
+
+
+
+### 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**.
+
+
+
+### Predefined altitude linear descent (NAV_RTH_AT_LEAST_ALT_LINEAR_DESCENT)
+- _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.
+
+
+
+## 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://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://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://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.
+
+[](https://i.imgur.com/S9ARPtf.png)
+
+[](https://i.imgur.com/7GMqN9Q.png)
+
+## Other Relevant Settings
+### 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.
diff --git a/versioned_docs/version-4.1.0/features/Navigation-modes.md b/versioned_docs/version-4.1.0/features/Navigation-modes.md
new file mode 100644
index 0000000..f27dddf
--- /dev/null
+++ b/versioned_docs/version-4.1.0/features/Navigation-modes.md
@@ -0,0 +1,222 @@
+---
+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 - Fixed Wing Heading Hold](#nav-course-hold---fixed-wing-heading-hold)
+- [NAV CRUISE - Fixed Wing Heading + Altitude Hold](#nav-cruise---fixed-wing-heading--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 “OFF” in CLI.)
+
+- 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.
+
+| | POSHOLD | WAYPOINT | RTH | ALTHOLD |
+| ---- | ---- | ---- | ---- | ---- |
+| ANGLE | X | X | X | |
+| ALTHOLD | X | X | X | |
+| TURN ASSIST | 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
+When activated, the aircraft maintains its actual altitude unless changed by manual throttle input.
+Throttle input indicates climb or sink up to a predetermined maximum rate (see CLI variables). Using ALTHOLD with a multicopter, you need a barometer.
+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 mix up ALTHOLD and ACRO/HORIZON: ALTHOLD doesn't account for extreme acro maneuvers.
+
+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):
+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:
+"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.
+- “set nav_use_midthr_for_althold =OFF”: use current stick position (i.e. when activating ALTHOLD) as neutral. [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 or CRUISE 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”.
+Set board alignment 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
+
+For multirotor it will hold 3D position, throttle is automatic (AH).
+You can use your roll and pitch stick to move around. The position hold will be resumed when you center the roll/pitch stick again. You can also enable HEADING HOLD at the same time to lock the heading.
+
+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 - Fixed Wing Heading Hold
+
+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 (CRUISE). Altitude can be adjusted, as usual, via the pitch stick. ANGLE mode is forced to be active so the plane will auto level.
+
+## NAV CRUISE - Fixed Wing Heading + 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-altitudes) 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](../advanced/iNav-CLI-variables.md) 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]].
+
+### 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.
+
+Selecting mission numbers 1 to 9 will load missions saved in EEPROM. It is also 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. Note: when 1 or less missions are loaded in the FC EEPROM mission numbers can only be selected using the CMS MISSIONS menu.
+
+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 the following modes must be activated: `NAV POSHOLD` `NAV ALTHOLD` `MAG` TOGETHER with `GCS_NAV`.
+
+This can be combined in whichever way you want to permit, e.g manual yawing or altitude control.
+
+Keep in mind that if `NAV POSHOLD` is not combined with this mode you must combine `ANGLE` as the other modes are best combined with `ANGLE` mode.
+
+## 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.
+
+## Mode switch diagram
+
+A diagram to indicate flight modes relation to navigation modes and illustrate sensor requirements:
+
+
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/features/OrangeRX-LRS-RX-and-OMNIBUS-F4.md b/versioned_docs/version-4.1.0/features/OrangeRX-LRS-RX-and-OMNIBUS-F4.md
new file mode 100644
index 0000000..266cbe0
--- /dev/null
+++ b/versioned_docs/version-4.1.0/features/OrangeRX-LRS-RX-and-OMNIBUS-F4.md
@@ -0,0 +1,59 @@
+---
+title: OrangeRX LRS 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-4.1.0/features/Sensor-auto-detect-and-hardware-failure-detection.md b/versioned_docs/version-4.1.0/features/Sensor-auto-detect-and-hardware-failure-detection.md
new file mode 100644
index 0000000..ac58020
--- /dev/null
+++ b/versioned_docs/version-4.1.0/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.
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/features/_category_.json b/versioned_docs/version-4.1.0/features/_category_.json
new file mode 100644
index 0000000..4e98c40
--- /dev/null
+++ b/versioned_docs/version-4.1.0/features/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Features",
+ "position": 3,
+ "link": {
+ "type": "generated-index",
+ "description": "Find out how INAV's features work."
+ }
+ }
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/features/iNav-Telemetry.md b/versioned_docs/version-4.1.0/features/iNav-Telemetry.md
new file mode 100644
index 0000000..ad6a712
--- /dev/null
+++ b/versioned_docs/version-4.1.0/features/iNav-Telemetry.md
@@ -0,0 +1,48 @@
+---
+title: INAV Telemetry
+---
+
+## Overview
+
+This page discusses the telemetry options available in iNav. Some of the information is expanded upon in the [Mission Panning](./iNavFlight-Missions.md) page.
+
+## Definitions
+
+Factually and classically, telemetry is an automated communications process by which measurements and other data are collected at remote or inaccessible points and transmitted to receiving equipment for monitoring. The word is derived from Greek roots: tele = remote, and metron = measure.
+
+In iNav terms, it has a rather more specific meaning, describing a means by which measurement data is pushed automatically from the vehicle to another device, typically a CGS (Computer Ground Station) or OSD (On-screen Display).
+
+It is also the case in iNav that getting data into a CGS or OSD can be achieved _without_ defining a telemetry protocol (using MSP, below).
+
+This page attempts to disambiguate these options.
+
+## INav Messaging Protocols
+
+INav supports a number of protocols for message exchange (and telemetry).
+
+For iNav, the following rules apply:
+* If a telemetry protocol is defined for a UART, without MSP, then the 'push' telemetry protocol will be sent unconditionally.
+* If a UART defines both MSP and a telemetry protocol, then MSP is active when unarmed, and the push telemetry protocol is transmitted from the FC when armed.
+* If _just_ MSP is enabled for a USART, it is always available (armed and unarmed).
+
+The latter mode is preferred for use with CGS like mwp or EZ-GUI; the CGS can take advantage of the metadata available in MSP prior to arming (e.g. vehicle type, FC capabilities) and then use the efficient push telemetry when armed.
+
+* Multiwii Serial Protocol (MSP). This is a polled protocol, and thus in iNav terms, not considered 'telemetry', even when used for remote measurement. The application (OSD, CGS) polls the flight controller "send me status data" and the FC responds, "here's the status data"; "send me the GPS data" -> "here's the GPS data". This is supported by most OSDs and CGS. It has advantages and disadvantages:
+ - The remote (OSD, CGS) can determine what data it requests (+ve)
+ - The configurator uses MSP to communicate with and configure the FC (+ve)
+ - The remote (OSD, CGS) must maintain a timeout and retry, as data can be lost in transmission (-ve)
+ - For packet radio links (3DR, HC-12), this is slow (much slower than the data rate would indicate), due the overheads on creating and tearing down the packets.
+
+ **It is not necessary to define an "telemetry protocol" to use MSP alone.**
+
+* Lightweight Telemetry (LTM). LTM, as its name implies, is a light-weight protocol that has been enhanced for iNav specific attributes by the iNav developers. Its attraction is its ability to send useful flight data at high rates over slow data links, for example 10Hz update of attitude is possible at 4800 baud, and 5Hz at 2400 baud. LTM is supported 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), [LTM OSD](https://github.com/digitalentity/ltm-osd-simple), [Scarab OSD](https://github.com/ShikOfTheRa/scarab-osd) and possibly others. For more detail, see the [wiki LTM entry](https://github.com/iNavFlight/inav/wiki/Lightweight-Telemetry-(LTM))
+
+* Mavlink. Mavlink is the telemetry protocol (and configuration protocol) of APM and other FCs. It has limited support in iNav and requires more bandwidth than the svelte LTM. It does however allow the use of other CGS and OSD. Mavlink one way telemetry is supported by [Droid Planner 2 (Android)](https://github.com/DroidPlanner/Tower/releases/download/Droidplanner_v2.8.6_RC2/Droidplanner_v2.8.6_RC2.apk)
+
+* TX protocols. A number of TX devices (FrSky, Hott, IBUS, Smartport) can also receive telemetry.
+
+ ## Example
+
+
+
+In the above example, MSP is available on USART1 when unarmed, and LTM when armed (in this case used with a 3DR or HC-12 telemetry radio and the mwp groundstation). Note in particular, the baud rate is common for MSP and LTM.
diff --git a/versioned_docs/version-4.1.0/features/iNavFlight-Missions.md b/versioned_docs/version-4.1.0/features/iNavFlight-Missions.md
new file mode 100644
index 0000000..853afd7
--- /dev/null
+++ b/versioned_docs/version-4.1.0/features/iNavFlight-Missions.md
@@ -0,0 +1,387 @@
+---
+title: Missions
+---
+
+## Overview
+
+iNav supports autonomous flight using waypoints. In order to use this capability, it is also necessary to utilise and configure some supporting technologies, including:
+
+* A GCS (Ground Control Station). 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 and 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](./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](https://docs.google.com/document/d/16ZfS_qwc-rJeA7N5Tx0DA6wtgxl6HdGgaz-jE3lHBWs). 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.
+
+## Ground Control Stations
+
+Currently there are a number of GCS applications widely used for iNav mission management, including [Mission Planner for INAV](https://play.google.com/store/apps/details?id=com.eziosoft.ezgui.inav&hl=en) (Android), [MobileFlight](https://flyinghead.github.io/mobile-flight/) (IOS) and [mwp](https://github.com/stronnag/mwptools) (Linux). 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.
+
+[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) (at least, maybe MobileFlight as well) support mission planning (they share a common mission definition file format, so missions can be used in either tool), mission upload / download, mission monitoring and mission logging.
+
+Note: Earlier versions of this article recommended ezgui for use on Android. ezgui is no longer maintained and [Mission Planner for INAV](https://play.google.com/store/apps/details?id=com.eziosoft.ezgui.inav&hl=en) is the recommended Android application.
+
+### [Mission Planner for INAV](https://play.google.com/store/apps/details?id=com.eziosoft.ezgui.inav&hl=en) (Android)
+[Mission Planner for INAV](https://play.google.com/store/apps/details?id=com.eziosoft.ezgui.inav&hl=en) can be downloaded from Google Play Store. There is a free version which limits number of waypoints to 2 and (very reasonably priced) paid-for version with additional functionality. The application is not open source. For questions and help the RCG "Mission Planner for INAV" thread can be used: [RC Groups support forum](https://www.rcgroups.com/forums/showthread.php?3030784-Mission-Planner-for-INAV-%28Android%29).
+
+### Droid Planner 2 (Android)
+
+Droid Planner 2 can also be downloaded from the [GitHub](https://github.com/DroidPlanner/Tower/releases/download/Droidplanner_v2.8.6_RC2/Droidplanner_v2.8.6_RC2.apk). It is free and released under GNU Public License v3.
+
+Droid Planner only supports iNav's one-way MAVLink protocol. The following telemetry data is displayed:
+
+Vehicle position on map, active flight mode, heading, altitude, speed.
+
+A broken connection recovers once restored after any amount of time.
+The flight track remains on screen even when data link is broken -> lost model recovery.
+Log files can be opened in PC software Mission Planner.
+
+### [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).
+
+### Mobile Flight (IOS / iphone).
+
+Mobile Flight: Configuration and ground control app for iNav (and Betaflight) on iPhone http://www.rcgroups.com/forums/showthread.php?t=2601895&highlight=ios.
+
+### 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)
+
+### 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](https://github.com/iNavFlight/inav/wiki/iNavFlight-Missions#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](https://github.com/iNavFlight/inav/wiki/iNavFlight-Missions#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**.
+
+On F1 boards (Naze, Flip32), you can define 30 waypoints, for F3 and better FCs, 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-4.1.0/legacyinfo/Legacy-Mixers.md b/versioned_docs/version-4.1.0/legacyinfo/Legacy-Mixers.md
new file mode 100644
index 0000000..3054f32
--- /dev/null
+++ b/versioned_docs/version-4.1.0/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 [custom mixes for exotic setups](../advanced/Custom-mixes-for-exotic-setups.md)
+
+# 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
+```
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-Colibri-RACE.md b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-Colibri-RACE.md
new file mode 100644
index 0000000..e955901
--- /dev/null
+++ b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-Colibri-RACE.md
@@ -0,0 +1,129 @@
+---
+title: Legacy Target 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-4.1.0/legacyinfo/Legacy-target-Motolab.md b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-Motolab.md
new file mode 100644
index 0000000..9e487cd
--- /dev/null
+++ b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-Motolab.md
@@ -0,0 +1,104 @@
+---
+title: 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-4.1.0/legacyinfo/Legacy-target-Omnibus-F3.md b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-Omnibus-F3.md
new file mode 100644
index 0000000..18593d3
--- /dev/null
+++ b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-Omnibus-F3.md
@@ -0,0 +1,92 @@
+---
+title: Legacy Target OMNIBUS F3
+---
+
+
+:::note
+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-4.1.0/legacyinfo/Legacy-target-Paris-Air-Hero-32-F3.md b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-Paris-Air-Hero-32-F3.md
new file mode 100644
index 0000000..8284d32
--- /dev/null
+++ b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-Paris-Air-Hero-32-F3.md
@@ -0,0 +1,48 @@
+---
+title: Legacy 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-4.1.0/legacyinfo/Legacy-target-Paris-Air-Hero-32.md b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-Paris-Air-Hero-32.md
new file mode 100644
index 0000000..ba9cfdd
--- /dev/null
+++ b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-Paris-Air-Hero-32.md
@@ -0,0 +1,48 @@
+---
+title: Legacy 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-4.1.0/legacyinfo/Legacy-target-SPRacingF3.md b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-SPRacingF3.md
new file mode 100644
index 0000000..941500b
--- /dev/null
+++ b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-SPRacingF3.md
@@ -0,0 +1,99 @@
+---
+title: Legacy 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-4.1.0/legacyinfo/Legacy-target-SPRacingF3EVO.md b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-SPRacingF3EVO.md
new file mode 100644
index 0000000..8387ce2
--- /dev/null
+++ b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-SPRacingF3EVO.md
@@ -0,0 +1,162 @@
+---
+title: Legacy 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-4.1.0/legacyinfo/Legacy-target-SPRacingF3EVO_1SS.md b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-SPRacingF3EVO_1SS.md
new file mode 100644
index 0000000..ffe36dc
--- /dev/null
+++ b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-SPRacingF3EVO_1SS.md
@@ -0,0 +1,161 @@
+---
+title: Legacy 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-4.1.0/legacyinfo/Legacy-target-Sparky.md b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-Sparky.md
new file mode 100644
index 0000000..c747e0a
--- /dev/null
+++ b/versioned_docs/version-4.1.0/legacyinfo/Legacy-target-Sparky.md
@@ -0,0 +1,209 @@
+---
+title: Legacy 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-4.1.0/legacyinfo/Legacy-targetChebuzzF3.md b/versioned_docs/version-4.1.0/legacyinfo/Legacy-targetChebuzzF3.md
new file mode 100644
index 0000000..d776d30
--- /dev/null
+++ b/versioned_docs/version-4.1.0/legacyinfo/Legacy-targetChebuzzF3.md
@@ -0,0 +1,91 @@
+---
+title: Legacy Target Chebuzz F3
+---
+
+## 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-4.1.0/legacyinfo/_category_.json b/versioned_docs/version-4.1.0/legacyinfo/_category_.json
new file mode 100644
index 0000000..b93f73c
--- /dev/null
+++ b/versioned_docs/version-4.1.0/legacyinfo/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Legacy Info",
+ "position": 5,
+ "link": {
+ "type": "generated-index",
+ "description": "Find out how INAV's features work."
+ }
+ }
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/quickstart/Blinkenlights.md b/versioned_docs/version-4.1.0/quickstart/Blinkenlights.md
new file mode 100644
index 0000000..bb4cae9
--- /dev/null
+++ b/versioned_docs/version-4.1.0/quickstart/Blinkenlights.md
@@ -0,0 +1,31 @@
+---
+title: Blinking Lights
+---
+
+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-4.1.0/quickstart/Default-values-for-different-type-of-aircrafts.md b/versioned_docs/version-4.1.0/quickstart/Default-values-for-different-type-of-aircrafts.md
new file mode 100644
index 0000000..7c2aece
--- /dev/null
+++ b/versioned_docs/version-4.1.0/quickstart/Default-values-for-different-type-of-aircrafts.md
@@ -0,0 +1,342 @@
+---
+title: Default Values for Different Types of Aircraft
+---
+
+:::warning
+**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
+```
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/quickstart/Fixed-Wing-Guide.md b/versioned_docs/version-4.1.0/quickstart/Fixed-Wing-Guide.md
new file mode 100644
index 0000000..91739b5
--- /dev/null
+++ b/versioned_docs/version-4.1.0/quickstart/Fixed-Wing-Guide.md
@@ -0,0 +1,194 @@
+---
+title: Fixed Wing Guide
+sidebar_position: 2
+---
+
+## 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---172-onwards).
+
+
+
+* 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/Telemetry.md) )
+
+### 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)
+
+* 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-Mode-Return-to-Home.md) 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-fw)
+ * Tune your PIFF values, either manually or with [AUTOTUNE](https://github.com/iNavFlight/inav/wiki/Modes#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](./Howto:-CC3D-flight-controller,-minimOSD,-GPS-and-LTM-telemetry-for-fixed-wing.md#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)
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/quickstart/Fixed-Wing-Tuning-for-INAV-3.0.md b/versioned_docs/version-4.1.0/quickstart/Fixed-Wing-Tuning-for-INAV-3.0.md
new file mode 100644
index 0000000..5a53a24
--- /dev/null
+++ b/versioned_docs/version-4.1.0/quickstart/Fixed-Wing-Tuning-for-INAV-3.0.md
@@ -0,0 +1,32 @@
+---
+title: Fixed Wing Tuning 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-4.1.0/quickstart/GPS--and-Compass-setup.md b/versioned_docs/version-4.1.0/quickstart/GPS--and-Compass-setup.md
new file mode 100644
index 0000000..8ba1b46
--- /dev/null
+++ b/versioned_docs/version-4.1.0/quickstart/GPS--and-Compass-setup.md
@@ -0,0 +1,215 @@
+---
+title: GPS And Compass Setup
+---
+
+iNav supports Ublox, DJI NAZA, NMEA, multiwii's i2c-nav board and MultiWiiCopter's i2c-gps modules
+
+Tested and confirming working protocols are Ublox and DJI NAZA
+
+Recommended GPS are M8N versions.
+
+Modules known to work reasonably well:
+* [Beitian BN-880](https://inavflight.com/shop/p/BN880)
+* [Ublox NEO-M8N APM version](https://inavflight.com/shop/s/bg/1035454)
+
+Older versions as M6N and M7N also work, but the new M8N is far superior.
+Most GPS modules have a built in magnetometer (compass), but there are also some available without e.g. [Beitian BN-180](https://inavflight.com/shop/p/BN180) or [Beitian BN-220](https://inavflight.com/shop/p/BN220) which are perfect for planes and flying wings.
+
+With 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](https://github.com/iNavFlight/inav/wiki/Ublox-3.01-firmware-and-Galileo) to use Galileo satellites.
+
+With iNav 1.9 and later, Galileo can be enabled with the CLI setting `set gps_ublox_use_galileo = ON` (the default is off).
+
+If you want to use the external magnetometer (built in in your GPS) and you have a FC with the same magnetometer (HMC5883L is very common), you have to disable it physically on your FC: remove chip from board or cut a trace. You can't use two identical chips/magnetometers on the same I2C bus.
+ * When using DJI NAZA gps this is not true, DJI NAZA sends compass over serial and does not use the I2C bus)
+ * On MPU9250 board internal magnetometer is an AK8963, most GPS pucks are HMC5883L. So no need to remove hardware, only choose which one to use with cli command `mag_hardware`
+
+If you elect to use the internal FC magnetometer you are highly likely to have poor results due to magnetic interference (not recommended).
+
+## Installing the GPS unit
+
+Just to avoid the mistake many people do while installing a GPS unit (aka pointing the antenna towards the ground): _(thanks to Phil-MC for the images)_
+
+This side has to point towards the sky
+
+
+
+This side has to point towards the ground
+
+
+
+
+## Setting up the compass alignment
+
+Before attempting any navigation modes, you should verify that the compass alignment is correct (Configurator or CLI `set align_mag`)
+* Perform any tests away of sources of magnetic interference. Domestic applicances or even audio speakers can cause erroneous affects.
+* 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 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 manualy.
+For free Alignment, all three axis need to set manualy.
+A sensor flip is always to realise
+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
+
+Enhanced Eplaination in #6232
+[How to Align and Check if your readings are Correct ](https://github.com/iNavFlight/inav/issues/6232#issuecomment-727636397)
+
+Painless360 done a superior Video on this
+[Setup non Flat mounted External Compass. (Tilted) ](https://youtu.be/tjKPD69Lrgg)
+
+Someone Genius build a Software helper Tool for this.
+
+[Free Alignment Tool](https://kernel-machine.github.io/INavMagAlignHelper/)
+
+## 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 slight 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.
+
+* If you need help doing this, post the log in the iNav RC Groups forum (or Slack channel) and ask for help. There are a number of users familiar with this type of analysis who will 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 or softserial. Connect RX from GPS to TX on FC, TX from GPS to RX on FC
+- Activate GPS in the ports tab in cleanflight/iNav configurator and set it to 57600 using UART or 19200 using softserial (on your chosen port)
+- Activate GPS in the configuration tab, set it to ublox.
+
+- 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.
+ * F3 based board and newer uses default automatic magnetic declination, if your on F1 board or want to change magnetic declination manually you have to set correct declination of your spesific 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](./Sensor-calibration.md#compass-calibration)
+
+
+Note to change magnetic declination manually on F3 or newer board you have to turn off automatic function. `set inav_auto_mag_decl = OFF`.
+
+## NEO-M8N PixHawk GPS Unit / BN-880
+
+A readily available GPS unit is the "NEO-M8N" unit that is available from eBay, Amazon, Banggood & so on...
+
+They are cheap and because they use the Russian satellite network called GLONASS, obtaining a GPS fix is quicker and you can be flying around with anywhere between 9 to 20 satellites.
+
+Also as a bonus with such units they have a magnetometer (a compass) on the underside of the board too!
+
+
+
+
+
+An important note is that on top of the protective shell of the MN-M8N there is an arrow, this needs to point towards the front of your model. The BN-880 plug needs to point down and to the rear of your model. It is also recommended to [encase](https://www.thingiverse.com/search?q=bn-880&dwh=665c615230c1cbf) the BN-880 as it is quite fragile.
+
+**Important**:
+You need to switch the Rx and Tx wires around. So you connect your GPS Tx wire (yellow) to your desired Rx pin and the GPS Rx wire (White) to your Tx pin on your flight controller.
+
+A video showing you how to do this for a Omnibus F4 V2 board is in [this video on YouTube](https://www.youtube.com/watch?v=nQCQXuqQSd8)
+
+The Matek F405-ctr online documentation connects the GPS to a 5V pin under the board so on USB only the GPS and Mag won't be powered. If you want GPS lock on the bench, you can instead connect the BN-880 power to the 3V3 pin.
+
+Once you have connected the GPS to your flight control board
+
+- Open the iNav Configurator
+- Enable GPS on your desired UART port
+- Set the the baud rate to 115200
+- 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.
+
+If it is the first time you have connected the GPS unit, then it can take several minutes for a GPS fix to be obtained. This is perfectly normal.
+
+**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!)
+
+
+## Getting started with DJI NAZA GPS
+NOTE: By default F1 processors do not support DJI GPS. Most F3 processors do - check hardware support map.
+F1 can support DJI if you compile your own build with unused features removed.
+
+- Physically connect your GPS to your FC using UART. Connect RX from GPS to TX on FC, TX from GPS to RX on FC
+- Activate GPS in the ports tab in cleanflight/iNav configurator and set it to 115 200 on correct UART
+- Type this in CLI
+
+ feature GPS
+ set gps_provider = NAZA
+ set mag_hardware = GPSMAG
+ set align_mag = CW180FLIP
+
+Default DJI GPS puck pointing forward is set with CW180FLIP, but can be changed with CW0FLIP, CW90FLIP, CW180FLIP or CW270FLIP
+
+ * 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 spesific 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](./Sensor-calibration.md#compass-calibration)
+
+Note to change magnetic declination manually on F3 or newer board you have to turn off automatic function. `set inav_auto_mag_decl = OFF`.
+
+
+Thats it!
+
+
+## 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 |
+| 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`
+
+
+## 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, ESC´s 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.
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/quickstart/Getting-started-with-iNav.md b/versioned_docs/version-4.1.0/quickstart/Getting-started-with-iNav.md
new file mode 100644
index 0000000..cc1e6eb
--- /dev/null
+++ b/versioned_docs/version-4.1.0/quickstart/Getting-started-with-iNav.md
@@ -0,0 +1,68 @@
+---
+title: Getting Started
+slug: getstarted
+sidebar_position: 1
+---
+
+# 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, 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-4.1.0/quickstart/Howto:-CC3D-flight-controller,-minimOSD,-GPS-and-LTM-telemetry-for-fixed-wing.md b/versioned_docs/version-4.1.0/quickstart/Howto:-CC3D-flight-controller,-minimOSD,-GPS-and-LTM-telemetry-for-fixed-wing.md
new file mode 100644
index 0000000..0ad16db
--- /dev/null
+++ b/versioned_docs/version-4.1.0/quickstart/Howto:-CC3D-flight-controller,-minimOSD,-GPS-and-LTM-telemetry-for-fixed-wing.md
@@ -0,0 +1,250 @@
+---
+title: CC3D For Fixed Wing 2
+---
+
+
+## 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 .
+
+- 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.
+
+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](https://github.com/iNavFlight/inav/wiki/Sensor-calibration) 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
+
+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.
+
+
+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.
+
+
+
+### 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.
+
+
+###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.
+
+
+### 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.
+
+
+
+Turn on your transmitter, switch to the Angle or Horizon flight mode and follow the Servos tab.
+
+### Servo setup
+
+
+
+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.
+
+
+
+
+### 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.
+
+
+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:
+
+
+Watch this demo video of the iNAV flight and RTH function:
+
+[](https://www.youtube.com/watch?v=GYd7mxGxNL8)
+
+Good luck!
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/quickstart/Howto:-CC3D-flight-controller,-minimOSD-,-telemetry-and-GPS-for-fixed-wing.md b/versioned_docs/version-4.1.0/quickstart/Howto:-CC3D-flight-controller,-minimOSD-,-telemetry-and-GPS-for-fixed-wing.md
new file mode 100644
index 0000000..1a58773
--- /dev/null
+++ b/versioned_docs/version-4.1.0/quickstart/Howto:-CC3D-flight-controller,-minimOSD-,-telemetry-and-GPS-for-fixed-wing.md
@@ -0,0 +1,235 @@
+---
+title: CC3D For Fixed Wing 1
+---
+
+## 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 .
+
+- 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.
+
+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](https://github.com/iNavFlight/inav/wiki/Sensor-calibration) to perform the 6 point accelerometer calibration.
+
+### Flight controller orientation.
+After the calibration is done you may select the sutable board orientation
+
+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.
+
+
+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.
+
+
+
+### Failsafe
+
+Check [this link](https://github.com/iNavFlight/inav/wiki/Failsafe) 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.
+
+
+###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.
+
+
+### 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.
+
+
+
+Turn on your transmitter, switch to the Angle or Horizon flight mode and follow the Servos tab.
+
+### Servo setup
+
+
+
+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.
+
+
+
+
+### 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.
+
+
+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:
+
+
+Watch this demo video of the iNAV flight and RTH function:
+
+[](https://www.youtube.com/watch?v=GYd7mxGxNL8)
+
+Good luck!
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/quickstart/Multirotor-guide.md b/versioned_docs/version-4.1.0/quickstart/Multirotor-guide.md
new file mode 100644
index 0000000..6de39e9
--- /dev/null
+++ b/versioned_docs/version-4.1.0/quickstart/Multirotor-guide.md
@@ -0,0 +1,49 @@
+---
+title: Multirotor Guide
+sidebar_position: 3
+---
+
+## 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); 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](./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)
+
+## 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-4.1.0/quickstart/Sensor-calibration.md b/versioned_docs/version-4.1.0/quickstart/Sensor-calibration.md
new file mode 100644
index 0000000..8bf1660
--- /dev/null
+++ b/versioned_docs/version-4.1.0/quickstart/Sensor-calibration.md
@@ -0,0 +1,97 @@
+---
+title: Sensor Calibration
+---
+
+**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](./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-4.1.0/quickstart/Something-is-disabled----Reasons.md b/versioned_docs/version-4.1.0/quickstart/Something-is-disabled----Reasons.md
new file mode 100644
index 0000000..a5c4da3
--- /dev/null
+++ b/versioned_docs/version-4.1.0/quickstart/Something-is-disabled----Reasons.md
@@ -0,0 +1,105 @@
+---
+title: Something is disabled
+---
+
+## 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 has failed / is not recognised (e.g. GPS, Compass, Baro) |
+| `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 |
+
+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 4.0.0 as of 2021-12.
+
+### 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 |
+| Satellite quality is unacceptable: EPH/EPV > 10m (note the limit in the CLI `inav_max_eph_epv` is in cm, default 1000) |
+| The WP mission contains an invalid JUMP sequence |
+| The first waypoint is beyond the distance defined by the CLI setting `nav_wp_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
+ ```
+* 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. 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.
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/quickstart/TROUBLESHOOTING.md b/versioned_docs/version-4.1.0/quickstart/TROUBLESHOOTING.md
new file mode 100644
index 0000000..c8a88fc
--- /dev/null
+++ b/versioned_docs/version-4.1.0/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](https://github.com/iNavFlight/inav/wiki/GPS--and-Compass-setup)
+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.
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md b/versioned_docs/version-4.1.0/quickstart/Upgrading-from-an-older-version-of-INAV-to-the-current-version.md
new file mode 100644
index 0000000..e0d47ca
--- /dev/null
+++ b/versioned_docs/version-4.1.0/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
+---
+
+
+
+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!
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/quickstart/Welcome-to-INAV,-useful-links-and-products.md b/versioned_docs/version-4.1.0/quickstart/Welcome-to-INAV,-useful-links-and-products.md
new file mode 100644
index 0000000..f6af55b
--- /dev/null
+++ b/versioned_docs/version-4.1.0/quickstart/Welcome-to-INAV,-useful-links-and-products.md
@@ -0,0 +1,82 @@
+---
+title: Useful Links and Products
+---
+
+
+
+**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](https://github.com/iNavFlight/inav/wiki/Welcome-to-INAV,-useful-links-and-products) too.
+
+_Thanks, and happy flying!_
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/quickstart/Why-do-I-have-limited-servo-throw-in-my-airplane.md b/versioned_docs/version-4.1.0/quickstart/Why-do-I-have-limited-servo-throw-in-my-airplane.md
new file mode 100644
index 0000000..4a18191
--- /dev/null
+++ b/versioned_docs/version-4.1.0/quickstart/Why-do-I-have-limited-servo-throw-in-my-airplane.md
@@ -0,0 +1,50 @@
+---
+title: Why Do I Have Limited Servo Throws 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.
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/quickstart/YouTube-video-guides.md b/versioned_docs/version-4.1.0/quickstart/YouTube-video-guides.md
new file mode 100644
index 0000000..a6c3294
--- /dev/null
+++ b/versioned_docs/version-4.1.0/quickstart/YouTube-video-guides.md
@@ -0,0 +1,25 @@
+---
+title: Link to YouTube video guides.
+---
+
+# Link to YouTube video guides.
+
+* [INAV 3 from flash to flight for multirotor drones](https://youtube.com/playlist?list=PLOUQ8o2_nCLkfcKsWobDLtBNIBzwlwRC8)
+* [INAV Fixed Wing Tuning Guide](https://youtu.be/A45vc4OihgY)
+* [Painless360 iNav playlist](http://www.youtube.com/playlist?list=PLYsWjANuAm4qdXEGFSeUhOZ10-H8YTSnH)
+* [Setting up & Using iNav 2017 by Matthew Ogborne](https://youtu.be/1DCCjPbHl_I?list=PLgoM4-umzSqd0clW-e_A12yKiOpV--3a2)
+* [Backup and restoring](https://www.youtube.com/watch?v=M5haTMW239E&feature=youtu.be)
+* [How to use presets](https://www.youtube.com/watch?v=tOXe_VHxVLg)
+* [Gyroscope and filtering part 1](https://www.youtube.com/watch?v=Bv5ajMgdsno)
+* [Gyroscope and filtering part 2](https://www.youtube.com/watch?v=G_XxKeLL4-k)
+
+* [Gyroscope and filtering part 4](https://www.youtube.com/watch?v=0WTEbQ8hOx4)
+* [INAV Troubleshooting: why INAV is not arming](https://www.youtube.com/watch?v=7MAdgGkBkXs)
+* [INAV Troubleshooting: magnetometer is not working](https://www.youtube.com/watch?v=-zaIE-s8aHQ)
+* [INAV Troubleshooting: not getting full servo throw on flying wing](https://www.youtube.com/watch?v=o2RwTeBbvos)
+* [INAV Troubleshooting: toilet bowling instead of Position Hold](https://www.youtube.com/watch?v=FlEm0-pXNf0)
+* [How to use Autotune](https://youtu.be/UOGfC3pvbWM)
+* [How to use servo autotrim](https://www.youtube.com/watch?v=XW1esQp_RvU)
+* [The most common iNav mistakes](https://youtu.be/fVJYodLimD8)
+* [INAV setup for tracked vehicles](https://youtu.be/9194OzsHOFc)
+* [Betaflight to INAV migration in 22 minutes](https://youtu.be/1hhsqyXeKew)
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/quickstart/_category_.json b/versioned_docs/version-4.1.0/quickstart/_category_.json
new file mode 100644
index 0000000..d49165b
--- /dev/null
+++ b/versioned_docs/version-4.1.0/quickstart/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Quickstart",
+ "position": 2,
+ "link": {
+ "type": "generated-index",
+ "description": "Get quickly setup and flying with a basic configuration"
+ }
+ }
\ No newline at end of file
diff --git a/versioned_docs/version-4.1.0/welcome.md b/versioned_docs/version-4.1.0/welcome.md
new file mode 100644
index 0000000..b04ceb5
--- /dev/null
+++ b/versioned_docs/version-4.1.0/welcome.md
@@ -0,0 +1,20 @@
+---
+title: Welcome!
+sidebar_position: 1
+description: The INAV Docs
+slug: welcome
+---
+
+# Welcome to the Docs
+
+INAV is a flight controller software for a multitude of air and land vehicles such as multirotors, fixed wings, VTOLs, rovers, and submarines.
+The software suite consists of:
+* INAV Firmware - what's flashed on the flight controller
+* INAV Configurator - a graphical desktop tool that allows for configuring and programming the vehicle
+* INAV Lua Widget - an EdgeTX widget that augments the INAV experience
+* INAV Blackbox Tools - a tool to convert and use flight data recorded on the flight controller
+
+## Purpose
+
+This unofficial, community made website is the next evolution for the INAV project's documentation.
+The new documentation aims to consolidate everything INAV in a central and easy to use location.
diff --git a/versioned_sidebars/version-4.1.0-sidebars.json b/versioned_sidebars/version-4.1.0-sidebars.json
new file mode 100644
index 0000000..5f41a72
--- /dev/null
+++ b/versioned_sidebars/version-4.1.0-sidebars.json
@@ -0,0 +1,8 @@
+{
+ "documentationSidebar": [
+ {
+ "type": "autogenerated",
+ "dirName": "."
+ }
+ ]
+}
diff --git a/versions.json b/versions.json
index 0b7dacd..6d73a49 100644
--- a/versions.json
+++ b/versions.json
@@ -1,3 +1,4 @@
[
+ "4.1.0",
"4.0.0"
]