- Ability to trim pitch angle for level flight (@dzikuvx)
- Accelerometer vibration mitigation
- Add d-term to control loop on fixed wing aircraft (@avsaase)
- Adjustments
- Airplane launch mode improvements
- Airspeed estimation
- All changes:
- Battery capacity monitoring
- Beitian bn-880 extremely slow · issue #3442 · inavflight/inav
- Beitian bn-880 gps doesn’t work with inav >= 1.6.0 · issue #2285 · inavflight/inav
- Bugfixes
- Bugs fixed
- Changed default settings for fixed wing throttle smoothing in navigation modes (@airwide)
- Changed settings
- Cli parameter renaming
- Cli parameter renaming / new parameters
- Configure speed source for dji osd (@dzikuvx)
- Continuously trim servos on fixed wing (@avsaase)
- Delayed safehome (@tonyyng)
- Developers
- Do not slow down in wp mission when approaching a waypoint (@dzikuvx)
- Emergency arming
- Fixed wing rth spiral climb option (@breadoven)
- Font update required
- Gsm sms telemetry / commands
- Gyro processing improvements (@dzikuvx)
- How to choose map provider
- Improved autotune for fixed wing (@avsaase)
- Improved flight performance on planes with rudder (@avsaase)
- Inav configurator
- Installation
- Issue trackers
- Known bugs
- Linux
- Logic conditions
- Make cw270flip default mag alignment (@dzikuvx)
- Mission waypoints management from the cli
- Nav launch (airplane launch assistant) available as feature
- New altitude mode for rth
- New boards
- New drivers and protocols
- New experimental features for multirotors
- New failsafe system
- New features
- New navigation-specific osd indications
- New piff controller for fixed-wing aircraft
- New settings
- New targets:
- Non-volatile storage for waypoint missions
- Optic flow calibration
- Option for local plus codes on osd (@avsaase)
- Other
- Out of range missions
- Possibility to change the vtx power level in flight
- Rc via mavlink & mavlink v2 support (@harry1453)
- Removed
- Removed settings
- Rename nav cruise mode to nav course hold and add cruise mode which is equivalent to crsh ah (@shellixyz)
- Renamed passthrough flight mode (fixed wing)
- Renamed settings
- Rth sanity checking
- Running with debug | inspector
- Secondary imu
- Stick arming
- Support
- Support for inav radar
- Switched rth preset altitude override (@breadoven)
- Turtle mode aka flip over after crash (@kernel-machine)
- Upgrading from 2.0.0
- Upgrading from 2.1.0
- Upgrading from 2.5 or older version
- Upgrading from 2.6, 2.6.1
- Vtx_smartaudio_early_akk_workaround option (@romanlut)
- Warnings
- Waypoint mission pre-arming check
- Windows
- Wp mission landing elevation setting (@breadoven)
- Wp mission sealevel altitude datum (@breadoven)
- Аппаратные требования
- Барометр
- Где лучше всего установить gps модуль?
- Дополнительные датчики, как их настроить?
- Зачем нужен gps на квадрокоптере?
- Какой gps модуль лучше купить?
- Компас/магнетометр
- Настраиваем gps в betaflight
- Соединяем gps и полетный контроллер
- Тестирование
- Update egnos prn mask to latest egsa definition, fix sbas for non-galileo usage (@stronnag)
Ability to trim pitch angle for level flight (@dzikuvx)
- The flight controller trimming for level flight on Fixed Wings is no longer a recommended way to do so
- Board ROLL and PITCH setting should be changed only when the flight controller is not installed parallel to the wings plane
- pitch trim should be done using
fw_level_pitch_trim
setting. 5fw_level_pitch_trim
means airplane nose should be raised 5 deg from level - Flight mode
AUTO LEVEL
will automatically trim the pitch angle when ANGLE or HORIZON flight modes are used
Accelerometer vibration mitigation
The altitude/position estimation code is now aware of high accelerometer vibration making INAV to counteract the uncontrolled climb in navigation modes #486. There is no OSD indication of excessive vibration yet.
WARNING: This is an emergency mode of operation. The uncontrolled climb is caused by accelerometer clipping when vibration exceeds the range accelerometer is capable of measuring. This effect is induced by vibration (usually high frequency) and can’t be fully compensated by software filtering so you should soft-mount your FC to minimize the risk of this happening.
Add d-term to control loop on fixed wing aircraft (@avsaase)
You can now use the D-gain to improve the stabilization, especially on small and agile airplanes. Until we have a better understanding of how to tune this on a range of airplanes, the D-gain is set to zero by default and not tuned using autotune. Please report good performing tunes in #6709.
Adjustments
There are now separate adjustments for D and CD/FF gains. This breaks compatibility with diffs from previous releases. Check the adjustments tab in the configurator after restoring a diff to makes sure they are set up correctly.
Airplane launch mode improvements
It’s now possible to specify idle throttle for pre-launch (nav_fw_launch_idle_thr) and time to gradually increase throttle after launch is detected (nav_fw_launch_spinup_time). This allows to have motor spinning even when using MOTOR_STOP feature and will put less stress on ESCs by allowing them to spin up the motor to launch throttle gradually instead of requesting an instantenious throttle change.
Airspeed estimation
It is now possible to get an estimation of the airspeed for fixed wing aircrafts by enabling the “Virtual pitot sensor”. This feature is experimental. It shouldn’t cause any issue though since it is only for now displayed on the OSD and used by the turn assistant.
All changes:
- New mixer inputs for stabilized axises (@DzikuVx , #4148)
- STM32F7 Optimizations (@DzikuVx , #4263, #4483)
- LTM Improvements (@stronnag ,#4423)
- Temperature Sensing Improvements (@shellixyz ,#4416)
- Optimizing CMS to save FLASH (@fiam ,#4380)
- Enforcing Board Allignment Limits (@fiam ,#4420)
- Logic conditions framework (@DzikuVx , #4144, #4561, #4555, #4551)
- MSP on VPC Fixes (@digitalentity ,#4468)
- PT1 Filter option for Acc/Gyro (@giacomo892 ,#4454,#4676)
- Use imperial units for altitude for UK (@shellixyz ,#4445)
- Convert NAV POS/VEL PID to PIDFF (@DzikuVx , #4326, #4624)
- PH Settings aren’t anymore inside PID conf. but have dedicated settings (@DzikuVx , #4484)
- Fixed Wing FF PIDFF setting now is no more “D” in the configurator (@DzikuVx , #4482)
- Make Dterm FIR filter configurable (@DzikuVx , #4475 , #4538)
- Update temperature related MSP messages (@shellixyz ,#4449)
- Set default home reset to FIRST ARM (@DzikuVx , #4499)
- Added Servo output logging in BB (@hali9 , #4501)
- Fixing the left-right arrow mismatch in the OSD fonts (@OlivierC-FR , #4502)
- Add dedicated OSD elements for map scale and reference (@fiam ,#4386)
- Manage WPs from CLI (@hali9 , #4473)
- Remove all MAX7456 specific code, replace it with generic interfaces (@fiam ,#4384)
- Refactor handling of RC input data (@fiam ,#4232)
- Replace DEBUG_TRACE with LOG (@fiam ,#4385)
- Add MAMBAF405 target (@shellixyz ,#4521)
- Fix emergency landing not engaging from initial RTH climb (@digitalentity ,#4582)
- SmartAudio 2.1 Support (@digitalentity ,#4596)
- DSHOT Timers Fixes (@digitalentity ,#4607)
- GPS distance from home can be > 65km (@giacomo892 ,#4617)
- OMNIBUSF4V3_SFTSRL2 target (@shellixyz ,#4626)
- Iterm Relax (@DzikuVx , #4630)
- Remove Sticks Arming (@DzikuVx , #4640)
- serial CLI command improvements ( n -n) (@fiam ,#4232)
- Support for bypassing extra arming safety (@fiam ,#4623)
- Airmode improvements (@DzikuVx , #4634)
- Optic flow & surface improvements (@digitalentity ,#3795,#4680)
- Ignore acceleration in estimated position when clipping or high vibration (@digitalentity ,#4681)
- Implement RTH Straight (@shellixyz ,#4188)
- g-force OSD items and stats (@shellixyz ,#4696)
- Automatic magnetic declination improvements (@fiam , @giacomo892 , #4713)
- Current consumption alarm in OSD (@nmaggioni ,#4715)
- Virtual pitot sensor (EXPERIMENTAL) (@hali9 ,#4712)
- Added Matek Serialshot (@digitalentity ,#4646)
- GSM Telemetry SIMCom modules (@potater1 ,#4388)
- Added option to continue mission out of radio range (@shellixyz ,#4731)
- Smarter RoC/RoD acceleration limit (@digitalentity ,#4448)
- I2C: Reduce timeout on F7 from 10s to 10ms (@fiam ,#4753)
- Make INAV 2.1 servo mixing rules compatible with 2.2 (@shellixyz ,#4763)
- OSD new icons for the Gforce (@OlivierC-FR ,#4772)
- add FW servos to FURYF4 / MAMBAF405 (@giacomo892 ,#4769)
- Add MATEKF411 target with one full duplex softserial: MATEKF411_FD_SFTS (@shellixyz ,#4754)
- RTH Improvements (@digitalentity , @shellixyz , #4769)
- CMS: Add support for editing FF term in the PID tuning menu (@fiam , #4801)
- Improve LEDSTRIP clock (@digitalentity ,#4805)
- Add vario sensor to CRSF telemetry (@shellixyz , #4791)
- Increase default FW max bank angle from 20 to 35° (@shellixyz , #4785)
- Change VTX power level via switch (@L4ky , #4717)
- OSD: Added VTX power indicator (@shellixyz , #4730)
Battery capacity monitoring
It is now possible to display the remaining battery capacity in the OSD and also use the battery capacity thresholds (battery_capacity_warning and battery_capacity_critical) for battery alarms.
For the capacity monitoring to work you need a current sensor (CURRENT_METER feature). For monitoring energy in milliWatt hour you also need voltage measurement (VBAT feature). For best results the current and voltage readings have to be calibrated.
Beitian bn-880 extremely slow · issue #3442 · inavflight/inav
Beitian bn-880 gps doesn’t work with inav >= 1.6.0 · issue #2285 · inavflight/inav
Anyone else had issues with the Beitian BN 880 not working with iNav > 1.4?
I see the I2C error count climb, and when it’s in a climbing state, if I disconnect the BN-880 entirely, it still climbs making me think the I2C has got itself in a bad state.
I’ve tried putting a 1K resistor between the 5V, SCL and Ground as well as one between 5V, SDA and ground. I’ve tried swapping those for a 4.7K with no change either…
Running under a OMNIBUS F4 target (with DYS F4 Pro)
Seems to work great in Betaflight
Bugfixes
- Fix flash overflow on F7 targets due to usage of flash_split (@digitalentity, #2535)
- Update BLHeli passthrough to support BLHeli_32
- Fix AK8963 compass support (@digitalentity, #2551)
- Fix timer clash between motors and servos on PIKOBLX (@shellixyz, #2513)
- Fix non-working UART7/8
- Fix non-booting OMNIBUSF4 (some variants with MPU6500-family gyro) (@shellixyz, #2575)
- Fix support for dataflash chips larger than 16MiB (@digitalentity, #2633)
- Fix VCP issues on F7 targets (@digitalentity, #2647)
- Fix potential buffer overflow in MSPv2 parsing (@digitalentity, #2689)
- Fix OSD statistics displaying issues on NTSC screens (@krzysztofmatula, #2721)
- Fix RCSplit not being detected (increase timeout) (@digitalentity, #2767)
- Fix OSD blinking on some flawed OSD hardware (allow software blinking) (@fiam, #2452)
- Fix P gains for Heading Hold not available in CLI (@DzikuVx, #2669)
- Fix arming with AUTOTRIM enabled (@giacomo892, #2756)
- Fix hardfault in ledstrip driver due to division by zero (@digitalentity, #2790)
- Fix non-working channel forwarding on REVO (@digitalentity, [#2870])
- Fix midrc MSP min/max checks preventing to set midrc outside of 1401:1599 from the configurator (@shellixyz, #2865)
Bugs fixed
- Telemetry and MSP data corruption on F1 (UART1 only) and F4 (all UARTs) targets
- Motor 6 output on REVO is now functional
- Occasional reboot of the board when bluetooth module is disconnected
- Rare complete stall of attitude/navigation system due to invalid gyro/acceleration data
- LED STRIP was blinking out one extra satellite when signalling GPS fix
3d_deadband_throttle
setting was handled incorrectly by MSP which caused corruption- iBUS telemetry not functional bug, many updates
- Temporary fix for a Sparky 2 compass bug
- Gave more confidence to accelerometer in IMU computations – should help with attitude drift issue
- Removed GPS centrifugal forces compensation – was not working properly
- Throttle opening briefly when ARMing the machine into Altitude Hold mode
- HoTT telemetry altitude and climb rate reporting fixed
- Fixed bug when GPS glitch (position/velocity error without loosing GPS FIX) might cause drone to crash
- HOME_RESET feature will now reset the Home position only once, when switch is flipped from OFF to ON
Changed default settings for fixed wing throttle smoothing in navigation modes (@airwide)
Throttle smoothing in the navigation modes on fixed wing aircraft is now enabled by default. This results in smoother throttle management and more efficient cruising.
Changed settings
Setting | Description |
---|---|
blackbox_device | Default: target |
log_level | Default: ERROR |
nav_overrides_motor_stop | When set to OFF the navigation system will not take over the control of the motor if the throttle is low (motor will stop). When set to OFF_ALWAYS the navigation system will not take over the control of the motor if the throttle was low even when failsafe is triggered. When set to AUTO_ONLY the navigation system will only take over the control of the throttle in autonomous navigation modes (NAV WP and NAV RTH). When set to ALL_NAV (default) the navigation system will take over the control of the motor completely and never allow the motor to stop even when the throttle is low. This setting only has an effect on NAV modes which take control of the throttle when combined with MOTOR_STOP and is likely to cause a stall if fw_min_throttle_down_pitch isn’t set correctly or the pitch estimation is wrong for fixed wing models when not set to ALL_NAV |
nav_rth_climb_first | New: ON_FW_SPIRAL |
platform_type | Default: MULTIROTOR |
receiver_type | Default: target |
rssi_source | Default: AUTO |
Cli parameter renaming
Some CLI parameters are renamed to support new features or to better reflect their meaning:
Old name | New name(s) |
---|---|
inav_gps_min_sats | gps_min_sats |
nav_alt_p | nav_mc_pos_z_p , nav_fw_pos_z_p |
nav_alt_i | nav_mc_pos_z_i , nav_fw_pos_z_i |
nav_alt_d | nav_mc_pos_z_d , nav_fw_pos_z_d |
nav_vel_p | nav_mc_vel_z_p |
nav_vel_i | nav_mc_vel_z_i |
nav_vel_d | nav_mc_vel_z_d |
nav_pos_p | nav_mc_pos_xy_p |
nav_pos_i | nav_mc_pos_xy_i |
nav_pos_d | nav_mc_pos_xy_d |
nav_posr_p | nav_mc_vel_xy_p |
nav_posr_i | nav_mc_vel_xy_i |
nav_posr_d | nav_mc_vel_xy_d |
nav_navr_p | nav_fw_pos_xy_p |
nav_navr_i | nav_fw_pos_xy_i |
nav_navr_d | nav_fw_pos_xy_d |
servo_lowpass_freq | servo_lpf_hz |
servo_lowpass_enable | Removed. To disable filtering set servo_lpf_hz to zero |
acc_soft_lpf_hz | acc_lpf_hz |
gyro_soft_lpf_hz | gyro_lpf_hz |
gyro_lpf | gyro_hardware_lpf |
rssi_ppm_invert | rssi_invert |
Non-Nav Paramters (for PIFF) | |
p_pitch | mc_p_pitch , fw_p_pitch |
i_pitch | mc_i_pitch , fw_i_pitch |
d_pitch | mc_d_pitch , fw_ff_pitch |
p_roll | mc_p_roll , fw_p_roll |
i_roll | mc_i_roll , fw_i_roll |
d_roll | mc_d_roll , fw_ff_roll |
p_yaw | mc_p_yaw , fw_p_yaw |
i_yaw | mc_i_yaw , fw_i_yaw |
d_yaw | mc_d_yaw , fw_ff_yaw |
p_level | mc_p_level , fw_p_level |
i_level | mc_i_level , fw_i_level |
d_level | mc_d_level , fw_d_level |
Cli parameter renaming / new parameters
New parameters have been introduced. Some CLI parameters were renamed to support new features or to better reflect their meaning:
Name | Description |
---|---|
rangefinder_median_filter | Default is OFF |
failsafe_lights | Enable or disable the lights when the FAILSAFE flight mode is enabled. The target needs to be compiled with USE_LIGHTS [ON/OFF]. Default is ON |
failsafe_lights_flash_period | Time in milliseconds between two flashes when failsafe_lights is ON and FAILSAFE flight mode is enabled [40-65535]. Default is 1000ms. |
failsafe_lights_flash_on_time | Flash lights ON time in milliseconds when failsafe_lights is ON and FAILSAFE flight mode is enabled. [20-65535]. Default is 100ms. |
battery_capacity | Set the battery capacity in mAh or mWh (see battery_capacity_unit ). Used to calculate the remaining battery capacity. Default is 0 |
battery_capacity_warning | If the remaining battery capacity goes below this threshold the beeper will emit short beeps and the relevant OSD items will blink. Default is 0 |
battery_capacity_critical | If the remaining battery capacity goes below this threshold the battery is considered empty and the beeper will emit long beeps. Default is 0 |
battery_capacity_unit | Unit used for battery_capacity , battery_capacity_warning and battery_capacity_critical [MAH/MWH] (milliAmpere hour / milliWatt hour). Default is MAH |
manual_rc_expo | Exposition value used for the PITCH/ROLL axes by the MANUAL flight mode [0-100]. Default is 70 |
manual_rc_yaw_expo | Exposition value used for the YAW axis by the MANUAL flight mode. Default is 20 |
manual_pitch_rate | Servo travel multiplier for the PITCH axis in MANUAL flight mode [0-100]%. Default is 100% |
manual_roll_rate | Servo travel multiplier for the ROLL axis in MANUAL flight mode [0-100]%. Default is 100% |
manual_yaw_rate | Servo travel multiplier for the YAW axis in MANUAL flight mode [0-100]%. Default is 100% |
gps_ublox_use_galileo | Enable use of Galileo satellites. This is at the expense of other regional constellations, so benefit may also be regional. Requires M8N and Ublox firmware 3.x (or later) [OFF/ON]. Default is OFF |
smartport_fuel_unit | Unit of the value sent with the FUEL ID through the S.Port telemetry. Replaces the smartport_fuel_percent setting [PERCENT/MAH/MWH]. Default is PERCENT |
osd_stats_energy_unit | Unit used for the drawn energy in the OSD stats [MAH/WH] (milliAmpere hour/ Watt hour). Default is MAH |
osd_main_voltage_decimals | Number of decimals for the battery voltages displayed in the OSD [1-2]. Default is 1 |
osd_wh_drawn_pos | |
osd_bat_remaining_capacity_pos | |
osd_bat_remaining_percent_pos | |
osd_efficiency_mah_pos | |
osd_efficiency_wh_pos | |
display_force_sw_blink | |
mag_to_use | Allow to chose between built-in and external compass sensor if they are connected to separate buses. Currently only for REVO target |
nav_fw_launch_min_time | Allow launch mode to execute at least this time (ms) and ignore stick movements [0-60000]. Default is 0 |
nav_fw_launch_max_altitude | Altitude (centimeters) at which LAUNCH mode will be turned off and regular flight mode will take over [0-60000]. Default is 0 |
Configure speed source for dji osd (@dzikuvx)
The default behavior of the DJI OSD speed element was to display a ground speed. osd_speed_source can be set to GROUND, AIR or 3D speed depending on the preference
Continuously trim servos on fixed wing (@avsaase)
There is now the option to continuously trim the servos for straight and level flight. When enabled and flying straight and level, INAV records what servo output is required to maintain a constant attitude, and adjusts the servo midpoints accordingly.
The servo midpoints are limited to the 1300-1700 range. After the first maiden flight, and after the first flight when significant changes have been made to the airplane, check the servo midpoints. If they are at or close to the end of this range mechanically adjust the control surfaces.
Delayed safehome (@tonyyng)
Safehome does not now replace the arming location until it is needed. If you cancel RTH or recover from RX failsafe, the original arming location is restored as the home location. Under normal circumstances, “distance to home” will revert to range from the arming location.
Developers
We accept clean and reasonable patches, submit them!
Do not slow down in wp mission when approaching a waypoint (@dzikuvx)
When nav_mc_wp_slowdown is set to OFF, Waypoint missions on Multirotors will be smoother as the NAV engine will not try to slow down before entering the waypoint and then accelerate towards the next waypoint. INAV will rather enter WP with normal speed, switch to the next waypoint and then adjust heading while flying.
Emergency arming
Enabling and disabling the arming switch 10 times during a 10s window will override arming checks for level, navigation unsafe, compass not calibrated and some hardware failures (it will only enforce gyro and acc to be working). Useful for example if you’re stuck in a tree.
Fixed wing rth spiral climb option (@breadoven)
Yeap, now when nav_rth_climb_first is set to ON_FW_SPIRAL, Fixed Wing will keep litering and gaining altitude until it reaches desired altitude. Previously, it was climbing while flying straight in random direction
Font update required
The OSD fonts have been improved (@Jettrel) and there are several new symbols. A font file update is required to use the new symbols and avoid an invalid font warning. Upload the updated font of your choosing from the OSD tab.
We suggest NOT to do a full diff or dump upgrade. To get the best performance set up your aircraft from scratch. You can copy osd, aux, serial, and mixer settings, as well as accelerometer and magnetometer calibration values from INAV 2.6, but other settings should be tuned again.
Gsm sms telemetry / commands
INAV can use a SimCom SIM800 series cellular module to provide telemetry via text messages. Telemetry messages can be requested by calling the module’s number or sending it a text message. The module can be set to transmit messages at regular intervals, or when an acceleration event is detected. A text message command can be used to put the flight controller into RTH mode.
You can find more details in the related documentation
Gyro processing improvements (@dzikuvx)
As part of gyro processing updates, the following changes were made:
gyro_sync
is gone, INAV no longer does a wait cycle trying to get the next set of data from the gyro.- Gyro data acquisition is no longer part of the main PID task
- Gyro data is acquired with a constant rate of 4kHz and filters with an anti-aliasing filter (
gyro_anti_aliasing_lpf_hz
). In normal circumstances, there is no need to change this setting - All the other filters are running as part of the main PID task as before
- The gyro low-pass filter
gyro_lpf_hz
was renamed togyro_main_lpf_hz
How to choose map provider
- Click Settings icon in the top-right corner of INAV Configurator
- Choose provider: OpenStreetMap, Bing, or MapProxy
- In the case of Bing Maps, you have to provide your own, personal, generated by you, Bing Maps API key
- For MapProxy, you need to provide a server URL and layer name to be used
Improved autotune for fixed wing (@avsaase)
AUTOTUNE can now automatically set the correct rates for your airplane. The goal is to set rates that the airplane is capable of achieving with 80% control surface deflection so there is some room for the stabilization to work. This feature is controlled by CLI setting fw_autotune_rate_adjustment.
When set to AUTO (the default), autotune automatically determines the rates and gains. When set to MAX, rates will be automatically adjusted, but never above the starting values. This can be used to calm down a very agile plane, while still avoiding setting too high rates.
Improved flight performance on planes with rudder (@avsaase)
In ACRO mode, you can mitigate the problem of the rudder fighting bank-and-yank turns by disabling the I-term when the bank angle is above a given threshold. Set the desired bank angle threshold on the Mechanics tab under PID tuning. 10 degrees is a good starting point.
Inav configurator
INAV Configurator is a crossplatform configuration tool for the INAV flight control system.
It runs as an app within Google Chrome and allows you to configure the INAV software running on any supported INAV target.
Various types of aircraft are supported by the tool and by INAV, e.g. quadcopters, hexacopters, octocopters and fixed-wing aircraft.
Installation
Depending on target operating system, INAV Configurator is distributed as standalone application or Chrome App.
Issue trackers
For INAV configurator issues raise them here
Known bugs
- Fixed wing launch mode may fail
- Failsafe Stage 2 doesn’t show as enabled in Configurator (it is always enabled, it’s only UI bug)
Linux
- Visit release page
- Download Configurator for Linux platform (linux32 and linux64 are present)
- Extract tar.gz archive
- Make the following files executable:
- inav-configurator
chmod x inav-configurator
- (5.0.0 ) chrome_crashpad_handler
chmod x chrome_crashpad_handler
- inav-configurator
- Run INAV Configurator app from unpacked folder
On some Linux distros, you may be missing libatomic, a NW.JS (specially libnode.so) dependency. If so, please install libatomic using your distro’s package manager, e.g:
- Arch Linux:
sudo pacman -S --needed libatomic_ops
- Debian / Ubuntu:
sudo apt install libatomic1
- Fedora:
sudo dnf install libatomic
Logic conditions
Logic conditions is a new function framework that in INAV 2.2 allows to activate and deactivate specific servo mixer rules.
Logic conditions can evaluate RC channels, flight parameters, and other logic conditions into true/false and activate/deactivate servo mixer rules. It opens possibilities like:
- automatically deploy flaps when speed is too low
- activate servo when distance or altitude has been reached
- flaps/spoilers with different throws
Future versions of INAV will allow using Logic conditions to switch motor mixer banks and make other overrides that currently cannot be changed during flight or be activated by flight conditions
Make cw270flip default mag alignment (@dzikuvx)
New FCs rarely feature onboard compass, and most GPS MAG default to CW270FLIP, so this is now the INAV default. If you use another value, check your setup after upgrading.
Mission waypoints management from the cli
The saved mission waypoints can now be managed from the CLI with the wp command. They are present when doing a diff/dump meaning that they can now be restored easily along with the other settings.
Nav launch (airplane launch assistant) available as feature
The mode can now be permanently enabled via the configurator or the CLI using feature FW_LAUNCH in this case NAV LAUNCH doesn’t need to be enabled via a transmitter switch prior to arming freeing a switch for other uses. If you inadvertently disarm mid-air, NAV LAUNCH will be active again after arming again so, before raising the throttle again (you should lower the throttle to arm again) move pitch/roll stick and you will have full control back.
New altitude mode for rth
When new altitude mode AT_LEAST_LINEAR_DESCENT is chosen the aircraft will climb to the set rth_altitude if bellow or start from the current altitude then en route to home will descend linearly to hit the set home_altitude when reaching home.
New boards
- NAZE target is split to actual
NAZE
andAIRHERO32
for MWC AirHero32 board - PIXRACER board initial support. Experimental – many features are not yet functional
- OMNIBUS F4 PRO target
- F4BY target
New drivers and protocols
- Rangefinder “GY-US42(v2) Ultrasonic Range Sensor
- Rangefinder vl53l1x
- BNO055 Secondary IMU
- BMI088 IMU
New experimental features for multirotors
- Smith Predictor on gyro signal helps to reduce the delay introduced by gyro filters. It’s disabled by default. To enable, use
set smith_predictor_delay = 3
. More details about this feature will follow later - Alpha-Beta-Gamma filter is a relative of the Kalman filter and other prediction filters. Disabled by default. To enable,
set gyro_abg_alpha = 0.25
or higher value. It requires a very clean gyro signal or might introduce oscillations on the high throttle. If the multirotor started to vibrate after enabling the Alpha-Beta-Gamma filter, you either have to improve the gyro filter strategy or disable the ABG filter. It works great on some builds and not so great or other. It’s up to you to test. - Dynamic Gyro Main LPF – Dynamic gyro LPF with the cutoff frequency depending on throttle position. To enable
set gyro_use_dyn_lpf=ON
and setgyro_dyn_lpf_min_hz
andgyro_dyn_lpf_max_hz
. Dynamic LPF replacesgyro_main_lpf_hz
New failsafe system
Failsafe Stage 1 is completely gone now, rxfail command is deprecated. Everything that is called “FAILSAFE” is now related to actual failsafe procedure. Failsafe FEATURE is deprecated – failsafe system is always functional and ready to catch you.
New “NONE” failsafe procedure is introduced to allow completely ignoring RC link loss. Be warned that you are no longer protected from flying out of range when using this feature.
A bunch of new parameters allow “LAND” procedure to work on fixed-wing aircraft as well. Failsafe will now command a slight dive, bank and yaw to bring the airplane down nicely in case of link loss. Previous behavior was to maintain level flight and fly-away.
New parameter rx_nosignal_throttle defines how throttle channel will behave in case of link loss. Options are DROP and HOLD. Roll, Pitch and Yaw channels are centered and this behavior can’t be changed anymore. This behavior is only applied for a small amount of time before FAILSAFE kicks in and starts doing something smart.
New parameter failsafe_stick_threshold will allow you to keep FAILSAFE active even if the RC link is restored. You will have to move your sticks more than failsafe_stick_threshold to regain control. This is done to allow nice return-to-home in case of signal loss.
New features
- [COMPASS] Allow to chose between internal and external compass on REVO target (@digitalentity, #2522)
- [COMPASS] Support for QMC5883 compass chips that incorrectly mimic the HMC58883 (@digitalentity, #2809)
- [SYSTEM] Migrate to busDevice abstraction layer for better device access abstraction (@digitalentity, #2290)
- [SYSTEM] Create dedicated F427 startup file (@digitalentity, #2559)
- [MOTOLAB] Allow MOTOLAB target to be used for airplanes (@shellixyz, #2502)
- [GPS] Enables use of Galileo satellites for NEO-M8N GPS units (@stronnag, #2583)
- [CALIBRATION] Add API for Calibration tab in Configurator
- [OSD] Allow OSD mode to disable OSD (@shellixyz, #2676)
- [OSD] Increase odometer accuracy (@digitalentity, #2757)
- [OSD] Add more battery-related indicators (including efficiency)
- [LIGHTS] Add LIGHTS flight mode to enable/disable GPIO-driven equipment (@shellixyz, #2675)
- [LAUNCH] Allow LAUNCH mode to ignore sticks for certain amount of time (@shellixyz, #2677)
- [LAUNCH] Allow LAUNCH mode to be permanently enabled as FW_LAUNCH feature (@giacomo892, #2731)
- [MSP] API to support smix/mmix configuration via Configurator (@DzikuVx, #2693)
- [MSP] Add no-reply flag to allow MSP messages that don’t need a response (@digitalentity, #2762)
- [COMPASS] Enable QMC5883, MAG3110 and IST8310 on most of the targets (@digitalentity, #2699)
- [AIRPLANE] Replace PASSTHROUGH with MANUAL flight mode (@shellixyz, #2661)
- [BATTERY] Improve battery monitoring and resolution (@shellixyz, #2705)
- [SYSTEM] Remove SoftSPI implementation since it’s not used (@DzikuVx, #2726)
- [SYSTEM] Allow in-flight adjustments of board alignment, cruise throttle and pitch2thr (@shellixyz, #2768)
- [SYSTEM] Trace messages output for easier debugging (@digitalentity, #2691)
New navigation-specific osd indications
Now board with build-in OSD (Omnibus FC) will have indications that make it suitable for navigation:
- GPS coordinates
- Home distance and direction
- Current heading
- Climb rate (vario)
New piff controller for fixed-wing aircraft
Introducing new Proportional Integral Feed Forward controller for airplanes. It’s more suitable for airplanes due to the nature of control they are using. It also puts less stress on servos. D-term in Configurator will now control Feed-Forward gain which passes angular rate target directly to servos bypassing closed loop gyroscope stabilisation.
If you want direct migration from INAV 1.5 to 1.6 without using the new FF part of the controller you need to do:Keep P-Gain as it wasDivide I-Gain by 3.5Zero out D-Gain / FF-gain. ( So you will loose the D-gain, but this was never recommended to use. )
New settings
Setting | Description |
---|---|
dji_speed_source | Sets the speed type displayed by the DJI OSD: GROUND, 3D, AIR Default: GROUND |
dshot_beeper_enabled | Whether using DShot motors as beepers is enabled Default: TRUE |
dshot_beeper_tone | Sets the DShot beeper tone Values: 1 – 5 Default: 1 |
fw_d_pitch | Fixed wing rate stabilisation D-gain for PITCH Default: 0 |
fw_d_roll | Fixed wing rate stabilisation D-gain for ROLL Default: 0 |
fw_d_yaw | Fixed wing rate stabilisation D-gain for YAW Default: 0 |
fw_level_pitch_trim | Pitch trim for self-leveling flight modes. In degrees. 5 means airplane nose should be raised 5 deg from level Values: -10 – 10 Default: 0 |
fw_yaw_iterm_freeze_bank_angle | Yaw Iterm is frozen when bank angle is above this threshold [degrees]. This solves the problem of the rudder counteracting turns by partially disabling yaw stabilization when making banked turns. Setting to 0 (the default) disables this feature. Only applies when autopilot is not active and TURN ASSIST is disabled. Values: 0 – 90 Default: 0 |
gyro_abg_alpha | Alpha factor for Gyro Alpha-Beta-Gamma filter Values: 0 – 1 Default: 0 |
gyro_abg_boost | Boost factor for Gyro Alpha-Beta-Gamma filter Values: 0 – 2 Default: 0.35 |
gyro_abg_half_life | Sample half-life for Gyro Alpha-Beta-Gamma filter Values: 0 – 10 Default: 0.5 |
gyro_anti_aliasing_lpf_hz | Gyro processing anti-aliasing filter cutoff frequency. In normal operation this filter setting should never be changed. In Hz Values: 0 – 255 Default: 250 |
gyro_anti_aliasing_lpf_type | Specifies the type of the software LPF of the gyro signals. Default: PT1 |
gyro_dyn_lpf_curve_expo | Expo value for the throttle-to-frequency mapping for Dynamic LPF Values: 1 – 10 Default: 5 |
gyro_dyn_lpf_max_hz | Maximum frequency of the gyro Dynamic LPF Values: 40 – 1000 Default: 500 |
gyro_dyn_lpf_min_hz | Minimum frequency of the gyro Dynamic LPF Values: 40 – 400 Default: 200 |
gyro_main_lpf_hz | Software based gyro main lowpass filter. Value is cutoff frequency (Hz) Values: 0 – 500 Default: 60 |
gyro_main_lpf_type | Defines the type of the main gyro LPF filter. Possible values: PT1 , BIQUAD . PT1 offers faster filter response while BIQUAD better attenuation. Default: BIQUAD |
gyro_use_dyn_lpf | Use Dynamic LPF instead of static gyro stage1 LPF. Dynamic Gyro LPF updates gyro LPF based on the throttle position. Default: FALSE |
imu2_align_pitch | Pitch alignment for Secondary IMU. 1/10 of a degree Values: -1800 – 3600 Default: 0 |
imu2_align_roll | Roll alignment for Secondary IMU. 1/10 of a degree Values: -1800 – 3600 Default: 0 |
imu2_align_yaw | Yaw alignment for Secondary IMU. 1/10 of a degree Values: -1800 – 3600 Default: 0 |
imu2_gain_acc_x | Secondary IMU ACC calibration data Values: -32768 – 32767 Default: 0 |
imu2_gain_acc_y | Secondary IMU ACC calibration data Values: -32768 – 32767 Default: 0 |
imu2_gain_acc_z | Secondary IMU ACC calibration data Values: -32768 – 32767 Default: 0 |
imu2_gain_mag_x | Secondary IMU MAG calibration data Values: -32768 – 32767 Default: 0 |
imu2_gain_mag_y | Secondary IMU MAG calibration data Values: -32768 – 32767 Default: 0 |
imu2_gain_mag_z | Secondary IMU MAG calibration data Values: -32768 – 32767 Default: 0 |
imu2_hardware | Selection of a Secondary IMU hardware type. NONE disables this functionality Default: NONE, values NONE , BNO055 , BNO055_SERIAL |
imu2_radius_acc | Secondary IMU MAG calibration data Values: -32768 – 32767 Default: 0 |
imu2_radius_mag | Secondary IMU MAG calibration data Values: -32768 – 32767 Default: 0 |
imu2_use_for_osd_ahi | If set to ON, Secondary IMU data will be used for Analog OSD Artificial Horizon Default: FALSE |
imu2_use_for_osd_heading | If set to ON, Secondary IMU data will be used for Analog OSD heading Default: FALSE |
imu2_use_for_stabilized | If set to ON, Secondary IMU data will be used for Angle, Horizon and all other modes that control attitude (PosHold, WP, RTH) Default: FALSE |
mavlink_version | Version of MAVLink to use Values: 1 – 2 Default: 2 |
nav_land_maxalt_vspd | Vertical descent velocity above nav_land_slowdown_maxalt during the RTH landing phase. [cm/s] Values: 100 – 2000 Default: 200 |
nav_land_minalt_vspd | Vertical descent velocity under nav_land_slowdown_minalt during the RTH landing phase. [cm/s] Values: 50 – 500 Default: 50 |
nav_max_altitude | Max allowed altitude (above Home Point) that applies to all NAV modes (including Altitude Hold). 0 means limit is disabled Values: 0 – 65000 Default: 0 |
nav_mc_wp_slowdown | When ON, NAV engine will slow down when switching to the next waypoint. This prioritizes turning over forward movement. When OFF, NAV engine will continue to the next waypoint and turn as it goes. Default: TRUE |
nav_rth_alt_control_override | If set to ON RTH altitude and CLIMB FIRST settings can be overridden during the RTH climb phase using full pitch or roll stick held for > 1 second. RTH altitude is reset to the current altitude using pitch down stick. RTH CLIMB FIRST is overridden using right roll stick so craft turns and heads directly to home (CLIMB FIRST override only works for fixed wing) Default: FALSE |
osd_pan_servo_index | Index of the pan servo to adjust osd home heading direction based on camera pan. Note that this feature does not work with continiously rotating servos. Values: 0 – 10 Default: 0 |
osd_pan_servo_pwm2centideg | Centidegrees of pan servo rotation us PWM signal. A servo with 180 degrees of rotation from 1000 to 2000 us PWM typically needs 18 for this setting. Change sign to inverse direction. Values: -36 – 36 Default: 0 |
osd_plus_code_short | Number of leading digits removed from plus code. Removing 2, 4 and 6 digits requires a reference location within, respectively, ~800km, ~40 km and ~2km to recover the original coordinates. Default: 0 |
osd_sidebar_height | Height of sidebars in rows. 0 leaves only the level indicator arrows (Not for pixel OSD) Values: 0 – 5 Default: 3 |
osd_stats_min_voltage_unit | Display minimum voltage of the BATTERY or the average per CELL in the OSD stats. Default: BATTERY. Options BATTERY , CELL |
osd_telemetry | To enable OSD telemetry for antenna tracker. Possible values are OFF , ON and TEST Default: OFF |
prearm_timeout | Duration (ms) for which Prearm being activated is valid. after this, Prearm needs to be reset. 0 means Prearm does not timeout. Values: 0 – 10000 Default: 10000 |
safehome_max_distance | In order for a safehome to be used, it must be less than this distance (in cm) from the arming point. Values: 0 – 65000 Default: 20000 |
safehome_usage_mode | Used to control when safehomes will be used. Possible values are OFF , RTH and RTH_FS . See Safehome documentation for more information. Default: RTH |
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 . Values: 1 – 60 Default: 15 |
smith_predictor_delay | Expected delay of the gyro signal. In milliseconds Values: 0 – 8 Default: 0 |
smith_predictor_lpf_hz | Cutoff frequency for the Smith Predictor Low Pass Filter Values: 1 – 500 Default: 50 |
smith_predictor_strength | The strength factor of a Smith Predictor of PID measurement. In percents Values: 0 – 1 Default: 0.5 |
turtle_mode_power_factor | Turtle mode power factor Values: 0 – 100 Default: 55 |
vtx_smartaudio_early_akk_workaround | Enable workaround for early AKK SAudio-enabled VTX bug. Default: TRUE |
osd_rssi_dbm_alarm | RSSI in dBm alarm for Crossfire. Default: 0 |
nav_wp_load_on_boot | If set to ON, waypoints will be automatically loaded from EEPROM to the FC during startup. Default: OFF |
New targets:
- Diatone MambaF405US_I2C
- FLYWOOF411_V2
- Mamba F722_I2C
- FLYWOOF745
- FLYWOOF745NANO
Non-volatile storage for waypoint missions
As requested a lot – you now have possibility to create and upload a waypoint mission at home, go to the field, plug in the battery and fly the mission without the need to re-upload it.
Until GCS support is done you have two stick combos to do this:
Function | Throttle | Yaw | Pitch | Roll |
---|---|---|---|---|
Save current waypoint mission | LOW | CENTER | HIGH | LOW |
Load current waypoint mission | LOW | CENTER | HIGH | HIGH |
Mission is saved in Configuration memory and only one mission at a time can be saved. Feature is only available on F3 targets due to lack of space on F1.
Optic flow calibration
Finally for the machines equipped with optic flow we have a calibration logic. After pressing the button in the Configurator you have 30 seconds to hold the copter in the air and tilt it to sides without moving it horizontally. The calibration code inside the flight controller will calculate the opflow_scale variable automatically.
Option for local plus codes on osd (@avsaase)
This adds the option to remove the first 2, 4, or 6 digits from the OSD plus code. Doing so requires a reference location (for example your current location when using Google Maps on your phone) within ~800, ~40, and ~2km, respectively.
Other
You can get more suggestions following this link too.
Out of range missions
It is now possible to disable the failsafe mechanism for the NAV WP mode (autonomous missions) by setting failsafe_mission to OFF. The aircraft will then continue autonomous missions even when the link is lost with the remote control.
Possibility to change the vtx power level in flight
It is now possible to change the VTX power level in flight with the help of RC adjustments.
Rc via mavlink & mavlink v2 support (@harry1453)
MAVLink is still only a downlink from UAV to the ground station, but now allows to use RC-Over-MAVLink
Prearm offers a two-stage arming process as an optional additional safety feature.
- Activate prearm (normally a button or momentary switch)
- Activate arm
H7 is available in the source repository; target Hex files will be released as targets mature, probably in the future point releases.
Removed
Setting | Description |
---|---|
auto_disarm_delay |
Removed settings
Setting | Description |
---|---|
gyro_sync | |
nav_landing_speed | replaced by nav_land_minalt_vspd and nav_land_maxalt_vspd |
Rename nav cruise mode to nav course hold and add cruise mode which is equivalent to crsh ah (@shellixyz)
To more clearly state what they do and how they work. It’s a subtle, but worth it to change for sure!
Renamed passthrough flight mode (fixed wing)
The PASSTHROUGH flight mode has been renamed to MANUAL. New settings also have been added to allow the use of different servo rates (or control weight) for the servos when flying without stabilization without using a programmable remote control.
The exposition settings for roll/pitch and yaw controls are now also also independent from the exposition settings used for stabilized flight modes. See the manual_* settings in the CLI settings table below. The default settings make the MANUAL flight mode behave exactly as the old PASSTHROUGH flight mode.
Renamed settings
Old name | New name |
---|---|
gyro_lpf_hz | Replaced with gyro_main_lpf_hz |
gyro_lpf_type | Replaced with gyro_main_lpf_type |
gyro_stage2_lowpass_hz | Replaced with gyro_anti_aliasing_lpf_hz |
gyro_stage2_lowpass_type | Replaced with gyro_anti_aliasing_lpf_type |
mc_airmode_threshold | airmode_threshold |
mc_airmode_type | airmode_type |
osd_artificial_horizon_max_pitch | osd_ahi_max_pitch |
osd_artificial_horizon_reverse_roll | osd_ahi_reverse_roll |
Rth sanity checking
Misconfigured or malfunctioning compass can confuse the firmware in such a way that it won’t realize where North direction is. This may cause the machine to fly in wrong direction when i.e. doing an RTH and fly away instead of returning to home.
Another case is flying in extremely strong wind which machine is unable to fight. In such case RTH will attempt to bring machine home but will never succeed and UAV will be blown away.
Running with debug | inspector
To be able to open Inspector, you will need SDK flavours of NW.js
npm install [email protected] –nwjs_build_type=sdk
Secondary imu
INAV 3.0 supports, as an experimental feature, external BNO055 connected as either I2C or Serial device. Data from BNO055 can be used to display Artificial Horizon in OSD, Heading in OSD or drive the self-leveling ANGLE and HORIZON modes. Secondary IMU will not be used for navigation yet!
Stick arming
Stick arming have been removed for security reasons
Support
INAV Configurator comes as is, without any warranty and support from authors. If you found a bug, please create an issue on GitHub.
GitHub issue tracker is reserved for bugs and other technical problems. If you do not know how to setup
everything, hardware is not working or have any other support problem, please consult:
Support for inav radar
INAV 2.2 introduces the support for Radar ESP32 boards. They can be used to share information (including position) between multiple machines. This enables, for instance, the possibility to display the positions live on the OSD.More infos can be found in the dedicated wiki page here: here
Switched rth preset altitude override (@breadoven)
Provides stick options to override configured RTH climb and/or turn behaviour. See the nav_rth_alt_control_override setting description for details.
Turtle mode aka flip over after crash (@kernel-machine)
INAV now has a “Turtle Mode”.
- Requires DSHOT ESC protocol
- Assign a switch to TURTLE mode
- Ensure you can arm at any angle
Upgrading from 2.0.0
- Please follow the upgrade guide to 2.1.0 and then step to the previous section.
Upgrading from 2.1.0
- Download and install the new configurator
- Save to a file the current diff from the CLI.
- Upgrade to INAV 2.2 using the Full Erase option in the configurator.
- Upload your OSD font of choice from the OSD tab.
- Go the CLI again and paste the contents on the file you previously create and write save , press ENTER and done!
- If you armed with via sticks, add an arming switch in the Modes tab in the configurator.
- If you are upgrading a multi rotor, POS XY PID I and D have now specific settings, respectively
nav_mc_pos_deceleration_time
andnav_mc_pos_expo
. So if you don’t use defaults, when restoring, move yours to the new settings. - You should be ready, explore new 2.2 features and enjoy!
Upgrading from 2.5 or older version
Please follow the instructions on this page.
Upgrading from 2.6, 2.6.1
- Download and install the new configurator
- Save to a file the current diff all from the CLI.
- Upgrade to INAV 3.0 using the Full Erase option in the configurator.
- Upload your OSD font of choice from the OSD tab.
- Go to the CLI again and paste the above-described contents from the file you previously created and write save , press ENTER.
- There are a large number of new, changed, and removed settings. Check carefully that the settings are correct and fix any unrecognized or out-of-range items from the saved configuration.
- You should be ready, explore new 3.0 features, and enjoy!
Vtx_smartaudio_early_akk_workaround option (@romanlut)
If your old AKK VTX is not working, use vtx_smartaudio_early_akk_workaround to fix it!
Warnings
- If you are using HMC5883/HMC5983 compass it is advised to recalibrate. Please don’t restore the old settings from the dump/diff script.
- Internal scaling for VEL_XY PID setting has changed. It is advised to use default setting (40) as a starting point. Old setting from 1.8 or earlier will probably cause severe oscillation.
Waypoint mission pre-arming check
Navigation safety checks will now include check for waypoint mission sanity. If you have a mission uploaded to FC pre-arming check will verify that first (starting) waypoint is within nav_wp_safe_distance [cm](default 10000cm = 100m) from current UAV position.
Windows
- Visit release page
- Download Configurator for Windows platform (win32 or win64 is present)
- Extract ZIP archive
- Run INAV Configurator app from unpacked folder
- Configurator is not signed, so you have to allow Windows to run untrusted application. There might be a monit for it during first run
Wp mission landing elevation setting (@breadoven)
The relative / absolute ground altitude of a LAND waypoint may be set as WP paramater 2 (m). See the inav wiki for details.
Nothing to add. If DSHOT is enabled, DSHOT beeper will be used.
Wp mission sealevel altitude datum (@breadoven)
Prior to inav 3.0, mission waypoint altitudes are relative the arming location. It is now possible to define waypoints with absolute (AMSL) altitude, making the mission independent of the arming location. See the inav wiki for details (WP paramater 3)
Аппаратные требования
Если вы используете прошивку Betaflight, тогда потребуется ПК на F4 или F7. Из-за недостатка памяти в платах на F3 этот функционал на них недоступен (смотрите в сторону прошивки iNAV, прим. перев).
Барометр
Барометр — это датчик давления, при помощи него можно вычислить высоту полета коптера. Он более точен, чем GPS. Некоторые полетные контроллеры уже имеют встроенный барометр, обычно BMP280 (например, Kakute F7).
Где лучше всего установить gps модуль?
Убедитесь, что GPS модуль ничем не затеняется. Расположите его сверху коптера подальше от антенны видеопередатчика. Не забудьте сделать для него длинные провода. Вот несколько вариантов установки:
Поверх GoPro.
Поверх аккумулятора.
Сверху рамы (если аккумулятор ставится снизу).
Можно сделать «мачту» для GPS модуля, чтобы отодвинуть его подальше от рамы. Но в данном случае не очень удачно, т.к. рядом оказывается антенна видеопередатчика.
Основное правило: GPS модуль должен всегда смотреть на небо (за исключением моментов, когда вы делаете роллы и флипы).
Перед полетом убедитесь, что GPS приемник нашел спутники. Возможно есть смысл заранее включать коптер, для «прогрева» GPS, чтобы потом долго не ждать.
Дополнительные датчики, как их настроить?
Помимо GPS есть и другие датчики/сенсоры, но их не обязательно использовать. Комбинирование данных с разных датчиков даст больше полезной информации о том, что сейчас происходит с коптером. Позже я обновлю этот пост.
Зачем нужен gps на квадрокоптере?
При помощи OSD можно отобразить довольно много полезной информации, включая текущие координаты (широту и долготу), расстояние до дома, скорость, высоту и направление в сторону дома. Последние известные GPS координаты могут помощь вам найти коптер в случае аварии.
Если вы используете телеметрию с приемников типа X4R или R-XSR, то даже сможете посылать в реальном времени координаты на Taranis. Это еще больше упрощает поиск потерянного коптера.
Для функций «возврат домой» (Return to Home, RTH) и «удержание позиции» (Position Hold) обязательно нужен GPS модуль. В новой версии Betaflight есть режим «Rescue Mode» (режим спасения), который очень похож на RTH. Этот режим активируется при потере сигнала (или в ручном режиме) и позволяет вернуть коптер к точке старта.
Какой gps модуль лучше купить?
Из-за ограничений на размер и вес, брать нужно компактный модуль. Рекомендую BN-220, т.к. он работает что называется «прямо из коробки».
Купить BN-220
Ещё один вариант — BN-880, он крупнее, но зато имеет встроенный компас. Этот модуль популярен на более крупных моделях.
Купить BN-880
Важно выбрать модель с новым чипом — M8N, а не со старым типа M7N. M8N быстрее найдет спутники, т.к. может одновременно использовать две системы, GPS/ГЛОНАСС. Благодаря этому число видимых спутников практически удваивается.
Большинство модулей продается уже настроенными, достаточно просто подключить их к полетному контроллеру. Однако, если вы хотите «поиграться» с настройками, то можете подключить плату к компьютеру через USB-UART адаптер и воспользоваться программой U-Center
Компас/магнетометр
Нужен для определения направления коптера. Обычно это внешний датчик, который необходимо подключить к ПК через шину i2c.
Настраиваем gps в betaflight
На вкладке Ports в столбце Sensor Input выбираем GPS. В моем примере это UART6. Скорость оставляем по умолчанию (57600).
Переходим на вкладку Configuration:
- Включаем GPS
- Выбираем протокол UBLOX или NMEA. Обычно это UBLOX, старые модули работают с NMEA
- Включаем автонастройку (Auto Config)
- Сохраняем настройки и перезагружаемся (кнопка Save and Reboot)
Если все подключено и настроено правильно, то на вкладке Setup вы увидите блок данных GPS.
Теперь нужно подождать пока найдутся спутники (3D fix, т.е. минимум 4 спутника). Этот процесс может занять несколько минут.
Когда он закончится, на модуле BN-220 замигает красный светодиод (вместе с мигающим синим, который означает наличие связи). Теперь в разделе GPS можно будет увидеть дополнительную информацию: 3D Fix = True, и текущие координаты.
Чтобы спутники нашлись быстрее, нужно выйти на улицу, или перенести модуль как можно ближе к окну и направить верхнюю часть (антенну) на небо.
Есть два способа отображения данных GPS: через Betaflight OSD и через телеметрию в аппаратуре управления.
Если вы не знакомы с Betaflight OSD, тогда читайте наше руководство. На экране можно показать: координаты; расстояние и направление в сторону дома, ну и многое другое.
Еще одна полезная вещь — можно настроить Taranis на отображение текущих координат коптера получаемых через телеметрию (SmartPort или CrossFire). Если вы упадете, то на экране будете видеть последние известные координаты модели.
Для этого включите коптер, в Таранисе перейдите на страницу телеметрии и выберите «Discover new sensors» (найти новые датчики). После этого должны появиться новые данные, включая координаты GPS.
Соединяем gps и полетный контроллер
Подключение GPS — очень простой процесс, просто подайте питание 5 вольт и подключите к последовательному порту (RX к TX и TX к RX).
Тестирование
Вы наверняка захотите тщательно проверить GPS перед дальним полетом. Первое, что я бы проверил — корректность выдаваемых координат. Просто вбиваем их в Google Maps и смотрим что показывается.
По возможности проделайте это в нескольких местах.
Update egnos prn mask to latest egsa definition, fix sbas for non-galileo usage (@stronnag)
The EGNOS (GPS ground assistance) definitions have been updated to the latest values for all GNSS options. An invalid association with the availability of Galileo has been corrected.
iNav 1.9.3
Omnibus F4 V3
Frsky XSR, SBus
Beitian BN-880, UART 1, stock without any setup or config
Compass, I2C
Mode setup:NAV ALTHOLD, NAV POSHOLD, NAV RTH
Issue1:
Beitian 880 is just linked by cable, keeping away from XSR or Battery cable.
Sometime, iNav just show Waiting for GPS 3D Fix, can not find satellite (near window).
Sometimes, it takes more than 15 minutes to find satellite.
Issue2:
Even it finds 5~7 satellite (satellite q’ty jump between 5, 6, 7), still can not arm (FC blue LED is flashing rapidly with beep sound).
May someone teach me how to solve?
Thanks