Skip to content

Releases: iNavFlight/inav

INAV 1.6-ALPHA1

02 Feb 14:17
Compare
Choose a tag to compare
INAV 1.6-ALPHA1 Pre-release
Pre-release

This is an ALPHA release. Use caution!

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

CLI parameter renaming

Some CLI parameters are renamed to support new features or to better reflect their meaning:

Old name New name(s)
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
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_d_pitch
p_roll mc_p_roll, fw_p_roll
i_roll mc_i_roll, fw_i_roll
d_roll mc_d_roll, fw_d_roll
p_yaw mc_p_yaw, fw_p_yaw
i_yaw mc_i_yaw, fw_i_yaw
d_yaw mc_d_yaw, fw_d_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

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 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.

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.

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 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 SD 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.

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

INAV 1.5.1

05 Jan 12:47
Compare
Choose a tag to compare

This is a release to fix some serious bugs in INAV-1.5 that were discovered too late to make it into that release.

As usual, you are encouraged to 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.

Bugfixes

  • Fix a buffer overflow in I2C driver (affecting only COLIBRI/QUANTON target)
  • Fix a bug with failsafe_recovery_timeout being reset to arbitrary value
  • Fix corrupt blackbox logs and hickups in MSP on F1/F4 targets
  • CC3D target M3 disabled bug

Happy flying!

INAV 1.5

31 Dec 02:42
Compare
Choose a tag to compare

This version has some significant differences from 1.4, 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 Ledge team.

Sensor hardware configuration is now mandatory

For better robustness sensor autodetection is no longer done each boot. Instead user should explicitly configure sensor hardware on Configuration tab. User still may chose AUTO, on first boot firmware will perform autodetection and switch to first detected sensor (if any).

Hardware failure detection & arming prevention

INAV now tests if all configured sensors are available and won't allow you to arm if any of the following is true:

  • CPU is overloaded
  • UAV not level (aka small_angle)
  • Run-time sensor calibration is not finished (covers GYRO and BARO)
  • One of the sensors is configured, but not detected or not working properly
  • Compass sensor is present, but not calibrated
  • Accelerometer is present, but not calibrated
  • Navigation is unsafe (no GPS lock, aka nav_extra_arming_safety)

Hardware failure is indicated by LED_STRIP (blue/black pattern) or beeper (fast beeps).

OSD support

Targets with onboard OSD now work properly. This is a direct port of Betaflight code and not all of the required information is displayed yet (i.e. no GPS coordinates), but that's a work in progress.

Target/feature support

  • New target - QUANTON/COLIBRI
  • CC3D_OPBL is no longer supported due to memory limitation

