iNav Version – 3.0

Putting a flight controller in your plane is not only a safety net; it also allows your planes to do things that weren’t possible just a few years ago. Words cannot describe the feeling the first time you flip a switch and your plane then comes back to you. What once was pure science fiction is now a very affordable reality. And this is all just the start of what’s to come. To perform these feats, we use INAV modes to define how what happens to the model. This article provides you with details of the INAV modes and also guidance to which modes you may want to use.

by, Marc Hoffman 
Editing and color commentary by Steve Schlesinger and Marco Lau 

One criticism of INAV is that it’s perhaps too powerful. It’s capable of so many things, and yet what you don’t know can hurt you. When you installed your flight controller you wanted to use all 16 channels and install all the INAV modes all at once. It certainly easier to do this than to go back over and over again and update INAV. But keep in mind that some of these modes surrender some if not all control of the plane. Thus, you can very realistically watch your plane fly away never to return.

With this guide you should get and overall understanding of what the INAV modes are capable of doing. It’s best to explore them one at a time. There may be certain modes you’ll never use, such as CAMSTAB. So be selective in what you wish to include. And no, you undoubtedly don’t need to use every switch on your radio to enjoy INAV.

INAV in a fixed wing plane brings a multitude of possibilities. Firstly It starts with simple in-flight stabilisation, which keeps your plane flying like it is on rails. The flight controller deals with wind gusts in real time to further enhance the flying experience. After that we have the fully autonomous flight INAV modes. This could be a simple return to home; furthermore these could allow your plane to fly complete missions over big distances, like a real military drone. It is amazing how far such simple technology in this hobby has been developed. But all these features need some knowledge to be able to use correctly.

In this guide, we will explore in detail the different INAV modes and features of INAV and explain how to correctly set them up and how they work. Firstly, we will explain, how every INAV mode works by itself. Then, in the second part, we will explain their dependencies and preconditions.

Flight Modes

The following INAV modes are flight modes. Flight modes do not fly the plane for you. They are generally used to assist you piloting the plane.


Manual, formerly known as Pass through, the pilot has direct control over the servos. You can fly, as if the model basically just has a receiver, without any input from the flight controller. The servo mixing, especially for Flying Wings or V-Tail planes, is done by INAV. No mixing on the transmitter is necessary. When setting up a new plane, you should be manually trim using the Manual mode. Then physically adjust the control surfaces so that the don’t need the radio trim.

The MANUAL control mode is very helpful during the initial tuning phase of the plane. Particularly in the case that anything is wrong with your setup, sensor failures, bad PIFF values, unstable flight behaviour. This will allow you to bring the model home, albeit without stabilisation. Some people even prefer to fly in manual, because it feels more natural.

ACRO or Rate Mode

This is the default mode of INAV. Specifically, Acro is active if you do not have other flight modes selected. This is similar to Acro mode on multicopters. So INAV will always try to keep the current attitude of the plane when the pilot has no stick input. As in most flight modes, the flight controller takes over the complete control of the servos. So the input of the pilot requests how fast the plane has to spin around the specific axis. This is known as rate control. The FC limits the speed of the spin according to the rate limits set in the software. There will be more on setting the rates in the Tuning Guide.


In angle mode, the control method changes from rate control to angle control. Therefore, with no stick input, the plane will always fly level. With a stick input for roll or pitch, the flight controller will change the angle as a result of the stick movement. However, at maximum stick movement, the plane will pitch or roll only as far as set in the firmware. There is no automatic control of altitude and throttle, so the Pilot still needs to be in control of that. The yaw axis is still in a rate-controlled mode and only stabilised.


Horizon mode is very similar to Angle mode. The difference is that when the sticks reach a set stick input threshold; horizon will automatically transition to rate control. This allows the pilot to do rolls and loops. But the plane will return to angle control once the stick is below this threshold. 

Navigation Modes

Navigation mode also include some autonomy in the flight. This is where the flight controller takes over more of the plane’s operations. This is also where you will start needing more equipment, as some of these INAV modes need a GPS module to work. Navigation modes are all based on the Angle flight mode. So it is a good idea to make sure that your plane flies well in Angle before relying on navigation modes.


In Cruise mode, the plane will explicitly, autonomously keep its heading on a straight path. The pilot does not have direct control over yaw or roll. But the pilot can change the flight course direction via the roll or yaw sticks, yaw is smoother. However this means that the roll or yaw input will have very limited authority. Throttle override by the pilot is optional, see below in the Configuring the INAV modes section. Additionally, this mode needs a working GPS module.

INAV will do all the needed attitude changes by itself to keep the chosen course. INAV also controls the throttle automatically and is dependent on the pitch angle. You need to set the cruise throttle correctly for this mode to work well. 

This mode does not maintain the altitude, the plane is flying at. So, pitch is still controlled by angle mode. That means that if when flying hands off in angle mode, the model gains altitude, it will also do this in cruise mode. This is why it is important to have Angle mode flying correctly.

In iNav 2.6 and below, this mode was called NAV CRUISE.


