INAV Gyro and D-term filters: CLI settings
Gyro lowpass, dynamic gyro notch, adaptive and LULU filters, the RPM filter and the D-term lowpass. These decide how much motor noise reaches the PID loop and how much delay the filtering adds.
28 settings in INAV 9.1.
Each range and value list is read from the release's src/main/fc/settings.yaml, each default from
the release's settings.yaml, with each constant and C type resolved by INAV's own settings.rb against the SITL and flight-controller target headers, so a board's own config can still change it. Set one with set name = value, then save.
Paste a diff all into the CLI checker to test it against any release.
| Setting | Type | Range or values | Default | 8.0 | 9.0 | 9.1 | Notes |
|---|---|---|---|---|---|---|---|
dterm_lpf_hz # |
uint16 control profile |
0 to 500 | 110 |
✓ | ✓ | ✓ | Dterm low pass filter cutoff frequency. Default setting is very conservative and small multirotors should use higher value between 80 and 100Hz. 80 seems like a gold spot for 7-inch builds while 100 should work best with 5-inch machines. If motors are getting too hot, lower the value |
dterm_lpf_type # |
uint8 control profile |
PT1, BIQUAD, PT2, PT3, LULU | PT2 |
✓ | ✓ | ✓ | Defines the type of stage 1 D-term LPF filter. Possible values: `PT1`, `BIQUAD`, `PT2`, `PT3`. |
dynamic_gyro_notch_3d_q # |
uint16 global |
1 to 1000 | 200needs USE_DYNAMIC_FILTERS |
✓ | ✓ | ✓ | Q factor for 3D dynamic notches |
dynamic_gyro_notch_enabled # |
uint8 global |
OFF, ON | ONneeds USE_DYNAMIC_FILTERS |
✓ | ✓ | ✓ | Enable/disable dynamic gyro notch also known as Matrix Filter |
dynamic_gyro_notch_min_hz # |
uint16 global |
30 to 250 | 50needs USE_DYNAMIC_FILTERS |
✓ | ✓ | ✓ | Minimum frequency for dynamic notches. Default value of `150` works best with 5" multirotors. Should be lowered with increased size of propellers. Values around `100` work fine on 7" drones. 10" can go down to `60` - `70` |
dynamic_gyro_notch_mode # |
uint8 global |
2D, 3D | 2Dneeds USE_DYNAMIC_FILTERS |
✓ | ✓ | ✓ | Gyro dynamic notch type |
dynamic_gyro_notch_q # |
uint16 global |
1 to 1000 | 120needs USE_DYNAMIC_FILTERS |
✓ | ✓ | ✓ | Q factor for dynamic notches |
gyro_adaptive_filter_hpf_hz # |
float global |
1 to 50 | 10needs USE_ADAPTIVE_FILTER |
✓ | ✓ | ✓ | High pass filter cutoff frequency |
gyro_adaptive_filter_integrator_threshold_high # |
float global |
1 to 10 | 4needs USE_ADAPTIVE_FILTER |
✓ | ✓ | ✓ | High threshold for adaptive filter integrator |
gyro_adaptive_filter_integrator_threshold_low # |
float global |
-10 to 0 | -2needs USE_ADAPTIVE_FILTER |
✓ | ✓ | ✓ | Low threshold for adaptive filter integrator |
gyro_adaptive_filter_max_hz # |
uint16 global |
0 to 505 | 150needs USE_ADAPTIVE_FILTER |
✓ | ✓ | ✓ | Maximum frequency for adaptive filter |
gyro_adaptive_filter_min_hz # |
uint16 global |
0 to 250 | 50needs USE_ADAPTIVE_FILTER |
✓ | ✓ | ✓ | Minimum frequency for adaptive filter |
gyro_adaptive_filter_std_lpf_hz # |
float global |
0 to 10 | 2needs USE_ADAPTIVE_FILTER |
✓ | ✓ | ✓ | Standard deviation low pass filter cutoff frequency |
gyro_adaptive_filter_target # |
float global |
1 to 6 | 3.5needs USE_ADAPTIVE_FILTER |
✓ | ✓ | ✓ | Target value for adaptive filter |
gyro_anti_aliasing_lpf_hz # |
uint16 global |
0 to 1000 | 250 |
✓ | ✓ | ✓ | Gyro processing anti-aliasing filter cutoff frequency. In normal operation this filter setting should never be changed. In Hz |
gyro_dyn_lpf_curve_expo # |
uint8 global |
1 to 10 | 5 |
✓ | ✓ | ✓ | Expo value for the throttle-to-frequency mapping for Dynamic LPF |
gyro_dyn_lpf_max_hz # |
uint16 global |
40 to 1000 | 500 |
✓ | ✓ | ✓ | Maximum frequency of the gyro Dynamic LPF |
gyro_dyn_lpf_min_hz # |
uint16 global |
40 to 400 | 200 |
✓ | ✓ | ✓ | Minimum frequency of the gyro Dynamic LPF |
gyro_filter_mode # |
uint8 global |
OFF, STATIC, DYNAMIC, ADAPTIVE | STATIC |
✓ | ✓ | ✓ | Specifies the type of the software LPF of the gyro signals. |
gyro_lulu_enabled # |
uint8 global |
OFF, ON | OFF |
✓ | ✓ | ✓ | Enable/disable gyro LULU filter |
gyro_lulu_sample_count # |
uint8 global |
1 to 15 | 3 |
✓ | ✓ | ✓ | Gyro lulu sample count, in number of samples. |
gyro_main_lpf_hz # |
uint16 global |
0 to 500 | 60 |
✓ | ✓ | ✓ | Software based gyro main lowpass filter. Value is cutoff frequency (Hz) |
rpm_gyro_filter_enabled # |
uint8 global |
OFF, ON | OFFneeds USE_RPM_FILTER |
✓ | ✓ | ✓ | Enables gyro RPM filtere. Set to `ON` only when ESC telemetry is working and rotation speed of the motors is correctly reported to INAV |
rpm_gyro_harmonics # |
uint8 global |
1 to 3 | 1needs USE_RPM_FILTER |
✓ | ✓ | ✓ | Number of harmonic frequences to be covered by gyro RPM filter. Default value of `1` usually works just fine |
rpm_gyro_min_hz # |
uint8 global |
30 to 200 | 100needs USE_RPM_FILTER |
✓ | ✓ | ✓ | The lowest frequency for gyro RPM filtere. Default `150` is fine for 5" mini-quads. On 7-inch drones you can lower even down to `60`-`70` |
rpm_gyro_q # |
uint16 global |
1 to 3000 | 500needs USE_RPM_FILTER |
✓ | ✓ | ✓ | Q factor for gyro RPM filter. Lower values give softer, wider attenuation. Usually there is no need to change this setting |
setpoint_kalman_enabled # |
uint8 global |
OFF, ON | ONneeds USE_GYRO_KALMAN |
✓ | ✓ | ✓ | Enable Kalman filter on the gyro data |
setpoint_kalman_q # |
uint16 global |
1 to 1000 | 100needs USE_GYRO_KALMAN |
✓ | ✓ | ✓ | Quality factor of the setpoint Kalman filter. Higher values means less filtering and lower phase delay. On 3-7 inch multirotors can be usually increased to 200-300 or even higher of clean builds |
✓ present, Δ changed in that release (hover for what changed), — not in that release.
“needs USE_…” is the build option the setting is compiled with: a target that does not define it has no such setting.Descriptions are INAV's own, from settings.yaml.
Other sections
- PID tuning (74)
- Rates, expo and TPA (32)
- Navigation, RTH and waypoints (53)
- Multirotor navigation (31)
- Fixed-wing navigation and launch (63)
- Position estimator (23)
- GPS (11)
- Accelerometer, compass and other sensors (56)
- Receiver and RC input (21)
- Failsafe and arming (18)
- Motors, ESC and beeper (15)
- Mixer profiles (12)
- Servos, gimbal and head tracker (19)
- Battery, current sensor and power limits (35)
- OSD (114)
- Video transmitter (12)
- Telemetry (31)
- Blackbox, logging and stats (12)
- System (13)
What changed between releases: 8.0 → 9.0 · 9.0 → 9.1. Machine-readable: params.json (9.1.0), GPL-3.0 like the firmware it comes from.