Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
5a2a0b8
[crsf] add temperature and RPM telemetry
gismo2004 Sep 14, 2025
710b36e
make the compiler happy
gismo2004 Sep 14, 2025
b39cc96
more compiler warnings
gismo2004 Sep 15, 2025
f8dc0bc
add AirSpeed
gismo2004 Sep 23, 2025
e5bfe79
Fix CRSF telemetry corruption from PR #11025
sensei-hacker Dec 18, 2025
7b391b3
FIX AT32 LED blink BUG
sunyanmeng963 Jan 5, 2026
380fccf
Fix SPI register masking in busWriteBuf
sensei-hacker Jan 11, 2026
bd45290
Adding support for switchable 9v BEC for FLYWOOF405HD and FLYWOOF405P…
radekdomin Jan 16, 2026
d6caa76
Merge branch 'iNavFlight:master' into master
sunyanmeng963 Jan 23, 2026
0f45b6b
Add target BLUEBERRYH743
sunyanmeng963 Jan 23, 2026
cdb2976
Add NEXUS target for RadioMaster Nexus (Original) flight controller
Feb 11, 2026
66c87bf
imu: compute GPS 3D speed only on new GPS data
sensei-hacker Feb 18, 2026
2ce3f0a
imu: optimize imuMahonyAHRSupdate() hot path (5 micro-opts)
sensei-hacker Feb 18, 2026
2b8d571
NEXUS: fix VBAT scale, Port C pinout, and ADC docs
nuketownada Feb 24, 2026
38da5a7
NEXUS: fix IMU alignment to match board orientation arrow
nuketownada Feb 25, 2026
7b0bd00
New target: FRSKYF405
sensei-hacker Feb 26, 2026
623fe7a
FRSKYF405: fix pin assignments and clean up target
sensei-hacker Mar 1, 2026
06e7ef2
AIKONF4V2 support.
Oct 8, 2025
8ba58cc
frskyf405: Fix crystal frequency and accel alignment
sensei-hacker Mar 4, 2026
8a47561
SITL Tweaks
Scavanger Mar 14, 2026
c5fa7ac
Merge branch 'maintenance-9.x' of https://github.com/iNavFlight/inav …
Scavanger Mar 14, 2026
bdf10e1
Remove unnecessary error messages and update control input channel va…
Scavanger Mar 16, 2026
f6281a6
use explicitly assign motor and servo timers before auto timers
sensei-hacker Mar 19, 2026
501fc54
Fix BLUEBERRYH743 target configuration issues
sensei-hacker Mar 22, 2026
5ee171f
Merge pull request #11451 from iNavFlight/maintenance-9.x
sensei-hacker Mar 22, 2026
ffb14ab
Update branch references from master to maintenance
sensei-hacker Mar 29, 2026
76809d7
Merge pull request #11461 from iNavFlight/sensei-hacker-patch-7
sensei-hacker Mar 29, 2026
216b76c
Add three new MSP2 commands for GCS-initiated flight control
danarrib Mar 29, 2026
25dd9dd
Remove MSP2_INAV_SET_ALT_TARGET (0x2222) — superseded by existing imp…
danarrib Mar 30, 2026
20745ec
Fix MSP-over-telemetry multi-frame request assembly
Apr 5, 2026
b1670bb
Merge pull request #11478 from b14ckyy/fix/msp-over-telemetry-multiframe
b14ckyy Apr 6, 2026
e93adf3
Add MSP2_INAV_SET_AUX_RC (0x2230)
Apr 5, 2026
ed06c84
Fix bugs in ICM-45686 IMU driver (#11455)
sensei-hacker Apr 9, 2026
f0f41be
Merge pull request #11462 from danarrib/bulletgcss/msp-set-wp-index-a…
sensei-hacker Apr 9, 2026
9ce0752
Fix MSP_RESULT_NO_REPLY ignored in MSP-over-telemetry passthrough (#1…
b14ckyy Apr 9, 2026
ae33960
Merge branch 'maintenance-9.x' into msp-aux-rc
b14ckyy Apr 9, 2026
6b0aaa8
Guard overlay against active RX and MSP_RC_OVERRIDE channels
Apr 9, 2026
3bf93e8
Restrict overlay to CH13-CH32, remove rxChannelCount guard
Apr 9, 2026
86615b9
Re-add MSP RX channel count guard for overlay
Apr 9, 2026
f025071
Add MSP2_INAV_SET_AUX_RC documentation
Apr 9, 2026
f397f7e
telemetry: fix CRSF airspeed integer truncation and empty RPM/temp fr…
sensei-hacker Apr 10, 2026
0f18cbc
Use single-precision math where double is unnecessary
sensei-hacker Mar 6, 2026
03751bc
Code review fixes for float math flash savings
sensei-hacker Mar 6, 2026
be7a944
Merge pull request #11189 from sensei-hacker/fix-pr11025-crsf-telemetry
sensei-hacker Apr 10, 2026
1dc771c
Merge pull request #11228 from sunyanmeng963/master
sensei-hacker Apr 10, 2026
5a2ac74
Merge pull request #11242 from sensei-hacker/fix-spi-buswritebuf-10674
sensei-hacker Apr 10, 2026
f69f353
Merge pull request #11251 from radekdomin/radekdomin-flywoof405hd-9vb…
sensei-hacker Apr 10, 2026
a66b346
blueberry h743: Restore PWM beeper timer
sensei-hacker Apr 10, 2026
16d2b10
Merge pull request #11279 from sunyanmeng963/inav9.0-add-blueberryH743
sensei-hacker Apr 10, 2026
50de29a
docs: add Backup and Restore documentation for Configurator auto-back…
Apr 11, 2026
959aa78
docs: add Backup/Restore architecture reference for migration profiles
Apr 11, 2026
ea2c1f1
docs: add migration profile reminder to release checklist
Apr 11, 2026
392d21b
clearer wording for backup and restore doc
Apr 11, 2026
41d168f
Merge pull request #11324 from joshperry/master
sensei-hacker Apr 11, 2026
8b1b8ec
Merge pull request #11356 from sensei-hacker/fix/imu-gps3dspeed-on-ne…
sensei-hacker Apr 11, 2026
a87537d
Merge pull request #11358 from sensei-hacker/perf/imu-mahony-hot-path…
sensei-hacker Apr 12, 2026
d2ac268
Merge pull request #11366 from sensei-hacker/feature-frskyf405-target
sensei-hacker Apr 12, 2026
69db786
Add MSP2 link stats message + fix missing msp-set-wp-index-and-altitu…
xznhj8129 Apr 12, 2026
16b916a
Add new target: PAURCF405V2
sensei-hacker Apr 12, 2026
0c240ec
Added ledstrip support for FlyingRCF4Wing target thx to 3sr3v3r
Leander-Vh Apr 13, 2026
c49b564
PAURCF405V2: correct IMU alignment
sensei-hacker Apr 13, 2026
1086f9d
Merge pull request #11497 from sensei-hacker/target/paurcf405v2
sensei-hacker Apr 13, 2026
606478a
Merge pull request #11054 from jp39/AIKONF4V2
sensei-hacker Apr 15, 2026
978a521
Merge pull request #11436 from Scavanger/SITL-Improvements
sensei-hacker Apr 15, 2026
4955d49
Merge pull request #11445 from sensei-hacker/mixer_use_explicit_timer…
sensei-hacker Apr 15, 2026
97ad80f
Merge pull request #11494 from b14ckyy/fw-flash-docs
sensei-hacker Apr 19, 2026
2c340cf
Merge pull request #11496 from xznhj8129/msp_get_link_stats
sensei-hacker Apr 19, 2026
657c1d0
Merge pull request #11501 from Leander-Vh/leander_11495-flyingrc-f4wi…
sensei-hacker Apr 19, 2026
04e188c
Resolve merge conflict in msp_messages.json
Apr 21, 2026
56e31cb
Merge branch 'maintenance-9.x' into msp-aux-rc
b14ckyy Apr 21, 2026
858c9a4
Merge pull request #11482 from b14ckyy/msp-aux-rc
sensei-hacker Apr 21, 2026
21ea4c8
GPS: fix hwVersion field size from uint32_t to uint8_t
sensei-hacker Apr 25, 2026
690c1ec
GPS: update MSP_GPSSTATISTICS docs for uint8_t hwVersion encoding
sensei-hacker Apr 25, 2026
87b690c
Merge pull request #11510 from sensei-hacker/fix/gps-hwversion-uint8
sensei-hacker Apr 25, 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
6 changes: 3 additions & 3 deletions cmake/main.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -108,10 +108,10 @@ function(setup_firmware_target exe name)
endfunction()

function(exclude_from_all target)
set_property(TARGET ${target} PROPERTY
set_target_properties(${target} PROPERTIES
TARGET_MESSAGES OFF
EXCLUDE_FROM_ALL 1
EXCLUDE_FROM_DEFAULT_BUILD 1)
EXCLUDE_FROM_ALL ON
EXCLUDE_FROM_DEFAULT_BUILD ON)
endfunction()

function(collect_targets)
Expand Down
10 changes: 5 additions & 5 deletions cmake/sitl.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ main_sources(SITL_SRC
target/SITL/sim/realFlight.h
target/SITL/sim/simHelper.c
target/SITL/sim/simHelper.h
target/SITL/sim/simple_soap_client.c
target/SITL/sim/simple_soap_client.h
target/SITL/sim/soap_client.c
target/SITL/sim/soap_client.h
target/SITL/sim/xplane.c
target/SITL/sim/xplane.h
)
Expand Down Expand Up @@ -163,8 +163,8 @@ function (target_sitl name)
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMAND ${generator_cmd} clean
COMMENT "Removing intermediate files for ${name}")
set_property(TARGET ${clean_target} PROPERTY
EXCLUDE_FROM_ALL 1
EXCLUDE_FROM_DEFAULT_BUILD 1)
set_target_properties(${clean_target} PROPERTIES
EXCLUDE_FROM_ALL ON
EXCLUDE_FROM_DEFAULT_BUILD ON)
endif()
endfunction()
107 changes: 107 additions & 0 deletions docs/Backup and Restore.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# Backup and Restore

INAV Configurator can automatically back up your configuration before flashing firmware and offer to restore it afterwards. When upgrading across major versions (e.g. 7.x → 8.x → 9.x), settings are automatically migrated to the new firmware format.

For manual CLI-based backup and restore, see the [CLI documentation](Cli.md#backup-via-cli).

## Automatic Backup & Restore During Firmware Flash

### What happens automatically

1. **Before flashing** (with or without Full Chip Erase enabled): Your current CLI configuration (`diff all`) is automatically captured and saved to the backup directory.
2. **After flashing**: Depending on the situation, the Configurator offers to restore your settings if Full Chip Erase was enabled:

| Scenario | Behavior |
|----------|----------|
| **Patch update** (e.g. 8.0.0 → 8.0.1) | Auto-restore offered immediately |
| **Minor update** (e.g. 8.0.0 → 8.1.0) | Auto-restore offered immediately |
| **Major upgrade** (e.g. 7.x → 8.x) with migration profile available | Migration preview shown — confirm to restore with converted settings |
| **Major upgrade** without migration profile | Warning shown — restore still possible but some settings may fail |
| **Major downgrade** (e.g. 9.x → 7.x) | Auto-restore blocked — manual restore only (settings may be incompatible) |
| **Local firmware file** (loaded from disk) | No auto-restore offered — backup is still saved |
| **Flash without Full Chip Erase** | Backup taken, no restore offered |

### Migration Preview

When updating across major versions (e.g. 7.x → 9.x), the Configurator shows a **migration preview overlay** before restoring. This lists:

- **Removed settings** — settings that no longer exist in the new firmware (will be skipped)
- **Renamed settings** — settings whose name changed (automatically converted)
- **Renamed commands** — CLI commands that were renamed (automatically converted)
- **Value replacements** — setting values that changed meaning (automatically converted)
- **Setting remappings** — numeric IDs that were renumbered (automatically converted)
- **Warnings** — settings whose semantics changed and require manual review

You can review all changes before confirming or cancelling the restore.

Multi-step migrations are handled automatically. For example, a 7.x → 9.x upgrade applies migration profiles in sequence (7→8, then 8→9).

## Manual Backup & Restore

The Firmware Flasher tab provides three buttons:

- **Backup Config** — saves your current CLI configuration to a file (opens save dialog)
- **Restore Config** — loads a backup file and restores it to your flight controller
- If the backup is from a different major version, the migration preview is shown first
- If no migration profile exists for the version gap, a warning is shown but you can still proceed
- **Open Backups Folder** — opens the backup directory in your file manager

For CLI-based backup and restore procedures, see [Backup via CLI](Cli.md#backup-via-cli) and [Restore via CLI](Cli.md#restore-via-cli).

## Backup File Location

Backups are stored in your OS-specific application data directory:

| OS | Path |
|----|------|
| **Windows** | `%APPDATA%/inav-configurator/backups/` |
| **macOS** | `~/Library/Application Support/inav-configurator/backups/` |
| **Linux** | `~/.config/inav-configurator/backups/` |

Use the **Open Backups Folder** button in the Firmware Flasher tab to open this directory.

## Backup File Naming

| Type | Format |
|------|--------|
| Auto-backups | `UPDATE_inav_backup_{version}_{board}_{YYYY-MM-DD_HHMMSS}.txt` |
| Manual backups | `inav_backup_{version}_{board}_{YYYY-MM-DD_HHMMSS}.txt` |

Auto-backups are pruned automatically — only the 10 most recent are kept. Files you rename are never pruned.

## Backup File Format

Backup files are plain-text CLI dumps with a metadata header:

```
# INAV Backup
# Version: 8.0.0
# Board: SPEEDYBEEF405V4
# Date: 2026-04-11T10:30:00.000Z
# Craft: MyQuad
#
# INAV/SPEEDYBEEF405V4 8.0.0 Apr 1 2026 / 12:00:00 (abc1234)
# GCC-13.2.1
# ...
set gyro_main_lpf_hz = 110
set acc_hardware = AUTO
...
```

You can open and edit these files with any text editor.

## Restore Error Handling

If errors occur during restore (e.g. unknown settings, invalid values):

- An error dialog shows the affected lines
- You can choose:
- **Save anyway** — saves the successfully applied settings and reboots
- **Abort** — discards all changes and exits CLI mode

## Tips

- **Always flash with Full Chip Erase** when upgrading to a new version. This ensures clean defaults and triggers automatic backup and restore.
- **Review migration previews carefully** — especially the warnings section, which highlights settings whose meaning may have changed.
- **Keep manual backups** before major upgrades. While auto-backup handles this, having an extra copy in a known location gives peace of mind.
- **Use `diff` over `dump`** for backups. The `diff` format only stores settings that differ from defaults, which makes restoring safer across versions. The auto-backup feature already uses `diff all`.
2 changes: 2 additions & 0 deletions docs/Cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ See the other documentation sections for details of the cli commands and setting

## Backup via CLI

> **Note:** The INAV Configurator now performs automatic backups before flashing and can restore settings afterwards, including migration across major versions. See [Backup and Restore](Backup%20and%20Restore.md) for details. The CLI method below remains available for manual backup.

Disconnect main power, connect to cli via USB/FTDI.

dump using cli
Expand Down
2 changes: 1 addition & 1 deletion docs/Configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ See the Serial section for more information and see the Board specific sections
The GUI cannot currently configure all aspects of the system, the CLI must be used to enable or configure
some features and settings.

__Due to ongoing development, the fact that the GUI cannot yet backup all your settings and automatic chrome updates of the GUI app it is highly advisable to backup your settings (using the CLI) so that when a new version of the configurator or firmware is released you can re-apply your settings.__
__The INAV Configurator now (versions after 9.0.x) automatically backs up your settings before flashing firmware and can restore them afterwards (when Full Chip Erase is enabled), including automatic migration across major versions. For details, see [Backup and Restore](Backup%20and%20Restore.md). You can also manually backup and restore settings using the [CLI](Cli.md#backup-via-cli).__


## GUI
Expand Down
6 changes: 5 additions & 1 deletion docs/Installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,8 @@ When upgrading be sure to backup / dump your existing settings. Some firmware r

## Backup/Restore process

See the CLI section of the docs for details on how to backup and restore your configuration via the CLI.
The INAV Configurator (after version 9.0.x) automatically backs up your configuration before flashing and offers to restore it afterwards (when Full Chip Erase is enabled) — including automatic settings migration when upgrading across major versions.

For details on automatic and manual backup/restore, see [Backup and Restore](Backup%20and%20Restore.md).

For CLI-based backup and restore, see the [CLI documentation](Cli.md#backup-via-cli).
27 changes: 26 additions & 1 deletion docs/Rx.md
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ bind_msp_rx <port>

## MultiWii serial protocol (MSP RX)

Allows you to use MSP commands as the RC input. Up to 18 channels are supported.
Allows you to use MSP commands as the RC input. Up to 34 channels are supported.
Note:
* It is necessary to update `MSP_SET_RAW_RC` at 5Hz or faster.
* `MSP_SET_RAW_RC` uses the defined RC channel map
Expand All @@ -213,6 +213,31 @@ Note:

Enables the use of a joystick in the INAV SITL with a flight simulator. See the [SITL documentation](SITL/SITL.md).

## MSP Auxiliary RC Channel Overlay (MSP2_INAV_SET_AUX_RC)

Allows extending the available RC channel count beyond the native RC link capacity using `MSP2_INAV_SET_AUX_RC` (`0x2230`). This is a lightweight, bandwidth-efficient alternative to `MSP_SET_RAW_RC` for auxiliary channels only.

**Key properties:**
- Controls **CH13–CH32** only (CH1–CH12 are protected and rejected)
- Configurable resolution: 2-bit (3 positions), 4-bit (~71µs steps), 8-bit (~3.9µs steps), or 16-bit (raw PWM)
- Value `0` = skip (no update) — previous value persists indefinitely
- No flight mode or special configuration required — always active
- Does **not** affect failsafe detection
- Recommended to send with `MSP_FLAG_DONT_REPLY` (`flags=0x01`) on telemetry passthrough links

**Typical use case:** A Lua script on the radio sends `MSP2_INAV_SET_AUX_RC` via SmartPort/CRSF/ELRS telemetry passthrough to control auxiliary functions (lights, camera triggers, gimbal modes) on channels beyond the RC link's native capacity.

**Priority order** (last writer wins):
1. Primary RX (SBUS, CRSF, FPort, etc.)
2. MSP RC Override (if active)
3. **MSP AUX Overlay** (CH13–CH32)

**Important:** For serial RX protocols, the firmware cannot detect which channels the sender actively uses. If AUX_RC targets a channel that the RX link also sends, AUX_RC will override it. Configure the start channel above your RC link's active channel range.

When MSP is the primary RX provider (`receiver_type = MSP`), channels covered by `MSP_SET_RAW_RC` are automatically protected. Channels in the `msp_override_channels` bitmask are also protected when MSP RC Override mode is active.

See the [MSP documentation](development/msp/README.md) for the full message format.

## Configuration

The receiver type can be set from the configurator or CLI.
Expand Down
Loading
Loading