Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 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
1938d43
[FIX] Prevent stack smashing via unbounded OSD message array writes
sensei-hacker Feb 25, 2026
83079aa
Use do...while(0) in ADD_MSG macro to prevent dangling-else bugs
sensei-hacker Feb 25, 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
53e2ef8
Rename MAX to FIXED_VALUE and update description
sensei-hacker May 24, 2026
0203a1a
Correct FIXED_VALUE to FIXED-VALUE in Mixer.md
sensei-hacker May 24, 2026
c27e382
add a new target BLADE_F4
hakrc1 Apr 7, 2024
c9aafb6
add new target BLADE_PRO_H7
hakrc1 Apr 7, 2024
456dcf0
deal serial conut
hakrc1 Apr 8, 2024
6af9c7f
Change TARGET_BOARD_IDENTIFIER to 'BLF4' and update features
sensei-hacker May 25, 2026
707f613
Clean up timer definitions in target.c
sensei-hacker May 25, 2026
562de08
Change TARGET_BOARD_IDENTIFIER and SPI bus settings
sensei-hacker May 25, 2026
c8ff2e4
SSD1315 OLEDs also seem to work
tonuonu Jul 12, 2025
d926367
reset free PIDs if coefficients are changed via CLI or MSP
wimalopaan Mar 14, 2026
ce7aa0f
Update displayport_msp_osd.c
breadoven May 29, 2026
958f4a0
fix: make PLL2M dynamic using VCI=1.6MHz formula for SDMMC clock
daijoubu May 30, 2026
722aae1
fix: check HAL_RCCEx_PeriphCLKConfig return for SDMMC PLL2 config
daijoubu May 30, 2026
7c49b74
fix: correct PLL1 VCIRANGE from VCIRANGE_2 to VCIRANGE_1
daijoubu May 30, 2026
7d24bc2
cleanup: trim PLL2 comment block and shorten STATIC_ASSERT slug
daijoubu May 30, 2026
5ea9664
Refactor airspeed selection logic in imuCalculateTurnRateacceleration…
shota3527 Feb 5, 2026
cf5c677
Rename pitotValidForAirspeed to pitotGetValidForAirspeed and update r…
shota3527 Feb 6, 2026
b7b4641
Update comments for airspeed selection logic in imuCalculateTurnRatea…
shota3527 Feb 6, 2026
de00540
fix: correct ICM42688 bus device hardware type on GEPRC targets
sensei-hacker Mar 1, 2026
73df795
implement minimal need for softrf
error414 Mar 3, 2026
abfa703
feat:
error414 May 3, 2026
4331685
improve softRF documentation
error414 May 8, 2026
ec4efa6
change softrf as tested in doc
error414 May 8, 2026
89410f4
fix qodo suggestions
error414 May 18, 2026
9efcbe3
fix qodo suggestions
error414 May 18, 2026
7c2090a
rename servo mixer MAX to Fixed Value
sensei-hacker May 24, 2026
b905af0
Add new target: AEDROXH7 (Airbot Systems AEDROX H7)
sensei-hacker May 30, 2026
033388d
drivers: fix DMA request disable ordering in timer IRQ handlers and s…
sensei-hacker May 26, 2026
633b471
Add support for XTX XT25F128F nor flash chip
May 27, 2026
f650829
JHEMCUF435: enable UART2
dtrbinh May 28, 2026
7bc73ad
feat(target): rename FlyingRC F4Wing Mini target and add BMI270 support
FlyingRC-Official Apr 10, 2026
ad703a6
fix(target): correct default gyro orientations
FlyingRC-Official Apr 10, 2026
1b142d9
Polish FlyingRC F4Wing Mini documentation
FlyingRC-Official May 26, 2026
8fc0c73
Add FlyingRC F4Wing Mini current sensor ADC
FlyingRC-Official May 26, 2026
b59974f
Fix FlyingRC F4Wing Mini PR cleanup
FlyingRC-Official May 26, 2026
d2ff05b
Polish FlyingRC F4Wing Mini review notes
FlyingRC-Official May 26, 2026
2ace7f3
Refine description and manufacturer details for F4Wing Mini
sensei-hacker May 31, 2026
b3109d1
dshot ignore fix
P-I-Engineer May 30, 2026
06fb807
Merge upstream/release/9.1 to resolve conflicts with PR #11365
sensei-hacker May 31, 2026
18af8b3
Merge pull request #11365 from sensei-hacker/fix/pr10048-add-msg
sensei-hacker May 31, 2026
58dc107
FW autotrim: replace servo_autotrim_iterm_rate_limit setting with har…
sensei-hacker Jun 4, 2026
1b167ee
docs: regenerate Settings.md (remove servo_autotrim_iterm_rate_limit)
sensei-hacker Jun 4, 2026
45e14a9
Merge pull request #11617 from sensei-hacker/fix/remove-autotrim-iter…
sensei-hacker Jun 4, 2026
f960698
Bump firmware version to 9.1.0
sensei-hacker Jun 4, 2026
cf19273
Merge pull request #11618 from sensei-hacker/release/bump-version-9.1.0
sensei-hacker Jun 4, 2026
4e68184
Add pinioBoxConfig_t to PG struct sizes reference database
sensei-hacker Jun 4, 2026
b26d647
Merge pull request #11619 from sensei-hacker/release/fix-pg-db-add-pi…
sensei-hacker Jun 4, 2026
5451de6
Update release guide with lessons from 9.1.0-RC1
sensei-hacker Jun 5, 2026
989da80
fix: remove duplicate autotrim macro definitions from servos.c
sensei-hacker Jun 6, 2026
3a06d15
FW autotrim: replace servo_autotrim_iterm_rate_limit setting with har…
sensei-hacker Jun 4, 2026
48829a5
Merge pull request #11625 from sensei-hacker/9.1_catch_up
sensei-hacker Jun 6, 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
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ else()
endif()


