Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
cd67c18
implement vtol mission auto transition
mart1npetroff May 12, 2026
58b9fc7
implement VTOL transition automation for smoothing transition
mart1npetroff May 12, 2026
ae15cb9
feat(vtol): add unified manual/mission transition controller with air…
mart1npetroff May 12, 2026
232dfb5
- document explicit USER-bit semantics as absolute per-waypoint platf…
mart1npetroff May 12, 2026
8ab311a
feat(vtol): add optional dynamic scaling ramp timer and clarify legac…
mart1npetroff May 13, 2026
50612a2
docs: regenerate Settings.md from settings definitions
mart1npetroff May 14, 2026
8d781e9
vtol: split global vs per-mixer transition settings, rename manual sw…
mart1npetroff May 16, 2026
587460e
vtol: clean transition state internals and clarify manual switch setup
mart1npetroff May 17, 2026
a73bc70
vtol: harden transition controller docs and per-loop mode handling
mart1npetroff May 17, 2026
421a55c
vtol: add dedicated transition debug mode and clarify transition paths
mart1npetroff May 17, 2026
73707a9
- capture debug values before transition scale cleanup so final succe…
mart1npetroff May 17, 2026
762c310
fix(vtol): report actual MIXER TRANSITION/MIXER PROFILE 2 activity in…
mart1npetroff May 18, 2026
0258521
debug data enchancment
mart1npetroff May 21, 2026
c2cdbfc
feat(nav): add VTOL transition retry and configurable fail actions
mart1npetroff May 28, 2026
799995b
fix(nav): harden VTOL retry scan and map FW->MC LOITER fail action to…
mart1npetroff May 28, 2026
7fd7163
fix(vtol): gate manual profile switch during transition and improve r…
mart1npetroff May 28, 2026
093c0ec
По-здраво: code latch за “manual transition session active” до TRANSI…
mart1npetroff May 28, 2026
cb213fd
docs(vtol): align profile order guidance and clarify switch examples
mart1npetroff Jun 3, 2026
061c7f2
vtol: decouple MC->FW pusher ramp from handoff scaling
mart1npetroff Jun 3, 2026
94a6b34
vtol: restore manual profile hot-switch during transition
mart1npetroff Jun 4, 2026
02e7f86
vtol: simplify transition docs and remove mission track-distance setting
mart1npetroff Jun 4, 2026
8fe6337
docs(vtol): clarify transition timer roles and fallback behavior
mart1npetroff Jun 5, 2026
1d2cd6f
vtol: support overlap mapping with manual transition controller
mart1npetroff Jun 5, 2026
cc85129
vtol: latch fw-to-mc protection and reuse multirotor platform helper
mart1npetroff Jun 5, 2026
a32326a
feat(vtol): add INPUT_AUTOTRANSITION_TARGET_STABILIZED* input source …
mart1npetroff Jun 7, 2026
8218e51
Refine VTOL auto-transition preview and scaling docs
mart1npetroff Jun 7, 2026
aa70689
Merge branch 'maintenance-10.x' into implement-auto-vtol-smooth-trans…
mart1npetroff Jun 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 0 additions & 42 deletions docs/ADSB.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,47 +64,6 @@ AT+SETTINGS=SAVE
* in INAV configurator ports TAB set telemetry MAVLINK, and baudrate 115200
* https://pantsforbirds.com/adsbee-1090/quick-start/

<<<<<<< HEAD
---

---

## Alert and Warning
The ADS-B warning/alert system supports two operating modes, controlled by the parameter osd_adsb_calculation_use_cpa (ON or OFF).

---

### ADS-B Warning and Alert Messages (CPA Mode OFF)
The ADS-B warning/alert system supports two operating modes, controlled by the parameter **osd_adsb_calculation_use_cpa** (ON or OFF).

When **osd_adsb_calculation_use_cpa = OFF**, the system evaluates only the **current distance between the aircraft and the UAV**. The aircraft with the **shortest distance** is always selected for monitoring.

- If the aircraft enters the **warning zone** (`adsb_distance_warning`), the corresponding **OSD element is displayed**.
- If the aircraft enters the **alert zone** (`adsb_distance_alert`), the **OSD element starts blinking**, indicating a higher-priority alert.

This mode therefore provides a simple proximity-based warning determined purely by real-time distance.

---

### ADS-B Warning and Alert Messages (CPA Mode ON)

When **osd_adsb_calculation_use_cpa = ON**, the system evaluates aircraft using the **Closest Point of Approach (CPA)** and predicted trajectories, not only the current distance.

1. **Aircraft already inside the alert zone**
If one or more aircraft are currently inside the **alert zone** (`adsb_distance_alert`), the **closest aircraft** to the UAV is selected and the **OSD element blinks**.