More new features and improvements

  • Used tightly-coupled memory on CPUs that support it (it's an area of memory that is faster than common RAM, it also frees up common RAM for other tasks)
  • New target - COLIBRI/QUANTON
  • Fix missing consumed mAh reporting in LTM telemetry
  • Completely new I2C driver stack - more robust, less prone to errors
  • Option to specify time of good RC link for switching out from Stage 2 failsafe
  • It's now possible to specify if RTH should fly home right away or reach the safe altitude first (see nav_rth_climb_first CLI parameter)
  • Launching a flying wing by throwing it by the wing-tip (known as swing-launch in INAV) is now correctly detected by launch assistant
  • CLI now uses sensor names instead of numbers for acc_hardware, mag_hardware etc
  • Servo autotrim feature for airplanes - ability to calculate and record servo neutral position when flying in stabilised modes
  • SoftSerial is now supported on AIRBOTF4 target
  • Moved PPM input to pin 3 of RC connector on AIRHEROF3 target to keep compatibilty with Betaflight and earler setups

Bugfixes

  • Occasional non-detection of built-in SPRacingF3 EVO compass
  • Initial work done to solve the time overflow occurring at 72nd minute of operation. Issue is not completely solved yet.
  • Fix a bug with coarse stick resolution in ACRO mode resulting in inability to make fine corrections (known as "deadband even when deadband = 0 issue")
  • Fix UART3/I2C sharing issues on some targets
  • Fix non-working UART5 on targets that support it
  • Baro and GPS co-existance issue is now completely solved - baro is preferred when available
  • Fix bug that allowed the MSP-aware OSD or GCS to reboot the flight controller in flight
  • Tricopter mix made functional on AIRBOTF4 and OMNIBUS
  • Failsafe stage 1 now defaults to "hold" on throttle channel to suite INAV better
  • Fix documentation for AIRHEROF3 target
  • Fix bug in PWM receiver code that may cause failse failsafe triggering
  • Fix a bug that caused failsafe Stage 1 "hold" values to be ignored on flight channels if Stage 2 is disabled
  • Bugfix for possible arming directly into Stage 2 failsafe procedure
  • Fix buffer overflow in VCP driver that may cause corrupt blackbox downloads
  • Fix a bug that allowed HOME position to be altered by MSP command in flight without explicit permission from pilot
  • Lots of smaller bugfixes

Known bugs

  • CC3D target doesn't work

Thanks to all who participated in improving the code and put their vehicles at risk testing new features!

Happy New Year to all pilots!
Fly safe!

INAV 1.4

28 Nov 11:23
Compare
Choose a tag to compare

INAV v1.4

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

Motor/servo outputs are DISABLED by default

For safety motor/servo outputs are disabled after flashing with config erase. After configuring motor/servo mixer you have to enable PWM outputs using CLI (feature PWM_OUTPUT_ENABLE) or using new Configurator.

CC3D/NAZE target space issues

To keep CC3D/NAZE targets working with all bells and whistles we had to remove support for some SerialRX protocols that are not widely used. S.Bus, I-Bus and Spektrum are still supported on all targets.

Also Frsky telemetry had to be removed from F1 targets.

Asynchronous gyro/PID processing

It has been shown that it's possible to sample gyro at higher rate and process it at much lower rate without noticable impact on flight performance. In ACRO only it's now possible to do 8kHz gyro updates on some targets. Even better racing performance now.

Airplane improvements

Significantly reworked position estimation code

  • It now handles GPS+BARO better on ariplanes and recovers better from GPS outages. More safety for your aircraft when in automatic modes.
  • Better handling GPS+MAG on airplanes - now it is safe to keep MAG enabled on airplane if required. GPS heading is preferred with fallback on MAG if speed is too low or GPS heading error is too big. Note, that if you have compass close to power wires or magnetic objects it's safer to keep it disabled.
  • Better handling of pilot-engaged RTH and failsafe RTH.
  • Prioir to first ARMing altitude is forced to be zero to ensure that altitude is indeed measured above HOME. This is normal and doesn't indicate baro/GPS problems.

More supported targets

  • Airbot F4 / FLIP32 F4
  • Omnibus F4 (w/o OSD)
  • YuPiF4 board initial support

Switch settings

Please check that your switch / mode settings are as intended. Copying a 1.3 CLI dump aux settings may not give the desired results.

Bugfixes

  • Failsafe is now safer, no more disarming in the air when loosing RC link at zero throttle.
  • Fixes for sensor detection, now INAV will retry sensor detection up to 5 times before reporting it missing.
  • Fix broken I2C on AirHeroF3 target (AIRHEROF3_QUAD flavour)
  • Fixed issue with baro on fixed-wing.
  • Fixed PID profile count on F1 targets
  • Lots of code cleanups and smaller improvements

Thanks to all who participated in improving the code and put their vehicles at risk testing new features! You guys are awesome!

If you like INAV, please conisder supporting the development. This release was supported by our awesome sponsors CarbonBird.com, Airbot and Ledge team.

Thanks and happy flying!

INAV 1.3

02 Nov 10:47
Compare
Choose a tag to compare

I'm happy to announce INAV 1.3!

Most notable change is always unsynched motor updates. At over 1-2 kHz update rate the delay between PID loop and motor update is negligible (at 1 kHz average delay would be 0.5ms which is merely ~2% of total quad response delay).

Please update INAV Configurator from Chrome Store.

WARNING

FEATURE_ONESHOT125 is now deprecated, you will have to select appropriate motor_pwm_protocol and motor_pwm_rate via CLI to specify ESC protocol and update rate. I.e. for OS125@2kHz you'll have to set:

set motor_pwm_protocol = ONESHOT125
set motor_pwm_rate = 2000

This firmware also supports ONESHOT42 and MULTISHOT ESC protocols.

WARNING

Flight mode IDs have changed in CLI. When restoring old CLI dumps please verify that Flight modes are assigned correctly.

New targets

  • OMNIBUS FC initial support (w/o OSD)
  • MultiWiiCopter AIRHEROF3 FC
  • SPRacingF3 MINI (w/o race transponder)

New features

  • FlySky I-Bus telemetry
  • PCA9685 PWM driver to provide lots of servo outputs for airplanes
  • Possibility to have airplanes auto-arm on throttle up (and never disarm)
  • Stack usage detection
  • Removed unused/deprecated box modes (GOV, LEDMAX, CAMTRIG, SERVO1-3)

Bugfixes

  • Fixed MAG mode aligning the machine North when enabled from the beginning
  • Additional I-term limits for airplanes to prevent wind up when launching
  • Improvements to INAV nRF24 protocol
  • I2C error handling fix - solves most compass detection issues
  • I2C timeout fix (BMP280/BMP085 initialisation fix)
  • AK8963 compass (part of MPU9250) fix
  • BMP280 update rate fix
  • Lots of code cleanups

Thanks to @DzikuVx, @stronnag, @martinbudden, @sambas, @oleost and others who participated in INAV in any way and to all those who put their flying machines at risk testing the code.

Happy flying!

INAV 1.2.1

24 Sep 09:51
Compare
Choose a tag to compare

This is a bugfix release:

  • Fix incorrect BMP280 read scheduling. Solves issue with random compass readings on some machines.
  • Fix for HORIZON mode when with certain settings self-leveling was never disabled completely.

Thanks to all who helped tracking down these bugs.

INAV 1.2

07 Sep 11:24
Compare
Choose a tag to compare

At last we have final INAV-1.2 release.

INAV Configurator is available from Chrome Webstore.

Hardware compatibility and feature map.

This release features experimental F4 target support. Use caution as F4 targets are not well tested and aparrently are not bug-free.

Bugs fixes:

  • Fix a bug with FEATURE_SERVO_TILT and FEATURE_CHANNEL_FORWARDING not working as they should.
  • Reset altitude hold target when transitioning from RTH/WP.
  • Fix for turning North when activating RTH close to home
  • Don't allow AIRMODE to override MOTOR_STOP
  • Fix for boards sometimes hanging on boot
  • Configurable limitation of max climb/descent rate - fixed extreme climb/descent on WP mission
  • Reset POSHOLD target when GCS modifier is reset
  • Change GPS SBAS default to NONE - fixes poor GPS performance in some cases
  • Disable PID attenuation at zero throttle and some mixer improvements
  • Fixed CC3D PPM glitch when using OneShot125
  • Fix slow RTH when home is reset
  • Fixed connection issues for INAV Configurator
  • SPRacingF3 EVO servo fix
  • MAVLink bitmask incompatibility with Configurator
  • FrSky telemetry climb rate fix
  • SDCard not working fixes
  • GPS being initialised too early fix
  • Fixed MS5611 misdetection
  • Fixed no accelerometer detected on MPU9250 gyro
  • Fixed compass issues on MPU9250 gyro

New features and improvements:

  • Boot-time event logging for easier troubleshooting
  • Blackbox log now includes acceleration in EF for easier debugging
  • F4 target support (initial drafts)
  • FP-PID rescaled to match LuxFloat and MWRewrite PID controllers
  • LTM telemetry improvements - more data reported
  • MAVLink telemetry
  • Rates are now in degrees/sec (much more user-friendly)
  • Use full stick in ANGLE/HORIZON
  • More precise expo curve
  • Support for NRF24L01 receiver (including INAV-specific protocol and telemetry - provisional)
  • Support for Jeti receiver
  • Improved landing detector for RTH
  • Replace RTH pre-landing delay with waiting for correct heading
  • Allow all 6 input and all 6 outputs on CC3D when using PWM RX and PWM output
  • Flaperon flight mode
  • Support for RTH+LAND waypoint
  • Configuration is logged to blackbox for easier analysis
  • Use GPS for vertical velocity estimation on multirotors
  • Increased max waypoint number
  • Turn assistant - turn on parallel to ground plane (tested on multirotors only)
  • Angular acceleration limit on PID rate target for better control on larger drones
  • Require "off-on" switch cycle to activate WP mission
  • Some mixers are now disabled for targets with low memory
  • Improved (smoother) MAG HOLD controller

Other:

  • Converted the whole driver infrastructure to new IO framework
  • Lots of minor code cleanups and improvements
  • Improved default settings
  • More supported targets
  • Betaflight catchups
  • Some features removed from NAZE & CC3D targets to fit INAV into them.

Warning:
Some targets are not tested

Big thanks to @martinbudden, @DzikuVx, @theArchLadder, @stronnag, @sambas and all the contrubuters, testers and donators whom I forgot to mention. You guys make this project tick! 😄

INAV 1.1

13 May 10:15
Compare
Choose a tag to compare

Ok, looks like we are finally ready to 1.1 release. Everything is merged and somewhat tested.

WARNINGS:

  • Config will be erased.
  • Re-tuning your aricraft PIDs is a STRICT requirement

Fixes:

  • Changed biquad to pt1 filter for PID D-term (lower phase shift, better tunability)
  • Ublox GPS code changed to improve SBAS handling
  • GPS nav_model replaced with dyn_model (possible values PEDESTRIAN, AIR_1G, AIR_4G)
  • Fix sensor saturation issue
  • Fixed position estimation and mode switching issues on mag-less airplanes
  • Default banking angle 30 deg for airplanes
  • New default settings for navigation PIDs
  • Disallow looptimes < 2000 on F1 targets to prevent overload
  • Better handling of GPS loss on RTH/PH/WP
  • MSP mode ordering fixed
  • Throttle tilt compensation fixes
  • Remove limitation of groundspeed for airplane navigation
  • Removed excessive BARO filtering
  • Fixed GPS glitch detection (still not used for navigation)
  • Mute failsafe beeper if machine wasn't armed at least once
  • Air cushion effect detector for smoother takeoffs in AltHold mode
  • Fixed a bug with accelerometer calibration performance
  • Twitching when RTH passes North on airplanes fixed
  • Prevent arming if any of PH/RTH/WP modes are activated
  • Some minor changes to the mixer and PID controller to improve stability on takeoff and landing
  • Smoother RTH descent

New:

  • New 4-way BLHeli passthough interface (not all targets)
  • Removed Rewrite and Lux PID controllers, replaced by a new one (required re-tuning)
  • Smoother self-leveling control (Level I defined LPF frequency on self-leveling responce)
  • New "HEADING LOCK" mode for tighter yaw holding (without MAG)
  • New "HOME RESET" mode for manually resetting home (RTH) position
  • New "GCS NAV" mode for follow-me and other functionality driven by groundstation
  • Scheduler optimisations by Martin Budden
  • Serial buffering by Michael Hope
  • Remove GPS SV data (report GPS HDOP instead), better GPS fix reporting
  • Beeper CLI command to selectively enable beep warnings (also adds ON_USB option)
  • Supported telemetries are now defined per-target. NAZE by default doesn't support anything but LTM
  • OLED display now shows all relevant data on one page. New "armed" picture for OLED display on some targets
  • More config options for throttle control at AltHold
  • Initial surface tracking support (not always working)
  • Removed some pre-defined mixers (fallback to QuadX if they are requested by Configurator)
  • LED_STRIP is back on NAZE targets
  • Better sonar-assisted landing detection
  • FlySky I-BUS receivers now support 10ch

iNav 1.0.1

17 Feb 13:06
Compare
Choose a tag to compare

New minor release. Most notable change - new BiQuad filter.

WARNING: Config will be erased.

Fixes:

  • Mode selection bug fixed
  • New GPS defaults to LOW_G model and don't use VELNED for navigation (less precise but safer)
  • Sonar-assisted landing bug fixed
  • Fixed wrong units for GPS EPH/EPV
  • Fixed issue with skipped Ublox GPS frames
  • Emergency landing now uses failsafe_throttle when landing without baro sensor

New:

  • Full filter rework. FIR for accel and gyro is now replaced by BiQuad filter with adjustable cutoff frequency. Thanks to Boris B for providing the code.
  • Added support for all baro chips to SPRacingF3 target

iNav 1.0

23 Jan 04:03
Compare
Choose a tag to compare

1.0 final release.

Fixes:

  • Accelerometer FIR filtering fixes
  • Minor change to althold controller - smoother descend and landing
  • Resolved issue with target position not always being logged to blackbox
  • Issue with failsafe RTH dropping out of the sky if no GPS is available at the moment

New:

  • New scheduling method. New cli command "tasks" will show all running tasks and their processing times.
  • CLI "status" command will show overall system load
  • Massive GPS code refactoring - completely new GPS driver model and lots of new code
  • DJI NAZA GPS support (including compass on the NAZA GPS module)
  • Fixed GPS-only heading for fast airplanes.
  • Complete GPS-only airplane navigation (Althold, Poshold, RTH)
  • UBLOX: option to select gps nav model (LowG - Pedestrian, HighG - Airborne>4G)
  • INAV: option to opt-out of using GPS VelNED for position estimation (Ublox modules in Pedestrian mode delay this information beyond any usable limits)
  • GPS: receiving and logging position accurace (EPH/EPV)
  • Enabled NAV for SPARKY target
  • Sonar guard for landing - if iNav will detect the ground it will slow down and touchdown gently regardless of baro altitude
  • Optimised MIN/MAX functions - saves a few bytes of code