• INAV Version:INAV 6.0.0
  • Post author:
  • Post category:RC News

Welcome one and all to this wonderful time of year, when we see a new major release of INAV. Just in time for Christmas. In June we brought you the guide to the new features in INAV 5.0. So here’s what’s new in INAV 6.0. Hmmm. Wait a minute. This is March!

So yes, I’m sure the some of you realise that this time things are a bit different. With a regular schedule, INAV 6.0 would have been released in December; and we would be half way to 7.0 by now. This time, there was such a big change that we wanted to make sure that everything was ok before going to the Release Candidate stage. In fact, this time we even saw a proper beta release in the guise of INAV 6.0 FP1. This was a feature preview of the new updates to the AHRS, which wipes out horizon drift. Hence, Horizon Hawk.

As usual, in this article, we will be looking at the new features in this release. Changes are made in INAV via things called Pull Requests (PR). In this article, we will list the PR numbers in brackets, preceded with a #, for example(#1234). But, if you want to look at all the Pull Requests; you can find the firmware PRs here and the Configurator PRs here. What’s more. Don’t forget to thank the developers who have been improving INAV for you (firmware and Configurator). You can download INAV 6.0 Configurator from GitHub.

If you prefer to watch than read. I have a video that accompanies this article here. Please note that it is not available until 14:00 GMT on the 26/3/2023.

INAV 6.0 AHRS Update

In INAV 6.0, as a treat, we get some very nice AHRS updates. The AHRS is the Attitude and Heading Reference System. It basically takes data from sensors, and uses that to calculate the attitude and heading of the plane. What that really means for you is in all but extreme cases, there is no more horizon drift! When I say extreme, I mean it. One of the only cases of AH drift seen on 6.0 was from a build getting around 20G of vibration recorded on the gyro. But no! This is not an excuse to slack off on your builds and not balance props. Build clean and free from electrical and vibrational noise; and you will have an aircraft that will not have problems.

