INAV 1.6

@digitalentity digitalentity released this Feb 28, 2017 · 1914 commits to master since this release

This version has some significant differences from 1.5.1, please read the release notes carefully and upgrade INAV Configurator available at Chrome Store.

INAV is and will remain open-source and free, but if you are more than welcome to support the development.

This release was supported by our awesome sponsors CarbonBird.com, Airbot and ADPM Drones.

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)

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

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.

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. Enabled by default so in case of failsafe your craft will continue to execute failsafe procedure until you move the sticks.

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. Use caution - too high Feed-Forward gain may cause violent oscillations in ANGLE mode. See this article about how it is different from PID and why it is better for airplanes.

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 was
Divide I-Gain by 3.5
Zero out D-Gain / FF-gain. ( So you will loose the D-gain, but this was never recommended to use. )

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.

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. If starting waypoint is too far - machine won't allow you to arm. This check can also be bypassed with nav_extra_arming_safety setting.

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.

RTH sanity checking feature will notice if distance to home is increasing during RTH and once amount of increase exceeds a certain threshold defined by nav_rth_abort_threshold CLI parameter instead of continuing RTH machine will enter emergency landing, self-level and go down safely. Default threshold is set to 500m which is safe enough for both multirotor machines and airplanes.

New RTH configuration options

First option is nav_rth_allow_landing (default to ON). If it's set to ON UAV will land as the last stage of RTH. Landing will function on both multirotors and airplanes (the latter will gradually descent with motors running).

Second option is nav_rth_climb_ignore_emerg (default OFF). When this option is OFF (default) and when you initiate RTH without GPS fix - aircraft will initiate emergency descent and go down. If you set this option to ON - aircraft will reach the RTH target altitude before initiating emergency descent. This is done for cases where GPS coverage is poor (i.e. in the mountains) - allowing UAV to climb up might improve GPS coverage and allow safe return instead of landing in a place where UAV might be impossible to recover.

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 boards

  • NAZE target is split to actual NAZE and AIRHERO32 for MWC AirHero32 board
  • PIXRACER board initial support. Experimental - many features are not yet functional
  • OMNIBUS F4 PRO target
  • F4BY target

New features

  • Initial support for STM32F7 boards. More CPU power for better performance
  • Full support of SoftSerial ports on F4-based boards
  • Gyro/D-term notch filter and D-term setpoint weight (as in Betaflight)
  • TBS Crossfire native radio protocol and telemetry (CRSF)
  • Firmware support for better UI for 6-point calibration
  • Make max total PID output configurable, default limit reduced to 500 for better stability
  • Inversion control for S.Bus - now it's possible to have non-inverted S.Bus (for OpenLRS compatibility)
  • Airplane mixers defaults to use two motor outputs now
  • PASSTHRU mode will now allow to mix sticks into motors for differential thrust support
  • More authority for Altitude Hold PIDs. Please revisit ALT and VEL PIDs if aircraft misbehaves.
  • Two banks of PIDs for Fixed-wing and Multirotor crafts. A small step towards VTOL support
  • Configurable timeout for compass calibration (instead of hard-coded 30 seconds)
  • When using new Configurator the Altitude graph in Sensor tab will now show both estimated altitude and raw BARO readings
  • Extremely long flights are now possible on F3/F4/F7 targets. On F1 the system time will overflow at 1 hour, 11 minutes, 35 seconds and may cause some systems to malfunction (failsafe is one of suspects). Use caution when testing this feature.
  • Option to control when relative altitude is zeroed (never, on first arming, on each arming)
  • New rssi_invert setting replaces rssi_ppm_invert and now also affects analog RSSI
  • Blackbox logging at rates down to 1/255 is now possible for logging long flights to onboard memory

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