cleanflight/docs/Cli.md
2015-05-20 11:32:46 +01:00

111 KiB

Command Line Interface (CLI)

Cleanflight has a command line interface (CLI) that can be used to change settings and configure the FC.

Accessing the CLI.

The CLI can be accessed via the GUI tool or via a terminal emulator connected to the CLI serial port.

  1. Connect your terminal emulator to the CLI serial port (which, by default, is the same as the MSP serial port)
  2. Use the baudrate specified by msp_baudrate (115200 by default).
  3. Send a # character.

To save your settings type in 'save', saving will reboot the flight controller.

To exit the CLI without saving power off the flight controller or type in 'exit'.

To see a list of other commands type in 'help' and press return.

To dump your configuration (including the current profile), use the 'dump' command.

See the other documentation sections for details of the cli commands and settings that are available.

Backup via CLI

Disconnect main power, connect to cli via USB/FTDI.

dump using cli

rateprofile 0
profile 0
dump

dump profiles using cli if you use them

profile 1
dump profile
profile 2
dump profile

dump rate profiles using cli if you use them

rateprofile 1
dump rates
rateprofile 2
dump rates

copy screen output to a file and save it.

Restore via CLI.

Use the cli defaults command first.

When restoring from a backup it is a good idea to do a dump of the latest defaults so you know what has changed - if you do this each time a firmware release is created youwill be able to see the cli changes between firmware versions. For instance, in December 2014 the default GPS navigation PIDs changed. If you blindly restore your backup you would not benefit from these new defaults.

Use the CLI and send all the output from the saved backup commands.

Do not send the file too fast, if you do the FC might not be able to keep up when using USART adapters (including built in ones) since there is no hardware serial flow control.

You may find you have to copy/paste a few lines at a time.

Repeat the backup process again!

Compare the two backups to make sure you are happy with your restored settings.

Re-apply any new defaults as desired.

CLI Command Reference

Command Description
adjrange show/set adjustment ranges settings
aux show/set aux settings
cmix design custom mixer
color configure colors
defaults reset to defaults and reboot
dump print configurable settings in a pastable form
exit
feature list or -val or val
get get variable value
gpspassthrough passthrough gps to serial
help
led configure leds
map mapping of rc channel order
mixer mixer name or list
motor get/set motor output value
play_sound index, or none for next
profile index (0 to 2)
rateprofile index (0 to 2)
save save and reboot
set name=value or blank or * for list
status show system status
version

CLI Variable Reference