The change (#8403) that went in to INAV 6.0 was written by Shota Hayashi. So he deserves a huge amount of thanks. It is also well worth mentioning Julio Cesar Matias, who at the same time was also working on a new AHRS. These PRs are related to the AHRS change.

  • AHRS Centrifugal force compensation (#8403)
  • AHRS Parameter name change (#8767)

RTH Trackback

There is a new option for RTH and Failsafe called RTH Trackback. If enabled, on Failsafe or RTH (depending on setup), the aircraft will follow the path it was previously flying. As you are flying, trackback records points to keep track of your path. This can be up to 50 points and 2km. The more you manoeuvre the aircraft, the more points trackback needs to keep track. The more points trackback records, the less total trackback distance. The idea was that if you loose signal. Flying back along the same route would be the best way to re-establish signal. At the end of the trackback path, INAV will follow the regular RTH procedure.

  • RTH Trackback – suspend track recording on fixed wing during loiter (#8512)
  • RTH Trackback Fix (#8697)
  • RTH Trackback (#7988)

Wind Estimation Improvements

Historically the wind estimation in INAV hasn’t been great. To be honest, that is really an understatement. When Shota coded the changes in the AHRS. He also massively improved the wind estimator. You can now use the wind estimator with confidence, as it is now pretty accurate. You can see the wind direction and speeds in the OSD via horizontal and vertical wind speed elements. If you fly for too long without altering course. You will see the speed units alternate with a * every two seconds. This is to show that the wind speed reading is stale. To make it fresh again, just fly in a different direction for a bit.

  • Fixed wind direction icon on OSD (#8227)
  • Fix wind estimator (#8228)
  • Update display of the wind estimator (#8523)
  • Improved stale state handling in OSD (#8832)

Landing Detection

INAV has had landing detection for quads in previous version. But now, this has become much more reliable. So reliable in fact that it is enabled by default. Oh, and it also on fixed wing now too. You can land the plane. And if you don’t disarm with the switch; it will disarm by it’s self after a few seconds. On the OSD stats screen, it will show DISARMED BY: LANDING.

  • Add landing sensitivity setting (#8427)
  • Disarm on land by default (#8711)
  • Landing detection invalid velocity protection (#8743)
  • Landing detector improvements (#8737)
  • Multirotor Failsafe landing detection false trigger fix (#8813)

Hardware In The Loop (HITL)

HITL allows you to use your flight controller with X-Plane 11 and 12. X-Plane provides the data and the flight controller, which it interprets, and returns to X-Plane to control the aircraft. This is an extremely useful tool for developing INAV. But it can also be useful for pilots looking to check out if their setup works as expected, or testing waypoint missions. For more information on INAV HITL, check out this video.

  • Support Hardware In The Loop in X-Plane 11 (#8268)
  • Make a “makeup” in the algorithm (#8356)

OSD Updates

Digital Video System enhancements

INAV 6.0 is a pretty big release for HD video systems. In fact, all major systems have had some changes made for them. With INAV 5.1 and earlier, you could use other HD systems. But, they were all treated as HDZero. With INAV 6.0, this has changed. There is no longer an HDZero VTX peripheral on the Ports page. Instead, you will now select the MSP DisplayPort peripheral, for basically all HD systems; except the original DJI system. But no one still uses that right? You all use the superior WTFOS for the firmware.

The on the OSD page, you have video type options for HDZero (4:3 PAL and 16:9 HDZERO), WTF DJI (DJIWTF), Walksnail Avatar (AVATAR), and DJI O3 compatibility mode (BF43COMPAT). All these options have a layout correctly sized for each system. Deeper in INAV, the MSP DisplayPort API is now followed more closely. There are now timed full frame updates to help reduce stuck, missing, or artefacting characters on the OSD.

  • Reorganise resources/osd/ to separate analogue and add HD font support (#1615)
  • Add colour and fine tuned icons ot HD font (#1626)
  • Added support for DJI WTFOS 60×22 OSD (#8434) (#1627)
  • Rename HDZero VTX to MSP DisplayPort (#8435) (#1628)
  • Add support for HDZero 30×16 mode (#8476)
  • MSP DisplayPort add macros (#8480)
  • Add BF43COMPAT restricted OSD implementation (#8631) (#1671)
  • Reorganise OSD Folder (#1674)
  • Add more symbols to BF43COMPAT translation table (#8641)
  • Update MSP DisplayPort and add Walksnail Avatar settings (#8654) (#1652)
  • Try to make vertical AHI look better inf BF43COMPAT (#8709)
  • Disable mAh scaling for BF43COMPAT (#8717)
  • Add BF43COMPAT RPM symbol (#8718)
  • Fix formatting of decimal numbers in BF43COMPAT display mode (#8776)
  • Simplify and fix altitude processing for BF43COMPAT (#8779)
  • AUTOLEVEL added to system messages (#8815)
  • Add MSP_BATTERY_STATE for DJI O3 Goggles battery display (#8846)

ESP32 Radar improvements

ESP32 Radar, formerly INAV Radar; is a system that allows you to find flying buddies. The system uses an ESP32 module with onboard LoRa RF. The modules communicate with each other via LoRa. Then communicate with INAV over MSP to show where the other aircraft are in the sky.

New ESP32 Radar display, with cardinal indicator.
Original ESP32 Radar display with chevron arrows.

ESP32 Radar works pretty. But these changes make it a little easier to use. The first change is related to the way that ESP32 Radar shows the position of the other aircraft. Originally, 1 to 3 chevrons were used to aim towards the plane. The more chevrons, the further around it is. But, it wasn’t at all intuitive.

The new approach uses a cardinal indicator, which points directly at the other aircraft. Because this cardinal indicator is now permanently on the right of the display. It has given the opportunity to add an extra digit to the distance away and altitude difference displays. Previously, the altitude difference was -99 to 99 (the units depend on the OSD settings). Now, the altitude difference is -999 to 999. Likewise, the distance away was 0 to 999 (again, OSD defined units). Now that has increased to 0 to 9999. Also, ESP32 Radar POI elements (the positions of the other aircraft) are included in the pan servo compensation.

  • ESP32 Radar cardinal markers and improved detail (#8699) (#1691)

Pan servo compensation extended

Pan servo compensation has been in INAV from version 3.0. It allows the home arrow to still point in the correct direction, even when you move the pan servo. However, not many people knew about this feature, and it was only configurable via CLI. This change extends the pan servo compensation to the HUD area including ESP32 Radar and waypoints. To make this all more accessible. The pan servo can now be selected on the OSD page. Also, there are new OSD elements to show the direction of the pan servo. and a warning if the servo is not centred, but close to centre.

  • Pan compensation enhancements (#8699) (#1691)
  • Make pan servo select on OSD page more intuitive (#1718)

Simulated AHI ladder

This change allows you to add an AHI ladder to a regular OSD. Previously, this was only available with the Canvas mode FrSky PixelOSD. It does this by looping the AHI line once the pitch reaches a certain point. You can set the angle that the repeat happens. Please note, you still only see one AHI line, but if you pitch up, the line will disappear from the bottom and reappear around the centre of the OSD.

  • OSD AHI Pitch interval redraw option (#7018)

Other OSD changes of note

  • OSD Elements for Remaining Glide Distance, Remaining Glide Time, and Climb Efficiency added (#8081) (#1539)
  • Change the HUD offset from within the OSD page (#8226) (#1540)
  • Fix heading graph for FrSky PixelOSD (#8526)
  • Add symbols for remaining time and distance (#1656)
  • The size of the INAV logo has changed (#8585) (#1657)
  • OSD Elements added for Ground Course and Cross Track Error (#8604) (#1660) (#1666)
  • Add missing alarms to OSD page, and hide when not available (#1647)
  • Enhance INAV Character Map document (#1675) – If you are someone who edits fonts. This document will come in handy. It shows all the mappings with example symbols.
  • You can now set a pilot name (#8720) (#1701)
  • AUTOLEVEL added to system messages when enabled (#8815)

Programming Framework

The programming framework has gained some extra features. There are new Edge, Delay, Delta, and Approximately Equals switches. These work in a similar way to OpenTX. Another requested operation is the Timer, which has now been added. There are also enhancements to Waypoint missions with user actions. This allows you to specify markers which you can use in the programming framework to trigger events. You can use this, for example to start or stop video recording when you reach waypoints with certain user actions. There are also programming operands for distance to next waypoint and from previous waypoint. Finally, there is an update to the flight mode operand to include ACRO and WAYPOINT_MISSION. COURSE_HOLD has also changed so that it is not active when CRUISE is active.

Full details can be found in the Programming Framework document.

  • Add EDGE, DELAY, DELTA, APPROX_EQUALS, and TIMER to programming framework (#8581) (#1653)
  • Enhance programming options or waypoint missions (#8579) (#1652)
  • Update Flight Mode operand in programming framework (#8747) (#1705)

Other changes and fixes of note

  • Change multi-mission in flight (#8354) (#1610) – You can now change waypoint mission mid-flight via a new mission change mode.
  • Strobe option added to LEDs (#8536) (#1647) – You can now setup aircraft navigational strobes in the LED tab.
  • Increase the maximum safe distance for the first waypoint (#8589) (#1659) – This change now allows you to have your first waypoint up to 1.5km away. Note that the cli parameter name has changed, and that this setting is now in metres.

Firmware

  • nav_extra_arming_safety = OFF removed (#8106) – This option was often passed around as a fix for incorrectly set up GPS modules. This can often result in fly-aways. The ALLOW_BYPASS option is still available, and recommended in cases where OFF was used for a legitimate purpose. You activate ALLOW_BYPASS by yawing right while arming. It then functions the same as nav_extra_arming_safety = OFF until the power is cycled.
  • Launch mode manual throttle (#8134) – You can now optionally, manually control the throttle in autolaunch. This allows you to launch with a high throttle, and then lower the throttle during climb out.
  • AUTOLEVEL now also works in Course Hold (#8178)
  • WP Landing fixes (#8358) – There is now an elevation offset for landing in a WP mission. This should allow for more accurate landing procedures away from home.
  • Virtual Pitot back on F411 and F722 (#8428) – Due to the improvements in the AHRS and wind estimation. The virtual pitot has also improved in accuracy. This can help prevent tip stalls due to low airspeed, if you keep an eye on it. The virtual pitot is now using 3D speed too (#8458)
  • Flight tracking improvements (#8519) – There are new waypoint turn smoothing and tracking changes. Resulting in much more accurate WP missions.
  • Consolidate save calls (#8439) – Previously, each operation which required the FC to save the settings, would save individually. Meaning you could have multiple saves on a disarm. For example, disarming caused saves from continuous servo trim and stats. This now only uses a single save. What’s more useful to you pilots though is that it now lets you know in the system messages. There are ** SAVING SETTINGS ** and ** SETTINGS SAVED ** messages. These also appear on the stats screen, so you don’t miss them. Don’t disconnect your battery until the ** SETTINGS SAVED ** message has gone.
  • Heading graph fixed on FrSky PixelOSD (#8526)
  • Course over ground used for FW heading (#8529) – This change uses the course over ground as the reference for raw heading. As opposed to using the raw IMU heading. This means that the initial reference is a bit better. But also if you use a compass, there will be a marked improvement in windy conditions.
  • Fix FW nav altitude control (#8590) – There was a known issue where if you used RTH with linear descent and arrived home above the RTH altitude. The plane would climb for a time before settling and lowering to the correct altitude. This fixes that, and other potential issues with the same cause.
  • Navigation modes block arming (#8611) – If using permanently enabled auto launch. You could be in a navigation mode and arm. This has lead to motors unexpectedly starting when the launch is cancelled and the selected mode has auto throttle. This is no longer the case, and all arming is treated equally. You can still exit launch in to a navigation mode. Just select the navigation mode after arming, but before raising the throttle.
  • Continuous Servo Trim fixed for elevators with multiple servos (#8821) – This bug was often thought to be a V-Tail issue. But it was in fact could affect any elevator that had more than one servo. This change means that it is now safe to use continuous servo trim on those setups. Including V-Tail.

Configurator

  • Add expanded labels for units (#1551) – If you hover your mouse over the unit; m for example. A box will appear giving the full unit name. In this example Metres.
  • Use hours:minutes for GPS time zone offset (#1588) (#1640) – The time zone offset is now no longer in minutes. It now uses an hours:minutes format. This is easier to adjust without calculations.
  • NAV POSHOLD mode now NAV LOITER for fixed wing (#1601) – This seemed like a no-brainer. With fixed wing, it is referred to as loiter everywhere. This makes the modes page easier to understand. Especially for new pilots who may not know they are the same thing.
  • Target Autodetection (#1561) (#1645) – Targets can now be autodetected on the Firmware Flasher page. This change will only work for flight controllers flashed with INAV 4.1 or greater.
  • 7-inch MR profile (#1631) – A defaults option is now available for 7″ quads.
  • There is an update to the options on the Advanced Tuning page to include more fields and more logical ordering. (#1635)
  • Output mode added to Mixer (#1637) – You can now select the AUTO, SERVOS, or MOTORS output mode in Configurator.
  • Reset button added for accelerometer calibration (#1638) (#1650) – If you are not happy with your accelerometer calibration. You can now reset it by clicking a button. This replaces the Calibrate Accelerometer button, once you save a valid calibration.
  • Allow default baud rated (#1678) – On the ports page, the recommended baud rates are now auto selected, if known.
  • Link to documents for correct firmware version (#1685) – This change means that clicking on a link to a document on the INAV firmware GitHub (docs folder, not Wiki); for example, clicking the ?. It will take you to the correct document for the firmware version you have installed. This means the document you see will always be relevant.
  • AUTO added to modes page (#1699) – When creating a mode range. You can now select AUTO and just flip the switch on the transmitter. This will auto-select the correct channel for your mode.
  • Fixed mixer config issues (#1733) – If using an airplane mixer that could use the flaperons mode. When “load and apply” or selecting new defaults, the mode was not activated. This is now fixed.