2. **Aircraft in the warning zone, none predicted to enter the alert zone**
If aircraft are present in the **warning zone** (`adsb_distance_warning`), but none of them are predicted to enter the **alert zone** (their CPA distance is greater than `adsb_distance_alert`), the **closest aircraft to the UAV** is selected and the **OSD element remains steady** (no blinking).

3. **Aircraft in the warning zone, one predicted to enter the alert zone**
If at least one aircraft in the **warning zone** is predicted to enter the **alert zone**, that aircraft is selected and the **OSD element blinks**.

4. **Aircraft in the warning zone, multiple predicted to enter the alert zone**
If multiple aircraft are predicted to enter the **alert zone**, the system selects the aircraft that will **reach the alert zone first**, and the **OSD element blinks**.

![ADSB CPA_ON](assets/images/adsb-CPA-on.png)


## SoftRF settings
SoftRF supports only MAVLink version 1.
```
Expand Down Expand Up @@ -150,4 +109,3 @@ When **osd_adsb_calculation_use_cpa = ON**, the system evaluates aircraft using
If multiple aircraft are predicted to enter the **alert zone**, the system selects the aircraft that will **reach the alert zone first**, and the **OSD element blinks**.

![ADSB CPA_ON](assets/images/adsb-CPA-on.png)
>>>>>>> upstream/release/9.1
300 changes: 290 additions & 10 deletions docs/MixerProfile.md

Large diffs are not rendered by default.

40 changes: 40 additions & 0 deletions docs/Navigation.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,46 @@ Parameters:

* `<flag>` - Last waypoint must have `flag` set to 165 (0xA5).

### Mission VTOL transition using existing User Actions

Mission VTOL transition can be requested.
This is available only on targets with more than 512 KB flash, compiled with `USE_AUTO_TRANSITION`.
Targets with 512 KB flash do not include these mission VTOL transition settings.

Configuration:

- `nav_vtol_mission_transition_user_action` selects which waypoint User Action (`USER1..USER4`) is used as the mission VTOL target selector.
- `nav_vtol_mission_transition_min_altitude_cm` optionally enforces a minimum altitude before transition start (`0` disables check).
- During MC->FW mission transition, iNAV uses a built-in straight run-up target to help the model build speed before switching to fixed-wing.
- VTOL transition completion logic is shared with manual MIXER TRANSITION and uses mixer transition settings:
- preferred MC->FW threshold: `vtol_transition_to_fw_min_airspeed_cm_s`
- FW->MC threshold: `vtol_transition_to_mc_max_airspeed_cm_s`

Behavior on each navigable mission waypoint (`WAYPOINT`, `POSHOLD_TIME`, `LAND`):

- The configured USER bit is an **absolute target selector**:
- `0`: transition to MC / MULTIROTOR profile
- `1`: transition to FW / AIRPLANE profile
- When `nav_vtol_mission_transition_user_action != OFF`, each navigable waypoint always encodes target state via that selected USER bit.
- This means every navigable waypoint implicitly declares desired VTOL platform state when this feature is enabled; users must intentionally set/clear that bit on each waypoint.
- This command is **not** a toggle.
- The command is idempotent: if already in the requested target profile type, the mission continues immediately.
- If a transition is needed, mission progression pauses while automated transition runs, then resumes only after completion.

Transition behavior in this MVP:

- MC -> FW: straight-line acceleration segment (no loiter), heading from the next waypoint bearing when available, otherwise current heading.
- MC -> FW and FW -> MC completion uses pitot airspeed thresholds when healthy/available (`vtol_transition_to_fw_min_airspeed_cm_s`, `vtol_transition_to_mc_max_airspeed_cm_s`).
- If pitot is unavailable/unhealthy (or threshold is `0`), timer fallback (`mixer_switch_trans_timer`) is used.
- Ground speed is not used for transition progress/completion.
- FW -> MC: mission pauses during automated transition, then resumes after switching back to MC profile.
- Strict altitude hold is not enforced during MC -> FW transition; natural climb is allowed.

Safety and scope:

- This path uses authorized automated transition state handling; it does not permit manual mixer profile switching during normal waypoint navigation.
- It still depends on valid mixer profile switching infrastructure (two configured mixer profiles and a valid `MIXER PROFILE 2` mode activation condition).

`wp save` - Checks list of waypoints and save from FC to EEPROM (warning: it also saves all unsaved CLI settings like normal `save`).

`wp reset` - Resets the list, sets the number of waypoints to 0 and marks the list as invalid (but doesn't delete the waypoint definitions).
Expand Down
164 changes: 163 additions & 1 deletion docs/Settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -794,6 +794,7 @@ Defines debug values exposed in debug variables (developer / debugging setting)
| LULU | |
| SBUS2 | |
| OSD_REFRESH | |
| VTOL_TRANSITION | |

---

Expand Down Expand Up @@ -3211,14 +3212,54 @@ If enabled, control_profile_index will follow mixer_profile index. Set to OFF(de

### mixer_switch_trans_timer

If switch another mixer_profile is scheduled by mixer_automated_switch or mixer_automated_switch. Activate Mixertransion motor/servo mixing for this many decisecond(0.1s) before the actual mixer_profile switch.
Original VTOL transition timer, still used as the backup completion time. If trusted pitot airspeed is not being used, iNAV completes the transition from this timer instead. With smooth VTOL transition power changes ON, lift motor power, multicopter stabilisation, and fixed-wing control handoff also fall back to this timing whenever trusted pitot is not usable.

| Default | Min | Max |
| --- | --- | --- |
| 0 | 0 | 200 |

---

### mixer_vtol_manualswitch_autotransition_controller

Makes `MIXER TRANSITION` start one automatic VTOL transition each time the switch moves from OFF to ON, when not in waypoint mission. Turn this ON in both mixer profiles if you want the same behavior in both directions. OFF keeps the older manual switch behavior. Available only on targets with more than 512 KB flash.

| Default | Min | Max |
| --- | --- | --- |
| OFF | OFF | ON |

---

### mixer_vtol_transition_airspeed_timeout_ms

Maximum wait time [ms] for the required pitot airspeed during an airspeed-controlled transition. This timer does not complete the transition; it only aborts it if the target airspeed is still not reached in time. If pitot becomes unavailable, iNAV falls back to `mixer_switch_trans_timer` instead. Set to 0 to disable. Available only on targets with more than 512 KB flash.

| Default | Min | Max |
| --- | --- | --- |
| 0 | 0 | 60000 |

---

### mixer_vtol_transition_dynamic_mixer

Turns on smooth VTOL transition power changes. This affects forward motor ramp-up, lift motor power reduction, multicopter stabilisation reduction, and fixed-wing control fade-in. Used by both manual `MIXER TRANSITION` and mission-requested VTOL transitions. Available only on targets with more than 512 KB flash.

| Default | Min | Max |
| --- | --- | --- |
| OFF | OFF | ON |

---

### mixer_vtol_transition_scale_ramp_time_ms

When smooth VTOL transition power changes are ON, this controls motor ramp-in time only. In MC->FW it ramps the forward motor from idle to full target power. In FW->MC it ramps the lift motors from their configured minimum back to full power. `0` applies those motor-power changes immediately. This timer does not decide when the transition completes and it does not control the multicopter/fixed-wing control handoff. Handoff still follows trusted pitot airspeed when pitot is usable, otherwise `mixer_switch_trans_timer`. Available only on targets with more than 512 KB flash.

| Default | Min | Max |
| --- | --- | --- |
| 0 | 0 | 60000 |

---

### mode_range_logic_operator

Control how Mode selection works in flight modes. If you example have Angle mode configured on two different Aux channels, this controls if you need both activated ( AND ) or if you only need one activated ( OR ) to active angle mode.
Expand Down Expand Up @@ -4636,6 +4677,67 @@ Defines how Pitch/Roll input from RC receiver affects flight in POSHOLD mode: AT

---

### nav_vtol_mission_transition_min_altitude_cm

Do not start a mission-requested VTOL transition below this altitude [cm]. Set to 0 to disable the altitude check. Available only on targets with more than 512 KB flash.

| Default | Min | Max |
| --- | --- | --- |
| 0 | 0 | 50000 |

---

### nav_vtol_mission_transition_user_action

Chooses which waypoint USER flag (`USER1`..`USER4`) tells iNAV which flight mode to use at each navigable waypoint. Selected USER flag ON means fixed-wing. Selected USER flag OFF means multicopter. OFF disables this feature. Requires two mixer profiles, a working `MIXER PROFILE 2` mode setup, and a target with more than 512 KB flash.

| Allowed Values | |
| --- | --- |
| OFF | Default |
| USER1 | |
| USER2 | |
| USER3 | |
| USER4 | |

---

### nav_vtol_transition_fail_action_fw_to_mc

What iNAV should do if FW->MC transition fails. `LOITER` keeps the aircraft near its current position. `FORCE_SWITCH` changes to the other mixer profile immediately even though the normal switch conditions were not met. Available only on targets with more than 512 KB flash.

| Allowed Values | |
| --- | --- |
| IDLE | |
| LOITER | Default |
| RTH | |
| EMERGENCY_LANDING | |
| FORCE_SWITCH | |

---

### nav_vtol_transition_fail_action_mc_to_fw

What iNAV should do if MC->FW transition still fails after the final attempt. Available only on targets with more than 512 KB flash.

| Allowed Values | |
| --- | --- |
| IDLE | Default |
| POSH | |
| RTH | |
| EMERGENCY_LANDING | |

---

### nav_vtol_transition_retry_on_airspeed_timeout

If ON, iNAV gets one extra MC->FW attempt after an airspeed timeout during mission or RTH. It pauses, yaws around to find the best airspeed direction, then tries once more. Available only on targets with more than 512 KB flash.

| Default | Min | Max |
| --- | --- | --- |
| OFF | OFF | ON |

---

### nav_wp_enforce_altitude

Forces craft to achieve the set WP altitude as well as position before moving to next WP. Position is held and altitude adjusted as required before moving on. 0 = disabled, otherwise setting defines altitude capture tolerance [cm], e.g. 100 means required altitude is achieved when within 100cm of waypoint altitude setting.
Expand Down Expand Up @@ -6996,6 +7098,66 @@ Warning voltage per cell, this triggers battery-warning alarms, in 0.01V units,

---

### vtol_fw_to_mc_auto_switch_airspeed_cm_s

Extra low-speed protection for fixed-wing flight [cm/s]. If airspeed falls to this value or lower while in FW, iNAV automatically starts FW->MC. After the switch to MC, iNAV keeps the MC profile until you deliberately command another manual profile change. Used only when `mixer_vtol_manualswitch_autotransition_controller` is ON. Set to 0 to disable. Available only on targets with more than 512 KB flash.

| Default | Min | Max |
| --- | --- | --- |
| 0 | 0 | 20000 |

---

### vtol_transition_fw_authority_min_percent

Lowest fixed-wing stabilisation used during transition, in percent. In MC->FW, fixed-wing stabilisation starts from this value and rises to full strength. In FW->MC, it fades down from full strength to this value. With `INPUT_AUTOTRANSITION_TARGET_STABILIZED_*` rules configured in the MC mixer profile, this same setting scales their servo authority during MC->FW and scales down the matching FW servo stabilisation during FW->MC. `100` keeps full fixed-wing stabilisation through the whole transition. Used only when `mixer_vtol_transition_dynamic_mixer` is ON. Available only on targets with more than 512 KB flash.

| Default | Min | Max |
| --- | --- | --- |
| 100 | 0 | 100 |

---

### vtol_transition_lift_min_percent

Lowest lift motor power used during transition, in percent. In MC->FW, lift power fades down to this value. In FW->MC, lift power starts from this value and rises back to full power. `100` keeps full lift power through the whole transition. Used only when `mixer_vtol_transition_dynamic_mixer` is ON. Available only on targets with more than 512 KB flash.

| Default | Min | Max |
| --- | --- | --- |
| 100 | 0 | 100 |

---

### vtol_transition_mc_authority_min_percent

Lowest multicopter stabilisation used during transition, in percent. In MC->FW, multicopter stabilisation fades down to this value. In FW->MC, it starts from this value and rises back to full stabilisation. `100` keeps full multicopter stabilisation through the whole transition. Used only when `mixer_vtol_transition_dynamic_mixer` is ON. Available only on targets with more than 512 KB flash.

| Default | Min | Max |
| --- | --- | --- |
| 100 | 0 | 100 |

---

### vtol_transition_to_fw_min_airspeed_cm_s

Minimum pitot airspeed [cm/s] needed before MC->FW transition is considered complete while pitot remains usable. If pitot becomes unavailable, or if this is set to 0, iNAV uses `mixer_switch_trans_timer` instead. If pitot remains usable but this target is still not reached before `mixer_vtol_transition_airspeed_timeout_ms` expires, the transition is aborted. Available only on targets with more than 512 KB flash.

| Default | Min | Max |
| --- | --- | --- |
| 0 | 0 | 20000 |

---

### vtol_transition_to_mc_max_airspeed_cm_s

When slowing down from FW to MC, the transition is considered complete once pitot airspeed falls to this value [cm/s] or lower while pitot remains usable. If pitot becomes unavailable, or if this is set to 0, iNAV uses `mixer_switch_trans_timer` instead. If pitot remains usable but this condition is still not reached before `mixer_vtol_transition_airspeed_timeout_ms` expires, the transition is aborted. Available only on targets with more than 512 KB flash.

| Default | Min | Max |
| --- | --- | --- |
| 0 | 0 | 20000 |

---

### vtx_band

Configure the VTX band. Bands: 1: A, 2: B, 3: E, 4: F, 5: Race.
Expand Down
Loading
Loading