In NAV CRUISE, both the heading and altitude are maintained by the flight controller. In summary, in this mode no yaw, limited roll and altitude control via pitch input. It is NAV COURSE HOLD with altitude hold too.

In iNav 2.6 and below, this mode was called 3D CRUISE. I needed to be activated by enabling NAV CRUISE and ALT HOLD at the same time.


With this mode, otherwise known as loiter, you can effectively park the plane in the air. It will save the coordinates and altitude as a centre point and then try to fly a constant circle around that point. Also, with the yaw stick, the pilot can change the circle direction, if this feature is activated. With the pitch stick, the altitude can also be changed. There is no further control possible, while in this mode. POS HOLD needs a GPS module and barometer to work. Without barometer the altitude specifically will be very unreliable. Here are the useful CLI commands.

set fw_loiter_direction = YAW // Allow the yaw stick to change loiter direction
set nav_fw_loiter_radius = 5000 // Set the loiter radius, cm


Return To Home can be one of the most important modes you will ever use. Of course, this needs GPS and Barometer to work. As soon as the pilot arms the plane, it will save its home GPS position on the Flight Controller. If you ever get in trouble by flying too far away, lose sight, or just want to come back from a long-range flight; you can enable RTH and the plane will then autonomously fly back home. You can control the altitude of the return with the pitch stick and also do direction corrections in a limited heading angle. There is also a RTH mode in case of a remote connection loss but this one, behaves slightly different. More on that later. RTH is highly configurable. To get an idea of the options, take a look at the WiKi page.


In WAYPOINT mode it is possible to let the UAV fly almost completely unattended missions. The pilot can use different applications (INAV Configurator on Windows, MultiWii planner on Linux, INAV Mission Planner on Android, INAV Flight on iOS) to plan missions with waypoints. You set these out on a map with specific coordinates and altitude, and then upload them to the Flight Controller. Then you can let the FC automatically fly this mission, as long as you keep in range of your remote. There is also an option to continue missions on Rx loss since INAV 2.3 but this has to be used with caution! This is an advanced mode, you will want to master the other modes before attempting to work with NAV WP. Your planes should be well trimmed, tuned, and calibrated. 

Additional Modes or Modifiers

After explaining, what every main modes do. We will now look at the additional modes or modifiers, that cannot be used standalone. But can add additional functionalities to the modes above


For use with:
Everything except Manual. Permanently enable it on the Configuration page

Contrary to popular belief, Airmode is not Acro. They are completely different and separate things. Airmode keeps the PID (PIFF on fixed wing) controller always active, even when throttle is zero. This is very important for all flight modes, especially with manual throttle control. If this mode is disabled, you will loose stabilisation if you go to zero throttle and the plane will behave like in Manual mode, but much lower control authority. It is highly recommended to permanently enable this mode as a feature in configuration tab. 


For use with:

This mode will tell the FC to automatically keep its current height in the air, otherwise known as altitude. It will only affect the pitch control of the plane. It also only works with self-levelling flight modes. While in basic self-level modes; the pilot controls the pitch angle with the stick input directly. If NAV ALTHOLD is added to Angle, it then switches in to climb-rate control. That means, that the pitch stick will only send commands to change the height at a specific rate.

Here are some relevant CLI commands

nav_manual_climb_rate: This is the maximum climb or descent rate will be on full pitch stick input. If it is set too high, it will be physically limited by nav_fw_climb_angle and airspeed. This is set in cm.

nav_fw_climb_angle: This is the max climb angle used to sustain requested climb rate. Is limited by max_angle_inclination_pit (Global max pitch angle). If the climb angle is set higher, then max_angle_inclination_pit will be the limit to the climb. Be careful setting the climb angle, because too high values can cause a stall and in auto modes, this will likely cause a crash.


NAV LAUNCH or autolaunch is used to get the plane in to the air. It is based on the Angle flight mode. You don’t really use this mode in combination with another. But once NAV LAUNCH is active and the model is armed, you can select a flight or navigation mode for use once the launch process completes. The modes in the For use with area above make the most sense. But the best choice would be either NAV POSHOLD or NAV RTH. Personally, I would recommend POSHOLD as it keeps the sky near you clear for other pilots. While the model is still loitering close by. You will still be able to see it goggles up. Please check out our How to setup NAV LAUNCH correctly guide.

Irrelevant on fixed wing

The following INAV modes are of no use to us on fixed wing. They will be mostly for multirotor aircraft. So we can ignore:


Configuring the INAV modes

All the main INAV modes have some settings and variables that can or need to be changed. This allows you to tune them to specifically fit your needs or fit your plane. This will not include tuning values like PIFF Controller. We will explain these in the tuning guide later. All Modes that are lower down the page will also be affected by the values and required hardware of the modes above. 


Required hardware: Gyroscope