Variable Description/Units Min Max Default Type Datatype
looptime This is the main loop time (in us). Changing this affects PID effect with some PID controllers (see PID section for details). Default of 3500us/285Hz should work for everyone. Setting it to zero does not limit loop time, so it will go as fast as possible. 0 9000 3500 Master UINT16
emf_avoidance Default value is 0 for 72MHz processor speed. Setting this to 1 increases the processor speed, to move the 6th harmonic away from 432MHz. 0 1 0 Master UINT8
mid_rc This is an important number to set in order to avoid trimming receiver/transmitter. Most standard receivers will have this at 1500, however Futaba transmitters will need this set to 1520. A way to find out if this needs to be changed, is to clear all trim/subtrim on transmitter, and connect to GUI. Note the value most channels idle at - this should be the number to choose. Once midrc is set, use subtrim on transmitter to make sure all channels (except throttle of course) are centered at midrc value. 1200 1700 1500 Master UINT16
min_check These are min/max values (in us) which, when a channel is smaller (min) or larger (max) than the value will activate various RC commands, such as arming, or stick configuration. Normally, every RC channel should be set so that min = 1000us, max = 2000us. On most transmitters this usually means 125% endpoints. Default check values are 100us above/below this value. 0 2000 1100 Master UINT16
max_check These are min/max values (in us) which, when a channel is smaller (min) or larger (max) than the value will activate various RC commands, such as arming, or stick configuration. Normally, every RC channel should be set so that min = 1000us, max = 2000us. On most transmitters this usually means 125% endpoints. Default check values are 100us above/below this value. 0 2000 1900 Master UINT16
rssi_channel 0 18 0 Master INT8
rssi_scale 1 255 30 Master UINT8
rssi_ppm_invert 0 1 0 Master UINT8
input_filtering_mode 0 1 0 Master INT8
min_throttle These are min/max values (in us) that are sent to esc when armed. Defaults of 1150/1850 are OK for everyone, for use with AfroESC, they could be set to 1064/1864. 0 2000 1150 Master UINT16
max_throttle These are min/max values (in us) that are sent to esc when armed. Defaults of 1150/1850 are OK for everyone, for use with AfroESC, they could be set to 1064/1864. 0 2000 1850 Master UINT16
min_command This is the PWM value sent to ESCs when they are not armed. If ESCs beep slowly when powered up, try decreasing this value. It can also be used for calibrating all ESCs at once. 0 2000 1000 Master UINT16
servo_center_pulse 0 2000 1500 Master UINT16
3d_deadband_low 0 2000 1406 Master UINT16
3d_deadband_high 0 2000 1514 Master UINT16
3d_neutral 0 2000 1460 Master UINT16
3d_deadband_throttle 0 2000 50 Master UINT16
motor_pwm_rate Output frequency (in Hz) for motor pins. Defaults are 400Hz for motor. If setting above 500Hz, will switch to brushed (direct drive) motors mode. For example, setting to 8000 will use brushed mode at 8kHz switching frequency. Up to 32kHz is supported. Note, that in brushed mode, minthrottle is offset to zero. Default is 16000 for boards with brushed motors. 50 32000 400 Master UINT16
servo_pwm_rate Output frequency (in Hz) servo pins. Default is 50Hz. When using tricopters or gimbal with digital servo, this rate can be increased. Max of 498Hz (for 500Hz pwm period), and min of 50Hz. Most digital servos will support for example 330Hz. 50 498 50 Master UINT16
servo_lowpass_freq Selects the servo PWM output cutoff frequency. Valid values range from 10 to 400. This is a fraction of the loop frequency in 1/1000ths. For example, 40 means 0.040. The cutoff frequency can be determined by the following formula: Frequency = 1000 * servo_lowpass_freq / looptime 10 400 400 Master INT16
servo_lowpass_enable Disabled by default. 0 1 0 Master INT8
retarded_arm Disabled by default, enabling (setting to 1) allows disarming by throttle low + roll. This could be useful for mode-1 users and non-acro tricopters, where default arming by yaw could move tail servo too much. 0 1 0 Master UINT8
disarm_kill_switch Enabled by default. Disarms the motors independently of throttle value. Setting to 0 reverts to the old behaviour of disarming only when the throttle is low. Only applies when arming and disarming with an AUX channel. 0 1 1 Master UINT8
auto_disarm_delay 0 60 5 Master UINT8
small_angle If the copter tilt angle exceed this value the copter will refuse to arm. default is 25°. 0 180 25 Master UINT8
pid_at_min_throttle If enabled, the copter will process the pid algorithm at minimum throttle. Cannot be used when retarded_arm is enabled. 0 1 1 Master UINT8
flaps_speed 0 100 0 Master UINT8
fixedwing_althold_dir -1 1 1 Master INT8
reboot_character 48 126 82 Master UINT8
gps_provider 0 1 0 Master UINT8
gps_sbas_mode 0 4 0 Master UINT8
gps_auto_config 0 1 1 Master UINT8
gps_auto_baud 0 1 0 Master UINT8
gps_pos_p 0 200 15 Profile UINT8
gps_pos_i 0 200 0 Profile UINT8
gps_pos_d 0 200 0 Profile UINT8
gps_posr_p 0 200 34 Profile UINT8
gps_posr_i 0 200 14 Profile UINT8
gps_posr_d 0 200 53 Profile UINT8
gps_nav_p 0 200 25 Profile UINT8
gps_nav_i 0 200 33 Profile UINT8
gps_nav_d 0 200 83 Profile UINT8
gps_wp_radius 0 2000 200 Profile UINT16
nav_controls_heading 0 1 1 Profile UINT8
nav_speed_min 10 2000 100 Profile UINT16
nav_speed_max 10 2000 300 Profile UINT16
nav_slew_rate 0 100 30 Profile UINT8
serialrx_provider When feature SERIALRX is enabled, this allows connection to several receivers which output data via digital interface resembling serial. See RX section. 0 6 0 Master UINT8
spektrum_sat_bind 0 10 0 Master UINT8
telemetry_switch Which aux channel to use to change serial output & baud rate (MSP / Telemetry). It disables automatic switching to Telemetry when armed. 0 1 0 Master UINT8
telemetry_inversion 0 1 0 Master UINT8
frsky_default_lattitude -90 90 0 Master FLOAT
frsky_default_longitude -180 180 0 Master FLOAT
frsky_coordinates_format 0 1 0 Master UINT8
frsky_unit 0 1 0 Master UINT8
battery_capacity 0 20000 0 Master UINT16
vbat_scale Result is Vbatt in 0.1V steps. 3.3V = ADC Vref, 4095 = 12bit adc, 110 = 11:1 voltage divider (10k:1k) x 10 for 0.1V. Adjust this slightly if reported pack voltage is different from multimeter reading. You can get current voltage by typing "status"" in cli." 0 255 110 Master UINT8
vbat_max_cell_voltage Maximum voltage per cell, used for auto-detecting battery voltage in 0.1V units, default is 43 (4.3V) 10 50 43 Master UINT8
vbat_min_cell_voltage Minimum voltage per cell, this triggers battery out alarms, in 0.1V units, default is 33 (3.3V) 10 50 33 Master UINT8
vbat_warning_cell_voltage 10 50 35 Master UINT8
current_meter_scale This sets the output voltage to current scaling for the current sensor in 0.1 mV/A steps. 400 is 40mV/A such as the ACS756 sensor outputs. 183 is the setting for the Überdistro with a 0.25mOhm shunt. -10000 10000 400 Master INT16
current_meter_offset This sets the output offset voltage of the current sensor in millivolts. 0 3300 0 Master UINT16
multiwii_current_meter_output Default current output via MSP is in 0.01A steps. Setting this to 1 causes output in default multiwii scaling (1mA steps). 0 1 None defined! Master UINT8
current_meter_type 0 2 1 Master UINT8
align_gyro When running on non-default hardware or adding support for new sensors/sensor boards, these values are used for sensor orientation. Default of zero means the driver determines alignment (and this generally means it's configured for standard hardware). Default orientation of X forward, Y right, Z up is 1. After that, the numbers are as follows, and mean sensor is rotated. CW0_DEG=1, CW90_DEG=2, CW180_DEG=3, CW270_DEG=4, CW0_DEG_FLIP=5, CW90_DEG_FLIP=6, CW180_DEG_FLIP=7, CW270_DEG_FLIP=8. This should cover all orientations. When carefully understood, these values can also be used to rotate (in 90deg steps) or flip the board. 0 8 0 Master UINT8
align_acc When running on non-default hardware or adding support for new sensors/sensor boards, these values are used for sensor orientation. Default of zero means the driver determines alignment (and this generally means it's configured for standard hardware). Default orientation of X forward, Y right, Z up is 1. After that, the numbers are as follows, and mean sensor is rotated. CW0_DEG=1, CW90_DEG=2, CW180_DEG=3, CW270_DEG=4, CW0_DEG_FLIP=5, CW90_DEG_FLIP=6, CW180_DEG_FLIP=7, CW270_DEG_FLIP=8. This should cover all orientations. When carefully understood, these values can also be used to rotate (in 90deg steps) or flip the board. 0 8 0 Master UINT8
align_mag When running on non-default hardware or adding support for new sensors/sensor boards, these values are used for sensor orientation. Default of zero means the driver determines alignment (and this generally means it's configured for standard hardware). Default orientation of X forward, Y right, Z up is 1. After that, the numbers are as follows, and mean sensor is rotated. CW0_DEG=1, CW90_DEG=2, CW180_DEG=3, CW270_DEG=4, CW0_DEG_FLIP=5, CW90_DEG_FLIP=6, CW180_DEG_FLIP=7, CW270_DEG_FLIP=8. This should cover all orientations. When carefully understood, these values can also be used to rotate (in 90deg steps) or flip the board. 0 8 0 Master UINT8
align_board_roll Arbitrary board rotation in degrees, to allow mounting it sideways / upside down / rotated etc -180 360 0 Master INT16
align_board_pitch Arbitrary board rotation in degrees, to allow mounting it sideways / upside down / rotated etc -180 360 0 Master INT16
align_board_yaw Arbitrary board rotation in degrees, to allow mounting it sideways / upside down / rotated etc -180 360 0 Master INT16
max_angle_inclination This setting controls max inclination (tilt) allowed in angle (level) mode. default 500 (50 degrees). 100 900 500 Master UINT16
gyro_lpf Hardware lowpass filter for gyro. Allowed values depend on the driver - For example MPU6050 allows 5,10,20,42,98,188,256Hz, while MPU3050 doesn't allow 5Hz. If you have to set gyro lpf below 42Hz generally means the frame is vibrating too much, and that should be fixed first. Values outside of supported range will usually be ignored by drivers, and will configure lpf to default value of 42Hz. 0 256 42 Master UINT16
moron_threshold When powering up, gyro bias is calculated. If the model is shaking/moving during this initial calibration, offsets are calculated incorrectly, and could lead to poor flying performance. This threshold (default of 32) means how much average gyro reading could differ before re-calibration is triggered. 0 128 32 Master UINT8
gyro_cmpf_factor This setting controls the Gyro Weight for the Gyro/Acc complementary filter. Increasing this value reduces and delays Acc influence on the output of the filter. 100 1000 600 Master UINT16
gyro_cmpfm_factor This setting controls the Gyro Weight for the Gyro/Magnetometer complementary filter. Increasing this value reduces and delays the Magnetometer influence on the output of the filter. 100 1000 250 Master UINT16
alt_hold_deadband 1 250 40 Profile UINT8
alt_hold_fast_change 0 1 1 Profile UINT8
deadband These are values (in us) by how much RC input can be different before it's considered valid. For transmitters with jitter on outputs, this value can be increased. Defaults are zero, but can be increased up to 10 or so if rc inputs twitch while idle. 0 32 0 Profile UINT8
yaw_deadband These are values (in us) by how much RC input can be different before it's considered valid. For transmitters with jitter on outputs, this value can be increased. Defaults are zero, but can be increased up to 10 or so if rc inputs twitch while idle. 0 100 0 Profile UINT8
throttle_correction_value The throttle_correction_value will be added to the throttle input. It will be maximal at the throttle_correction_angle and over, null when the copter is leveled and proportional in bewteen. The angle is set with 0.1 deg steps from 1 to 900, ie : 300 = 30.0 deg, 225 = 22.5 deg. 0 150 0 Profile UINT8
throttle_correction_angle The throttle_correction_value will be added to the throttle input. It will be maximal at the throttle_correction_angle and over, null when the copter is leveled and proportional in bewteen. The angle is set with 0.1 deg steps from 1 to 900, ie : 300 = 30.0 deg, 225 = 22.5 deg. 1 900 800 Profile UINT16
yaw_control_direction -1 1 1 Master INT8
yaw_direction -1 1 1 Profile INT8
yaw_jump_prevention_limit Prevent yaw jumps during yaw stops. To disable set to 500. 200 80 500 Master UINT16
tri_unarmed_servo On tricopter mix only, if this is set to 1, servo will always be correcting regardless of armed state. to disable this, set it to 0. 0 1 1 Profile INT8
default_rate_profile Default = profile number 0 2 Profile UINT8
rc_rate 0 250 90 Rate Profile UINT8
rc_expo 0 100 65 Rate Profile UINT8
rc_yaw_expo 0 100 0 Rate Profile UINT8
thr_mid 0 100 50 Rate Profile UINT8
thr_expo 0 100 0 Rate Profile UINT8
roll_pitch_rate 0 100 0 Rate Profile UINT8
yaw_rate 0 100 0 Rate Profile UINT8
tpa_rate Throttle PID attenuation reduces influence of P on ROLL and PITCH as throttle increases. For every 1% throttle after the TPA breakpoint, P is reduced by the TPA rate. 0 100 0 Rate Profile UINT8
tpa_breakpoint See tpa_rate. 1000 2000 1500 Rate Profile UINT16
failsafe_delay 0 200 10 Profile UINT8
failsafe_off_delay 0 200 200 Profile UINT8
failsafe_throttle 1000 2000 1200 Profile UINT16
rx_min_usec Defines the shortest pulse width value used when ensuring the channel value is valid. If the receiver gives a pulse value lower than this value then the channel will be marked as bad and will default to the value of mid_rc. 100 2000 985 Profile UINT16
rx_max_usec Defines the longest pulse width value used when ensuring the channel value is valid. If the receiver gives a pulse value higher than this value then the channel will be marked as bad and will default to the value of mid_rc. 100 3000 2115 Profile UINT16
gimbal_flags When feature SERVO_TILT is enabled, this can be a combination of the following numbers: 1=normal gimbal (default), 2=tiltmix gimbal, 4=in PPM (or SERIALRX) input mode, this will forward AUX1..4 RC inputs to PWM5..8 pins 0 255 1 Profile UINT8
acc_hardware This is used to suggest which accelerometer driver should load, or to force no accelerometer in case gyro-only flight is needed. Default (0) will attempt to auto-detect among enabled drivers. Otherwise, to force a particular device, set it to 2 for ADXL345, 3 for MPU6050 integrated accelerometer, 4 for MMA8452, 5 for BMA280, 6 for LSM303DLHC, 7 for SPI_MPU6000, 8 for SPI_MPU6500 or 1 to disable accelerometer alltogether - resulting in gyro-only operation. 0 9 0 Master UINT8
acc_lpf_factor This setting controls the Low Pass Filter factor for ACC. Increasing this value reduces ACC noise (visible in GUI), but would increase ACC lag time. Zero = no filter 0 250 4 Profile UINT8
accxy_deadband 0 100 40 Profile UINT8
accz_deadband 0 100 40 Profile UINT8
accz_lpf_cutoff 1 20 5 Profile FLOAT
acc_unarmedcal 0 1 1 Profile UINT8
acc_trim_pitch -300 300 0 Profile INT16
acc_trim_roll -300 300 0 Profile INT16
baro_tab_size 0 48 21 Profile UINT8
baro_noise_lpf 0 1 0.6 Profile FLOAT
baro_cf_vel 0 1 0.985 Profile FLOAT
baro_cf_alt 0 1 0.965 Profile FLOAT
mag_hardware 0 3 0 Master UINT8
mag_declination Current location magnetic declination in format. For example, -6deg 37min, = for Japan. Leading zero in ddd not required. Get your local magnetic declination here: http://magnetic-declination.com/ -18000 18000 0 Profile INT16
pid_controller 0 5 0 Profile UINT8
p_pitch 0 200 40 Profile UINT8
i_pitch 0 200 30 Profile UINT8
d_pitch 0 200 23 Profile UINT8
p_roll 0 200 40 Profile UINT8
i_roll 0 200 30 Profile UINT8
d_roll 0 200 23 Profile UINT8
p_yaw 0 200 85 Profile UINT8
i_yaw 0 200 45 Profile UINT8
d_yaw 0 200 0 Profile UINT8
p_pitchf 0 100 2.5 Profile FLOAT
i_pitchf 0 100 0.6 Profile FLOAT
d_pitchf 0 100 0.06 Profile FLOAT
p_rollf 0 100 2.5 Profile FLOAT
i_rollf 0 100 0.6 Profile FLOAT
d_rollf 0 100 0.06 Profile FLOAT
p_yawf 0 100 8 Profile FLOAT
i_yawf 0 100 0.5 Profile FLOAT
d_yawf 0 100 0.05 Profile FLOAT
level_horizon 0 10 3 Profile FLOAT
level_angle 0 10 5 Profile FLOAT
sensitivity_horizon 0 250 75 Profile UINT8
p_alt 0 200 50 Profile UINT8
i_alt 0 200 0 Profile UINT8
d_alt 0 200 0 Profile UINT8
p_level 0 200 90 Profile UINT8
i_level 0 200 10 Profile UINT8
d_level 0 200 100 Profile UINT8
p_vel 0 200 120 Profile UINT8
i_vel 0 200 45 Profile UINT8
d_vel 0 200 1 Profile UINT8
yaw_p_limit Limiter for yaw P term. This parameter is only affecting PID controller 3-5. To disable set to 500 (actual default). 100 500 500 Profile UINT16
blackbox_rate_num 1 32 1 Master UINT8
blackbox_rate_denom 1 32 1 Master UINT8