10.0 Release Notes - iNavFlight/inav GitHub Wiki
Please carefully read all of this document for the best possible experience and safety.
Contact other pilots, share experiences, suggestions and ask for help on:
| INAV Discord Server | |
| INAV Official on Facebook |
- Attempts have been made to test as many changes as possible under different conditions. But if you do find any issues, please visit INAV Github to see if the matter has already been raised. If not, then open a new issue report.
Tip
INAV 10.0 Configurator has a settings update and migration tool on the Firmware Flasher page.
Take a backup of your old settings, flash the firmware, then use the Restore Config button and it will migrate your settings.
Or you can still upgrade from 9.1 to 10.0 the old way, manually updating the settings.
- Download and install the new INAV 10.0 Configurator
- Backup configuration with CLI
diff allcommand or use the Diff All and Save to file buttons. - Flash INAV 10.0 WITH Full Chip Erase option enabled.
- Load your 9.1
Diffsettings in to the CLI. - Make a copy of your 9.1
Difftext file and rename it 10.0. Then edit it by removing any incompatible settings you see marked in RED in the CLI. - Once done, in the CLI type in
Defaultsthen save. - Return to the CLI and load your edited INAV 10.0
Difftext file.
If you are updating from a much older versions of INAV. Please follow the instructions on this page.
This feature determines the model’s altitude above ground level using preloaded elevation map (terrain / SRTM data) stored on the SD logging card.
Using the current GPS position, the flight controller identifies the corresponding point in the terrain map, calculates the ground elevation, and derives the altitude above the terrain. PR Link
Terrain data files of your flight location can be converted by using the Map generator tool on the INAV 10 configurator home page.
Map generator
INAV now supports DroneCAN. Which is designed to reliably exchange data between a flight controller and peripheral devices, by using a Controller Area Network (CAN) bus.
By using a peer-to-peer network, every connected device (node) has a unique numeric identifier on the same bus. This can cut-down wiring weight and complexity. As well as providing greater interference rejection on larger models with longer data cable runs.
Setup can be performed in the DroneCAN tab of the INAV 10 configurator.
Pull requests - PR Link - PR Link - PR Link
INAV docs
DroneCAN
DroneCAN driver
INAV VTOL support has been improved to include automated transition. Which is based on Airspeed and a fallback timer.
It also includes stabilization and lift control smoothing, to help provide a seamless transition.
Many other alteration have also been made to overcome previously known issues. PR Link
Please take the time to read through all the documented details.
VTOL setup
Mixer Profile
Navigation handling
New VTOL settings can be found farther down in the release notes.
Fixedwing Auto Speed is a mode that allows your airplane to hold the flight speed you choose, in place of the thrust based cruise speed.
The speed source can either be Air speed or 3D Ground speed. PR Link
Details of setup and tuning can be found here
Terrain AGL Hold works in the same way as fixedwing Cruise mode. But instead of holding a set altitude above launch, it follows the altitude of the terrain under the aircraft. It will cause the aircraft to climb or descend according to the topography of your flight location. PR Link
This mode requires the Terrain AGL altitude data of your flight region to be loaded onto the flight controllers SD logging card.
This change commences the turn based on the aircraft's coordinated-turn radius (speed and nav_fw_bank_angle). Each corner is constructed geometrically and flown as an explicit coordinated arc and a predictive roll-out, that provide more consistent turning and tracking precision.
Loiter circles are held by the same steady law once established. PR Link
There has also been an improvement added to the way turn smoothing is handled. PR Link
INAV Docs - FW Waypoint turning
INAV Docs - Control smoothing
Debugging
INAV Mavlink implementation has now been improved.
- RC override for MAVLink serial RX
- MSP-over-MAVLink tunnel
- Mission upload/download
- Guided navigation control
- Native MLRS receiver integration
For details see the links below.
Docs
INAV docs
MSP messages reference
The OSD command menu system can now be accessed while in-flight via a mode switch. This allows you to alter and tune setting using the sticks, while in a navigation flight mode that holds altitude. PR Link
Note
This feature will NOT allow your changes to be permanently saved to eeprom while in flight. The model must land first.
There are also many other checks to avoid possible loss of control while in the CMS.
More information can be found here in the INAV docs
- Configurable OSD refresh rate. PR link
- GNSS statistics OSD element to allow you see the signal strength or each satellite constellation. PR Link
- OSD custom elements 16-bit support now allows all 512 OSD symbols to be used with the Custom OSD feature. PR Link
- ADSB select the most dangerous vehicle. CPA mode - PR Link
- PINIO add PWM duty control and unify output mode handling. PINIO - Joystick - PR Link
- Various changes made to the wind estimator and virtual pitot to improve accuracy. PR link - PR Link - PR Link - PR Link
- Fixedwing waypoint speed is now definable on each waypoint leg using Auto Speed. WP P1 P2 - PR Link
- Automatic compass mounting-orientation detection during calibration - PR Link
- Spektrum Smart ESC (SRXL2) motor output. PR :ink
- Fix ESC passthrough for Bluejay/AM32 ESCs
- Fix telemetry_hott_unittest link failure from new GPS-mode display
- Fix silent motor/servo outputs from shared advanced-timer DMA request
- Scale the gyro calibration movement threshold with sensitivity. PR-link
- Fix IST8310 and IST3808 compass calibration
- Many more issues have been addressed in the later 10.0 release candidates. Please see the contribution pull requests in the lower part of these notes for more details.
| Name | Description |
|---|---|
| ACOS | Computes ACOS of (Operand A / Operand B) using the fast approximation. If Operand B is 0, 1000 is used. Input is clamped to [-1, 1] and the result is returned in degrees |
| ASIN | Computes ASIN of (Operand A / Operand B) using the fast approximation. If Operand B is 0, 1000 is used. Input is clamped to [-1, 1] and the result is returned in degree |
| ATAN2 | Computes ATAN2 using Operand A as Y and Operand B as X with the fast approximation. Returns a signed angle in degrees in (-180, 180 |
| DISABLE_AUTOSPEED_AIRSPEED | Boolean 0 / 1 allows the 3D ground speed source to be used in place of the airspeed source |
| PINIO PWM |
Operand A = duty cycle (0-100). Operand B = channel (0 for LED strip idle level, 1-4 for PINIO channels |
| Set Altitude Target | Sets the navigation altitude target. Operand A selects the altitude datum and Operand B supplies the target altitude in centimetres |
| Activate RTH | While armed, activates normal return-to-home mode through the same mode selector path as RC RTH. Returns true when RTH mode is accepted |
| Activate Landing | While armed with usable navigation estimates, commands a normal landing at the current position through the waypoint LAND path. This is not emergency landing |
| Name | Description |
|---|---|
crsf_use_legacy_baro_packet |
Sends altitude about start point in GPS telemetry packet. If OFF, GPS has ASL altitude |
osd_adsb_calculation_use_cpa |
Use Closest Point of Approach method for ADS-B traffic distance and collision risk calculation instead of instantaneous distance |
osd_joystick_pinio_channel |
PINIO channel index (0-3) for the camera OSD control pin |
osd_framerate_hz |
Target refresh rate for OSD elements in Hz. Each element is redrawn at approximately this rate |
terrain_enabled |
Enables the use of altitude terrain data from the SD card |
terrain_nav_min_agl |
Minimum held height above ground for Terrain AGL Hold [cm]. Engaging below it commands a gentle climb that levels off about 10 m above the floor |
terrain_nav_lookahead |
Terrain AGL Hold checks terrain up to this distance ahead along the flight path and climbs early for rising ground [m]. 0 disables the lookahead |
mixer_vtol_manualswitch_autotransition_controller |
Starts one automatic VTOL transition each time the switch moves from OFF to ON |
mixer_vtol_transition_airspeed_timeout_ms |
Maximum wait time [ms] for the required airspeed during an airspeed-controlled transition |
mixer_vtol_transition_dynamic_mixer |
Turns on smooth VTOL transition power and control scaling |
mixer_vtol_transition_scale_ramp_time_ms |
Controls time-based smooth VTOL motor, power, and transition-servo movement |
nav_vtol_mission_transition_min_altitude_cm |
Do not start a mission-requested VTOL transition below this altitude |
nav_vtol_mission_transition_user_action |
Chooses which waypoint USER flag (USER1..USER4) tells INAV which flight mode to use at each navigable waypoint |
nav_vtol_transition_fail_action_fw_to_mc |
What INAV should do if FW->MC transition fails |
nav_vtol_transition_fail_action_mc_to_fw |
What INAV should do if MC->FW transition still fails after the final attemp |
nav_vtol_transition_retry_on_airspeed_timeout |
If ON, INAV gets one extra MC->FW attempt after an airspeed timeout during mission or RTH |
vtol_autotransition_always |
When enabled, an armed manual VTOL profile switch between a multicopter-like profile and a fixed-wing profile starts the auto-transition controller instead of switching profiles directly |
vtol_fw_to_mc_auto_switch_airspeed_cm_s |
Extra low-speed fixed-wing safety fallback |
vtol_mc_protection_mode |
Enables extra protection for VTOL aircraft while the active mixer profile is multicopter-like and another mixer profile is fixed-wing |
vtol_mc_thr_reserve_percent |
Throttle range percentage reserved on both low and high side for VTOL MC attitude authority while navigation/altitude control owns throttle |
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 as the transition progresses |
vtol_transition_lift_min_percent |
Lowest lift motor base throttle used during transition, in percent. This scales the throttle/lift component of MC lift motors, not their roll/pitch/yaw stabilisation correction |
vtol_transition_mc_authority_min_percent |
Lowest multicopter stabilisation authority used during transition, in percent |
vtol_transition_to_fw_min_airspeed_cm_s |
Minimum airspeed needed before MC->FW transition is considered complete while a usable transition airspeed source is available |
vtol_transition_to_mc_max_airspeed_cm_s |
When slowing down from FW to MC, the transition is considered complete once airspeed remains at this value or lower for the internal 300 ms confirmation while a usable transition airspeed source is available. |
fw_throttle_rate_limiter |
Minimum time allowed for throttle to increase from minimum to maximum throttle (1000 to 2000us) |
ledstrip_rainbow_delta_deg |
Hue offset in degrees between adjacent LEDs carrying the rainbow overlay |
ledstrip_rainbow_sweep_rate |
Rainbow overlay sweep rate. Higher values sweep faster. 0 freezes the rainbow |
nav_cruise_lock_on_level |
When ON the COURSE HOLD/CRUISE course is locked only once the aircraft has rolled out level after a heading adjustment |
nav_fw_turn_ff_gain |
Turn coordination feed-forward gain [%]. Feeds the geometrically required bank for the current turn radius forward to the roll controller so the PID only trims the residual |
nav_fw_wp_turn_control_ease |
Unmodelled roll-response lag (servo + airframe inertia) added to the computed roll-in/out ease time [ms] for coordinated WP turns |
nav_fw_wp_turn_max_lead_time |
COORD_FLYBY only. Cap on how early a turn may start before the waypoint [ms]. The required lead time grows with speed and turn angle (up to ~10 s for fast models in sharp corners); a too-low cap forces late turn-ins and overshoot |
nav_fw_wp_turn_mode |
How the aircraft turns at waypoints during FW WP missions |
fw_auto_speed_channel |
Channel number used to set desired Auto Speed demand value. Defaults to throttle channel 4 |
fw_auto_speed_level_min_thr |
Minimum throttle for LEVEL flight in auto speed mode when using ground speed as speed reference |
fw_auto_speed_max_speed |
Maximum allowed speed demand for Auto Speed mode |
fw_auto_speed_min_speed |
Minimum allowed speed demand for Auto Speed mode |
fw_auto_speed_thr_smoothing |
Changes how smoothly the throttle responds in Auto Speed mode |
nav_fw_auto_speed_p |
P gain of auto speed PID controller |
nav_fw_auto_speed_i |
I gain of auto speed PID controller |
nav_fw_auto_speed_d |
D gain of auto speed PID controller |
esc_srxl2_reverse_channel |
For an SRXL2 Smart ESC, the 1-based auxiliary channel its "Thrust Rev." setting selects to arm reverse |
esc_srxl2_telemetry |
Read ESC telemetry off the SRXL2 link. Only applies when motor_pwm_protocol is SRXL2, where telemetry shares the throttle wire and so cannot be turned off by leaving a port unassigned as it would be for a conventional ESC |
esc_srxl2_telemetry_rate |
How often ESC telemetry arrives from an SRXL2 Smart ESC, in readings per second |
For reference : All INAV settings can be found here.
| Name | Description |
|---|---|
frsky_use_legacy_gps_mode_sensor_ids |
Old |
led_pin_pwm_mode |
Replaced / Upgraded |
nav_fw_wp_turn_smoothing |
Replaced / Upgraded |
- LSM6DXX - IMU driver
- LSM6DS320x - IMU driver
- ICM40609D - IMU driver
- LIS2MDL - magnetometer
- INA226 - battery meter
- BY25Q64 - flash chip
- ALEXF722V3
- DAKEFPVF405WING
- HGLRCF722LITE
- HUMMINGBIRD_FC305_H7
- ORBITH743v2
- SYNERDUINOH7
- SYNERDUINOH7A
- SYNERDUINOSTM_F405
- SYNERDUINOSTM_F405A
- ZEEZF72020V3 (SPI flash)
- ZEEZF73030V3 (SD card)
- RP2350_PICO - Info - PR Link
Tip
Manufacturers. You can be alerted of changes that may affect your products by subscribing to the #technical-changes channel on the INAV Discord Server
A big thanks to everyone who has contributed to INAV 10.0. And a special thanks to the project collaborators.
- Remove old modes and GNSS sensors from SmartPort telemetry by @MrD-RC in 10362
- CRSF Baro Altitude and Vario, AirSpeed (fixed conflicts from #11100) by @sensei-hacker in 11168
- Add arc functions to ipf by @xznhj8129 in 11179
- Configurable OSD refresh rate by @hntirgeam in 11206
- MSP sync with IPF + poshold local targets by @xznhj8129 in 11230
- Add support for dronecan and initial GPS driver by @daijoubu in 11313
- MSP spec versioning by @xznhj8129 in 11343
- Blackbox - remove unused setting by @error414 in 11236
- ADSB selected the most dangerous vehicle by CPA calculation by @error414 in 11346
- Add extra GPS satellite statistics OSD widget by @tipoman9 in 11371
- PINIO: add PWM duty control and unify output mode handling by @sensei-hacker in 11375
- Add CRSF sensor input on dedicated UART by @sensei-hacker in 11379
- Eliminates: 1 function call + internal state check per gyro sample by @DzikuVx in 11398
- Disable SIM telemetry for F722 targets due to lack of FLASH memory by @DzikuVx in 11399
- feature/inav terrain AGL by @error414 in 11438
- Minor PID controller improvement: use cache millis instead of calling by @DzikuVx in 11439
- flight/pid: add D-term pre-differentiation LPF (dterm_lpf2_hz) by @19379353560 in 11464
- SET_ALT fixes and tightening by @xznhj8129 in 11491
- Update STM32F7xx HAL to v1.3.3 by @daijoubu in 11514
- Remove STM32F4 HAL as it is not used in the project by @daijoubu in 11523
- Add new target DAKEFPVF405WING by @engineer-dakefpv in 11525
- DroneCAN: Add node table, CLI status, and MSP2 node query commands by @daijoubu in 11527
- telemetry: guard CRSF ESC RPM/temp against stale data by @sensei-hacker in 11536
- Implement auto vtol smooth transition state by @mart1npetroff in 11553
- Output assignment: firmware-authoritative MSP2 READ/QUERY API by @sensei-hacker in 11564
- PT1 low pass filter clean up + fixes by @breadoven in 11571
- Fix CRSF 0x09 baro/vario unpack and duplicate airspeed function by @sensei-hacker in 11572
- refactor: simplify and reduce flash usage in osd.c and fc_msp.c via shared helpers by @sensei-hacker in 11573
- Update STM32H7xx HAL to v1.11.6 and CMSIS Device to v1.10.7 by @daijoubu in 11578
- chore: remove accidentally tracked build_hw/ directory by @daijoubu in 11583
- fix datatype of timerCount by @sensei-hacker in 11584
- Fixed wing Auto Speed Mode by @breadoven in 11595
- DroneCAN: Fix H7 FDCAN and F7 bxCAN driver configuration by @daijoubu in 11607
- OSD custom elements: add 16-bit icon support by @error414 in 11608
- MSP: Add MSP2_INAV_WIND (0x2231) to expose wind estimator by @MartinovEm in 11611
- Improved wind estimator validity check by @breadoven in 11614
- Add common 3D speed by @breadoven in 11628
- AEDROXH7: fix LED strip DMA conflict with motor outputs by @sensei-hacker in 11630
- targets: add commented CAN bus pins to 7 H7 targets by @daijoubu in 11631
- Improved virtual pitot calculation method by @breadoven in 11646
- MAG: add LIS2MDL support by @bkleiner in 11655
- Add INA226 battery meter support by @FlyingRC-Official in 11656
- Add per-index ADS-B vehicle MSP commands (MSP2_ADSB_VEHICLE + MSP2_ADSB_VEHICLE_COUNT) by @MartinovEm in 11663
- Fixed wing throttle rate limiter by @breadoven in 11664
- Append guidance course (navDesiredHeading) to MSP_NAV_STATUS by @MartinovEm in 11665
- Virtual pitot refactor + other pitot improvements by @breadoven in 11668
- Add BUZZER as a runtime-assignable timer output mode by @sensei-hacker in 11675
- Auto-clean stale pr-test-builds releases by @sensei-hacker in 11678
- Fix build-SITL-Mac VLA-folding-constant error in log.c by @sensei-hacker in 11679
- feat(dronecan): add Dynamic Node Allocation (DNA) server by @daijoubu in 11688
- Fix BEEPER timer sibling pad mislabeling and expose them as PINIO by @sensei-hacker in 11686
- feat(dronecan): on-demand GetNodeInfo, GetSet, ExecuteOpcode, RestartNode via async slot by @daijoubu in 11683
- Add ORBITH743v2 target by @orbittechnologyx in 11701
- Fix STM32H7 DMA stream collisions on 5 targets by @sensei-hacker in 11705
- Automatic compass mounting-orientation detection during calibration by @sensei-hacker in 11708
- SITL & X-Plane simulation fixes by @xznhj8129 in 11712
- Regenerate MAVLink headers with the STorM32 dialect by @xznhj8129 in 11713
- Split MAVLink telemetry into modules with multi-port runtime by @xznhj8129 in 11714
- MAVLink stream control, protocol replies, and telemetry detail by @xznhj8129 in 11715
- MAVLink mission transfer state machine by @xznhj8129 in 11716
- MAVLink and MSP command-control parity by @xznhj8129 in 11717
- MSP-over-MAVLink tunnel by @xznhj8129 in 11718
- dronecan: log cumulative bus-off count to blackbox slow frame by @daijoubu 11729
- Add developer docs: settings/PG system, Betaflight-target porting rules, timer-mux pattern by @sensei-hacker in 11730
- MAVLink: refine reconnect STATUSTEXT (per-peer tracking, snapshot rate limit) by @xznhj8129 in 11731
- Add debugging developer docs: AT32 recovery, bootlog, USB MSC, GCC preprocessing by @sensei-hacker in 11733
- docs: add MSP message routing architecture reference by @sense-hacker in 11734
- docs: add target-development reference docs by @sensei-hacker in 11736
- docs: fixed-wing pitch-to-throttle tuning guides by @sensei-hacker in 11737
- Fix broken SITL build: unbalanced #if SITL_BUILD in taskSystem() (merge #11727 artifact) by @xznhj8129 in 11738
- Fix NAV_MAX_WAYPOINTS redefinition breaking FISHDRONEF4 build by @sensei-hacker in 11739
- Improve wind estimator validity reliability by @breadoven in 11740
- docs: PID-to-servo computation and build system references by @sensei-hacker in 11741
- docs: fix master-branch merge-flow error in Development.md, add git workflow guidance by @sensei-hacker in 11742
- DAKEFPVF722: add LSM6DXX IMU support by @tviktinho in 11743
- docs: rename AGENT.md to AGENTS.md, fix stale/inaccurate content by @sensei-hacker in 11745
- Fix macro redefinition and unit test failures caused by shared platform.h leak by @sensei-hacker in 11746
- Dakefpvh743xx add lsm6 dxx by @engineer-dakefpv in 11747
- Fix LED output mode falsely flagging sibling timer channels by @sensei-hacker in 11749
- bug fix and add jedec id by @somethingjustlike in 11753
- Add optional SDIO pin pull-ups by @LYNHQQ in 11754
- Add target HUMMINGBIRD_FC305_H7 by @YNHQQ in 11755
- Enable Fixed Wing Auto Speed During Waypoint Mission by @breadoven in 11757
- Add HGLRC Specter F722 Lite target (HGLRCF722LITE) by @zafbangash in 11763
- Add ICM40609D IMU driver by @sensei-hacker in 11765
- Show RSSI dbm as negative number on OSD consistently by @RomanLut in 11769
- HoTT telemetry improvements by @Ralfde in 11766
- Update docs - softserial limit by @RomanLut in 11771
- CLI "showdefaults" fix by @breadoven in 11781
- Add in flight OSD menu mode via switch by @TheCryxh in 11782
- Terrain AGL Hold — terrain following for fixed wings by @MartinovEm in 11785
- FW nav: replace roll PT1 smoothing with a triggered S-curve (no steady-state lag) by @b14ckyy in 11804
- Bring size-diff baseline fixes to maintenance-10.x by @sensei-hacker in 11805
- Fix silent motor/servo outputs from shared advanced-timer DMA request lines on 29 targets by @sebsei-hacker in 11815
- Added configs for supporting LSM6DS320x on ORBITF435 by @orbittechnologyx in 11818
- Compile-time-enforced bounds for fixed-layout MSP SET handlers by @sensei-hacker in 11823
- Add sticky overrun tracking to sbuf_t for MSP variable-layout reads bt @sensei-hacker in 11824
- Fix: Remove static CRC table duplication in MAVLink helpers by @sensei-hacker in 11825
- Use Measurement For Fixed Wing Position PID D Term by @breadoven in 11831
- Terrain - update DOC file by @error414 in 11833
- Sweep MSP SET handlers to lenient dataSize gates (forward compat) by @sensei-hacker in 11838
- fix(f7): restore MSC by skipping double USB init in MSC boot; update USB device library to v2.11.3 by @sensei in 11843
- docs(msp): fix enum doc generator double-counting exclusive #ifdef branches by @sensei-hacker in 11844
- fix(ORBITH743v2): register ICM40609D under its own hardware type and slot by @sensei in 11845
- Terrain - dedicated OSD element by @error414 in 11846
- Auto-detect OLED controller type (SSD1306/SH1106/SH1107/SSD1309) by @sensei-hacker in 11849
- Virtual Pitot Fix by @breadoven in 11853
- New target: RP2350_PICO (Raspberry Pi Pico 2 / RP2350) — first RP2350 port of INAV by @sensei-hacker in 11854
- Fixed Wing Wind Estimator Fixes by @breadoven in 11855
- ci: publish .uf2 test builds (RP2350) alongside .hex in PR releases by @sensei-hacker in 11856
- Fix telemetry_hott_unittest link failure from new GPS-mode display code by @sensei-hacker in 11866
- Suppress -Waddress-of-packed-member warnings from vendored MAVLink headers by @sensei-hacker 11867
- Fix INVALID SETTING / arming block on 512 KB targets by @xznhj8129 in 11868
- Add support for Boya BY25Q64 by @LYNHQQ in 11881
- Fix Swap Roll & Yaw and invert overrides not applied to servos by @sensei-hacker in 11890
- docs: Terrain AGL Hold — spell out the RTH-behind-a-ridge risk and recommend nav_rth_alt_mode = MAX by @MartinovEm in 11889
- Fix ESC passthrough for Bluejay/AM32 ESCs (EFM8BB51x device detection) by @sensei-hacker in 11936
- Remove OSD Debug Field Duplicate Last Line by @breadoven in 11935
- request 2 Target for Synerduino boards by @synersignart in 11756
- Add LSM6DXX gyro support for DAKEFPVF722X8 by @sensei-hacker in 11949
- Report CI size-diff RAM delta per linker region, not combined bu @sensei-hacker in 11886
- FW nav: replace roll PT1 smoothing with a triggered S-curve (no steady-state lag) by @b14ckyy in 11804
- cms: fix menu stack overflow and other safety issues found after 11782 by @cabcrab in 11876
- Fix ADS-B stale calculated values when a slot is recycled by @sensei=hacker in 11839
- Fix spurious per-region size deltas when a target's regions are renamed by @sensei-hacker in 11948
- Fix mistyped target macros that silently disable features by @sensei-hacker in 11955
- Shrink WS2811/WS2812 LED strip DMA buffer with a chunked circular refill by @sensei-hacker in 11798
- Fix link failure on non-ADC targets from unconditional checkBatteryVoltageState() call by @sensei-hacker in 11865
- Fix inverted OSD vertical wind display; document earth-frame Z convention by @sensei-hacker in 11869
- MSP messages CI, update and improvements by @xznhj8129 in 11892
- SYNERDUINOH7/CMakeLists.txt: fix line ending by @sensei-hacker in 11966
- Kalman Filter NaN Fix by @breadoven in 11959
- UART-IRQ - UART F7/H7 - clear stale TC flag instead of calling HAL_UA bt @error414 in 11931
- Compass: add MAG debug mode for raw magnetometer logging by @ Raffi1202 in 11924
- Fix inverted OSD vertical wind display; document earth-frame Z convention by @sensei-hacker in 11869
- Fix the Parameter Group Version Check so it can run on pull requests by @Raffi1202 in 11885
- Describe what tpa_pitch_compensation and fw_d_level really do by @Raffi1202 in 11904
- Fix inverted tpa_pitch_compensation documentation and comment by @sensei-hacker in 11956
- Guard MSP2_SENSOR_* receivers against short payloads by @sensei-hacker in 11822
- Fix silent DSHOT loss on 11 F4/F7 targets from shared DMA request lines by @sensei-hacker in 11803
- Backport pr-test-builds cleanup to release/9.1; sweep oldest-first by @sensei-hacker in 11972
- Fix IST8310 compass torn reads by checking DRDY before reading by @sensei-hacker in 11974
- Fix IST8308 compass torn reads by checking DRDY before reading by @sensei-hacker in 11975
- rp2350: fix ws2811UpdateStrip signature mismatch with shared header by @sensei-hacker in 11976
- Fix the Parameter Group Version Check so it can run on pull requests (backport to release/9.1) by @sensei-hacker in 11951
- Stop listing two protocols that were removed in 2021 by @MrScothh in 11957
- Scale the gyro calibration movement threshold with sensitivity by @Raffi1202 in 11905
- Do not dereference the SD card metadata that may not be there by @MrScothh in 11964
- Mavlink Yaw and Landing fixes by @xznhj8129 in 11872
- Order the SD card DMA read completion against the cache invalidation by @Raffi1202 in 11903
- Spektrum Smart ESC (SRXL2) motor output by @MrScothh in 11947
- Fix DSHOT circular DMA by @error414 in 11970
- Fixed wing: predictive coordinated waypoint turns by @b14ckyy in 11812
- Experimental: Use fast_powf instead of powf for better performance in PID by @DzikuVx in 11408
- docs: record the Configurator 9.x - 10.0 settings migration profile by @b14ckyy in 11988
- LED Strip: add rainbow overlay by @HereComesWhitey in 11820
- cms: fix menu stack overflow and other safety issues found after 11782 by @cabcrab in 11876
- blackbox: optionally log the second gyro on dual-IMU boards by @MrScothh in 11933
- Remove OSD Debug Field Duplicate Last Line by @breadoven in 11935
- SYNERDUINOH7/CMakeLists.txt: fix line ending by @sensei-hacker in 11966
- Fix I2C3 SCL alternate function on AT32 PB13 by @ LYNHQQ in 11877
- Fixed wing: flash/RAM pass on the coordinated turn coordinator (behaviour-identical refactor) by @b14ckyy in 11996
- Split ZEEZF7V3 into ZEEZF72020V3 (SPI flash) and ZEEZF73030V3 (SD card) by @sensei_hacker in 12004
- docs: the Smart ESC's red wire is its BEC, not 5 V by @MrScothh in 12017
- Harden four MSP request paths by @Raffi1202 in 11899
- Reject JUMP waypoints with an out-of-range target by @Raffi1202 in 11900
- Derive the timer interrupt context index from the timer table by @Raffi1202 in 11901
- Do not let a switched off beeper source block the output by @Raffi1202 in 11907
- Log amperage for every current meter type, and default SD-only targets to SD blackbox by @Raffi1202 in 11902
- Let the motor test drive DSHOT motors below the configured idle by @Raffi1202 in 11908
- Reset FW throttle rate limit when switching to a non-limiting battery profile by @sensei-hacker in 11980
- osd: fix one byte out-of-bounds write when drawing HUD POIs by @Raffi1202 in 11927
- Fixed wing emergency landing: motors follow failsafe throttle only by @b14ckyy in 12041
- spi: H7 ran SPI2-4, and F7 SPI4, at twice the clock asked for by @MrScothh in 12032
- MAX7456: bound the clear-display wait by @xhlsa in 11941
- EXTI: clear pending bits before dispatching handlers by @xhlsa in 11942
- Fix unittest link break: stub navigationIsExecutingAnEmergencyLanding by @sensei-hacker in 12051
- Require nav_fw_launch_accel for throw launch detection by @Raffi1202 in 11911
- AT32F43x: assert .bss doesn't overlap the reserved stack/heap region by @ sensei-hacker in 12047
- MAVLink tunnel: resume MSP replies that do not fit the TX buffer by @b14ckyy in 12036
- Drop mission-upload snapshot and fix a stale NAV_WP_MODE race by @sensei-hacker in 12052
- cmake: make the Windows build work again by @Grabli666 in 12050
- remove accidental bootlog define by @sensei-hacker in 12040
- ESC passthrough H7/F7: give the motor pin its timer AF back on release by @error414 in 12038
- 4WAY-AM32: after send init for simonk wait 5ms by @error414 in 12037
- osd: fix sidebar scale scroll direction by @Raffi1202 in 12025
- Docs: RAM and flash coding guidelines from the size-optimisation series by @b14ckyy in 12020
- msp: put the host first in a serial passthrough by @MrScothh in 12003
- srxl2: a frame received in this cycle is not 49 days old by @MrScothh in 12002
- Fix: the second gyro is read while the log is paused by @MrScothh in 11995
- Add support for ALEX RC ALEXF722V3 flight controller by @Alex-rc-system in 11898
- RAM: move MSC-only buffers out of the tight RAM region on F4/AT32, smaller MAVLink route table @b14ckyy in 12015
- fix: extend SBUS2 and UART inversion guards to include RP2350 by @sensei-hacker in 11592
Full Changelog: https://github.com/iNavFlight/inav/compare/9.1...10.0