project(INAV VERSION 9.0.1)
project(INAV VERSION 9.1.0)


enable_language(ASM)
Expand Down
1 change: 1 addition & 0 deletions cmake/pg_struct_sizes.reference.db
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,4 @@ telemetryConfig_t 58 8
timeConfig_t 4 1
vtxConfig_t 55 4
vtxSettingsConfig_t 12 2
pinioBoxConfig_t 4 1
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
46 changes: 46 additions & 0 deletions docs/ADSB.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ All ADSB receivers which can send Mavlink [ADSB_VEHICLE](https://mavlink.io/en/m
* [PINGRX](https://uavionix.com/product/pingrx-pro/) (not tested)
* [TT-SC1](https://www.aerobits.pl/product/aero/) (tested)
* [ADSBee1090](https://pantsforbirds.com/adsbee-1090/) (tested)
* [SoftRF](https://github.com/lyusupov/SoftRF/wiki/Nano-Edition) (tested)

## TT-SC1 settings
* download software for ADSB TT-SC1 from https://www.aerobits.pl/product/aero/ , file Micro_ADSB_App-vX.XX.X_win_setup.zip and install it
Expand Down Expand Up @@ -63,3 +64,48 @@ AT+SETTINGS=SAVE
* in INAV configurator ports TAB set telemetry MAVLINK, and baudrate 115200
* https://pantsforbirds.com/adsbee-1090/quick-start/

## SoftRF settings
SoftRF supports only MAVLink version 1.
```
set mavlink_version = 1
save
```
The baud rate for SoftRF is 57600. INAV provides minimal support for SoftRF and supports only
the mandatory MAVLink messages: `MAVLINK_MSG_ID_HEARTBEAT`, `MAVLINK_MSG_ID_SYSTEM_TIME`, and `MAVLINK_MSG_ID_GPS_RAW_INT`.

The following messages are not supported: `MAVLINK_MSG_ID_SYS_STATUS`, `MAVLINK_MSG_ID_VFR_HUD`, and `MAVLINK_MSG_ID_ATTITUDE`.

## 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)
4 changes: 4 additions & 0 deletions docs/Display.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ Links to displays:

The banggood.com display is the cheapest at the time of writing and will correctly send I2C ACK signals.

### SSD1315 OLED displays

SSD1315 is newer generation drop in replacement for SSD1306. Tested and working unit is bought from https://www.aliexpress.com/item/1005006901360788.html

#### Crius CO-16

This display is best avoided but will work if you modify it.
Expand Down
4 changes: 2 additions & 2 deletions docs/Mixer.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ Each servo mixing rule has the following parameters:
| 26 | Stabilized PITCH- | Clipped between -1000 and 0 |
| 27 | Stabilized YAW+ | Clipped between 0 and 1000 |
| 28 | Stabilized YAW- | Clipped between -1000 and 0 |
| 29 | MAX | Constant value of 500 |
| 29 | FIXED-VALUE (MAX) | Fixed percentage of total range |

The `smix reset` command removes all the existing motor mixing rules.

Expand All @@ -103,4 +103,4 @@ Other usages can be:
* automatic parachute deployment
* VTOL and especially tail-sitters that require change in mixings during flight mode transition
* crowbar airbrakes
* any kind of servo mixings that should be changed during flight
* any kind of servo mixings that should be changed during flight
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
10 changes: 0 additions & 10 deletions docs/Settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -6052,16 +6052,6 @@ When feature SERIALRX is enabled, this allows connection to several receivers wh

---

### servo_autotrim_iterm_rate_limit

Maximum I-term rate of change (units/sec) for autotrim to be applied. Prevents trim updates during maneuver transitions when I-term is changing rapidly. Only applies when using `feature FW_AUTOTRIM`.

| Default | Min | Max |
| --- | --- | --- |
| 2 | 0 | 50 |

---

### servo_autotrim_rotation_limit

Servo midpoints are only updated when total aircraft rotation is less than this threshold [deg/s]. Only applies when using `feature FW_AUTOTRIM`.
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
22 changes: 11 additions & 11 deletions docs/boards/FlyingRC F4Wing Mini.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
# Board - FLYINGRCF4WINGMINI_NOT_RECOMMENDED
# Board - FLYINGRCF4WINGMINI

This is a cheap flight controller (prices range from $16US to $40US) from an unknown company. Many of the components on this FC are likely to have high tollerances due to the low cost. They sold this FC as compatible with INAV without reaching out to the team or having an official target made. The target only exists thanks to a community contributor (dixi83).
This is a budget-friendly flight controller. Component tolerances and quality control may vary compared with higher-cost hardware, so users should test critical functions carefully before flying. The board has been advertised as INAV-compatible, but it was not originally submitted through the official INAV target process; current support exists thanks to community work, especially the contribution from dixi83.

Hardware issues have been reported on these flight controllers. They are also missing many features. Unlike most other _wing_ flight controllers. This is not an all in one solution. It requires an external power source for servos. So is not as small or light as it first appears.
The manufaturer, FlyingRC, now has a GitHub available: https://github.com/FlyingRC-Official

Hardware issues have been reported on these flight controllers. They are also missing many features. Unlike most other _wing_ flight controllers, this is not an all-in-one solution. It requires an external power source for servos, so is not as small or light as it first appears.

> [!WARNING]
> We recommend you only use this flight controller on very light aircraft that you will keep within line-of-sight distances. Reliability of the hardware is far from guaranteed. So fitting to a larger, heavier aircraft adds unneccesary safety risks. Also, there are essential features missing for other types of flights. Please keep this for small park fliers only, if used at all.
> We recommend you only use this flight controller on very light aircraft that you will keep within line-of-sight distances. Reliability of the hardware is far from guaranteed. So fitting to a larger, heavier aircraft adds unnecessary safety risks. Also, there are essential features missing for other types of flights. Please keep this for small park fliers only.
>
> Also, if you insist on buying one of these. Make sure it's from a somewhere selling it at $16US. Spending $40US on this is a waste of money. You can get better FCs for around that money.
> Also, if you choose to buy one of these, compare pricing carefully. At around US$40 there are more capable flight controllers available.

## Specifications
| | |
|-----|-----|
| MCU | STM32F405RTG6 |
| Gyro | ICM-42605 |
| Gyro | ICM-42605 / BMI270 |
| Baro | SPL06 |
| UARTS | 1, 2 (RX only - SBUS), 4 (DJI), 5 |
| PWM | Six + One (S12 used for LED control) |
Expand All @@ -22,7 +24,7 @@ Hardware issues have been reported on these flight controllers. They are also mi
| Weight | 2.8g |

> [!NOTE]
> There is conflicting information for the power this FC can handle. There are 2 specs providied:
> There is conflicting information for the power this FC can handle. There are 2 specs provided:
> | | |
> |---|---|
> | Voltmeter | 2.5-30V |
Expand All @@ -31,12 +33,10 @@ Hardware issues have been reported on these flight controllers. They are also mi
> There is no ADC for "voltmeter" input. So potentially this FC can run at 1S to 6S. However there are only 2 LDO regulators on the FC itself.

## Notable missing features
* Current sensor
* Current sensor on earlier hardware revisions (V4 adds a backside ADC current-sensor pad)
* Blackbox recording
* Analogue OSD
* PINIO (for VTX power switching etc)
* ADCs (external current sensor, airspeed sensor, rssi, etc)
* Additional ADCs (airspeed sensor, RSSI, etc)
* On-board power rail for servos
* Filtered power for video

All the above can be found on the Matek F405-WMO. Which is a $45US flight controller. Which is 32 x 22 x 12.7 mm and 9g, and has a definite input voltage range of 2S to 6S, and able to handle up to 132A.
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.
Loading
Loading