Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
c192e0d
docs: Document CMAKE_BUILD_TYPE=Release for production builds
sensei-hacker Jan 14, 2026
311acd1
XPlane: HITL -> SIM V3, SITL
Scavanger Jan 12, 2026
73193e8
Last fixes + Suggestions
Scavanger Jan 17, 2026
2f20927
Issue #10830 fixes
breadoven Mar 13, 2026
eb9c9ce
fix: disable bootloader variants for targets without storage backend
daijoubu Apr 29, 2026
1eeb467
Update osd.c
breadoven May 14, 2026
394395e
Update navigation_multicopter.c
breadoven May 16, 2026
eee931d
fix descent below 10cm
breadoven May 17, 2026
5522945
Merge PR #11253: HITL/SITL X-Plane improvements
sensei-hacker May 17, 2026
d53f92c
Potential fix for pull request finding
sensei-hacker May 18, 2026
e21b50a
New target: SPEDIXH743
sensei-hacker May 18, 2026
3533d16
correct typo
breadoven May 18, 2026
4ad4a8c
Fix typo in bulding / building
sensei-hacker May 20, 2026
4910807
Merge pull request #11576 from iNavFlight/sensei-hacker-patch-8
sensei-hacker May 20, 2026
4a937f4
fix: prevent LTO from breaking settingGet/settingGetIndex round-trip
sensei-hacker May 20, 2026
ffcb7c8
fixes
breadoven May 21, 2026
f6d4af4
Merge branch 'maintenance-9.x' into abo_osd_flight_eff_fix
breadoven May 21, 2026
4bec42c
Update osd.c
breadoven May 21, 2026
a3e6b54
Merge pull request #11556 from breadoven/abo_osd_flight_eff_fix
breadoven May 21, 2026
44c5934
fix: address code review issues in LTO noinline fix
sensei-hacker May 21, 2026
cfc0033
Merge pull request #11577 from sensei-hacker/fix/settings-lto-mspv2se…
sensei-hacker May 22, 2026
c629c69
SPEDIXH743: fix ADC — use ADC3 for all PC-port pins
sensei-hacker May 22, 2026
5023417
change VBAT_SCALE_DEFAULT = 2100
sunyanmeng963 May 22, 2026
0f061d3
Update navigation_pos_estimator_agl.c
breadoven May 22, 2026
4e2a39e
Merge pull request #11522 from daijoubu/fix-bootloader-targets-no-sto…
sensei-hacker May 23, 2026
8471798
SPEDIXH743: add I2C2 for magnetometer, fix VBAT_SCALE
sensei-hacker May 23, 2026
2f4047b
Merge pull request #11567 from sensei-hacker/new-target-spedixh743
sensei-hacker May 23, 2026
6540caf
Merge pull request #11566 from sensei-hacker/merge-pr-11253
sensei-hacker May 23, 2026
844470a
Merge pull request #11425 from breadoven/abo_surface_mode_fixes
breadoven May 23, 2026
433f547
Merge pull request #11579 from sunyanmeng963/BlueberryH743#FIX-Voltag…
sensei-hacker May 23, 2026
bb61218
Merge pull request #11249 from sensei-hacker/docs/document-cmake-rele…
sensei-hacker May 24, 2026
47f2301
rename servo mixer MAX to Fixed Value
sensei-hacker May 24, 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
4 changes: 2 additions & 2 deletions cmake/stm32.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ function(target_stm32)
cmake_parse_arguments(
args
# Boolean arguments
"DISABLE_MSC;BOOTLOADER"
"DISABLE_MSC;BOOTLOADER;NO_BOOTLOADER"
# Single value arguments
"HSE_MHZ;LINKER_SCRIPT;NAME;OPENOCD_TARGET;OPTIMIZATION;STARTUP;SVD"
# Multi-value arguments
Expand Down Expand Up @@ -377,7 +377,7 @@ function(target_stm32)

setup_firmware_target(${main_target_name} ${name} ${ARGN})

if(args_BOOTLOADER)
if(args_BOOTLOADER AND NOT args_NO_BOOTLOADER)
# Bootloader for the target
set(bl_suffix _bl)
add_stm32_executable(
Expand Down
2 changes: 1 addition & 1 deletion docs/SITL/SITL.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ INAV SITL communicates for sensor data and control directly with the correspondi

AS SITL is still an inav software, but running on PC, it is possible to use HITL interface for communication.

INAV-X-Plane-HITL plugin https://github.com/RomanLut/INAV-X-Plane-HITL can be used with SITL.
[INAV-X-Plane-HITL](https://github.com/RomanLut/INAV-X-Plane-HITL) or [INAV-X-Plane-XITL](https://github.com/Scavanger/INAV-X-Plane-XITL) plugin can be used with SITL.

## Sensors
The following sensors are emulated:
Expand Down
3 changes: 3 additions & 0 deletions docs/SITL/X-Plane.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ X-Plane is not a model flight simulator, but is based on real world data and is
## Aircraft
It is recommended to use the "AR Wing" of the INAV HITL project: https://github.com/RomanLut/INAV-X-Plane-HITL

## INAV Plugin
For advanced SITL features (like OSD, virtual RX, simulated hardware failures, power train simulation) you can use the [INAV-X-Plane-XITL plugin](https://github.com/Scavanger/INAV-X-Plane-XITL)

## General settings
In Settings / Network select "Accept incoming connections".
The port can be found under "UDP PORTS", "Port we receive on". If no connection is established, the port can be changed.
Expand Down
8 changes: 4 additions & 4 deletions docs/VTOL.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ save

![Alt text](Screenshots/mixerprofile_fw_mixer.png)

You must also assign the tilting servos values using the MAX values. If you don't do this the motors will point in the direction assigned by the transition mode.
You must also assign the tilting servos values using the Fixed Value values (formerly called "MAX"). If you don't do this the motors will point in the direction assigned by the transition mode.

# STEP 2: Configuring as a Multi-Copter in Profile 2

Expand All @@ -149,7 +149,7 @@ You must also assign the tilting servos values using the MAX values. If you don

2. **Configure the Multicopter/tricopter:**
- Set up your multi-copter/fixed-wing as usual, this time for mixer_profile 2 and control_profile 2.
- Utilize the 'MAX' input in the servo mixer to tilt the motors without altering the servo midpoint.
- Utilize the Fixed Value values (formerly called "MAX") input in the servo mixer to tilt the motors without altering the servo midpoint.
- At this stage, focus on configuring profile-specific settings. You can streamline this process by copying and pasting the default PID settings.
- you can set -1 in motor mixer throttle as a place holder: this will disable that motor but will load following the motor rules
- compass is required to enable navigation modes for multi-rotor profile.
Expand Down Expand Up @@ -199,7 +199,7 @@ The steps below describe how you can fine-tune the tilting servos to obtian the
2. **Switch to Multicopter/Tricopter:**
- Assuming that you have set up your mixer similar to STEP1 and STEP2, you can now switch to the tricopter/multicopter mode and your servos should be tilting the motors upwards. If this is not the case, reverse the servo(s) in the Outputs tab such that the servo(s) is/are pointed upwards.
- It is OK for the servos not to point exactly 90 degrees upwards, but they should be as close as possible to that position.
- Also, ensure that your MAX values in the Mixer tab are at 100 and -100, so that your servo will move to the maximum position, as shown in the screenshots in STEP1 and STEP2.
- Also, ensure that your Fixed Value values (formerly called "MAX") values in the Mixer tab are at 100 and -100, so that your servo will move to the maximum position, as shown in the screenshots in STEP1 and STEP2.

3. **Adjust the maximum throws for the Multicopter/Tricopter mode:**
- While in tricopter mode, navigate to the Outputs tab and adjust the MIN and MAX endpoint values to position the motors slightly backward.
Expand All @@ -214,7 +214,7 @@ The steps below describe how you can fine-tune the tilting servos to obtian the

5. **Adjsut the vertival position of the tilt servos:**
- Switch back to multicopter/tricopter mode and open the Mixer tab.
- Start adjusting the `MAX` mixer lines from STEP2 such that the servos are pointed exactly upwards. In other words, start reducing the values of 100 and -100 to something like 80 and -80 until the motors are are pointed exaxctly upwards.
- Start adjusting the `Fixed Value` mixer lines from STEP2 such that the servos are pointed exactly upwards. In other words, start reducing the values of 100 and -100 to something like 80 and -80 until the motors are are pointed exaxctly upwards.
- You will have to `Save & reboot` for adjustement for the changes to take effect, so be patient, take your time and don't forget to `Save & reboot`.
- Move the YAW stick to either extreme position and ensure that the servos are tilting the motors both forwards and backwards.
- NOTE: When yawing fully left, the left motor should tilt backwards and the right motor should tilt forwards.
Expand Down
29 changes: 27 additions & 2 deletions docs/development/Building in Linux.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ cmake -DCOMPILER_VERSION_CHECK=OFF ..

`cmake` will generate a number of files in your `build` directory, including a cache of generated build settings `CMakeCache.txt` and a `Makefile`.

## Bulding the firmware
## Building the firmware

Once `cmake` has generated the `build/Makefile`, this `Makfile` (with `make`) is used to build the firmware, again from the `build` directory. It is not necessary to re-run `cmake` unless the INAV cmake configuration is changed (i.e. a new release) or you wish to swap between the ARM SDK compiler and a distro or other external compiler.

Expand All @@ -101,7 +101,7 @@ The generated `Makefile` uses different a target selection mechanism from the ol
Typically, to build a single target, just pass the target name to `make`; note that unlike earlier releases, `make` without a target specified will build **all** targets.

```
# Build the MATEKF405 firmware
# Build the MATEKF405 firmware (includes debug symbols by default)
make MATEKF405
```

Expand All @@ -112,6 +112,31 @@ One can also build multiple targets from a single `make` command:
make -j $(($(nproc)-1)) MATEKF405 MATEKF722
```

### Building All Targets or Release Builds

**⚠️ Important for CI or building many targets:** By default, INAV builds with `-DCMAKE_BUILD_TYPE=RelWithDebInfo`, which includes maximum debug symbols. When building all ~100 targets, this uses **~109 GB of disk space**. The debug symbols are automatically stripped from the final `.hex` files, so they provide no benefit for production builds.

**For production builds, CI, or when building many targets, use Release mode:**

```bash
cd inav
mkdir build-release
cd build-release
cmake -DCMAKE_BUILD_TYPE=Release ..

# Build specific targets
make MATEKF405

# Or build all official release targets
make release
```

**Disk usage comparison:**
- `RelWithDebInfo` (default): ~109 GB for all targets
- `Release`: ~4-6 GB for all targets (96% reduction)

The final `.hex` and `.bin` files are identical in both cases.

The resultant hex file are in the `build` directory.

You can then use the INAV Configurator to flash the local `build/inav_x.y.z_TARGET.hex` file, or use `stm32flash` or `dfu-util` directly from the command line.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,10 @@

https://github.com/RomanLut/INAV-X-Plane-HITL

or for latest HITL features (INAV >= 9.0)

**INAV-X-Plane-XITL**

https://github.com/Scavanger/INAV-X-Plane-XITL

HITL technique can be used to test features during development. Please check page above for installation instructions.
19 changes: 19 additions & 0 deletions docs/development/release-create.md
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,25 @@ gh release list --repo iNavFlight/inav-nightly --limit 5
gh release download <nightly-tag> --repo iNavFlight/inav-nightly --pattern "*.hex"
```

#### Building Firmware Locally (if needed)

**⚠️ Important:** Always use Release mode when building firmware for releases to save disk space:

```bash
cd inav
mkdir build-release
cd build-release
cmake -DCMAKE_BUILD_TYPE=Release ..

# Build all official release targets
make release

# Or build specific targets
make MATEKF405 MATEKF722
```

**Disk usage:** Release mode uses ~4-6 GB vs ~109 GB for default RelWithDebInfo mode (96% reduction). The debug symbols are stripped from final `.hex` files anyway, so Release mode produces identical output.

#### Renaming Firmware Files

Remove CI suffix and add RC number for RC releases:
Expand Down
Loading
Loading