yaw_rate=20 // Only used with rudder
Defines the maximum rates the plane can turn on the specific axis. The maximum rates need to be determined before in MANUAL mode (See tuning guide). Can be set via GUI in the PID Tuning page, in the rates and expo tab. The units used in the CLI are degrees per second ÷ 10. So the value of 20 is 200 degrees per second.
align_gyro=DEFAULTSets the correct board alignment. Need to be correct so pitch, roll and yaw movement detected by the sensor, matches the movement of the plane. Can be set via GUI in Configuration tab in 90° steps and flip.
Fine tunes the board alignment if it is not precisely mounted in 90° steps. It will change the alignment of the board in 0.1° steps. Positive and negative values are possible.
With these values, it is possible to limit the acceleration of rotation. For small planes this can be very high (or even disabled) but recommended on bigger planes with more than 1 meter wingspan. Limiting the roll, pitch and yaw acceleration can give you a smoother transition between high rotation rates and still flight (hard stick inputs). Do not set it too low. Start with 5000 for pitch on roll and try to figure out best values slowly. If it is too slow, the plane will become extremely sluggish or uncontrollable.


Required hardware: As above plus Accellerometer

These values determine the maximum angles in ANGLE flight mode. It also limits the overall angle limit for all other flight modes with auto-level functionality. 


Required hardware: As above

fw_d_level=75This value sets the transition point, when Horizon mode will switch from angle control to rate control. A value of 75 means, that a roll stick output of more than 75% to each side will cause a full roll movement like in Acro mode. 


Required hardware: As above plus GPS & Barometer

nav_fw_cruise_thr=1400his is the applied throttle value when in cruise mode. It needs to be high enough to ensure the plane has enough airspeed. It needs to keep a good control authority and not stall, even in turns. Rule of thumb: keep the plane at least 30% above stall speed. You can determine the correct throttle in manual flight by doing a stall test and take the stall speed as reference.
nav_fw_allow_manual_thr_increase=OFFTurning this on, will allow you to override automatic throttle control in all navigation modes. You cannot go below the automatic throttle value, except with motor stop on zero throttle. But you can rise the throttle manually if needed. If this is activated, you should always keep the throttle stick very low when in auto throttle mode, if you want to have a slow and efficient flight. If throttle is too high, it could rise the turn radius in navigation modes massively. 
These values set the max and min throttle during all navigation modes, when pitch is controlled automatically. These should be set wisely. On planes with good gliding behaviour and low drag, the min throttle can be set lower. Do not set it to 1000 when using folding props as throttle reactivation can be too quick for a folder.
On fast planes like war birds or light foam board planes, this should be kept higher to avoid speed loss. Max throttle is the most important. This must be high enough to keep air speed when the plane is pitching up, all the way to the nav_fw_climb_angle. You should test this manually in ANGLE mode and check with OSD or via the LOG. More about this in the Tuning guide.
These are the angles on pitch and roll axis, that are allowed during all autonomous flight modes. These should be set high enough to get acceptable turn rates and climb or dive speed. But not too high. If bank angle is set too high, you risk to loose altitude too quick and due to GPS direction delay, the flight will be very sluggish. Climb angle must not be higher than your motor power allows without getting the plane to stall. And dive angle should also not be too high to make sure INAV has enough time to go level again when diving very low and the plane does not get too fast.
nav_fw_pitch2thr=10This value determines how much throttle INAV will add or subtract from nav_fw_cruise_thr for every degree of pitch. Example for default values: In level flight the ESC gets 1400 throttle value. When pitching up 15 degrees, INAV will give a throttle value of 1550. With pitch down 20 degrees, it will send 1200 to the ESC. Upper and lower values are limited by min and max throttle (see above). Should be tested in ANGLE mode and should be set to a value, where airspeed keeps the same at every climb and dive angle. 
nav_fw_cruise_yaw_rate=20This is the turning rate when applying full roll stick input. Don’t be confused by the yaw. This also applies to Wings and V-Tails. On wings INAV will use bank and yank to change its course but it will also use rudder if available. This should be set higher on smaller planes. The maximum yaw rate depends on the max allowed nav bank angle. 


Required hardware: As above

nav_fw_loiter_radius=5000This sets the radius of the loiter circle if the plane is in POSHOLD or RTH LOITER. Default is 5000cm (50m) but should be set higher on bigger planes. 
fw_loiter_direction=RIGHTThis value determines if the final loiter direction will be clockwise (RIGHT) or counter clockwise (LEFT). It is also possible to select the loiter direction manual with the YAW stick. To enable this, set the value to YAW.


Required hardware: As above

Due to the large amount of options in RTH and Failsafe, this will be covered in a separate article.


Required hardware: As above

nav_wp_radius=100Determines the distance to a set waypoint, to accept it as reached. This must be set higher for FW because it is very unlikely, to hit a waypoint at 100cm precision. 1000-3000cm are good values here, depending how agile your plane is and how far you set the WP apart. 
nav_wp_safe_distance=10000This is the maximum distance between the Home Position and the first waypoint. This is a safety value, that avoids accidental flyaway, in case a wrong mission is loaded for a location far away.


Required hardware: None

This value will add an expo for RC inputs in MANUAL mode. You should disable any expo setting in your transmitter and only use INAV setting here.
With these values you can limit the maximum servo throw in manual mode.