Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
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
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
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
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.
Loading
Loading