Releases: iNavFlight/inav
INAV 1.6-ALPHA1
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
andAIRHERO32
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
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
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
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
- INAV 1.4 features new airplane launch assistant as well as new TPA for airplanes. Have a look at the wiki to see how to tune new TPA (https://github.com/iNavFlight/inav/wiki/PID-Attenuation-and-scaling). And for details of iNav launch https://github.com/iNavFlight/inav/wiki/8.-Navigation-modes#launch---airplane-launch-assistant
- Experimental emergency landing is available to land the aircraft in a very unfortunate event of GPS loss when executing RTH or WP mission.
- Basic pitot airspeed sensor support (logging purposes only, stay tuned for airspeed control in 1.5)
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
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
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
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
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
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
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