INAV In-flight Real-time Parameter Adjustment
INAV supports real-time fine-tuning of multiple parameters during flight through the AUX channels of the RC transmitter. This feature is very useful for flight debugging or quickly adapting to different flight conditions, but it also comes with certain risks, so it should be used with caution.
I. Feature Introduction
INAV supports real-time fine-tuning of multiple parameters during flight through the AUX channels of the RC transmitter. This feature is very useful for flight debugging or quickly adapting to different flight conditions, but it also comes with certain risks, so it should be used with caution.
INAV allows users to make real-time adjustments to PID, flight controller parameters, rates, and more using the RC transmitter's AUX channels during flight, supporting up to 4 channels simultaneously for modifying different parameters. Additionally, an extra channel can be used to dynamically switch which parameter is currently being adjusted.
⚠️ Usage Risks and Safety Recommendations
Since changing flight controller parameters in real-time may cause aircraft instability or even crashes, please be sure to follow the following recommendations before actual operation:
- Test in open areas to avoid equipment damage or personal injury from operational errors.
- Adjust only one parameter at a time and observe the changes during flight. Do not make multiple adjustments simultaneously.
- Use three-position switches or potentiometers for control. It is recommended to use self-resetting ON-OFF-ON three-position switches for easy return to center.
- Set switch warnings on RC transmitter startup to prevent accidental operation when the switch is already in a non-neutral position when powered on.
- Confirm the switch is centered before adjustment. After powering on, the middle position indicates no changes are being made.
Supported Real-time Adjustment Parameters
The following parameters can be modified during flight or adjusted and verified on the ground:
- RC Rate, Expo, throttle Expo
- Roll, pitch, yaw rates and PID values (P, I, D)
- Surface rates in Manual mode
- Fixed-wing cruise throttle, pitch-to-throttle, etc.
- Flight controller mounting attitude correction (Board alignment)
- Self-leveling PID (Level PID)
- PID for PosHold / AltHold
- Switching between different PID profiles
Adjustments to these parameters can significantly affect flight controller response or flight performance, making them suitable for fine-tuning, advanced racing, or quick adaptation to different load conditions.
Control Methods and Working Logic
- It is recommended to use three-position switches (ON-OFF-ON) or potentiometers (POT) for adjustment channels. Self-resetting three-position switches (automatically return to center when released) are recommended.
- When the switch is set to the upper/lower position, it will automatically adjust the target parameter at a frequency of twice per second.
- In the neutral position, the current value remains unchanged and no further modifications are made.
- When using OpenTX, two separate switches can be set to control "+" and "-" respectively, combined through mixing into one channel for more intuitive control.
Saving Settings
Important Note: Adjusted parameters are not automatically saved!
Saving methods are as follows:
- Save using INAV Configurator: After making adjustments, connect to Configurator, click "Refresh" and "Save" settings.
- Save using stick combination (for before power-off): Set throttle to minimum, yaw to left, pitch down, roll right.
Usage Examples
- Use four three-position switches to adjust Roll PID P, I, D and RC Rate respectively.
- Use one switch to select the adjustment object (such as roll or pitch PID) and another switch as value increase/decrease control.
- Combine multi-position switches or potentiometers for various combination adjustments, suitable for racing tuning or temporary settings before mission flights.
II. CLI Command Explanation
In INAV, in-flight parameter adjustments can be configured using the CLI command adjrange. It supports up to defining 20 adjustment ranges, with a maximum of 4 parameters adjusted simultaneously. Each "simultaneous adjustment" requires one adjustment slot.
adjrange <index> <slot> <range_channel> <range_start> <range_end> <adjustment_function> <adjustment_channel>| Parameter Name | Value Range | Description |
|---|---|---|
| index | 0 ~ 19 | Adjustment item index (max 20 items) |
| slot | 0 ~ 3 | Adjustment channel used (max 4) |
| range_channel | AUX channel index (AUX1=0) | Channel responsible for "selecting whether to activate" |
| range_start | 900 ~ 2100 (step 25) | Valid area start point, in us (microseconds) |
| range_end | 900 ~ 2100 | Valid area end point |
| adjustment_function | 0 ~ 56 | Specific parameter being adjusted, see function table below |
| adjustment_channel | AUX channel index (AUX1=0) | Channel that actually controls the adjustment value (typically a switch or knob) |
Parameter Working Principle Explanation
- range_channel is the "switch" that controls whether a particular adjustment is enabled.
- Only when its value is between range_start and range_end will the corresponding adjustment logic be executed.
- adjustment_channel is the physical channel that the user actually uses to adjust parameters (such as a three-position switch or knob).
- The default center value is 1500us, with high position defined as >1700us and low position as <1300us.
- slot represents the adjustment channel being used (only 4 available in total).
- For example, if you want to simultaneously adjust Pitch P, Roll P, Yaw P, and RC Rate, you would use slots 0~3 respectively.
- When range_channel is not within the defined range, the current slot maintains its last state but remains active. Therefore, a complete range coverage should be defined to avoid accidental persistent adjustments.
Usage Tips and Recommendations
- If you want a three-position switch to be dedicated to adjusting a single parameter, set range_channel and adjustment_channel to the same channel.
- Different adjustment_functions can be combined to create custom PID adjustment functions, for example:
- Roll P adjustment: function = 0
- Pitch P adjustment: function = 1
- Yaw P adjustment: function = 2
- After making adjustments, manual saving is required, otherwise settings will be lost when power is turned off.
CLI command:
Important
adjrange 0 0 0 1300 1700 0 0
This means:
- Adjustment group 0 (index 0)
- Using slot 0
- Using AUX1 (index 0) as range_channel
- Valid range is 1300 ~ 1700 us
- The adjustment function being performed is Roll P (function 0)
- Using AUX1 (index 0) as the three-position switch to control this value
Adjustment Parameter Functions:



III. Related Examples
Example 1: Using a 3-position switch to adjust pitch/roll rate
adjrange 0 0 3 900 2100 4 3Explanation:
- adjrange 0: Sets the first adjustment slot (numbered 0).
- When the value range of AUX4 (channel number 3) is between 900~2100,
- Enable adjustment item number 4 (corresponding to "Pitch/Roll Rate", i.e., pitch/roll rate),
- The adjustment method comes from different positions of AUX4 (number 3).
Example 2: Using a 2-position switch + 3-position switch to adjust RC rate
adjrange 1 1 0 900 1700 0 2
adjrange 2 1 0 1700 2100 1 2Explanation:
- adjrange 1: Sets the second adjustment slot (numbered 1). When AUX1 (number 0) is in the range of 900~1700, i.e., the low position, no adjustment (number 0) is performed even if AUX3 (number 2) changes.
- adjrange 2: When AUX1 is in the range of 1700~2100 (high position), enable adjustment number 1 (i.e., "RC Rate", remote control response rate), and use the position of AUX3 (number 2) for control.
Example 3: Using a 6-position knob + 3-position switch to adjust PID parameters
adjrange 3 2 1 900 1150 6 3
adjrange 4 2 1 1150 1300 7 3
adjrange 5 2 1 1300 1500 8 3
adjrange 6 2 1 1500 1700 18 3
adjrange 7 2 1 1700 1850 19 3
adjrange 8 2 1 1850 2100 20 3All use adjustment slot 3 (numbered 2).
The control switch is AUX2 (number 1), which is used to select the position of the 6-position knob:
- 900~1150: Adjust the Pitch/Roll P term (number 6);
- 1150~1300: Adjust the Pitch/Roll I term (number 7);
- 1300~1500: Adjust the Pitch/Roll D term (number 8);
- 1500~1700: Adjust the Yaw P term (number 18);
- 1700~1850: Adjust the Yaw I term (number 19);
- 1850~2100: Adjust the Yaw D term (number 20);
The actual adjustment magnitude and increment/decrement control come from the position of AUX4 (number 3) (e.g., a 3-position rotary switch).
Configurator Example Explanation:
The following images show effective configuration methods.
In all examples, the "Range Channel" covers its entire available range (typically PWM signal 900~2100) to ensure proper configuration functionality.



The following examples show incorrect configuration methods — in both cases, the "Range Channel" does not cover its entire available range, so the configuration may not work as expected.

In the following example, the incorrect configuration above has been corrected by adding a "no change" range. This ensures that the entire available range of the range channel is covered, avoiding configuration conflicts or unexpected behavior even when no adjustments are made in certain ranges.

————This article is referenced from the official INAV website: https://github.com/iNavFlight/inav/blob/master/docs/Inflight%20Adjustments.md