Skip to content

Commit ddf817c

Browse files
authored
Merge pull request betaflight#2638 from haslinghuis/rfc_filters
2 parents 7e08f9f + 92948e2 commit ddf817c

File tree

7 files changed

+1002
-520
lines changed

7 files changed

+1002
-520
lines changed

locales/en/messages.json

Lines changed: 73 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1827,6 +1827,9 @@
18271827
"pidTuningOptionOff": {
18281828
"message": "OFF"
18291829
},
1830+
"pidTuningOptionOn": {
1831+
"message": "ON"
1832+
},
18301833
"pidTuningFeedforwardAveragingOption2Point": {
18311834
"message": "2 Point"
18321835
},
@@ -3626,6 +3629,10 @@
36263629
"message": "Raises or Lowers the default Gyro Lowpass Filters in proportion to each-other. The gyro filtering is applied before the PID loop.<br />General motor noise ranges per quad class:<br /><br />6\"+ quads - generally within 100hz to 330hz<br />5\" quads - generally within 220hz to 500hz<br />Whoop to 3\" quads - generally within 300hz to 850hz<br /><br />Generally, you want to set the slider to have the Gyro Lowpass 1 Dynamic Min/Max Cutoff range cover the above.<br />However, for smoother flights use More Filtering on the slider. To get a more aggressive filter tune, use Less Filtering on the slider.<br /><br />With Less Filtering BE CAREFUL to not get radical as to cause a fly-away or burn out motors.<br />Note frame resonance issues, bad bearings, and beat up props may cause you to need more filtering.",
36273630
"description": "Gyro filtering tuning slider helpicon message"
36283631
},
3632+
"pidTuningGyroSliderEnabled": {
3633+
"message": "Use Gyro Slider",
3634+
"description": "Disable or enable Gyro Filter Tuning Slider"
3635+
},
36293636
"pidTuningDTermFilterSlider": {
36303637
"message": "D Term Filter Multiplier:",
36313638
"description": "D Term filter tuning slider label"
@@ -3634,6 +3641,10 @@
36343641
"message": "Changes the D-term Lowpass Filter cutoffs.<br />Moving the slider to the left gives stronger D filtering (lower cutoff frequency); to the right gives less filtering (higher cutoff frequency).<br /><br />D-term is the most sensitive PID element to noise and resonance. It can amplify any high frequency noise by 10x to 100x plus. That's why the cutoffs for the D filters are much lower than the gyro filters.<br /><br />D-term filtering is applied after - in addition to - the gyro filtering. Strong D filtering will reduce motor heat on noisy quads and can be useful with high PID 'D' values to minimise D resonance at medium to high frequencies. However, strong D filtering may delay the D signal, worsening propwash handling and encouraging lower frequency D resonances. The default D filtering is optimal for most quads. Larger machines with high D may do better with stronger D filtering than defaults. Moving the D lowpass filter slider to the right is generally not required. On very clean builds, going to the right can attenuate propwash. It should be done very cautiously since having less filtering on D can result in sudden resonances (including motor grinding or taking off on arming) and extreme motor heat.",
36353642
"description": "D Term filtering tuning slider helpicon message"
36363643
},
3644+
"pidTuningDTermSliderEnabled": {
3645+
"message": "Use D Term Slider",
3646+
"description": "Disable or enable D Term Filter Tuning Slider"
3647+
},
36373648
"pidTuningPidSlidersHelp": {
36383649
"message": "Sliders to adjust the quad flight characteristics (PID gains)<br /><br />Damping (D gain): Resists fast movement, minimises P oscillation.<br /><br />Tracking (P and I gain): Enchances the responsiveness of the quad, if too high may cause trilling or oscillation.<br /><br />Stick Response (Feedforward): Increases the responsiveness of the quad to faster stick movements.<br /><br />Drift - Wobble (I gain, expert): Fine adjustment of I.<br /><br />Dynamic D (D Max, expert): Sets the maximum amount that D can be boosted to during fast movements.<br /><br />Pitch Damping (Pitch:Roll D ratio, expert): Increases the amount of damping on pitch relative to roll.<br /><br />Pitch Tracking (Pitch:Roll P, I and F ratio, expert): Increases stabilising strenght on pitch relative to roll.<br /><br />Master Multiplier (all gains, expert): Raises or Lowers all the PID gains, keeping their proportions constant.",
36393650
"description": "Overall helpicon message for PID tuning sliders"
@@ -3646,6 +3657,14 @@
36463657
"message": "<strong>Note:</strong> Sliders are disabled because values were changed manually. Clicking the '$t(pidTuningSliderEnableButton.message)' button will activate them again. This will reset the values and any unsaved changes will be lost.",
36473658
"description": "Tuning sliders disabled note when manual changes are detected"
36483659
},
3660+
"pidTuningGyroSliderDisabled": {
3661+
"message": "<strong>Note:</strong> Gyro Slider is disabled because values were changed manually. Clicking the '$t(pidTuningGyroSliderEnableButton.message)' button will activate them again. This will reset the values and any unsaved changes will be lost.",
3662+
"description": "Gyro Tuning sliders disabled note when manual changes are detected"
3663+
},
3664+
"pidTuningDTermSliderDisabled": {
3665+
"message": "<strong>Note:</strong> DTerm Slider is disabled because values were changed manually. Clicking the '$t(pidTuningDTermSliderEnableButton.message)' button will activate them again. This will reset the values and any unsaved changes will be lost.",
3666+
"description": "DTerm Tuning sliders disabled note when manual changes are detected"
3667+
},
36493668
"pidTuningPidSlidersDisabled": {
36503669
"message": "<strong>Note:</strong> Sliders are disabled. Clicking the '$t(pidTuningSliderEnableButton.message)' button will change the PID values to match your previously saved slider position.",
36513670
"description": "Tuning sliders disabled note"
@@ -3774,26 +3793,44 @@
37743793
"pidTuningGyroLowpassFiltersGroup": {
37753794
"message": "Gyro Lowpass Filters"
37763795
},
3777-
"pidTuningGyroLowpassFrequency": {
3778-
"message": "Gyro Lowpass 1 Cutoff Frequency [Hz]"
3779-
},
37803796
"pidTuningGyroLowpassType": {
37813797
"message": "Gyro Lowpass 1 Filter Type"
3798+
},
3799+
"pidTuningGyroLowpassFrequency": {
3800+
"message": "Cutoff Frequency [Hz]"
3801+
},
3802+
"pidTuningGyroLowpass": {
3803+
"message": "Gyro Lowpass 1"
3804+
},
3805+
"pidTuningGyroLowpassMode": {
3806+
"message": "Mode"
3807+
},
3808+
"pidTuningLowpassStatic": {
3809+
"message": "STATIC"
3810+
},
3811+
"pidTuningLowpassDynamic": {
3812+
"message": "DYNAMIC"
3813+
},
3814+
"pidTuningLowpassFilterType": {
3815+
"message": "Filter Type"
3816+
},
3817+
"pidTuningGyroLowpassDyn": {
3818+
"message": "Gyro Lowpass Dynamic Filter"
37823819
},
37833820
"pidTuningGyroLowpassDynMinFrequency": {
3784-
"message": "Gyro Lowpass 1 Dynamic Min Cutoff Frequency [Hz]"
3821+
"message": "Min Cutoff Frequency [Hz]"
37853822
},
37863823
"pidTuningGyroLowpassDynMaxFrequency": {
3787-
"message": "Gyro Lowpass 1 Dynamic Max Cutoff Frequency [Hz]"
3824+
"message": "Max Cutoff Frequency [Hz]"
37883825
},
37893826
"pidTuningGyroLowpassDynType": {
37903827
"message": "Gyro Lowpass 1 Dynamic Filter Type"
37913828
},
3792-
"pidTuningGyroLowpass2Frequency": {
3793-
"message": "Gyro Lowpass 2 Cutoff Frequency [Hz]"
3829+
"pidTuningGyroLowpass2": {
3830+
"message": "Gyro Lowpass 2"
37943831
},
3795-
"pidTuningGyroLowpass2Type": {
3796-
"message": "Gyro Lowpass 2 Filter Type"
3832+
"pidTuningGyroLowpass2Frequency": {
3833+
"message": "Cutoff Frequency [Hz]"
37973834
},
37983835
"pidTuningGyroLowpassFilterHelp": {
37993836
"message": "Gyro lowpass filters attenuate higher frequency noise to keep it out of the PID loop. There are two independently configurable gyro filters; by default both are active.<br /><br />The first D lowpass can be static (fixed cutoff) or dynamic; the second D lowpass is always static. When a lowpass is in dynamic mode, filter will be stronger at low throttle, and the cutoff will go higher (less filtering) as throttle increases.<br /><br />Without RPM filtering, both PT1 filters should be enabled at default (or stronger) cutoffs, with lowpass 1 in dynamic mode.<br /><br />With RPM filtering, the gyro filter slider can often be moved some way to the right. On clean quads it can go all the way right, or alternatively a single static gyro lowpass filter at 500hz may be sufficient.<br /><br />A quad will have less propwash with the least gyro filter delay (sliders to the right, higher cutoff values).<br /><br />Always check for motor heat when shifting to less gyro filtering (sliders to the right). With minimal gyro filtering, it is essential to have enough D filtering! Take care!"
@@ -3804,6 +3841,12 @@
38043841
"pidTuningGyroNotchFiltersGroup": {
38053842
"message": "Gyro Notch Filters"
38063843
},
3844+
"pidTuningGyroNotchFilter": {
3845+
"message": "Gyro Notch Filter 1"
3846+
},
3847+
"pidTuningGyroNotchFilter2": {
3848+
"message": "Gyro Notch Filter 2"
3849+
},
38073850
"pidTuningGyroNotch1Frequency": {
38083851
"message": "Gyro Notch Filter 1 Center Frequency [Hz]"
38093852
},
@@ -3864,6 +3907,9 @@
38643907
"pidTuningDynamicNotchMaxHzHelp": {
38653908
"message": "Set this to the highest incoming noise frequency that is needed to be controlled by the dynamic notch."
38663909
},
3910+
"pidTuningGyroLowpassType": {
3911+
"message": "Gyro Lowpass 1 Filter Type"
3912+
},
38673913
"pidTuningDynamicNotchCountHelp": {
38683914
"message": "Sets the number of dynamic notches per axis. With RPM filter enabled a value of 1 or 2 is recommended. Without RPM filter a value of 4 or 5 is recommended. Lower numbers will reduce filter delay, however it may increase motor temperature."
38693915
},
@@ -3894,33 +3940,45 @@
38943940
"pidTuningFilterSettings": {
38953941
"message": "Profile dependent Filter Settings"
38963942
},
3943+
"pidTuningDTermLowpass": {
3944+
"message": "D Term Lowpass 1"
3945+
},
3946+
"pidTuningDTermLowpassMode": {
3947+
"message": "Mode"
3948+
},
3949+
"pidTuningDTermLowpass2": {
3950+
"message": "D Term Lowpass 2"
3951+
},
38973952
"pidTuningDTermLowpassFiltersGroup": {
38983953
"message": "D Term Lowpass Filters"
38993954
},
39003955
"pidTuningDTermLowpassType": {
39013956
"message": "D Term Lowpass 1 Filter Type"
39023957
},
39033958
"pidTuningDTermLowpassFrequency": {
3904-
"message": "D Term Lowpass 1 Cutoff Frequency [Hz]"
3959+
"message": "D Term Lowpass 1 Static Cutoff Frequency [Hz]"
39053960
},
39063961
"pidTuningDTermLowpass2Frequency": {
3907-
"message": "D Term Lowpass 2 Cutoff Frequency [Hz]"
3962+
"message": "D Term Lowpass 2 Static Cutoff Frequency [Hz]"
39083963
},
39093964
"pidTuningDTermLowpass2Type": {
39103965
"message": "D Term Lowpass 2 Filter Type"
39113966
},
3967+
"pidTuningDTermLowpassDyn": {
3968+
"message": "D Term Lowpass Dynamic Filter"
3969+
},
39123970
"pidTuningDTermLowpassDynMinFrequency": {
39133971
"message": "D Term Lowpass 1 Dynamic Min Cutoff Frequency [Hz]"
39143972
},
39153973
"pidTuningDTermLowpassDynMaxFrequency": {
39163974
"message": "D Term Lowpass 1 Dynamic Max Cutoff Frequency [Hz]"
39173975
},
3918-
"pidTuningDTermLowpassDynType": {
3919-
"message": "D Term Lowpass 1 Dynamic Filter Type"
3920-
},
39213976
"pidTuningDTermLowpassDynExpo": {
39223977
"message": "D Term Lowpass 1 Dynamic Curve Expo"
39233978
},
3979+
"pidTuningDTermLowpassDynType": {
3980+
"message": "D Term Lowpass 1 Dynamic Filter Type"
3981+
},
39243982
"pidTuningDTermNotchFiltersGroup": {
39253983
"message": "D Term Notch Filters"
39263984
},
@@ -3930,7 +3988,7 @@
39303988
"pidTuningDTermNotchCutoff": {
39313989
"message": "D Term Notch Filter Cutoff Frequency [Hz]"
39323990
},
3933-
"pidTuningYawLospassFiltersGroup": {
3991+
"pidTuningYawLowpassFiltersGroup": {
39343992
"message": "Yaw Lowpass Filters"
39353993
},
39363994
"pidTuningYawLowpassFrequency": {

src/css/tabs/pid_tuning.css

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -163,13 +163,17 @@
163163
padding-right: 5px;
164164
}
165165

166-
.tab-pid_tuning table.compensation td:first-child {
166+
.tab-pid_tuning table.compensation td:first-child:not(.filterTable) {
167167
width: 65px;
168168
text-align: center;
169169
vertical-align: top;
170170
padding-top: 4px;
171171
}
172172

173+
.tab-pid_tuning table.filterTable.compensation td:first-child {
174+
width: 5%;
175+
}
176+
173177
.tab-pid_tuning table.compensation td:last-child {
174178
width: 100%;
175179
}
@@ -914,10 +918,6 @@
914918
table-layout: auto;
915919
}
916920

917-
.tab-pid_tuning table.filterTable td:first-child {
918-
width: 25%;
919-
}
920-
921921
@media only screen and (max-width: 1205px) {
922922

923923
.tab-pid_tuning .subtab-pid .spacer_left {

0 commit comments

Comments
 (0)