Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
2.0.0 Release Notes
Hello and welcome to INAV 2.0.0 Release!
Please carefully read all of this document for the best possibile experience and safety.
Get in touch with other pilots, share experiences, suggestions and ask for help on:
|INAV Official on Telegram|
|INAV Official on Facebook|
|INAV Official on Slack|
Sponsors and supporters
Ongoing development would be impossible without ongoing cooperation with manufacturers and support from the following businesses:
- CarbonBird Robotics http://www.carbonbird.com/
- Airbot https://store.myairbot.com/
- ADPM Drones http://www.adpmdrones.com/
- Matek Systems http://www.mateksys.com
- AKK https://www.akktek.com
- FuriousFPV http://furiousfpv.com/
DO NOT RESTORE ACCELEROMETER CALIBRATION VALUES FROM AN OLDER RELEASE (<2.0) Doing that will led to poor attitude estimation performance and may cause troubles.
When upgrading a full chip erase (when flashing) /
defaultsfrom CLI is advised. Be sure to backup your configuration and restore it wisely.
OSD layout configuration from releases < 2.0 is not compatible with the current one. Take a screenshot of your current OSD layout before upgrading and restore it manually from the configurator.
current_meter_offsetsetting changed scale. Need to be multiplied by 10 if it's value is coming from < INAV 2.0.0
Position Hold 2D (only keeping horizontal position with GPS aid) has been dropped. Now Position Hold is only 3D and it will hold position and altitude.
STM32F1 boards support has been dropped. NAZE/CC3D targets are no longer supported. Please upgrade to F4/F7 board. F3 boards are not recommended since their flash space is almost full and they are likely to not receive all features on the next release.
AIRMODE now excludes feature MOTOR_STOP in multicopters This means that if you have AIRMODE enabled on a multi-rotor, the motors will most likely spin on arming, even with
feature MOTOR_STOP(or the configurator "Don't spin the motors when armed") set.
Upgrading from 1.9.X
- Be sure to run the latest INAV 2.0 Configuration release. Download from here
- Go to the CLI tab and copy and paste the
diffoutput to a text file for later usage.
- Go to the OSD tab and take a screenshot of the current layout
- Flash INAV 2.0 enabling full chip erase . Now you FC should run INAV 2.0. Connect again and check firmware version.
- Go to the Mixer tab and load and apply your desidered mixer.
- Go back to your configuration text file and delete all lines starting with: mixer acczero accgain magzero osd. Adjust values to be adjusted noted in the release notes.
- Open the CLI tab in the configurator and paste your cleaned up configuration in the text box and type
saveand press enter. The flight controller will now reboot.
- Calibrate the accelerometer following the steps in the dedicated tab. Only first two steps needs to be made in the right order.
- Calibration of the magnetometer should be done at the field. The magnetic field indoors can be distorted and led to a bad calibration.
- Restore manually your OSD layout using the screenshot and upload the font you like using the dedicated button.
- Carefully check all the configuration and check on the bench without installed propellers if everything looks good. In particular check if the model preview behave correctly when you are moving your model and check surfaces movements for an airplane.
- Enjoy INAV 2.0.0 and explore its new features!
Walk through if TL;DR
- RadioLink R9DS (an possibly all RadioLink receivers) SBUS output cannot be used . They are not complying with standards and this results in them sending invalid SBUS packets to the FC (#3563)
- If INAV Configurator starts minimized, you have to manually remove content of
- When running async (GYRO or ALL), gyro update will stick to PID loop frequency even if the configurator reports an higher frequency. You can check this via
taskscommand in CLI. It's strongly recommended not to run async and synchronize looptime to gyroscope. (#3628)
New mixer and mixer GUI
Starting from INAV 2.0.0, there are no predefined mixers on the firmware side: CLI command
mixer QUADX will just not work. Mixer has to be configured using INAV Configurator 2.0 with Mixer tab.
Restoring from previous releases via CLI will not work correctly. Please use Configurator 2.0 mixer tab to configure it from scratch.
It is no longer necessary to use
smix reverse to reverse a tricopter tail servo; this can be done in the 2.0 Configurator or with the CLI
smix 0 5 2 -100 0.
NAV CRUISE flight mode (fixed wing)
This release introduces the new
NAV CRUISE flight mode. When enabled the machine will try to maintain the current heading and compensate for any external disturbances (2D CRUISE). User can adjust the flight direction directly with ROLL stick or with the YAW stick (
nav_fw_cruise_yaw_rate set the yawing rate at full stick deflection ). The latter will offer a smoother way to adjust the flight direction. If the mode is enabled in conjunction with
NAV ALTHOLD also the current altitude will be maintained (3D CRUISE). Altitude can be adjusted, as usual, via the pitch stick. In both modes
ANGLE mode is active and the plane will stay leveled.
OSD functionally got overhauled and improved. Now it is possible to have three OSD layouts and switch between them via an RC channel. Furthermore new two modes have been added:
mapmode draws the home centered, while the craft moves around. There are two available maps: one with the North pointing up and another one with the takeoff direction pointing up.
radarmode draws the craft in the center and the home moving around.
Those modes will enable the display of other aircraft flying in the vicinity in a future releases.
It is now possible to display a lot of new data on the OSD:
- All the values adjustable in flight via RC. When a value is selected for adjustment it starts blinking. This means it is possible to select a lot of adjustments with a pot for example and know easily which one is being adjusted.
- Wind estimation
- Numeric attitude angles
- Cruise mode heading info
- Numeric heading to home
- New battery related data: estimated remaining time and distance before having to head home, sag compensated battery voltage, estimated battery impedance
- Outputs of the PID controllers
Added full VTX control via Smart Audio / TRAMP
User can now select VTX settings from the configurator or via the OSD CMS. Furthermore
vtx_low_power_disarm setting has been added. Setting it to
ON will set the power to its minimum value on startup (usually 25mW) and increase it to
vtx_power when arming and change it back to its lowest setting after disarming. Note that this setting can jeopardize the ability to find a lost quad using a strong signal coming from the VTX but on the other way it can prevent the VTX to overheat if you do quick flight cycles on the same battery.
UNTIL_FIRST_ARM will set the VTX to its minimum power, but once the craft is armed it will increase the output power to
vtx_power and it will never decrease until the craft is power cycled.
OFF will make the power output always to be set to the
Wind Estimation for Fixed Wing
It is possible to show estimated wind speed and direction on the OSD. In particular both lateral and vertical indicators are present. This is an experimental feature, you are encouraged to use it and report any anomalies in the estimated wind speed.
Battery management related features
These features have been added for helping with the battery management:
- Battery profile with optional automatic switching
- Sag compensated battery voltage and battery impedance calculation
- Estimation of the remaining flight time and distance before having to head home
- Automatic compensation of throttle command based on battery voltage to help maintain constant thrust regardless of the battery voltage
- The current sensor can be calibrated more accurately (increased offset voltage resolution: 0.1mV instead of 1mV). If you'd like to keep your
current_meter_offsetvalue from an old config you need to multiply it by 10).
You can read more about these feature in the battery documentation
CLI parameter renaming / new parameters
||Max YAW rate when NAV CRUISE mode is enabled (0=disable control via yaw stick) [dps]|
||Software based second stage lowpass filter for gyro. Value is cutoff frequency (Hz). Currently experimental|
||The craft name is now a
||Defines a delay for switch disarming setting (default 150ms, PR #3118) For better safety, a value of at least 250ms is recommended|
||Defines when the home position is automatically reset, default is
||Defines the aircraft type. This is advisory for display purposes only (Configurator, Ground Control Stations) and has no affect on aircraft behaviour. This setting takes the numeric values equivalent to the old 'mixer'.|
||Defines the aircraft (vehicle) type. This value affects the vehicle performance. Default is
|has_flaps||Defines is UAV is capable of having flaps. If ON and AIRPLANE
|vtx_band||Configure the VTX band. Set to zero to use
|vtx_channel||Channel to use within the configured
|vtx_freq||Set the VTX frequency using raw MHz. This parameter is ignored unless
|vtx_halfduplex||Use half duplex UART to communicate with the VTX, using only a TX pin in the FC.|
|vtx_low_power_disarm||When the craft is disarmed, set the VTX to its lowest power.
|vtx_pit_mode_freq||Frequency to use (in MHz) when the VTX is in pit mode.|
|vtx_power||VTX RF power level to use. The exact number of mw depends on the VTX hardware.|
|nav_rth_home_altitude||Aircraft will climb/descend to this altitude after reaching home if landing is not enabled. Set to 0 to stay at
|nav_fw_cruise_speed||Speed for the plane/wing at cruise throttle used for remaining flight time/distance estimation in cm/s|
|cruise_power||Power draw at cruise throttle used for remaining flight time/distance estimation in 0.01W unit|
|idle_power||Power draw at zero throttle used for remaining flight time/distance estimation in 0.01W unit|
|rth_energy_margin||Energy margin wanted after getting home (percent of battery energy capacity). Use for the remaining flight time/distance calculation|
|osd_estimations_wind_compensation||Use wind estimation for remaining flight time/distance estimation|
|nav_fw_allow_manual_thr_increase||Enable the possibility to manually increase the throttle in auto throttle controlled modes for fixed wing|
|bat_voltage_src||Chose between raw and sag compensated battery voltage to use for battery alarms and telemetry. Possible values are
|bat_cells||Number of cells of the battery (0 = autodetect), see battery documentation|
|vbat_cell_detect_voltage||Maximum voltage per cell, used for auto-detecting the number of cells of the battery in 0.01V units, default is 4.30V|
|align_opflow||Optical flow module alignment (default CW0_DEG_FLIP)|
|fw_min_throttle_down_pitch||Automatic pitch down angle when throttle is at 0 in angle mode. Progressively applied between cruise throttle and zero throttle|
|tz_automatic_dst||Automatically add Daylight Saving Time to the GPS time when needed or simply ignore it. Includes presets for EU and the USA - if you live outside these areas it is suggested to manage DST manually via
|motor_accel_time||Minimum time for the motor(s) to accelerate from 0 to 100% throttle (ms) [0-1000]|
|motor_decel_time||Minimum time for the motor(s) to deccelerate from 100 to 0% throttle (ms) [0-1000]|
|thr_comp_weight||Weight used for the throttle compensation based on battery voltage.|
|nav_overrides_motor_stop||Setting to OFF combined with MOTOR_STOP feature will allow user to stop motor when in autonomous modes. On most planes this setting is likely to cause a stall. Use caution|
- Added support for MATEKF411 mini and MATEKF411-WING (@fiam, #3146)
- Added support for DALRCF405 (@nyway, #3184)
- Add CLRACINGF4AIRV3 to CLRACINGF4AIR target (@bnn1044, #3239)
- Added support for wind estimation on fixed wing aircrafts (@fiam @giacomo892, #2450 #3522)
- Added support for multiple OSD layouts, make all OSD items and alarms configurable via CMS (@fiam, #2955 #3264 #3420 #3351 #3330 #3305)
- Added Automatic Daylight Saving Time support (@nmaggioni, #3072 #3262)
- Added Map and Radar modes to OSD (@fiam, #3178 #3196 #3241 #3385 #3337)
- New SBUS driver compatible with FrSky R9 receivers ( @digitalentity , #3110 )
- Gyro stage 2 filter (FIR2) ported from Betaflight ( @DzikuVx , #3191 #3208 )
Experimental Terrain Following mode (aka
AltHoldmode is enabled together with
SURFACEmode, UAV will try to keep ground altitude reported by rangefinder instead of baro/GPS absolute altitude. (@digitalentity, #3202)
- Experimental OPFLOW mode, which allows navigation for by tracking the floor rather than using GPS (@digitalentity, #3164)
NAV CRUISEflight mode (fixed wing) ( @giacomo892 , @shellixyz , #3311 #3458)
- New VTX features, like automatic power switching when arm/disarm (@fiam , #3401)
- Battery profiles (@shellixyz, #2749 #3366)
- Display of estimated remaining flight time and distance on the OSD (@shellixyz, #2863 #3465)
- FW: Allow manual throttle increase in auto controlled modes (@shellixyz, #3278)
- FW: Automatically pitch down in angle mode when throttle is bellow cruise throttle (@shellixyz, #3290)
- FW: Disable ALTHOLD on user motor stop request (throttle bellow
min_check) (@shellixyz, #3298)
- Sag compensated battery voltage and voltage based throttle compensation (@shellixyz, #3319 #3364 #3365 #3367 #3375 #3377 #3414 #3481 #3486)
- Detect accelerometer vibration (@digitalentity, #3210)
- Possibility to stop motor manually (aka MOTOR_STOP) in navigation modes (@digitalentity, #3349)
- Add support for LIS3MDL compass sensor ([@bforbort], [#3683])
- Check settings for respecting min/max values at boot time (@fiam, [#3619])
- Replace rssi_scale and rssi_invert with rssi_min and rssi_max (@fiam , [#3613])
- Multirotor acro performance improved (@digitalentity , #2893)
- Increased current sensor voltage offset resolution (@shellixyz, #2945)
- Add driver for BOSCH BMI180 gyro (@digitalentity, #2951)
- Mixer refactoring - FC is now unaware of anything besides mixer rules ( @DzikuVx , #2978 )
- Added support for IST8308 compass ([@McGiverGim], #3039)
- Fixed wing Autotrim does not dive /climb /roll after Autotrim is done ( @DzikuVx , #3104 )
- Modify FrSky D-series telemetry for compatibility with Lua script (@alexeystn, #3116)
- Refactor timer drivers to simplify target definitions (@digitalentity, #3120)
- Make the delay for disarming via switch configurable (@digitalentity @stronnag, #3118 #3478)
wattssymbol to OSD font (@alexeystn, #3132)
- Make cell count detection more robust (@shellixyz, #3166)
- Stop the battery alarm after disarming (@shellixyz, #3168)
- Add pitch and roll angles to the OSD (@shellixyz, #3169)
- gcc 8 support (@stronnag, #3172)
- Prepend home icon to the distance to home in the OSD (@fiam, #3173)
- Add new parameter for controlling how the home position is reset (@fiam, #3183)
- Add driver for LPS25HB barometers (@digitalentity, #3192)
- Add support for displaying the debug array in the OSD (@fiam, #3197)
- Configure accelerometers in 16G mode (@digitalentity, #3203)
- Send GPS related sensors via Smarport and FPort even before a GPS fix is acquired (@fiam, #3207)
- Add SOFTSERIAL support on TX6 for OMNIBUSF4V3 target (@krzysztofmatula, #3222)
- Increase maximum value displayed by the OSD efficiency indicator (@shellixyz, #3237)
- Make the ROLL/PITCH/YAW PID values blink in the OSD when the corresponding RC adjustment is selected (@shellixyz @fiam, #3252 #3454 #3408 #3409)
- Added support for limiting throttle rate (@digitalentity, #3257)
- make isAmperageConfigured respect FEATURE_CURRENT_METER and not just current_meter_type (@teckel12, #3265)
- tidy up blackbox formatting of dterm_setpoint_weight (@stronnag, #3266)
- ADC samples averaging (@mluessi, #3268)
- Fix NAV_STATE enum values (@fiam, #3274)
- Move build-stamp and generated files to obj/main/$(TARGET) (@fiam, #3275)
- Improve attitude angle OSD display (@shellixyz, #3281)
- Add MPU6000 support to FIREWORKSV2 target (@digitalentity, #3294)
- NAV_LAUNCH extra safety (@giacomo892, #3303)
- Disable arming in AH for FW unless launch mode is enabled (@giacomo892, #3304)
- Disable RC adjustments while in FAILSAFE mode (@shellixyz, #3318)
- Add BB logging of FW navigation PIDs (@shellixyz, #3326 #3396 #3492)
- Fix ALTHOLD initial climb when enabled (@shellixyz, #3327)
- I2C rangefinder rename and docs update (@DzikuVx, #3328)
- Cleanup of unused functions (@DzikuVx, #3331)
- Round rather than truncate when updating GPS_directionToHome (@fiam, #3336)
- Refactor position estimation code. Add support for optic flow for position estimation (@digitalentity, #3350)
- FW: Require turn assistant for nav modes using NAV_CTL_ALT (@shellixyz, #3379)
- Add cruise mode heading adjustment and heading error OSD indicators (@shellixyz, #3380)
- nav_fw_pitch2thr description adjustment (@danarrib, #3382)
- Make the OSD home arrow closer to the actual home direction (@fiam, #3387)
- Improve video system selection (@shellixyz, #3392)
- Add adjustments and corresponding OSD items (@shellixyz @fiam, #3393 #3410)
- Lighten OMNIBUS (F3) target (@shellixyz, #3394)
- Add OSD items to display nav PIDs outputs (@shellixyz, #3395)
- Add OSD item to show heading correction to go home (@shellixyz, #3411)
- Add support for string settings, make "name" a setting rather an a CLI command (@fiam, #3428 #3461)
- Implement the nav_rth_home_altitude setting (@shellixyz, #3431)
- When editing PID profiles from CMS, change the profile immediately (@fiam, #3433)
- Disable RC adjustments when the trigger channel goes out of the range (@fiam, #3443)
- Better GPS accuracy reading for FrSky telemetry (@teckel12, #3446)
- MATEKF722 updates from @MATEKSYS (@fiam, #3452)
- Add support for builds with a version suffix (@fiam, #3460)
- Add LEDSTRIP support to SPRACINGF3NEO target (@Garogat, #3475)
- Fix broken tests, require them to pass in Travis checks (@fiam, #3504)
- Replace feature(FEATURE_CURRENT_METER) by isAmperageConfigured() where it makes sense (@shellixyz, #3510)
failsafe_throttle_low_delaysetting default is now 0 (@shellixyz, #3512)
- Remove posZ constrain to int16 for BB (@giacomo892, #3513)
- Log estimated wind to blackbox (@giacomo892, #3522)
CHANNEL_FORWARDINGhas been removed, it can be implemented using new mixer GUI in Configurator
SERVO_GIMBALhas been removed, it can be implemented using new mixer GUI in Configurator
mid_rcCLI variable has been removed, and the setting removed from the configurator. If necessary (e.g.Futaba TX), the same effect can be achieved using
- Avoid to delete navigation modes if MAG is not available (@shellixyz, #2984)
- Prevent out of time ARMED message in the OSD when arming with the OSD disabled (@shellixyz, #3098)
- Allow using CMS while OSD is disabled (@shellixyz, #3099)
- Fix current sensor overflow (@shellixyz, #3131)
- Remove YAW inversion in 3D mode for vehicles that don't need it (@eephyne, #3128)
- Fix vertical alignment of ARMED screen in OSD when using NTSC (@fiam, #3149)
- Make the total trip distance OSD item work when no current sensor is present (@shellixyz, #3163)
- Add missing OSD alarm settings from CLI (@shellixyz, #3182)
- Fix "sensor lost" problems when using FPort telemetry (@fiam, #3206)
- MATEKF405: As requested in #3223 S5 is no longer used for FW servos (@DzikuVx, #3224)
- Fix outputs 5 and 6 in SPRACINGF3 (@shellixyz, #3236)
- Correct home yaw when a valid heading is acquired (@fiam, #3247)
- Fix logging of negative altitudes in BlackBox logs (@stronnag, #3250)
- Properly round servo values after applying servo filtering (@fiam, #3276)
- Fix and simplify
- change year base for RTC time_t to correct leap processing (@stronnag, #3307)
- Make FPort stop one sensor cycle every 3 (@fiam, #3308)
- Fix RTH hover above home (can't keep altitude) (@shellixyz, #3332)
- Fix FF_PIKOF4 and FF_PIKOF4OSD targets (@shellixyz, #3333)
- remove unneeded rxConfig from sbusChannelsInit and fix up callers (@stronnag, #3338)
- Fix potential overflow in energy metering (@shellixyz, #3342)
- Reset disarm reason at moment of arming (@digitalentity, #3360)
- Fix support for AK8975 MAG (@fiam, #3413)
- Gyro SPI bus fix according to OmnibusF4-nano v8 schematics (@digitalentity, #3426)
- Fix VTX device type reported via MSP (@fiam, #3429)
- Add missing break when adjusting ADJUSTMENT_RC_YAW_EXPO (@fiam, #3430)
- Work around compiler bug, fix MSP2_INAV_ANALOG and convert amperage from int32_t to int16_t (@shellixyz, #3469)
- Prevent time comparison overflow in S.Port driver (@fiam, #3536)
- Fix automatic DST support (@fiam, #3542)
- PWM driver - startup value fix (fixes servo twitching at startup) (@marbalon, [#3540])
- Fix FrSky HDOP range (@teckel12, #3519)
- Fix division by 0 in generateThrottleCurve() (@shellixyz, #3502)
- Fix current BB logging and improve battery code (@shellixyz, #3490)
- Add definition for MAX_SPI_SPEED to limit spi seed if defined for target (@marbalon, #3532)
- Fix incorrect axis convention (incompliance with datasheet) for IST8310 compass (@digitalentity, #3546)
- Fix a rare edge case where RC receiver failsafe channel values may leak into AUX mode switching and cause a disarm (@digitalentity, [#3482])
- Add workaround for AKK VTX with S.Audio bug (@fiam, [#3633])
- Fix orientation of the drivers for AK8963, AK8975 and MPU9250 MAG (@fiam, [#3447])
- Fix PCA9685 support (@DzikuVx, [#3744])
Due to a beneficial change in the build environment (generated files are stored per target, not in a common area), it is necessary to remove a couple of files from any older branches (these files are generated automatically by the build).
# on a Posix O/S rm -f src/main/fc/settings_generated.[ch]