Update pid.c
[inav.git] / docs / Profiles.md
blob925de755f85b898ff8a44bf8c378300a8be0c270
1 # Profiles
3 A profile is a set of configuration settings.
5 Currently three profiles are supported. The default profile is profile `1`.
7 ## Changing profiles
8 ### Stick Commands
9 Profiles can be selected using a GUI or the following stick combinations:
11 | Profile | Throttle | Yaw   | Pitch  | Roll   |
12 | ------- | -------- | ----- | ------ | ------ |
13 | 1       | Down     | Left  | Middle | Left   |
14 | 2       | Down     | Left  | Up     | Middle |
15 | 3       | Down     | Left  | Middle | Right  |
17 ### CLI
18 The CLI `profile` command can also be used to change profiles:
20 ```
21 profile <index>
22 ```
24 ### Programming (4.0.0 onwards)
25 You can change profiles using the programming frame work. This allows a lot of flexability in how you change profiles.
27 For example, using a simple switch on channel 15.
29 [![For example, using a simple switch](https://i.imgur.com/SS9CaaOl.png)](https://i.imgur.com/SS9CaaO.png)
31 Or using the speed to change profiles. In this example: 
32 - when lower than 25 cm/s (basically not flying), profiles are not effected.
33 - Below 2682 cm/s (60 mph | 97 Km/h) use Profile 1
34 - Above 5364 cm/s (120 mph | 193 Km/h) use Profile 3
35 - Between 2683 and 5364 cm/s, use Profile 2
37 [![Using speed to change profiles](https://i.imgur.com/WjkuhhWl.png)](https://i.imgur.com/WjkuhhW.png)
39 #### Configurator use with profile changing logic.
41 If you have logic conditions that change the profiles. You may find that if you manually change the profile using the drop down boxes in the top right of Configurator; that they switch back to a different profile. This is because the logic conditions are still running in the background. If this is the case, the simplest solutuion is to temporarily disable the switches that trigger the `set profile` operations. Remember to re-enable these switches after you have made your changes.
43 [![Disabled SET PROFILE switches](https://i.imgur.com/AeH9ll7l.png)](https://i.imgur.com/AeH9ll7.png)
45 ## Profile Contents
46 The values contained within a profile can be seen by using the CLI `dump profile` command.
48 e.g
49 ```
50 # dump profile
52 # profile
53 profile 1
55 set mc_p_pitch = 40
56 set mc_i_pitch = 30
57 set mc_d_pitch = 23
58 set mc_cd_pitch = 60
59 set mc_p_roll = 40
60 set mc_i_roll = 30
61 set mc_d_roll = 23
62 set mc_cd_roll = 60
63 set mc_p_yaw = 85
64 set mc_i_yaw = 45
65 set mc_d_yaw = 0
66 set mc_cd_yaw = 60
67 set mc_p_level = 20
68 set mc_i_level = 15
69 set mc_d_level = 75
70 set fw_p_pitch = 5
71 set fw_i_pitch = 7
72 set fw_d_pitch = 0
73 set fw_ff_pitch = 50
74 set fw_p_roll = 5
75 set fw_i_roll = 7
76 set fw_d_roll = 0
77 set fw_ff_roll = 50
78 set fw_p_yaw = 6
79 set fw_i_yaw = 10
80 set fw_d_yaw = 0
81 set fw_ff_yaw = 60
82 set fw_p_level = 20
83 set fw_i_level = 5
84 set fw_d_level = 75
85 set max_angle_inclination_rll = 300
86 set max_angle_inclination_pit = 300
87 set dterm_lpf_hz = 110
88 set dterm_lpf_type = PT2
89 set yaw_lpf_hz = 0
90 set fw_iterm_throw_limit = 165
91 set fw_loiter_direction = RIGHT
92 set fw_reference_airspeed =  1500.000
93 set fw_turn_assist_yaw_gain =  1.000
94 set fw_turn_assist_pitch_gain =  1.000
95 set fw_iterm_limit_stick_position =  0.500
96 set fw_yaw_iterm_freeze_bank_angle = 0
97 set pidsum_limit = 500
98 set pidsum_limit_yaw = 350
99 set iterm_windup = 50
100 set rate_accel_limit_roll_pitch = 0
101 set rate_accel_limit_yaw = 10000
102 set heading_hold_rate_limit = 90
103 set nav_mc_pos_z_p = 50
104 set nav_mc_vel_z_p = 100
105 set nav_mc_vel_z_i = 50
106 set nav_mc_vel_z_d = 10
107 set nav_mc_pos_xy_p = 65
108 set nav_mc_vel_xy_p = 40
109 set nav_mc_vel_xy_i = 15
110 set nav_mc_vel_xy_d = 100
111 set nav_mc_vel_xy_ff = 40
112 set nav_mc_heading_p = 60
113 set nav_mc_vel_xy_dterm_lpf_hz =  2.000
114 set nav_mc_vel_xy_dterm_attenuation = 90
115 set nav_mc_vel_xy_dterm_attenuation_start = 10
116 set nav_mc_vel_xy_dterm_attenuation_end = 60
117 set nav_fw_pos_z_p = 40
118 set nav_fw_pos_z_i = 5
119 set nav_fw_pos_z_d = 10
120 set nav_fw_pos_xy_p = 75
121 set nav_fw_pos_xy_i = 5
122 set nav_fw_pos_xy_d = 8
123 set nav_fw_heading_p = 60
124 set nav_fw_pos_hdg_p = 30
125 set nav_fw_pos_hdg_i = 2
126 set nav_fw_pos_hdg_d = 0
127 set nav_fw_pos_hdg_pidsum_limit = 350
128 set mc_iterm_relax = RP
129 set mc_iterm_relax_cutoff = 15
130 set d_boost_min =  0.500
131 set d_boost_max =  1.250
132 set d_boost_max_at_acceleration =  7500.000
133 set d_boost_gyro_delta_lpf_hz = 80
134 set antigravity_gain =  1.000
135 set antigravity_accelerator =  1.000
136 set antigravity_cutoff_lpf_hz = 15
137 set pid_type = AUTO
138 set mc_cd_lpf_hz = 30
139 set fw_level_pitch_trim =  0.000
140 set smith_predictor_strength =  0.500
141 set smith_predictor_delay =  0.000
142 set smith_predictor_lpf_hz = 50
143 set fw_level_pitch_gain =  5.000
144 set thr_mid = 50
145 set thr_expo = 0
146 set tpa_rate = 0
147 set tpa_breakpoint = 1500
148 set fw_tpa_time_constant = 0
149 set rc_expo = 70
150 set rc_yaw_expo = 20
151 set roll_rate = 20
152 set pitch_rate = 20
153 set yaw_rate = 20
154 set manual_rc_expo = 70
155 set manual_rc_yaw_expo = 20
156 set manual_roll_rate = 100
157 set manual_pitch_rate = 100
158 set manual_yaw_rate = 100
159 set fpv_mix_degrees = 0
160 set rate_dynamics_center_sensitivity = 100
161 set rate_dynamics_end_sensitivity = 100
162 set rate_dynamics_center_correction = 10
163 set rate_dynamics_end_correction = 10
164 set rate_dynamics_center_weight = 0
165 set rate_dynamics_end_weight = 0