Betaflight MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Betaflight MCP what's my current attitude and battery voltage?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Betaflight MCP
An MCP (Model Context Protocol) server that exposes Betaflight flight controller control to AI assistants such as Claude. It communicates with the FC over USB serial connection using the MSP binary protocol and the Betaflight CLI text interface. Use it at your own risk — it can send any command the CLI allows, including ones that may cause crashes, flyaways, or other unsafe conditions if misused. Always review tool actions before approving them in Claude.
Compatibility
Betaflight firmware v2025.12 or later
Related MCP server: ArduPilot MCP Server Sandbox
Features
Real-time sensor reads — attitude, IMU, GPS, RC channels, motors, battery
Full CLI access — feature flags, variable get/set, dump/diff, save, defaults
Auto-generated variable tools: ~375 CLI-configurable variables each exposed as a
get_<name>/set_<name>tool pair, derived from the Betaflight firmware sourceExpert PID tuning skill — automatically activates in Claude Code when tuning topics come up
Quick start (any MCP client)
The server is published on npm and runs via npx — no clone, no build, no compiler required. This works identically in Claude Desktop, Claude Code, Cursor, Windsurf, VS Code's MCP support, or any other MCP host, since they all understand the same command/args shape.
Add this to your client's MCP config:
{
"mcpServers": {
"betaflight": {
"command": "npx",
"args": ["-y", "betaflight-mcp"]
}
}
}Client | Config file |
Claude Desktop (Windows) |
|
Claude Desktop (macOS) |
|
Claude Desktop (Linux) |
|
Claude Code |
|
Cursor |
|
Windsurf |
|
Restart your client, connect your flight controller over USB, and find its serial device:
# Windows: Device Manager → Ports (COM & LPT), e.g. COM3
# Linux: ls /dev/tty{USB,ACM}*
# macOS: ls /dev/cu.*Then tell the assistant: Connect to my flight controller on COM3 (or /dev/ttyACM0).
Security consideration: The server needs access to serial ports to talk to your flight controller and runs with your user account's permissions. It can send any command the Betaflight CLI allows. Only connect to flight controllers you trust and always review tool calls before approving them.
npx fetches prebuilt native binaries for the serial port driver — no C++ build toolchain (Visual Studio Build Tools, Xcode CLT, build-essential) is required on any of Windows, macOS, or Linux (x64/arm64).
Claude Code Plugin
This repo ships a Claude Code plugin in the plugin/ directory, which bundles:
The PID tuning skill — activates automatically when you mention Betaflight, PID tuning, filter tuning, propwash, oscillations, etc.
The MCP server config — connects Claude Code to the betaflight-mcp server via
npx(same as the quick start above)
Install the plugin
claude plugin marketplace add bvandevliet/betaflight-mcp
claude plugin install betaflight-mcp@betaflight-mcpThen whitelist the read-only tools so Claude doesn't ask for approval on every read:
npx -y betaflight-mcp-whitelist-readsRestart Claude Code afterwards. Write tools (set_*, cli_save, cli_exec, motor_set, etc.) are never whitelisted by default.
Updating the plugin
claude plugin uninstall betaflight-mcp@betaflight-mcp
claude plugin install betaflight-mcp@betaflight-mcpSince the plugin's .mcp.json runs npx -y betaflight-mcp, it always resolves the latest published version — no rebuild or path reconfiguration needed.
Claude Desktop users: The plugin system is a Claude Code (CLI) feature and is not available in Claude Desktop. Use the Quick start config above instead — this gives full access to all ~1500 tools. The PID tuning skill does not auto-activate in Claude Desktop; as a workaround, create a Claude Project and attach
plugin/skills/betaflight-pid-tuning/SKILL.mdas project knowledge so it is always in context.
CLI commands and variables as MCP tools
Relevant CLI-configurable variables are exposed as individual get_<name> / set_<name> tool pairs, auto-generated from the Betaflight firmware source (settings.c, ~375 variables), enriched with descriptions from the CLI reference docs.
Run pnpm generate to regenerate src/generated/variables.ts after a Betaflight release.
Development
pnpm install
pnpm generate # Re-fetch firmware sources + Cli.md, regenerate src/generated/variables.ts
pnpm dev # Run directly via tsx (no build step)
pnpm build # pnpm generate (prebuild) → tsc → dist/
pnpm typecheck # Type-check without emitting
pnpm lint # ESLint over src/Testing a local checkout as the npx target
To exercise your own changes through an MCP client (instead of the published npm version), link the package globally after building:
pnpm build
pnpm link --globalThen point your client config at the linked binary instead of npx:
{
"mcpServers": {
"betaflight": {
"command": "betaflight-mcp"
}
}
}pnpm unlink --global reverts to the registry version.
Architecture
MCP client (Claude Desktop, Claude Code, Cursor, …)
│ stdio (MCP JSON-RPC)
▼
betaflight-mcp
├── MSP binary protocol ←→ FC (real-time sensor reads)
└── CLI text interface ←→ FC (configuration, variables)The server communicates over stdio — the host launches it as a subprocess and pipes stdin/stdout for MCP JSON-RPC; there is no HTTP port. It maintains a single serial connection shared between the MSP client and the CLI client, serialised via a FIFO mutex so commands never interleave on the wire.
Alternative: Docker
Docker is useful for containerized or offline deployments, but isn't required — see Quick start for the standard npx install.
docker build -t betaflight-mcp .Then reference the container instead of npx in your client config, granting access to your flight controller's serial device:
{
"mcpServers": {
"betaflight": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--device", "/dev/ttyACM0:/dev/ttyACM0",
"betaflight-mcp"
]
}
}
}Replace /dev/ttyACM0 with your actual device path (see Quick start for finding it per OS).
Windows: Docker Desktop runs containers in a WSL2 Linux VM, so passing a COM port through requires bridging it into WSL2 with USBIPD-WIN first (usbipd bind/usbipd attach --wsl), then referencing the resulting /dev/ttyACM* path from inside WSL2. This is more involved than the native npx path above — prefer npx on Windows unless you specifically need a container.
Security consideration: Granting Docker access to a serial device allows the container to communicate with your flight controller. Only connect to flight controllers you trust.
Available Tools
795 toolscalibrate_accelerometerA
Calibrate the accelerometer. Place the flight controller level and stationary before calling this. Note: call this before any CLI tools in the same session (MSP cannot be used after CLI mode is entered).
Inputs: no named parameters.
calibrate_magnetometerA
Calibrate the magnetometer (compass). Rotate the flight controller through all orientations when prompted. Note: call this before any CLI tools in the same session (MSP cannot be used after CLI mode is entered).
Inputs: no named parameters.
cli_defaultsA
Reset flight controller configuration to factory defaults and reboot. WARNING: This will erase all settings and close the connection. Use cli_save after reconnecting to preserve the reset.
Inputs: no named parameters.
cli_diffA
Show only the settings that differ from the defaults (diff all). More concise than a full dump.
Inputs: no named parameters.
cli_dumpA
Dump the complete flight controller configuration as CLI commands. This may take several seconds.
Inputs: no named parameters.
cli_execA
Execute an arbitrary CLI command on the flight controller and return the output. NOTE: for "set simplified_*" commands, prefer the set_pid_sliders tool — it recalculates the underlying PID/filter gains via MSP. If used here anyway, this tool automatically runs "simplified_tuning apply" afterward to keep the actual gains in sync with the slider value.
Inputs: command (required).
cli_helpB
List all available CLI commands on the flight controller.
Inputs: no named parameters.
cli_saveA
Save current configuration to EEPROM and reboot the flight controller. WARNING: This will close the connection as the FC reboots. Reconnect after save.
Inputs: no named parameters.
cli_statusA
Get flight controller status text output from the CLI status command.
Inputs: no named parameters.
connect_flight_controllerA
Connect to a Betaflight flight controller over USB/serial. Use list_serial_ports first to find the correct port.
Inputs: port (required), baud_rate.
copy_pid_profileA
Copy a PID profile to another slot. Switches to the source profile then copies it to the destination. Call cli_save afterwards to persist.
Inputs: source (required), destination (required).
disconnect_flight_controllerA
Disconnect from the currently connected flight controller.
Inputs: no named parameters.
erase_blackbox_logsA
Erase all blackbox logs stored in onboard flash memory. This is irreversible and can take up to 30 seconds. Note: call this before any CLI tools in the same session.
Inputs: no named parameters.
feature_disableB
Disable a named feature on the flight controller.
Inputs: name (required).
feature_enableB
Enable a named feature on the flight controller (e.g. TELEMETRY, GPS, SOFTSERIAL).
Inputs: name (required).
feature_listA
List all features and their enabled/disabled state on the flight controller.
Inputs: no named parameters.
get_acc_calibrationA
Get acc_calibration: Raw accelerometer calibration offsets written by the calibration routine. Do not edit manually. [INT16, default: 0,0,0,0]
Inputs: no named parameters.
get_acc_hardwareB
Get acc_hardware: Force accelerometer driver or AUTO-detect. [UINT8, default: AUTO]
Inputs: no named parameters.
get_acc_high_rangeA
Get acc_high_range: Enable high-range accelerometer mode for sensors that support it. [UINT8, default: OFF]
Inputs: no named parameters.
get_acc_limitA
Get acc_limit: Limits the accelerometer correction applied to the attitude estimate in angle/horizon mode. 0 = no limit. [UINT16, 0–500, default: 0]
Inputs: no named parameters.
get_acc_limit_yawA
Get acc_limit_yaw: Same as acc_limit but applied to the yaw axis. 0 = no limit. [UINT16, 0–500, default: 0]
Inputs: no named parameters.
get_acc_lpf_hzA
Get acc_lpf_hz: Accelerometer low-pass filter cutoff. Smooths acc readings used for attitude estimation. [UINT16, 0–500, default: 25]
Inputs: no named parameters.
get_acc_trim_pitchA
Get acc_trim_pitch: Accelerometer pitch trim for level calibration. [INT16, -300–300, default: 0]
Inputs: no named parameters.
get_acc_trim_rollA
Get acc_trim_roll: Accelerometer roll trim for level calibration. [INT16, -300–300, default: 0]
Inputs: no named parameters.
get_adc_deviceA
Get adc_device: ADC device used for voltage/current sensing. [INT8, default: 2]
Inputs: no named parameters.
get_adc_tempsensor_calibration110A
Get adc_tempsensor_calibration110: ADC temperature sensor calibration value at 110°C (factory calibration). [UINT16, 0–2000, default: 0]
Inputs: no named parameters.
get_adc_tempsensor_calibration30A
Get adc_tempsensor_calibration30: ADC temperature sensor calibration value at 30°C (factory calibration). [UINT16, 0–2000, default: 0]
Inputs: no named parameters.
get_adc_vrefint_calibrationA
Get adc_vrefint_calibration: ADC internal voltage reference calibration (factory). [UINT16, 0–2000, default: 0]
Inputs: no named parameters.
get_airmode_start_throttle_percentA
Get airmode_start_throttle_percent: Throttle percentage above which airmode activates. At higher values, motors begin to idle before airmode engages. [UINT8, 0–100, default: 25]
Inputs: no named parameters.
get_align_board_pitchA
Get align_board_pitch: Board rotation offset in pitch. [INT16, -180–360, default: 0]
Inputs: no named parameters.
get_align_board_rollA
Get align_board_roll: Board rotation offset in roll (degrees). For non-standard FC mounting orientations. [INT16, -180–360, default: 0]
Inputs: no named parameters.
get_align_board_yawA
Get align_board_yaw: Board rotation offset in yaw (degrees). For non-standard FC mounting orientations. [INT16, -180–360, default: 45]
Inputs: no named parameters.
get_align_magA
Get align_mag: Magnetometer orientation. (Requires: USE_MAG) [UINT8, default: DEFAULT]
Inputs: no named parameters.
get_altitudeA
Get current altitude (meters) and variometer (cm/s) from the barometer.
Inputs: no named parameters.
get_altitude_d_lpfA
Get altitude_d_lpf: Low-pass filter cutoff (Hz×10) for altitude derivative (vertical speed). [UINT16, 10–5000, default: 100]
Inputs: no named parameters.
get_altitude_lpfA
Get altitude_lpf: Low-pass filter cutoff (Hz×10) for altitude estimate. Lower = smoother but laggier altitude. [UINT16, 10–5000, default: 300]
Inputs: no named parameters.
get_altitude_prefer_baroA
Get altitude_prefer_baro: Weight given to barometer vs GPS altitude when both are available (0 = GPS only, 100 = baro only). [INT8, 0–100, default: 100]
Inputs: no named parameters.
get_altitude_sourceB
Get altitude_source: Override altitude data source for autopilot and OSD altitude display. [INT8, default: DEFAULT]
Inputs: no named parameters.
get_angle_earth_refA
Get angle_earth_ref: Proportion of earth-frame reference used in angle mode (0 = body frame, 100 = full earth frame). 100 is recommended for GPS rescue compatibility. [UINT8, 0–100, default: 100]
Inputs: no named parameters.
get_angle_feedforwardA
Get angle_feedforward: Feedforward in angle mode — reduces lag when moving the angle setpoint. [UINT8, 0–200, default: 50]
Inputs: no named parameters.
get_angle_feedforward_smoothing_msA
Get angle_feedforward_smoothing_ms: Smoothing applied to angle feedforward signal. [UINT8, 10–250, default: 80]
Inputs: no named parameters.
get_angle_limitA
Get angle_limit: Maximum tilt angle in angle mode during flight-time (degrees). [UINT8, 10–80, default: 60]
Inputs: no named parameters.
get_angle_p_gainA
Get angle_p_gain: P gain for angle mode self-leveling. Higher = stronger return to level. [UINT8, 0–200, default: 50]
Inputs: no named parameters.
get_angle_pitch_offsetA
Get angle_pitch_offset: Pitch trim offset in tenths of degrees for angle mode. Use to adjust the level hover point without reflying. (Requires: USE_WING) [INT16, default: 0]
Inputs: no named parameters.
get_anti_gravity_cutoff_hzB
Get anti_gravity_cutoff_hz: LPF cutoff for throttle derivative used by anti-gravity. Adjust for very large or small builds (larger = faster, smaller = slower response). [UINT8, 2–50, default: 5]
Inputs: no named parameters.
get_anti_gravity_gainA
Get anti_gravity_gain: Boosts I-term on rapid throttle changes to prevent yaw/pitch dip on punch. Reduce if throttle-punch wobbles appear. [UINT8, default: 80]
Inputs: no named parameters.
get_anti_gravity_p_gainB
Get anti_gravity_p_gain: Boosts P-term (in addition to I) on rapid throttle changes. Reduce if punches cause P-induced oscillations. [UINT8, 0–250, default: 100]
Inputs: no named parameters.
get_arming_disable_flagsA
Get the flags explaining why the flight controller is refusing to arm. Returns a list of active arming-disable conditions. An empty list means the FC is ready to arm. Note: call this before any CLI tools in the same session.
Inputs: no named parameters.
get_attitudeA
Get current attitude: roll (°), pitch (°), and yaw (°) from the flight controller.
Inputs: no named parameters.
get_auto_disarm_delayA
Get auto_disarm_delay: Seconds of throttle-zero before auto-disarm. 0 = disabled. [UINT8, 0–60, default: 5]
Inputs: no named parameters.
get_aux_configB
Get auxiliary channel (AUX) mode configuration.
Inputs: no named parameters.
get_baro_bustypeB
Get baro_bustype: Barometer bus type. (Requires: USE_BARO) [UINT8, default: SPI]
Inputs: no named parameters.
get_baro_hardwareA
Get baro_hardware: Force barometer driver or AUTO-detect. (Requires: USE_BARO) [UINT8, default: AUTO]
Inputs: no named parameters.
get_baro_i2c_addressB
Get baro_i2c_address: I2C address override for barometer (0 = default auto-detect). (Requires: USE_BARO) [UINT8, default: 0]
Inputs: no named parameters.
get_baro_i2c_deviceA
Get baro_i2c_device: I2C bus number for barometer (0 = default). (Requires: USE_BARO) [UINT8, 0–5, default: 0]
Inputs: no named parameters.
get_baro_spi_deviceA
Get baro_spi_device: SPI bus number for barometer. (Requires: USE_BARO) [UINT8, 0–5, default: 2]
Inputs: no named parameters.
get_bat_capacityA
Get bat_capacity: Battery capacity in mAh. Used with current meter to estimate remaining charge. [UINT16, 0–20000, default: 0]
Inputs: no named parameters.
get_batteryA
Get battery analog data: voltage (V), mAh drawn, RSSI, and current (A).
Inputs: no named parameters.
get_battery_continueA
Get battery_continue: Continue logging/flying after battery disconnect/reconnect (for hot-swap builds). (Requires: USE_BATTERY_CONTINUE) [UINT8, default: OFF]
Inputs: no named parameters.
get_battery_meterA
Get battery_meter: Source for battery voltage reading. ADC = onboard voltage divider. ESC = from ESC telemetry. [UINT8, default: ADC]
Inputs: no named parameters.
get_battery_stateB
Get detailed battery state: cell count, capacity, voltage, current draw, and state code.
Inputs: no named parameters.
get_blackbox_deviceA
Get blackbox_device: Logging destination. SPIFLASH = onboard flash. SDCARD = SD card. SERIAL = via serial port (high baud rate required). [UINT8, default: SPIFLASH]
Inputs: no named parameters.
get_blackbox_disable_accB
Get blackbox_disable_acc: Exclude accelerometer data. [UINT32, default: OFF]
Inputs: no named parameters.
get_blackbox_disable_altC
Get blackbox_disable_alt: Exclude altitude data. [UINT32, default: OFF]
Inputs: no named parameters.
get_blackbox_disable_attitudeA
Get blackbox_disable_attitude: Exclude attitude (roll/pitch/yaw angle) data from logs. [UINT32, default: OFF]
Inputs: no named parameters.
get_blackbox_disable_batB
Get blackbox_disable_bat: Exclude battery data. [UINT32, default: OFF]
Inputs: no named parameters.
get_blackbox_disable_debugA
Get blackbox_disable_debug: Exclude debug fields. [UINT32, default: OFF]
Inputs: no named parameters.
get_blackbox_disable_gpsA
Get blackbox_disable_gps: Exclude GPS data. (Requires: USE_GPS) [UINT32, default: OFF]
Inputs: no named parameters.
get_blackbox_disable_gyroA
Get blackbox_disable_gyro: Exclude filtered gyro data. [UINT32, default: OFF]
Inputs: no named parameters.
get_blackbox_disable_gyrounfiltB
Get blackbox_disable_gyrounfilt: Exclude unfiltered gyro data. [UINT32, default: OFF]
Inputs: no named parameters.
get_blackbox_disable_motorsA
Get blackbox_disable_motors: Exclude motor output data. [UINT32, default: OFF]
Inputs: no named parameters.
get_blackbox_disable_pidsB
Get blackbox_disable_pids: Exclude PID data from logs. Reduces log size. [UINT32, default: OFF]
Inputs: no named parameters.
get_blackbox_disable_rcB
Get blackbox_disable_rc: Exclude RC channel data from logs. [UINT32, default: OFF]
Inputs: no named parameters.
get_blackbox_disable_rpmB
Get blackbox_disable_rpm: Exclude RPM telemetry data. (Requires: USE_DSHOT_TELEMETRY) [UINT32, default: OFF]
Inputs: no named parameters.
get_blackbox_disable_rssiB
Get blackbox_disable_rssi: Exclude RSSI data. [UINT32, default: OFF]
Inputs: no named parameters.
get_blackbox_disable_servosA
Get blackbox_disable_servos: Exclude servo output data from logs. (Requires: USE_SERVOS) [UINT32, default: OFF]
Inputs: no named parameters.
get_blackbox_disable_setpointB
Get blackbox_disable_setpoint: Exclude setpoint data. [UINT32, default: OFF]
Inputs: no named parameters.
get_blackbox_high_resolutionA
Get blackbox_high_resolution: Double the data precision for gyro and setpoint fields. Increases log size. [UINT8, default: OFF]
Inputs: no named parameters.
get_blackbox_modeA
Get blackbox_mode: NORMAL = log only when armed. ALWAYS = log even when disarmed. MOTOR_TEST = motor test mode. [UINT8, default: NORMAL]
Inputs: no named parameters.
get_blackbox_sample_rateA
Get blackbox_sample_rate: Fraction of PID loop iterations logged. With the default pid_process_denom = 1 (PID rate = gyro rate), at 8kHz: 1/8 → 1kHz, 1/4 → 2kHz. Finer rates = larger logs. [UINT8, default: 1/4]
Inputs: no named parameters.
get_cbat_alert_percentA
Get cbat_alert_percent: Remaining capacity percentage to trigger a battery alert. [UINT8, 0–100, default: 10]
Inputs: no named parameters.
get_channel_forwarding_startB
Get channel_forwarding_start: First AUX channel to forward to servo outputs (for channel forwarding to servos). (Requires: USE_SERVOS) [UINT8, default: 4]
Inputs: no named parameters.
get_channel_mapA
Get the current RC channel map (order of AETR channels).
Inputs: no named parameters.
get_cpu_late_limit_permilleA
Get cpu_late_limit_permille: CPU late task limit in permille (per-thousand). Controls scheduler behaviour when tasks are running late. (Requires: USE_LATE_TASK_STATISTICS) [UINT8, 0–100, default: 10]
Inputs: no named parameters.
get_cpu_overclockC
Get cpu_overclock: Overclock the STM32 F7 processor. Use only if CPU load is too high and the board supports it. [UINT8, default: OFF]
Inputs: no named parameters.
get_crash_delayA
Get crash_delay: Delay after arm before crash detection is armed. [UINT16, 0–500, default: 0 (per profile)]
Inputs: no named parameters.
get_crash_dthresholdA
Get crash_dthreshold: D-term threshold above which crash is detected (deg/s2). [UINT16, 10–2000, default: 50 (per profile)]
Inputs: no named parameters.
get_crashflip_auto_rearmC
Get crashflip_auto_rearm: Automatically re-arm after a successful crash flip recovery. [INT8, default: OFF]
Inputs: no named parameters.
get_crashflip_motor_percentB
Get crashflip_motor_percent: Motor output percentage during crash flip / turtle mode. 0 = motors disabled (no flip thrust); set >0 (100 recommended) to enable. [UINT8, 0–100, default: 0]
Inputs: no named parameters.
get_crashflip_rateA
Get crashflip_rate: Rotation rate limit during crash flip mode (degrees/s). 0 = unlimited. [UINT8, 0–250, default: 0]
Inputs: no named parameters.
get_crash_gthresholdA
Get crash_gthreshold: Gyro rate threshold for crash detection (deg/s). [UINT16, 100–2000, default: 400 (per profile)]
Inputs: no named parameters.
get_crash_limit_yawA
Get crash_limit_yaw: Yaw rate limit during crash recovery (deg/s). [UINT16, 0–1000, default: 200 (per profile)]
Inputs: no named parameters.
get_crash_recoveryC
Get crash_recovery: Enable crash recovery. BEEP = recover and beep; DISARM = recover then disarm. [UINT8, default: OFF (per profile)]
Inputs: no named parameters.
get_crash_recovery_angleA
Get crash_recovery_angle: Maximum recovery correction angle (degrees). [UINT8, 5–30, default: 10 (per profile)]
Inputs: no named parameters.
get_crash_recovery_rateA
Get crash_recovery_rate: Rate at which the FC tries to recover from a crash. [UINT8, 50–255, default: 100 (per profile)]
Inputs: no named parameters.
get_crash_setpoint_thresholdA
Get crash_setpoint_threshold: Setpoint threshold for crash detection. [UINT16, 50–2000, default: 350 (per profile)]
Inputs: no named parameters.
get_crash_timeA
Get crash_time: Minimum crash duration before recovery triggers. [UINT16, 100–5000, default: 500 (per profile)]
Inputs: no named parameters.
get_crsf_use_negotiated_baudA
Get crsf_use_negotiated_baud: Allow CRSF to negotiate baud rate. Enable when using faster CRSF rates (e.g. ELRS negotiated speed). [UINT8, default: OFF]
Inputs: no named parameters.
get_current_meterA
Get current_meter: Current sensor source. ADC = onboard shunt. ESC = ESC telemetry current. [UINT8, default: ADC]
Inputs: no named parameters.
get_current_profileA
Get the currently active PID profile index and rate profile index.
Inputs: no named parameters.
get_dataflash_summaryA
Get onboard blackbox flash storage summary: ready state, total size, and used size. Note: call this before any CLI tools in the same session.
Inputs: no named parameters.
get_deadbandA
Get deadband: RC deadband around stick center (microseconds). Increase if sticks don't return to exact center. [UINT8, 0–32, default: 0]
Inputs: no named parameters.
get_debug_modeA
Get debug_mode: Select which internal signals are exposed in blackbox debug fields. Key modes: FFT_FREQ (filter frequency analysis), FFT_TIME (FFT time-domain), FFT (general FFT), GYRO_SCALED (raw gyro, filter tuning), D_MAX (dynamic damping), DYN_IDLE (dynamic idle), ITERM_RELAX (I-term relax), FEEDFORWARD (FF signals), FAILSAFE (failsafe state). [UINT8, default: NONE]
Inputs: no named parameters.
get_d_max_advanceA
Get d_max_advance: Allows D boost to start before the gyro rate peaks, using feedforward signal. Set to 0 during baseline tuning — rarely beneficial and can cause premature D oscillation. Only explore once the baseline is stable. [UINT8, 0–200, default: 20]
Inputs: no named parameters.
get_d_max_gainA
Get d_max_gain: Controls how aggressively D rises from base D toward d_max on sharp moves. Default is suitable; reduce if D boost causes propwash on move initiation. [UINT8, 0–100, default: 37]
Inputs: no named parameters.
get_d_max_pitchA
Get d_max_pitch: D_max for pitch. [UINT8, default: 46]
Inputs: no named parameters.
get_d_max_rollA
Get d_max_roll: Dynamic damping ceiling — D value used during fast moves. Must be ≥ d_roll. [UINT8, default: 40]
Inputs: no named parameters.
get_d_max_yawA
Get d_max_yaw: D_max for yaw. [UINT8, default: 0]
Inputs: no named parameters.
get_d_pitchB
Get d_pitch: Base D — active in smooth flight. Boosted toward d_max_pitch on fast moves. [UINT8, default: 34]
Inputs: no named parameters.
get_d_rollA
Get d_roll: Base D — active in smooth flight. Damps rate of change, counters P overshoot and propwash. Boosted toward d_max_roll on fast moves. [UINT8, default: 30]
Inputs: no named parameters.
get_dshot_bidirA
Get dshot_bidir: Enables bidirectional DSHOT for RPM telemetry. Required for RPM filtering. ESC firmware must support it. (Requires: USE_DSHOT + USE_DSHOT_TELEMETRY) [UINT8, default: OFF]
Inputs: no named parameters.
get_dshot_bitbangA
Get dshot_bitbang: DSHOT bitbang implementation (software DSHOT). AUTO selects automatically. (Requires: USE_DSHOT + USE_DSHOT_BITBANG) [UINT8, default: AUTO]
Inputs: no named parameters.
get_dshot_bitbang_timerA
Get dshot_bitbang_timer: Timer used for bitbang DSHOT. (Requires: USE_DSHOT + USE_DSHOT_BITBANG) [UINT8, default: AUTO]
Inputs: no named parameters.
get_dshot_burstA
Get dshot_burst: DSHOT burst transmission mode. AUTO selects based on hardware capability. (Requires: USE_DSHOT + USE_DSHOT_DMAR) [UINT8, default: AUTO]
Inputs: no named parameters.
get_dshot_edtA
Get dshot_edt: Extended DSHOT Telemetry — provides additional ESC data beyond RPM. FORCE enables EDT even when bidir is off. (Requires: USE_DSHOT + USE_DSHOT_TELEMETRY) [UINT8, default: OFF]
Inputs: no named parameters.
get_dterm_lpf1_dyn_expoA
Get dterm_lpf1_dyn_expo: Expo curve for dynamic D-term LPF1 vs throttle. Push as high as possible without mid-throttle oscillations. [UINT8, 0–10, default: 5]
Inputs: no named parameters.
get_dterm_lpf1_dyn_max_hzA
Get dterm_lpf1_dyn_max_hz: Dynamic D-term LPF1 maximum cutoff (at full throttle). AOS tune: 110 Hz. [UINT16, default: 150]
Inputs: no named parameters.
get_dterm_lpf1_dyn_min_hzB
Get dterm_lpf1_dyn_min_hz: Dynamic D-term LPF1 minimum cutoff (at idle throttle). AOS tune: 80 Hz. [UINT16, default: 75]
Inputs: no named parameters.
get_dterm_lpf1_static_hzA
Get dterm_lpf1_static_hz: Static cutoff for D-term LPF1. Used when dterm_lpf1_dyn_min_hz == dterm_lpf1_dyn_max_hz. [INT16, default: 75]
Inputs: no named parameters.
get_dterm_lpf1_typeA
Get dterm_lpf1_type: Type for D-term LPF1. BIQUAD gives sharper roll-off; PT1 is less phase. [UINT8, default: PT1]
Inputs: no named parameters.
get_dterm_lpf2_static_hzA
Get dterm_lpf2_static_hz: Cutoff for D-term LPF2 (always static). Use as a secondary anti-noise stage. [INT16, default: 150]
Inputs: no named parameters.
get_dterm_lpf2_typeB
Get dterm_lpf2_type: Type for D-term LPF2. [UINT8, default: PT1]
Inputs: no named parameters.
get_dterm_notch_cutoffA
Get dterm_notch_cutoff: Static D-term notch bandwidth. [UINT16, default: 0]
Inputs: no named parameters.
get_dterm_notch_hzA
Get dterm_notch_hz: Static D-term notch centre frequency. 0 = disabled. Rarely needed when dynamic notch is active. [UINT16, default: 0]
Inputs: no named parameters.
get_d_yawA
Get d_yaw: Yaw D gain. Usually left at 0 — yaw is torque-based and inherently slower; D adds noise. [UINT8, default: 0]
Inputs: no named parameters.
get_dyn_idle_d_gainA
Get dyn_idle_d_gain: D gain of the dynamic idle RPM controller. [UINT8, 0–250, default: 50]
Inputs: no named parameters.
get_dyn_idle_i_gainB
Get dyn_idle_i_gain: I gain of the dynamic idle RPM controller. [UINT8, 1–250, default: 50]
Inputs: no named parameters.
get_dyn_idle_max_increaseA
Get dyn_idle_max_increase: Maximum throttle increase (in motor units) the dynamic idle controller can command above the static idle value. [UINT8, 10–255, default: 150]
Inputs: no named parameters.
get_dyn_idle_min_rpmA
Get dyn_idle_min_rpm: Minimum motor RPM maintained by dynamic idle. Set non-zero to enable. Target by prop size. [UINT8, 0–200, default: 0]
Inputs: no named parameters.
get_dyn_idle_p_gainA
Get dyn_idle_p_gain: P gain of the dynamic idle RPM controller. Reduce if idle causes oscillation. [UINT8, 1–250, default: 50]
Inputs: no named parameters.
get_dyn_notch_countA
Get dyn_notch_count: Number of independently tracked dynamic notches. Set to 0 to disable if no frame resonances are visible in the spectrum (eliminates delay). With RPM filtering active, 1–2 notches are sufficient for most frame resonances. Without RPM filtering, use 4–5. [UINT8, default: 3]
Inputs: no named parameters.
get_dyn_notch_max_hzA
Get dyn_notch_max_hz: Maximum frequency any notch will track. Default 600 is fine for most builds. Narrowing the range improves notch resolution. [UINT16, 200–1000, default: 600]
Inputs: no named parameters.
get_dyn_notch_min_hzA
Get dyn_notch_min_hz: Minimum frequency any notch will track. Set ~25 Hz below the lowest resonance you need to catch. ideally >=150 Hz unless blackbox shows a real resonance below that — tracking low frequencies causes unwanted filtering of PID-relevant signals. [UINT16, 20–250, default: 100]
Inputs: no named parameters.
get_dyn_notch_qA
Get dyn_notch_q: Q factor — narrowness of each notch. Increase until the resonance just stays within the notch, then stop. Max useful value ~1000. [UINT16, 1–1000, default: 300]
Inputs: no named parameters.
get_enable_stick_armingA
Get enable_stick_arming: Enable stick-combination arming (throttle-down/yaw-right). Disable if using a dedicated arm switch. [UINT8, default: OFF]
Inputs: no named parameters.
get_esc_sensor_current_offsetA
Get esc_sensor_current_offset: Current offset applied to ESC sensor current reading in mA. Use to zero-calibrate ESC current reporting. (Requires: USE_ESC_SENSOR) [UINT16, 0–16000, default: 0]
Inputs: no named parameters.
get_esc_sensor_halfduplexA
Get esc_sensor_halfduplex: Enable half-duplex UART for ESC sensor (BLHeli32/AM32 telemetry on a single wire). (Requires: USE_ESC_SENSOR) [UINT8, default: OFF]
Inputs: no named parameters.
get_ez_landing_limitA
Get ez_landing_limit: Minimum throttle floor enforced by EZ landing (%). [UINT8, 0–75, default: 15 (per profile)]
Inputs: no named parameters.
get_ez_landing_speedA
Get ez_landing_speed: Rate at which throttle is reduced during EZ landing. [UINT8, 0–250, default: 50 (per profile)]
Inputs: no named parameters.
get_ez_landing_thresholdA
Get ez_landing_threshold: Throttle percentage below which EZ landing activates. [UINT8, 0–200, default: 25 (per profile)]
Inputs: no named parameters.
get_failsafe_delayA
Get failsafe_delay: Stage 1 guard duration — time from confirmed signal loss to Stage 2 activation. Default 15 = 1.5 s. Minimum safe value is 2 (200 ms). [UINT8, default: 15 (1.5 s)]
Inputs: no named parameters.
get_failsafe_landing_timeA
Get failsafe_landing_time: Duration of Landing Mode (AUTO-LAND) Stage 2. [UINT8, 0–250, default: 60 (6 s)]
Inputs: no named parameters.
get_failsafe_procedureA
Get failsafe_procedure: Stage 2 procedure. DROP = immediate motor cut and disarm (default, safest for racing). AUTO-LAND = fixed throttle + centered sticks for failsafe_landing_time then disarm. GPS-RESCUE = autonomous return-to-home. [UINT8, default: DROP]
Inputs: no named parameters.
get_failsafe_recovery_delayA
Get failsafe_recovery_delay: Duration the signal must be stable after Stage 2 before the pilot can re-arm or (for GPS Rescue) before stick inputs are assessed. [UINT16, 1–200, default: 5 (0.5 s)]
Inputs: no named parameters.
get_failsafe_stick_thresholdA
Get failsafe_stick_threshold: Stick deflection (degrees from center) required to exit GPS Rescue Stage 2 after signal recovery. Move sticks to this threshold once video returns and RXLOSS clears. [UINT8, 0–50, default: 30]
Inputs: no named parameters.
get_failsafe_switch_modeB
Get failsafe_switch_mode: Aux switch behavior: STAGE1 = simulates signal loss (useful for testing and as a panic switch), STAGE2 = skips Stage 1 (instant GPS rescue / drop), KILL = instant disarm (dangerous, any glitch crashes the quad). [UINT8, default: STAGE1]
Inputs: no named parameters.
get_failsafe_throttleA
Get failsafe_throttle: Throttle value applied during Landing Mode Stage 2 AND used as the Stage 1 fallback throttle if configured. Default 1000 = motors off. For GPS Rescue: must be set to a hover throttle value, or the quad drops in Stage 1 before Rescue can activate. [UINT16, default: 1000]
Inputs: no named parameters.
get_failsafe_throttle_low_delayA
Get failsafe_throttle_low_delay: If throttle has been low for this duration before Stage 2 triggers, the FC immediately disarms instead of activating Landing Mode (the "Just Drop" override). Protects pilots who power off their transmitter after landing without disarming. [UINT16, 0–300, default: 100 (10 s)]
Inputs: no named parameters.
get_feedforward_averagingA
Get feedforward_averaging: Averages stick input samples before FF calculation to smooth out RC link quantization. OFF = no averaging (snappiest); 4_POINT = heaviest smoothing. [UINT8, default: 2_POINT]
Inputs: no named parameters.
get_feedforward_boostA
Get feedforward_boost: Adds an acceleration component to FF (second derivative of stick). Increase if gyro lags at the start of a move. Decrease if gyro overshoots at move entry (bounce-back at start). [UINT8, 0–50, default: 15]
Inputs: no named parameters.
get_feedforward_jitter_factorA
Get feedforward_jitter_factor: Suppresses FF on very slow or jittery stick inputs. Higher = smoother center feel during slow moves (freestyle/HD). Lower = snappier (racing). [UINT8, 0–20, default: 7]
Inputs: no named parameters.
get_feedforward_max_rate_limitA
Get feedforward_max_rate_limit: Reduces FF as sticks approach maximum deflection. 90 = cut FF when stick is at 90% travel. Raise to 92–95 for crisper move entry on responsive builds. [UINT8, 0–200, default: 90]
Inputs: no named parameters.
get_feedforward_smooth_factorB
Get feedforward_smooth_factor: Additional smoothing applied to the FF signal. Higher = smoother FF output. [UINT8, 0–95, default: 65]
Inputs: no named parameters.
get_feedforward_transitionA
Get feedforward_transition: Blends FF toward zero near stick center. 0 = full FF throughout (racing). 40 = freestyle/HD. 70 = cinematic. Set to 0 when feedforward_jitter_factor is active — they serve overlapping purposes and must not be combined. [UINT8, 0–100, default: 0]
Inputs: no named parameters.
get_feedforward_yaw_hold_gainA
Get feedforward_yaw_hold_gain: Sustains a residual FF signal in yaw after the stick is released, counteracting I-term under-yaw. [UINT8, 0–100, default: 15]
Inputs: no named parameters.
get_feedforward_yaw_hold_timeA
Get feedforward_yaw_hold_time: Duration (ms) of the yaw FF hold after stick release. [UINT8, 10–250, default: 100]
Inputs: no named parameters.
get_flash_spi_busA
Get flash_spi_bus: SPI bus number for onboard flash (blackbox storage). (Requires: USE_FLASH_SPI) [UINT8, default: 3]
Inputs: no named parameters.
get_force_battery_cell_countB
Get force_battery_cell_count: Override auto cell-count detection. 0 = auto-detect from vbat_max_cell_voltage. [UINT8, 0–24, default: 0]
Inputs: no named parameters.
get_f_pitchC
Get f_pitch: Feed forward for pitch. [UINT16, default: 125]
Inputs: no named parameters.
get_fpv_mix_degreesA
Get fpv_mix_degrees: FPV camera tilt angle for tilt-compensated yaw mixing. [UINT8, 0–90, default: 0]
Inputs: no named parameters.
get_f_rollA
Get f_roll: Feed forward for roll. Compensates for stick input lag. Scaled by the simplified_feedforward_gain slider. [UINT16, default: 120]
Inputs: no named parameters.
get_f_yawA
Get f_yaw: Feed forward for yaw. [UINT16, default: 120]
Inputs: no named parameters.
get_gps_auto_baudB
Get gps_auto_baud: Automatically detect GPS baud rate. [UINT8, default: OFF]
Inputs: no named parameters.
get_gps_auto_configA
Get gps_auto_config: Automatically configure UBlox modules on connection (baud rate, update rate, message types). Leave ON unless you pre-configure the module with uCenter. [UINT8, default: ON]
Inputs: no named parameters.
get_gps_dataB
Get GPS data: fix status, satellite count, latitude/longitude (°), altitude (m), and ground speed (cm/s).
Inputs: no named parameters.
get_gps_nmea_custom_commandsC
Get gps_nmea_custom_commands: Custom NMEA sentences to send to the GPS module on init (NMEA provider only). [UINT8, default: —]
Inputs: no named parameters.
get_gps_providerA
Get gps_provider: GPS protocol. Prefer UBLOX for UBlox modules — significantly more reliable than NMEA. [UINT8, default: UBLOX]
Inputs: no named parameters.
get_gps_rescue_allow_arming_without_fixA
Get gps_rescue_allow_arming_without_fix: Allow arming without a GPS fix. GPS rescue is unavailable during such a flight — OSD shows RESCUE OFF. [UINT8, default: OFF]
Inputs: no named parameters.
get_gps_rescue_alt_modeA
Get gps_rescue_alt_mode: MAX_ALT = use the higher of gps_rescue_initial_climb or max altitude recorded + 15 m. FIXED_ALT = always return to gps_rescue_initial_climb. CURRENT_ALT = hold current altitude (not recommended). [UINT8, default: MAX_ALT]
Inputs: no named parameters.
get_gps_rescue_ascend_rateA
Get gps_rescue_ascend_rate: Climb rate during initial climb phase. [UINT16, 50–2500, default: 750]
Inputs: no named parameters.
get_gps_rescue_descend_rateA
Get gps_rescue_descend_rate: Descent rate when approaching home. [UINT16, 25–500, default: 150]
Inputs: no named parameters.
get_gps_rescue_descent_distA
Get gps_rescue_descent_dist: Distance from home at which descent begins. [UINT16, 5–500, default: 20]
Inputs: no named parameters.
get_gps_rescue_ground_speedA
Get gps_rescue_ground_speed: Forward speed during return (cm/s). 750 ≈ 27 km/h. Reduce for reliability in windy conditions. [UINT16, 0–3000, default: 750]
Inputs: no named parameters.
get_gps_rescue_initial_climbA
Get gps_rescue_initial_climb: Altitude to climb from current position before heading home. Set high enough to clear local obstacles. [UINT16, 0–100, default: 10]
Inputs: no named parameters.
get_gps_rescue_min_satsA
Get gps_rescue_min_sats: Minimum satellite count required to arm with GPS rescue configured. OSD shows RESCUE N/A if below this. [UINT8, 5–50, default: 8]
Inputs: no named parameters.
get_gps_rescue_min_start_distA
Get gps_rescue_min_start_dist: Minimum distance from home to activate rescue. Closer than this → disarm and drop (prevents accidental rescue activation nearby). [UINT16, 5–30, default: 15]
Inputs: no named parameters.
get_gps_rescue_return_altA
Get gps_rescue_return_alt: Target return cruise altitude. If the quad is already above this, it maintains current altitude. [UINT16, 5–1000, default: 30]
Inputs: no named parameters.
get_gps_rescue_sanity_checksA
Get gps_rescue_sanity_checks: Strongly recommended: RESCUE_SANITY_ON. Aborts rescue (disarms) if: GPS lost, fix invalid, quad crashed, sat count drops, or quad not approaching home. [UINT8, default: RESCUE_SANITY_FS_ONLY]
Inputs: no named parameters.
get_gps_rescue_yaw_pA
Get gps_rescue_yaw_p: Yaw P gain during rescue (heading correction). [UINT8, 0–200, default: 20]
Inputs: no named parameters.
get_gps_sbas_integrityA
Get gps_sbas_integrity: Require SBAS integrity data before using SBAS corrections. [UINT8, default: OFF]
Inputs: no named parameters.
get_gps_sbas_modeB
Get gps_sbas_mode: SBAS (satellite correction) system for the region. [UINT8, default: NONE]
Inputs: no named parameters.
get_gps_set_home_point_onceA
Get gps_set_home_point_once: Only set the home point on the first arm after battery connect. Prevents home being reset if you disarm and re-arm mid-field. [UINT8, default: OFF]
Inputs: no named parameters.
get_gps_ublox_acquire_modelA
Get gps_ublox_acquire_model: UBlox dynamic model used while acquiring fix. [UINT8, default: STATIONARY]
Inputs: no named parameters.
get_gps_ublox_flight_modelB
Get gps_ublox_flight_model: UBlox dynamic model used during flight. AIRBORNE_4G handles high-dynamics FPV. [UINT8, default: AIRBORNE_4G]
Inputs: no named parameters.
get_gps_ublox_use_galileoB
Get gps_ublox_use_galileo: Enable Galileo constellation on UBlox modules. [UINT8, default: OFF]
Inputs: no named parameters.
get_gps_ublox_utc_standardA
Get gps_ublox_utc_standard: UTC time standard to configure on UBlox modules. [UINT8, default: AUTO]
Inputs: no named parameters.
get_gps_update_rate_hzA
Get gps_update_rate_hz: Target GPS update rate. 10 Hz recommended for GPS rescue. Reduce to 1–2 Hz if not using GPS rescue (reduces CPU load, may allow 8k8k on some boards). [UINT8, 1–20, default: 10]
Inputs: no named parameters.
get_gps_use_3d_speedB
Get gps_use_3d_speed: Use 3D speed (including vertical) for GPS speed display. [UINT8, default: OFF]
Inputs: no named parameters.
get_gyro_calib_durationA
Get gyro_calib_duration: Gyro calibration duration in 0.1s steps (125 = 12.5s). Longer = more accurate offset measurement. [UINT16, 50–3000, default: 125]
Inputs: no named parameters.
get_gyro_calib_noise_limitA
Get gyro_calib_noise_limit: Noise threshold during calibration. If movement exceeds this, calibration restarts. Increase if it won't calibrate in a noisy environment. [UINT8, 0–200, default: 48]
Inputs: no named parameters.
get_gyro_cal_on_first_armC
Get gyro_cal_on_first_arm: Recalibrates gyro on first arm after power-up. Useful if the FC warms up and gyro drifts before the first arm. [UINT8, default: OFF]
Inputs: no named parameters.
get_gyro_filter_debug_axisB
Get gyro_filter_debug_axis: Which axis is exposed in debug fields for gyro filter analysis. [UINT8, default: ROLL]
Inputs: no named parameters.
get_gyro_hardware_lpfB
Get gyro_hardware_lpf: Hardware low-pass filter mode built into the gyro chip. NORMAL is correct for almost all builds. OPTION_1/2/EXPERIMENTAL select alternative hardware bandwidth settings where supported by the sensor. [UINT8, default: NORMAL]
Inputs: no named parameters.
get_gyro_lpf1_dyn_expoA
Get gyro_lpf1_dyn_expo: Expo curve shaping for dynamic LPF1 cutoff vs throttle. Higher = faster rise. [UINT8, 0–10, default: 5]
Inputs: no named parameters.
get_gyro_lpf1_dyn_max_hzA
Get gyro_lpf1_dyn_max_hz: Dynamic LPF1 maximum cutoff (at full throttle). [UINT16, default: 500]
Inputs: no named parameters.
get_gyro_lpf1_dyn_min_hzA
Get gyro_lpf1_dyn_min_hz: Dynamic LPF1 minimum cutoff (at low throttle). Set equal to gyro_lpf1_static_hz to use static mode. [UINT16, default: 250]
Inputs: no named parameters.
get_gyro_lpf1_static_hzA
Get gyro_lpf1_static_hz: Static cutoff for LPF1. Set to 0 to disable (recommended with RPM filtering). [UINT16, default: 250]
Inputs: no named parameters.
get_gyro_lpf1_typeB
Get gyro_lpf1_type: Filter type for gyro LPF1. PT1 = first-order, least delay. [UINT8, default: PT1]
Inputs: no named parameters.
get_gyro_lpf2_static_hzA
Get gyro_lpf2_static_hz: LPF2 cutoff. Raise toward 1000 Hz to reduce phase delay. Set to 0 if gyro rate = PID rate (aliasing not possible). [UINT16, default: 500]
Inputs: no named parameters.
get_gyro_lpf2_typeB
Get gyro_lpf2_type: Filter type for gyro LPF2 (anti-aliasing). [UINT8, default: PT1]
Inputs: no named parameters.
get_gyro_notch1_cutoffA
Get gyro_notch1_cutoff: Bandwidth of gyro notch 1. Must be less than gyro_notch1_hz. [UINT16, default: 0]
Inputs: no named parameters.
get_gyro_notch1_hzA
Get gyro_notch1_hz: Centre frequency of static gyro notch 1. 0 = disabled. Use for specific persistent resonances not handled by dynamic notch. [UINT16, default: 0]
Inputs: no named parameters.
get_gyro_notch2_cutoffA
Get gyro_notch2_cutoff: Bandwidth of gyro notch 2. [UINT16, default: 0]
Inputs: no named parameters.
get_gyro_notch2_hzA
Get gyro_notch2_hz: Centre frequency of static gyro notch 2. 0 = disabled. [UINT16, default: 0]
Inputs: no named parameters.
get_gyro_offset_yawA
Get gyro_offset_yaw: Manual yaw gyro trim (tenths of degrees/s). Use to correct persistent yaw drift if trim sticks or acc trim are not sufficient. [INT16, -1000–1000, default: 0]
Inputs: no named parameters.
get_gyro_overflow_detectC
Get gyro_overflow_detect: Detects gyro ADC saturation (sensor hitting its limit) and disarms. Recommended: ALL. [UINT8, default: ALL]
Inputs: no named parameters.
get_horizon_delay_msA
Get horizon_delay_ms: Time (ms) before horizon mode re-applies leveling after sticks return to center. Delays return-to-level for a more acro-like feel. [UINT16, 10–5000, default: 500]
Inputs: no named parameters.
get_horizon_ignore_sticksB
Get horizon_ignore_sticks: When ON, horizon mode ignores stick input for the leveling transition — governed by horizon_delay_ms only. [UINT8, default: OFF]
Inputs: no named parameters.
get_horizon_level_strengthA
Get horizon_level_strength: Level mode strength at stick center in horizon mode. [UINT8, 0–100, default: 75]
Inputs: no named parameters.
get_horizon_limit_degreesA
Get horizon_limit_degrees: Maximum attitude angle before horizon mode enforces leveling. [UINT8, 10–250, default: 135]
Inputs: no named parameters.
get_horizon_limit_sticksA
Get horizon_limit_sticks: Stick deflection (%) at which horizon mode gives full acro authority. [UINT8, 10–200, default: 75]
Inputs: no named parameters.
get_i2c1_clockspeed_khzA
Get i2c1_clockspeed_khz: I2C bus 1 clock speed in kHz. (Requires: USE_I2C_DEVICE_1) [UINT16, default: 800]
Inputs: no named parameters.
get_i2c1_pullupC
Get i2c1_pullup: Enable internal pull-up resistors on I2C bus 1. (Requires: USE_I2C_DEVICE_1) [UINT8, default: OFF]
Inputs: no named parameters.
get_i2c2_clockspeed_khzA
Get i2c2_clockspeed_khz: I2C bus 2 clock speed in kHz. (Requires: USE_I2C_DEVICE_2) [UINT16, default: 800]
Inputs: no named parameters.
get_i2c2_pullupC
Get i2c2_pullup: Enable internal pull-up resistors on I2C bus 2. (Requires: USE_I2C_DEVICE_2) [UINT8, default: OFF]
Inputs: no named parameters.
get_i2c3_clockspeed_khzA
Get i2c3_clockspeed_khz: I2C bus 3 clock speed in kHz. (Requires: USE_I2C_DEVICE_3) [UINT16, default: 800]
Inputs: no named parameters.
get_i2c3_pullupC
Get i2c3_pullup: Enable internal pull-up resistors on I2C bus 3. (Requires: USE_I2C_DEVICE_3) [UINT8, default: OFF]
Inputs: no named parameters.
get_ibata_offsetA
Get ibata_offset: ADC current sensor offset in millivolts. [INT16, -32000–32000, default: 0]
Inputs: no named parameters.
get_ibata_scaleA
Get ibata_scale: ADC current sensor scale factor (mV/A × 10). Calibrate against a known load. [INT16, -16000–16000, default: 558]
Inputs: no named parameters.
get_ibat_lpf_periodA
Get ibat_lpf_period: LPF period for the displayed current reading. Higher = smoother OSD current display. [UINT8, default: 10]
Inputs: no named parameters.
get_ibatv_offsetA
Get ibatv_offset: Virtual current sensor voltage offset. (Requires: USE_VIRTUAL_CURRENT_METER) [UINT16, 0–16000, default: 0]
Inputs: no named parameters.
get_ibatv_scaleA
Get ibatv_scale: Virtual current sensor scale. (Requires: USE_VIRTUAL_CURRENT_METER) [INT16, -16000–16000, default: 0]
Inputs: no named parameters.
get_imu_dcm_kiA
Get imu_dcm_ki: Complementary filter integral gain. Non-zero allows slow acc-based yaw correction. Rarely changed. [UINT16, 0–32000, default: 0]
Inputs: no named parameters.
get_imu_dcm_kpA
Get imu_dcm_kp: Complementary filter proportional gain. Controls how aggressively acc data is blended with gyro integration. Default is suitable for all normal use. [UINT16, 0–32000, default: 2500]
Inputs: no named parameters.
get_imu_process_denomA
Get imu_process_denom: IMU attitude update rate divisor relative to gyro task rate. 2 = update every second gyro cycle. Higher values reduce CPU load at the cost of attitude accuracy. [UINT8, 1–4, default: 2]
Inputs: no named parameters.
get_input_filtering_modeA
Get input_filtering_mode: Enable hardware-level RC input filtering. Required on some F1 targets; leave OFF on modern hardware. [INT8, default: OFF]
Inputs: no named parameters.
get_i_pitchB
Get i_pitch: Pitch I gain. [UINT8, default: 84]
Inputs: no named parameters.
get_i_rollA
Get i_roll: Roll I gain. Corrects accumulated angle error and maintains attitude. Too low → drift; too high → slow post-flip wobble. [UINT8, default: 80]
Inputs: no named parameters.
get_iterm_relaxA
Get iterm_relax: Axes on which I-term relaxation (anti-windup during fast moves) is active. RP = roll and pitch. RPY includes yaw. [UINT8, default: RP]
Inputs: no named parameters.
get_iterm_relax_cutoffA
Get iterm_relax_cutoff: Cutoff frequency for the I-term relax HP filter. Higher = reacts faster (better for racing). Lower = smoother (better for large/slow builds). Typical ranges: Racing: 30–40, Freestyle 5": 15, 7"+: 10, X-Class: 3–5. If bounce-back or post-flip oscillation persists, step this down: 15→10→7→5. [UINT8, 1–50, default: 15]
Inputs: no named parameters.
get_iterm_relax_typeA
Get iterm_relax_type: Signal used to detect a fast move. SETPOINT uses stick input signal; GYRO uses actual gyro rate. SETPOINT is default and works well for most cases. [UINT8, default: SETPOINT]
Inputs: no named parameters.
get_iterm_rotationA
Get iterm_rotation: Rotates I-term vector with the aircraft during yaw to reduce cross-axis coupling. Primarily useful for 3D flying. [UINT8, default: OFF]
Inputs: no named parameters.
get_iterm_windupA
Get iterm_windup: Suppresses I accumulation (in %) when motors are near saturation. Default 80 is sensible. [UINT8, 20–100, default: 80]
Inputs: no named parameters.
get_i_yawB
Get i_yaw: Yaw I gain. [UINT8, default: 80]
Inputs: no named parameters.
get_landing_disarm_thresholdA
Get landing_disarm_threshold: Accelerometer impact threshold for auto-disarm on landing (used by GPS Rescue and EZ Landing). 0 = disabled. [UINT8, 0–250, default: 0]
Inputs: no named parameters.
get_level_race_modeA
Get level_race_mode: When ON, angle mode holds the current angle as the setpoint rather than actively leveling. For racing use of angle mode. [UINT8, default: OFF]
Inputs: no named parameters.
get_mag_declinationA
Get mag_declination: Magnetic declination correction for your location. Find at ngdc.noaa.gov/geomag/calculators. (Requires: USE_MAG) [INT16, -300–300, default: 0]
Inputs: no named parameters.
get_mag_hardwareA
Get mag_hardware: Magnetometer hardware selection. NONE = disabled. (Requires: USE_MAG) [UINT8, default: NONE]
Inputs: no named parameters.
get_max_aux_channelsB
Get max_aux_channels: Maximum number of AUX channels processed. [UINT8, default: 14]
Inputs: no named parameters.
get_max_checkA
Get max_check: RC channel value above which arm/disarm and stick commands are recognized. [UINT16, default: 1900]
Inputs: no named parameters.
get_max_throttleA
Get max_throttle: Maximum PWM value sent to ESCs (for PWM-based protocols). [UINT16, default: 2000]
Inputs: no named parameters.
get_mco2_on_pc9B
Get mco2_on_pc9: Output MCO2 clock signal on PC9 pin (STM32 specific). Advanced hardware debugging only. [UINT8, default: OFF]
Inputs: no named parameters.
get_mid_rcA
Get mid_rc: RC mid-point. Match to your transmitter's stick center value. Futaba radios often need 1520. [UINT16, 1200–1700, default: 1500]
Inputs: no named parameters.
get_min_checkA
Get min_check: RC channel value below which arm/disarm and stick commands are recognized. [UINT16, default: 1050]
Inputs: no named parameters.
get_min_commandA
Get min_command: PWM value sent to ESCs when disarmed or at zero throttle (for PWM-based protocols). For DSHOT, this is overridden by the protocol. [UINT16, default: 1000]
Inputs: no named parameters.
get_mixerB
Get the current mixer type configuration.
Inputs: no named parameters.
get_mixer_typeA
Get mixer_type: Motor mixer output mode. LEGACY = classic mixer. LINEAR = linear output scaling. DYNAMIC = dynamic output scaling. EZLANDING = enables EZ Landing soft-landing feature. [UINT8, default: LEGACY]
Inputs: no named parameters.
get_motor_idleA
Get motor_idle: Idle throttle value sent to ESCs when armed (units depend on protocol). Used as the minimum non-zero motor command. [UINT16, 0–2000, default: 550]
Inputs: no named parameters.
get_motor_kvA
Get motor_kv: Motor KV rating. Used in some internal calculations. Set to your actual motor KV for accurate RPM limit and dynamic idle features. [UINT16, 1–40000, default: 1960]
Inputs: no named parameters.
get_motor_output_limitA
Get motor_output_limit: Caps per-motor output as a percentage. Use when running higher cell count than motors are rated for (e.g. 6S on a 4S build → set to ~66%). [UINT8, default: 100]
Inputs: no named parameters.
get_motor_output_reorderingD
Get motor_output_reordering: Reorders motor output channels without rewiring. Specify the output index for each motor position. [UINT8, default: 0,1,2,3,4,5,6,7]
Inputs: no named parameters.
get_motor_polesA
Get motor_poles: Number of magnetic poles on the motor bell (magnet count, not stator count). Critical for RPM filter accuracy. Most 5" motors have 14 magnets; verify on your specific motors. Wrong value → filters tracking wrong frequencies. [UINT8, default: 14]
Inputs: no named parameters.
get_motor_pwm_inversionA
Get motor_pwm_inversion: Invert PWM output polarity. For ESCs that require inverted signal. [UINT8, default: OFF]
Inputs: no named parameters.
get_motor_pwm_protocolA
Get motor_pwm_protocol: ESC communication protocol. DSHOT600 for ICM-42688P/MPU-6000 at 8kHz; DSHOT300 for BMI270 at 3.2kHz (DSHOT600 at 3.2kHz is marginal). [UINT8, default: DSHOT600]
Inputs: no named parameters.
get_motor_pwm_rateA
Get motor_pwm_rate: PWM frequency for brushed motor mode. Not relevant for DSHOT protocols. [UINT16, 200–32000, default: 480]
Inputs: no named parameters.
get_motor_valuesB
Get current motor output values (microseconds). Returns all active motor outputs.
Inputs: no named parameters.
get_pid_at_min_throttleA
Get pid_at_min_throttle: Keeps PIDs active at minimum throttle (idle). Required for airmode to function correctly; normally left ON. [UINT8, default: ON]
Inputs: no named parameters.
get_pid_in_tlmB
Get pid_in_tlm: Include PID data in telemetry output (where supported by the telemetry protocol). [UINT8, default: OFF]
Inputs: no named parameters.
get_pid_process_denomA
Get pid_process_denom: PID loop rate divisor relative to gyro rate. 1 = PID runs every gyro sample. For 8kHz gyro with denom=2 → 4kHz PID rate. Target: BMI270 → 3.2kHz (tune with denom accordingly); ICM-42688P/MPU-6000 → 8kHz. [UINT8, default: 1]
Inputs: no named parameters.
get_pid_slidersA
Get the current Betaflight simplified filter and tuning slider values. Returns float positions (1.0 = default/100%) matching the slider controls in Betaflight Configurator. pids_mode 0 = disabled, 1 = roll+pitch, 2 = roll+pitch+yaw.
Inputs: no named parameters.
get_pidsum_limitA
Get pidsum_limit: Clamps total P+I+D output. Set to 1000 (remove clamp) during initial PID tuning; restore default after. [UINT16, default: 500]
Inputs: no named parameters.
get_pidsum_limit_yawB
Get pidsum_limit_yaw: Clamps total yaw PID output. Set to 1000 during initial tuning; default 400 limits yaw authority. [UINT16, default: 400]
Inputs: no named parameters.
get_pinio_boxA
Get pinio_box: AUX box assignments for the 4 PINIO outputs (255 = disabled). [UINT8, default: 255,255,255,255]
Inputs: no named parameters.
get_pinio_configC
Get pinio_config: PINIO output configuration (active-high/low, open-drain, etc.). [UINT8, default: 1,1,1,1]
Inputs: no named parameters.
get_pitch_expoC
Get pitch_expo: Pitch expo. [UINT8, default: 0]
Inputs: no named parameters.
get_pitch_rate_limitA
Get pitch_rate_limit: Hard cap on pitch rate. [UINT16, default: 1998]
Inputs: no named parameters.
get_pitch_rc_rateB
Get pitch_rc_rate: Pitch rate at stick center. [UINT8, default: 7]
Inputs: no named parameters.
get_pitch_srateC
Get pitch_srate: Pitch super rate. [UINT8, default: 67]
Inputs: no named parameters.
get_p_pitchA
Get p_pitch: Pitch P gain. Pitch typically needs slightly higher P than roll due to greater inertia. [UINT8, default: 47]
Inputs: no named parameters.
get_prearm_allow_rearmA
Get prearm_allow_rearm: Allow re-arm without toggling the prearm switch between flights. [UINT8, default: OFF]
Inputs: no named parameters.
get_p_rollA
Get p_roll: Roll P gain. Reacts to angle error. Too high → fast oscillations on sharp moves. [UINT8, default: 45]
Inputs: no named parameters.
get_pwr_on_arm_graceA
Get pwr_on_arm_grace: Grace period after power-on during which arming is blocked (prevents arming before receiver binds). [UINT8, 0–30, default: 5]
Inputs: no named parameters.
get_p_yawA
Get p_yaw: Yaw P gain. [UINT8, default: 45]
Inputs: no named parameters.
get_quickrates_rc_expoB
Get quickrates_rc_expo: In QUICK rates mode, applies expo globally. [UINT8, default: OFF]
Inputs: no named parameters.
get_rate_6pos_switchB
Get rate_6pos_switch: Enable 6-position rate profile selection via an AUX channel. [UINT8, default: OFF]
Inputs: no named parameters.
get_rates_typeA
Get rates_type: Rate calculation system. ACTUAL is the most intuitive (center sens and max rate are directly set). [UINT8, default: ACTUAL]
Inputs: no named parameters.
get_raw_imuA
Get raw IMU sensor data: accelerometer (G), gyroscope (°/s), and magnetometer values.
Inputs: no named parameters.
get_rc_channelsA
Get current RC channel values (microseconds). Returns all active channels.
Inputs: no named parameters.
get_rc_smoothingA
Get rc_smoothing: Enables RC input interpolation and smoothing between received frames. [UINT8, default: ON]
Inputs: no named parameters.
get_rc_smoothing_auto_factorA
Get rc_smoothing_auto_factor: Auto-smoothing aggressiveness for setpoint channels. Higher = smoother but more lag. Preset applies the correct value for your RC link. [UINT8, default: 30]
Inputs: no named parameters.
get_rc_smoothing_auto_factor_throttleB
Get rc_smoothing_auto_factor_throttle: Auto-smoothing aggressiveness for throttle channel. [UINT8, default: 30]
Inputs: no named parameters.
get_rc_smoothing_debug_axisB
Get rc_smoothing_debug_axis: Which axis to expose in the RC smoothing debug fields (visible in blackbox when debug_mode = RC_SMOOTHING). [UINT8, default: ROLL]
Inputs: no named parameters.
get_rc_smoothing_setpoint_cutoffA
Get rc_smoothing_setpoint_cutoff: Manual setpoint smoothing cutoff. 0 = use auto. [UINT8, default: 0]
Inputs: no named parameters.
get_rc_smoothing_throttle_cutoffA
Get rc_smoothing_throttle_cutoff: Manual throttle smoothing cutoff. 0 = use auto. [UINT8, default: 0]
Inputs: no named parameters.
get_reboot_characterA
Get reboot_character: ASCII character that triggers a reboot when sent to the FC (default: 'R'). [UINT8, 48–126, default: 82]
Inputs: no named parameters.
get_report_cell_voltageA
Get report_cell_voltage: Report per-cell voltage (total / cell count) instead of pack voltage in telemetry. [UINT8, default: OFF]
Inputs: no named parameters.
get_roll_expoA
Get roll_expo: Roll expo — transition between center sensitivity and max rate. Higher = more expo, slower center, faster edges. [UINT8, default: 0]
Inputs: no named parameters.
get_roll_rate_limitA
Get roll_rate_limit: Hard cap on roll rate in deg/s, applied after the rates curve. [UINT16, default: 1998]
Inputs: no named parameters.
get_roll_rc_rateB
Get roll_rc_rate: Roll rate at stick center in deg/s×10 (ACTUAL) or RC multiplier (legacy). [UINT8, default: 7]
Inputs: no named parameters.
get_roll_srateA
Get roll_srate: Roll super rate — max rate at full stick deflection (ACTUAL system). [UINT8, default: 67]
Inputs: no named parameters.
get_rpm_filter_fade_range_hzA
Get rpm_filter_fade_range_hz: Frequency band over which notches fade in at low throttle, reducing delay at idle. [UINT16, 0–1000, default: 50]
Inputs: no named parameters.
get_rpm_filter_harmonicsB
Get rpm_filter_harmonics: Number of RPM harmonics to filter per motor. 3 = fundamental + 2nd + 3rd. 0 disables RPM filtering. [UINT8, 0–3, default: 3]
Inputs: no named parameters.
get_rpm_filter_lpf_hzA
Get rpm_filter_lpf_hz: Post-notch smoothing LPF applied to the RPM signal used for notch tracking. [UINT16, 100–500, default: 150]
Inputs: no named parameters.
get_rpm_filter_min_hzA
Get rpm_filter_min_hz: Below this frequency, notches are not applied. Lower on larger quads with slower-spinning motors (7"+ reduce to 60–80 Hz). [UINT8, 30–200, default: 100]
Inputs: no named parameters.
get_rpm_filter_qA
Get rpm_filter_q: Q factor (notch sharpness). Target 1000 on well-configured 5" builds — default 500 is a starting point, not a goal. Higher Q = narrower notch = less phase delay. Back off only if motor noise bleeds through. [UINT16, 250–3000, default: 500]
Inputs: no named parameters.
get_rpm_filter_weightsA
Get rpm_filter_weights: Per-harmonic notch depth percentage. Tri-blade props: try 100,0,80 (2nd harmonic absent). Bi-blade: 100,80,0 or 100,50,0. Lower each as far as possible without motor noise appearing in filtered gyro. [UINT8, default: 100,100,100]
Inputs: no named parameters.
get_rpm_limitB
Get rpm_limit: Enables per-motor RPM limit. (Requires: USE_RPM_LIMIT) [INT8, default: OFF]
Inputs: no named parameters.
get_rpm_limit_dA
Get rpm_limit_d: D gain for RPM limiter controller. (Requires: USE_RPM_LIMIT) [UINT16, 0–100, default: 8]
Inputs: no named parameters.
get_rpm_limit_iA
Get rpm_limit_i: I gain for RPM limiter controller. (Requires: USE_RPM_LIMIT) [UINT16, 0–1000, default: 10]
Inputs: no named parameters.
get_rpm_limit_pA
Get rpm_limit_p: P gain for RPM limiter controller. (Requires: USE_RPM_LIMIT) [UINT16, 0–100, default: 25]
Inputs: no named parameters.
get_rpm_limit_valueA
Get rpm_limit_value: Maximum motor RPM when rpm_limit is ON. (Requires: USE_RPM_LIMIT) [UINT16, default: 18000]
Inputs: no named parameters.
get_rssi_channelA
Get rssi_channel: AUX channel carrying RSSI signal. 0 = not using channel RSSI. [INT8, default: 0]
Inputs: no named parameters.
get_rssi_invertA
Get rssi_invert: Invert the RSSI signal (some receivers send inverted RSSI). [INT8, default: OFF]
Inputs: no named parameters.
get_rssi_offsetB
Get rssi_offset: Offsets the RSSI reading. [INT8, -100–100, default: 0]
Inputs: no named parameters.
get_rssi_scaleC
Get rssi_scale: Scales the RSSI input. [UINT8, default: 100]
Inputs: no named parameters.
get_rssi_smoothingA
Get rssi_smoothing: LPF period for RSSI smoothing. Higher = smoother but slower response to signal changes. [UINT8, default: 125]
Inputs: no named parameters.
get_rssi_src_frame_errorsA
Get rssi_src_frame_errors: Derive RSSI from frame error rate (for receivers that do not report RSSI directly). [INT8, default: OFF]
Inputs: no named parameters.
get_rssi_src_frame_lpf_periodA
Get rssi_src_frame_lpf_period: LPF period for frame-error-based RSSI smoothing. [UINT8, default: 30]
Inputs: no named parameters.
get_runaway_takeoff_deactivate_delayA
Get runaway_takeoff_deactivate_delay: Time after arming before runaway takeoff protection stops monitoring. [UINT16, 100–1000, default: 500]
Inputs: no named parameters.
get_runaway_takeoff_deactivate_throttle_percentA
Get runaway_takeoff_deactivate_throttle_percent: Throttle percentage above which the pilot's intent is clear and runaway protection deactivates. [UINT8, 0–100, default: 20]
Inputs: no named parameters.
get_runaway_takeoff_preventionA
Get runaway_takeoff_prevention: Detects uncommanded throttle-up on arm and disarms to prevent injury. [UINT8, default: ON]
Inputs: no named parameters.
get_rx_max_usecB
Get rx_max_usec: Longest channel pulse width considered valid. [UINT16, default: 2115]
Inputs: no named parameters.
get_rx_min_usecA
Get rx_min_usec: Shortest channel pulse width considered valid. Values below this trigger signal-loss detection (PPM/PWM). [UINT16, default: 885]
Inputs: no named parameters.
get_sbus_baud_fastD
Get sbus_baud_fast: Enable fast (200kbps) SBUS mode. For SBUS receivers that support it. [UINT8, default: OFF]
Inputs: no named parameters.
get_scheduler_debug_taskA
Get scheduler_debug_task: Task index to expose in scheduler debug output. Used for per-task timing analysis. [UINT16, default: 0]
Inputs: no named parameters.
get_scheduler_relax_osdA
Get scheduler_relax_osd: Scheduler relaxation time for OSD task. [UINT16, 0–500, default: 25]
Inputs: no named parameters.
get_scheduler_relax_rxA
Get scheduler_relax_rx: Scheduler relaxation time for RX task. Controls how much other tasks can run during RX processing. [UINT16, 0–500, default: 25]
Inputs: no named parameters.
get_serial_configC
Get serial port configuration from the flight controller.
Inputs: no named parameters.
get_serialmsp_halfduplexD
Get serialmsp_halfduplex: Enable half-duplex operation on MSP serial ports. [UINT8, default: OFF]
Inputs: no named parameters.
get_serialrx_halfduplexB
Get serialrx_halfduplex: Use single-wire half-duplex UART for serial RX (some CRSF implementations). [UINT8, default: OFF]
Inputs: no named parameters.
get_serialrx_invertedC
Get serialrx_inverted: Invert the serial RX signal. Required for some receivers on certain FC designs. [UINT8, default: OFF]
Inputs: no named parameters.
get_serialrx_providerA
Get serialrx_provider: Serial RX protocol. Must match the receiver's output format. [UINT8, default: CRSF]
Inputs: no named parameters.
get_serial_update_rate_hzA
Get serial_update_rate_hz: Rate at which MSP/CLI serial output is processed. [UINT16, 100–2000, default: 100]
Inputs: no named parameters.
get_simplified_d_gainB
Get simplified_d_gain: D scaling slider. [UINT8, default: 100]
Inputs: no named parameters.
get_simplified_d_max_gainB
Get simplified_d_max_gain: D_max scaling slider (dynamic damping ceiling). [UINT8, default: 100]
Inputs: no named parameters.
get_simplified_dterm_filterB
Get simplified_dterm_filter: Whether simplified slider controls D-term filter cutoffs. [UINT8, default: ON]
Inputs: no named parameters.
get_simplified_dterm_filter_multiplierA
Get simplified_dterm_filter_multiplier: D-term filter cutoff scaling slider. [UINT8, default: 100]
Inputs: no named parameters.
get_simplified_feedforward_gainB
Get simplified_feedforward_gain: Feedforward scaling slider. [UINT8, default: 100]
Inputs: no named parameters.
get_simplified_gyro_filterB
Get simplified_gyro_filter: Whether simplified slider controls gyro filter cutoffs. [UINT8, default: ON]
Inputs: no named parameters.
get_simplified_gyro_filter_multiplierA
Get simplified_gyro_filter_multiplier: Gyro filter cutoff scaling slider. 100 = current static values. Raise to reduce gyro filtering (faster). [UINT8, default: 100]
Inputs: no named parameters.
get_simplified_i_gainB
Get simplified_i_gain: I scaling slider (independent of P). [UINT8, default: 100]
Inputs: no named parameters.
get_simplified_master_multiplierA
Get simplified_master_multiplier: Master gain slider — scales all P, I, D and D_max together. Equivalent to PIDtoolbox "Master Multiplier". 100 = default gains. [UINT8, default: 100]
Inputs: no named parameters.
get_simplified_pids_modeB
Get simplified_pids_mode: Which axes the simplified PID sliders control. RPY = all axes. [UINT8, default: RPY]
Inputs: no named parameters.
get_simplified_pi_gainB
Get simplified_pi_gain: P and I scaling slider (relative to master). [UINT8, default: 100]
Inputs: no named parameters.
get_simplified_pitch_d_gainA
Get simplified_pitch_d_gain: Additional D multiplier for pitch only. [UINT8, default: 100]
Inputs: no named parameters.
get_simplified_pitch_pi_gainA
Get simplified_pitch_pi_gain: Additional P and I multiplier for pitch only (relative compensation for pitch inertia). [UINT8, default: 100]
Inputs: no named parameters.
get_small_angleA
Get small_angle: Maximum tilt angle (degrees) to permit arming — a pre-arm safety lock. Turtle/crash-flip mode re-arms while inverted, which requires small_angle = 180 to work reliably. [UINT8, 0–180, default: 25]
Inputs: no named parameters.
get_spa_pitch_centerB
Get spa_pitch_center: Setpoint centre value for pitch SPA. (Requires: USE_WING) [UINT16, default: 0 (per profile)]
Inputs: no named parameters.
get_spa_pitch_modeA
Get spa_pitch_mode: SPA mode for pitch. (Requires: USE_WING) [UINT8, default: OFF (per profile)]
Inputs: no named parameters.
get_spa_pitch_widthB
Get spa_pitch_width: Setpoint width for pitch SPA attenuation ramp. (Requires: USE_WING) [UINT16, default: 0 (per profile)]
Inputs: no named parameters.
get_spa_roll_centerA
Get spa_roll_center: Setpoint centre value at which no attenuation is applied (roll). (Requires: USE_WING) [UINT16, default: 0 (per profile)]
Inputs: no named parameters.
get_spa_roll_modeA
Get spa_roll_mode: SPA mode for roll. I = scale I term; PID = scale all terms; PDI_FREEZE = scale P and D, freeze I. (Requires: USE_WING)_ [UINT8, default: OFF (per profile)]
Inputs: no named parameters.
get_spa_roll_widthA
Get spa_roll_width: Setpoint range over which attenuation ramps from 0 to full (roll). (Requires: USE_WING) [UINT16, default: 0 (per profile)]
Inputs: no named parameters.
get_spa_yaw_centerA
Get spa_yaw_center: Setpoint centre value for yaw SPA. (Requires: USE_WING) [UINT16, default: 0 (per profile)]
Inputs: no named parameters.
get_spa_yaw_modeA
Get spa_yaw_mode: SPA mode for yaw. (Requires: USE_WING) [UINT8, default: OFF (per profile)]
Inputs: no named parameters.
get_spa_yaw_widthB
Get spa_yaw_width: Setpoint width for yaw SPA attenuation ramp. (Requires: USE_WING) [UINT16, default: 0 (per profile)]
Inputs: no named parameters.
get_s_pitchB
Get s_pitch: S-term for pitch. (Requires: USE_WING) [UINT8, default: 0]
Inputs: no named parameters.
get_s_rollA
Get s_roll: S-term (stability term) for roll. New in 2025.12 — provides additional stability control. (Requires: USE_WING) [UINT8, default: 0]
Inputs: no named parameters.
get_statusA
Get flight controller status: cycle time, I2C errors, active sensors, mode flags, and active profile.
Inputs: no named parameters.
get_s_yawA
Get s_yaw: S-term for yaw. (Requires: USE_WING) [UINT8, default: 0]
Inputs: no named parameters.
get_system_hse_mhzA
Get system_hse_mhz: External crystal frequency in MHz. Set to 0 for auto-detect. Required for some non-standard clock speeds. [UINT8, 0–30, default: 0]
Inputs: no named parameters.
get_tasksA
Get the list of scheduler tasks and their timing statistics.
Inputs: no named parameters.
get_task_statisticsC
Get task_statistics: Enables CPU task profiling visible via tasks CLI command. Turn OFF to reduce overhead on heavily loaded systems. [INT8, default: ON]
Inputs: no named parameters.
get_thr_expoC
Get thr_expo: Throttle expo. [UINT8, 0–100, default: 0]
Inputs: no named parameters.
get_thr_hoverA
Get thr_hover: Estimated hover throttle percentage. Used by alt-hold and some internal calculations. [UINT8, 0–100, default: 50]
Inputs: no named parameters.
get_thr_midA
Get thr_mid: Throttle curve mid-point — sets the thrust at 50% stick. [UINT8, 0–100, default: 50]
Inputs: no named parameters.
get_throttle_boostA
Get throttle_boost: Transiently boosts throttle output on fast throttle stick changes for immediate throttle feel. [UINT8, 0–100, default: 5]
Inputs: no named parameters.
get_throttle_boost_cutoffA
Get throttle_boost_cutoff: LPF cutoff for throttle derivative used by throttle_boost. [UINT8, 5–50, default: 15]
Inputs: no named parameters.
get_throttle_limit_percentA
Get throttle_limit_percent: Maximum throttle percentage when throttle_limit_type is active. [UINT8, 25–100, default: 100]
Inputs: no named parameters.
get_throttle_limit_typeA
Get throttle_limit_type: Limits maximum throttle output. SCALE = proportionally scales all outputs; CLIP = hard ceiling. [UINT8, default: OFF]
Inputs: no named parameters.
get_thrust_linearC
Get thrust_linear: Linearises the thrust curve at low throttle. Improves low-throttle authority and responsiveness, especially for whoops and 48kHz ESCs. 20–40% is typically enough; no effect above mid-throttle. [UINT8, 0–150, default: 0]
Inputs: no named parameters.
get_tpa_breakpointA
Get tpa_breakpoint: Throttle level (1000–2000 scale) where TPA begins. Attenuation is proportional from here to full throttle. [UINT16, default: 1350]
Inputs: no named parameters.
get_tpa_curve_expoA
Get tpa_curve_expo: Expo applied to the TPA curve. Negative = more attenuation at low throttle; positive = more at high throttle. (Requires: USE_ADVANCED_TPA) [INT8, default: 20]
Inputs: no named parameters.
get_tpa_curve_pid_thr0A
Get tpa_curve_pid_thr0: PID value (×0.1%) at zero throttle for the TPA curve. Default 200 = 20% of full PID at idle. (Requires: USE_ADVANCED_TPA) [UINT16, default: 200]
Inputs: no named parameters.
get_tpa_curve_pid_thr100A
Get tpa_curve_pid_thr100: PID value (×0.1%) at full throttle for the TPA curve. Default 70 = 7% of full PID at max throttle. (Requires: USE_ADVANCED_TPA) [UINT16, default: 70]
Inputs: no named parameters.
get_tpa_curve_stall_throttleA
Get tpa_curve_stall_throttle: Throttle % below which the craft is considered stalled (for wing/fixed-wing TPA). (Requires: USE_ADVANCED_TPA) [UINT8, default: 30]
Inputs: no named parameters.
get_tpa_curve_typeA
Get tpa_curve_type: TPA curve shape. CLASSIC matches legacy TPA behaviour. HYPERBOLIC applies a hyperbolic attenuation curve. (Requires: USE_ADVANCED_TPA) [UINT8, default: CLASSIC]
Inputs: no named parameters.
get_tpa_low_alwaysA
Get tpa_low_always: OFF = TPA Low is only active before Airmode activates; ON = active throughout the flight. [UINT8, default: OFF]
Inputs: no named parameters.
get_tpa_low_breakpointA
Get tpa_low_breakpoint: Throttle level below which TPA Low applies. [UINT16, default: 1050]
Inputs: no named parameters.
get_tpa_low_rateA
Get tpa_low_rate: D attenuation at minimum throttle (TPA Low). Reduces D-term shaking during throttle chops. [INT8, default: 20]
Inputs: no named parameters.
get_tpa_modeA
Get tpa_mode: Which terms TPA attenuates. D = D only (default, safest). PD = P and D. PDS = P, D, and S-term. [UINT8, default: D]
Inputs: no named parameters.
get_tpa_rateA
Get tpa_rate: Maximum attenuation percentage at full throttle. 65 = PIDs are at 35% above the breakpoint. [UINT8, default: 65]
Inputs: no named parameters.
get_tpa_speed_adv_drag_kA
Get tpa_speed_adv_drag_k: Aerodynamic drag coefficient for ADVANCED speed TPA physics model. (Requires: USE_WING) [UINT16, default: 1000]
Inputs: no named parameters.
get_tpa_speed_adv_massA
Get tpa_speed_adv_mass: Craft mass (g×0.1) for ADVANCED speed TPA physics model. (Requires: USE_WING) [UINT16, default: 1000]
Inputs: no named parameters.
get_tpa_speed_adv_prop_pitchA
Get tpa_speed_adv_prop_pitch: Propeller pitch (mm) for ADVANCED speed TPA physics model. (Requires: USE_WING) [UINT16, default: 370]
Inputs: no named parameters.
get_tpa_speed_adv_thrustA
Get tpa_speed_adv_thrust: Maximum thrust (g) for ADVANCED speed TPA physics model. (Requires: USE_WING) [UINT16, default: 2000]
Inputs: no named parameters.
get_tpa_speed_basic_delayA
Get tpa_speed_basic_delay: Delay (ms) before speed-based TPA updates after a speed change. Prevents rapid gain changes during maneuvers. (Requires: USE_WING) [UINT16, default: 1000]
Inputs: no named parameters.
get_tpa_speed_basic_gravityA
Get tpa_speed_basic_gravity: Gravity factor for BASIC speed TPA. Affects TPA response curve vs airspeed. (Requires: USE_WING) [UINT16, default: 50]
Inputs: no named parameters.
get_tpa_speed_max_voltageA
Get tpa_speed_max_voltage: Maximum pack voltage (in mV×0.1) used to normalize motor speed in BASIC speed TPA. (Requires: USE_WING) [UINT16, default: 2520]
Inputs: no named parameters.
get_tpa_speed_pitch_offsetA
Get tpa_speed_pitch_offset: Pitch offset correction for speed TPA (wing/fixed-wing trim). (Requires: USE_WING) [INT16, default: 0]
Inputs: no named parameters.
get_tpa_speed_typeA
Get tpa_speed_type: Speed-based TPA. BASIC uses GPS-derived speed. ADVANCED uses a physics model based on motor/prop parameters. (Requires: USE_WING) [UINT8, default: BASIC]
Inputs: no named parameters.
get_usb_hid_cdcA
Get usb_hid_cdc: Use USB HID (combined HID + CDC) instead of pure CDC. Required for some OTG hosts. [UINT8, default: OFF]
Inputs: no named parameters.
get_usb_msc_pin_pullupD
Get usb_msc_pin_pullup: Enable pull-up on USB MSC detect pin. [UINT8, default: ON]
Inputs: no named parameters.
get_use_cbat_alertsC
Get use_cbat_alerts: Enable capacity-based OSD/beeper warnings. [UINT8, default: OFF]
Inputs: no named parameters.
get_use_unsynced_pwmA
Get use_unsynced_pwm: Send motor PWM unsynchronised to the PID loop. Primarily for brushed motors. [UINT8, default: OFF]
Inputs: no named parameters.
get_use_vbat_alertsA
Get use_vbat_alerts: Enable voltage-based OSD/beeper warnings. [UINT8, default: ON]
Inputs: no named parameters.
get_vbat_cutoff_percentA
Get vbat_cutoff_percent: Percentage of vbat_sag_compensation to apply at critically low voltage. [UINT8, 0–100, default: 100]
Inputs: no named parameters.
get_vbat_detect_cell_voltageA
Get vbat_detect_cell_voltage: Voltage above which a battery is considered connected (×0.01V per cell). [UINT16, 0–2000, default: 300]
Inputs: no named parameters.
get_vbat_display_lpf_periodA
Get vbat_display_lpf_period: LPF period for the voltage shown on the OSD (smooths display flickering). Does not affect alarm thresholds. [UINT8, default: 30]
Inputs: no named parameters.
get_vbat_dividerA
Get vbat_divider: Voltage divider ratio numerator. [UINT8, default: 10]
Inputs: no named parameters.
get_vbat_duration_for_criticalD
Get vbat_duration_for_critical: Same as above but for the critical threshold. [UINT8, 0–150, default: 0]
Inputs: no named parameters.
get_vbat_duration_for_warningA
Get vbat_duration_for_warning: Consecutive tenths-of-seconds the voltage must remain below the warning threshold before the warning alarm fires. Prevents brief-spike false alarms. [UINT8, 0–150, default: 0]
Inputs: no named parameters.
get_vbat_full_cell_voltageA
Get vbat_full_cell_voltage: "Full" cell voltage for capacity display. Default 410 = 4.10V. [UINT16, default: 410]
Inputs: no named parameters.
get_vbat_hysteresisA
Get vbat_hysteresis: Hysteresis on voltage warnings to prevent flicker (×0.01V). [UINT8, 0–250, default: 1]
Inputs: no named parameters.
get_vbat_max_cell_voltageA
Get vbat_max_cell_voltage: Maximum per-cell voltage for auto cell-count detection (×0.01V). Default 430 = 4.30V. [UINT16, default: 430]
Inputs: no named parameters.
get_vbat_min_cell_voltageA
Get vbat_min_cell_voltage: Minimum cell voltage — triggers battery-critical alarm (×0.01V). Default 330 = 3.30V. [UINT16, default: 330]
Inputs: no named parameters.
get_vbat_multiplierA
Get vbat_multiplier: Voltage divider ratio multiplier. [UINT8, default: 1]
Inputs: no named parameters.
get_vbat_sag_compensationA
Get vbat_sag_compensation: Compensates for battery voltage sag to maintain consistent PID authority and throttle output across a pack. 90% is a good target — avoids stressing the pack at low voltage while still providing consistency. Requires cell voltage monitoring; configure a low-voltage OSD warning when enabled. [UINT8, 0–150, default: 0]
Inputs: no named parameters.
get_vbat_sag_lpf_periodA
Get vbat_sag_lpf_period: LPF period for battery sag compensation voltage measurement. Lower = faster response to sag. [UINT8, default: 2]
Inputs: no named parameters.
get_vbat_scaleA
Get vbat_scale: Voltage divider calibration. Adjust until reported voltage matches a multimeter. [UINT8, default: 110]
Inputs: no named parameters.
get_vbat_warning_cell_voltageA
Get vbat_warning_cell_voltage: Warning threshold voltage per cell (×0.01V). Default 350 = 3.50V. [UINT16, default: 350]
Inputs: no named parameters.
get_versionA
Get the Betaflight firmware version and build information.
Inputs: no named parameters.
get_yaw_control_reversedC
Get yaw_control_reversed: Reverses the direction of yaw stick. [INT8, default: OFF]
Inputs: no named parameters.
get_yaw_deadbandA
Get yaw_deadband: Yaw-specific deadband around center. [UINT8, 0–100, default: 0]
Inputs: no named parameters.
get_yaw_expoB
Get yaw_expo: Yaw expo. [UINT8, default: 0]
Inputs: no named parameters.
get_yaw_lowpass_hzA
Get yaw_lowpass_hz: Low-pass filter applied to the final yaw PID output (post-summation). Reduces yaw noise feeding into motors. Set to 0 to disable for maximum yaw responsiveness. [UINT16, 0–500, default: 100]
Inputs: no named parameters.
get_yaw_motors_reversedA
Get yaw_motors_reversed: Reverse yaw PID output sign. Use when motor spin direction is swapped from normal. [INT8, default: OFF]
Inputs: no named parameters.
get_yaw_rate_limitA
Get yaw_rate_limit: Hard cap on yaw rate. [UINT16, default: 1998]
Inputs: no named parameters.
get_yaw_rc_rateB
Get yaw_rc_rate: Yaw rate at stick center. [UINT8, default: 7]
Inputs: no named parameters.
get_yaw_srateB
Get yaw_srate: Yaw super rate. [UINT8, default: 67]
Inputs: no named parameters.
list_serial_portsA
List all available serial ports on this system. Use this to find the port your flight controller is connected to.
Inputs: no named parameters.
motor_getB
Get the current output value for a specific motor index.
Inputs: index (required).
motor_setA
Set the output value for a specific motor (use with caution — props off!). Value 0 = off, 1000–2000 = throttle range.
Inputs: index (required), value (required).
preflight_checkA
Run a comprehensive preflight safety check: arming readiness, battery voltage, GPS lock status, and CPU load. Note: call this before any CLI tools in the same session (uses MSP).
Inputs: no named parameters.
reboot_flight_controllerA
Reboot the flight controller. The connection will be closed as the FC restarts. Use reconnect_flight_controller (or connect_flight_controller) afterwards.
Inputs: no named parameters.
reconnect_flight_controllerA
Reconnect to the last connected flight controller using the same port and baud rate. Useful after a reboot (e.g. following cli_save or reboot_flight_controller). Will disconnect any existing session first.
Inputs: no named parameters.
set_acc_calibrationA
Set acc_calibration: Raw accelerometer calibration offsets written by the calibration routine. Do not edit manually. [INT16, default: 0,0,0,0]
Inputs: value (required).
set_acc_hardwareB
Set acc_hardware: Force accelerometer driver or AUTO-detect. [UINT8, default: AUTO]
Inputs: value (required).
set_acc_high_rangeB
Set acc_high_range: Enable high-range accelerometer mode for sensors that support it. [UINT8, default: OFF]
Inputs: value (required).
set_acc_limitA
Set acc_limit: Limits the accelerometer correction applied to the attitude estimate in angle/horizon mode. 0 = no limit. [UINT16, 0–500, default: 0]
Inputs: value (required).
set_acc_limit_yawA
Set acc_limit_yaw: Same as acc_limit but applied to the yaw axis. 0 = no limit. [UINT16, 0–500, default: 0]
Inputs: value (required).
set_acc_lpf_hzA
Set acc_lpf_hz: Accelerometer low-pass filter cutoff. Smooths acc readings used for attitude estimation. [UINT16, 0–500, default: 25]
Inputs: value (required).
set_acc_trim_pitchA
Set acc_trim_pitch: Accelerometer pitch trim for level calibration. [INT16, -300–300, default: 0]
Inputs: value (required).
set_acc_trim_rollB
Set acc_trim_roll: Accelerometer roll trim for level calibration. [INT16, -300–300, default: 0]
Inputs: value (required).
set_adc_deviceC
Set adc_device: ADC device used for voltage/current sensing. [INT8, default: 2]
Inputs: value (required).
set_adc_tempsensor_calibration110B
Set adc_tempsensor_calibration110: ADC temperature sensor calibration value at 110°C (factory calibration). [UINT16, 0–2000, default: 0]
Inputs: value (required).
set_adc_tempsensor_calibration30A
Set adc_tempsensor_calibration30: ADC temperature sensor calibration value at 30°C (factory calibration). [UINT16, 0–2000, default: 0]
Inputs: value (required).
set_adc_vrefint_calibrationB
Set adc_vrefint_calibration: ADC internal voltage reference calibration (factory). [UINT16, 0–2000, default: 0]
Inputs: value (required).
set_airmode_start_throttle_percentA
Set airmode_start_throttle_percent: Throttle percentage above which airmode activates. At higher values, motors begin to idle before airmode engages. [UINT8, 0–100, default: 25]
Inputs: value (required).
set_align_board_pitchB
Set align_board_pitch: Board rotation offset in pitch. [INT16, -180–360, default: 0]
Inputs: value (required).
set_align_board_rollB
Set align_board_roll: Board rotation offset in roll (degrees). For non-standard FC mounting orientations. [INT16, -180–360, default: 0]
Inputs: value (required).
set_align_board_yawA
Set align_board_yaw: Board rotation offset in yaw (degrees). For non-standard FC mounting orientations. [INT16, -180–360, default: 45]
Inputs: value (required).
set_align_magC
Set align_mag: Magnetometer orientation. (Requires: USE_MAG) [UINT8, default: DEFAULT]
Inputs: value (required).
set_altitude_d_lpfA
Set altitude_d_lpf: Low-pass filter cutoff (Hz×10) for altitude derivative (vertical speed). [UINT16, 10–5000, default: 100]
Inputs: value (required).
set_altitude_lpfA
Set altitude_lpf: Low-pass filter cutoff (Hz×10) for altitude estimate. Lower = smoother but laggier altitude. [UINT16, 10–5000, default: 300]
Inputs: value (required).
set_altitude_prefer_baroA
Set altitude_prefer_baro: Weight given to barometer vs GPS altitude when both are available (0 = GPS only, 100 = baro only). [INT8, 0–100, default: 100]
Inputs: value (required).
set_altitude_sourceA
Set altitude_source: Override altitude data source for autopilot and OSD altitude display. [INT8, default: DEFAULT]
Inputs: value (required).
set_angle_earth_refA
Set angle_earth_ref: Proportion of earth-frame reference used in angle mode (0 = body frame, 100 = full earth frame). 100 is recommended for GPS rescue compatibility. [UINT8, 0–100, default: 100]
Inputs: value (required).
set_angle_feedforwardA
Set angle_feedforward: Feedforward in angle mode — reduces lag when moving the angle setpoint. [UINT8, 0–200, default: 50]
Inputs: value (required).
set_angle_feedforward_smoothing_msA
Set angle_feedforward_smoothing_ms: Smoothing applied to angle feedforward signal. [UINT8, 10–250, default: 80]
Inputs: value (required).
set_angle_limitA
Set angle_limit: Maximum tilt angle in angle mode during flight-time (degrees). [UINT8, 10–80, default: 60]
Inputs: value (required).
set_angle_p_gainB
Set angle_p_gain: P gain for angle mode self-leveling. Higher = stronger return to level. [UINT8, 0–200, default: 50]
Inputs: value (required).
set_angle_pitch_offsetA
Set angle_pitch_offset: Pitch trim offset in tenths of degrees for angle mode. Use to adjust the level hover point without reflying. (Requires: USE_WING) [INT16, default: 0]
Inputs: value (required).
set_anti_gravity_cutoff_hzA
Set anti_gravity_cutoff_hz: LPF cutoff for throttle derivative used by anti-gravity. Adjust for very large or small builds (larger = faster, smaller = slower response). [UINT8, 2–50, default: 5]
Inputs: value (required).
set_anti_gravity_gainA
Set anti_gravity_gain: Boosts I-term on rapid throttle changes to prevent yaw/pitch dip on punch. Reduce if throttle-punch wobbles appear. [UINT8, default: 80]
Inputs: value (required).
set_anti_gravity_p_gainA
Set anti_gravity_p_gain: Boosts P-term (in addition to I) on rapid throttle changes. Reduce if punches cause P-induced oscillations. [UINT8, 0–250, default: 100]
Inputs: value (required).
set_auto_disarm_delayA
Set auto_disarm_delay: Seconds of throttle-zero before auto-disarm. 0 = disabled. [UINT8, 0–60, default: 5]
Inputs: value (required).
set_baro_bustypeC
Set baro_bustype: Barometer bus type. (Requires: USE_BARO) [UINT8, default: SPI]
Inputs: value (required).
set_baro_hardwareA
Set baro_hardware: Force barometer driver or AUTO-detect. (Requires: USE_BARO) [UINT8, default: AUTO]
Inputs: value (required).
set_baro_i2c_addressA
Set baro_i2c_address: I2C address override for barometer (0 = default auto-detect). (Requires: USE_BARO) [UINT8, default: 0]
Inputs: value (required).
set_baro_i2c_deviceA
Set baro_i2c_device: I2C bus number for barometer (0 = default). (Requires: USE_BARO) [UINT8, 0–5, default: 0]
Inputs: value (required).
set_baro_spi_deviceA
Set baro_spi_device: SPI bus number for barometer. (Requires: USE_BARO) [UINT8, 0–5, default: 2]
Inputs: value (required).
set_bat_capacityA
Set bat_capacity: Battery capacity in mAh. Used with current meter to estimate remaining charge. [UINT16, 0–20000, default: 0]
Inputs: value (required).
set_battery_continueA
Set battery_continue: Continue logging/flying after battery disconnect/reconnect (for hot-swap builds). (Requires: USE_BATTERY_CONTINUE) [UINT8, default: OFF]
Inputs: value (required).
set_battery_meterA
Set battery_meter: Source for battery voltage reading. ADC = onboard voltage divider. ESC = from ESC telemetry. [UINT8, default: ADC]
Inputs: value (required).
set_blackbox_deviceA
Set blackbox_device: Logging destination. SPIFLASH = onboard flash. SDCARD = SD card. SERIAL = via serial port (high baud rate required). [UINT8, default: SPIFLASH]
Inputs: value (required).
set_blackbox_disable_accC
Set blackbox_disable_acc: Exclude accelerometer data. [UINT32, default: OFF]
Inputs: value (required).
set_blackbox_disable_altA
Set blackbox_disable_alt: Exclude altitude data. [UINT32, default: OFF]
Inputs: value (required).
set_blackbox_disable_attitudeC
Set blackbox_disable_attitude: Exclude attitude (roll/pitch/yaw angle) data from logs. [UINT32, default: OFF]
Inputs: value (required).
set_blackbox_disable_batA
Set blackbox_disable_bat: Exclude battery data. [UINT32, default: OFF]
Inputs: value (required).
set_blackbox_disable_debugC
Set blackbox_disable_debug: Exclude debug fields. [UINT32, default: OFF]
Inputs: value (required).
set_blackbox_disable_gpsA
Set blackbox_disable_gps: Exclude GPS data. (Requires: USE_GPS) [UINT32, default: OFF]
Inputs: value (required).
set_blackbox_disable_gyroB
Set blackbox_disable_gyro: Exclude filtered gyro data. [UINT32, default: OFF]
Inputs: value (required).
set_blackbox_disable_gyrounfiltC
Set blackbox_disable_gyrounfilt: Exclude unfiltered gyro data. [UINT32, default: OFF]
Inputs: value (required).
set_blackbox_disable_motorsB
Set blackbox_disable_motors: Exclude motor output data. [UINT32, default: OFF]
Inputs: value (required).
set_blackbox_disable_pidsC
Set blackbox_disable_pids: Exclude PID data from logs. Reduces log size. [UINT32, default: OFF]
Inputs: value (required).
set_blackbox_disable_rcB
Set blackbox_disable_rc: Exclude RC channel data from logs. [UINT32, default: OFF]
Inputs: value (required).
set_blackbox_disable_rpmB
Set blackbox_disable_rpm: Exclude RPM telemetry data. (Requires: USE_DSHOT_TELEMETRY) [UINT32, default: OFF]
Inputs: value (required).
set_blackbox_disable_rssiA
Set blackbox_disable_rssi: Exclude RSSI data. [UINT32, default: OFF]
Inputs: value (required).
set_blackbox_disable_servosA
Set blackbox_disable_servos: Exclude servo output data from logs. (Requires: USE_SERVOS) [UINT32, default: OFF]
Inputs: value (required).
set_blackbox_disable_setpointC
Set blackbox_disable_setpoint: Exclude setpoint data. [UINT32, default: OFF]
Inputs: value (required).
set_blackbox_high_resolutionA
Set blackbox_high_resolution: Double the data precision for gyro and setpoint fields. Increases log size. [UINT8, default: OFF]
Inputs: value (required).
set_blackbox_modeB
Set blackbox_mode: NORMAL = log only when armed. ALWAYS = log even when disarmed. MOTOR_TEST = motor test mode. [UINT8, default: NORMAL]
Inputs: value (required).
set_blackbox_sample_rateA
Set blackbox_sample_rate: Fraction of PID loop iterations logged. With the default pid_process_denom = 1 (PID rate = gyro rate), at 8kHz: 1/8 → 1kHz, 1/4 → 2kHz. Finer rates = larger logs. [UINT8, default: 1/4]
Inputs: value (required).
set_cbat_alert_percentA
Set cbat_alert_percent: Remaining capacity percentage to trigger a battery alert. [UINT8, 0–100, default: 10]
Inputs: value (required).
set_channel_forwarding_startB
Set channel_forwarding_start: First AUX channel to forward to servo outputs (for channel forwarding to servos). (Requires: USE_SERVOS) [UINT8, default: 4]
Inputs: value (required).
set_channel_mapA
Set the RC channel map order (e.g. AETR1234).
Inputs: order (required).
set_cpu_late_limit_permilleA
Set cpu_late_limit_permille: CPU late task limit in permille (per-thousand). Controls scheduler behaviour when tasks are running late. (Requires: USE_LATE_TASK_STATISTICS) [UINT8, 0–100, default: 10]
Inputs: value (required).
set_cpu_overclockB
Set cpu_overclock: Overclock the STM32 F7 processor. Use only if CPU load is too high and the board supports it. [UINT8, default: OFF]
Inputs: value (required).
set_crash_delayB
Set crash_delay: Delay after arm before crash detection is armed. [UINT16, 0–500, default: 0 (per profile)]
Inputs: value (required).
set_crash_dthresholdA
Set crash_dthreshold: D-term threshold above which crash is detected (deg/s2). [UINT16, 10–2000, default: 50 (per profile)]
Inputs: value (required).
set_crashflip_auto_rearmB
Set crashflip_auto_rearm: Automatically re-arm after a successful crash flip recovery. [INT8, default: OFF]
Inputs: value (required).
set_crashflip_motor_percentA
Set crashflip_motor_percent: Motor output percentage during crash flip / turtle mode. 0 = motors disabled (no flip thrust); set >0 (100 recommended) to enable. [UINT8, 0–100, default: 0]
Inputs: value (required).
set_crashflip_rateA
Set crashflip_rate: Rotation rate limit during crash flip mode (degrees/s). 0 = unlimited. [UINT8, 0–250, default: 0]
Inputs: value (required).
set_crash_gthresholdA
Set crash_gthreshold: Gyro rate threshold for crash detection (deg/s). [UINT16, 100–2000, default: 400 (per profile)]
Inputs: value (required).
set_crash_limit_yawA
Set crash_limit_yaw: Yaw rate limit during crash recovery (deg/s). [UINT16, 0–1000, default: 200 (per profile)]
Inputs: value (required).
set_crash_recoveryC
Set crash_recovery: Enable crash recovery. BEEP = recover and beep; DISARM = recover then disarm. [UINT8, default: OFF (per profile)]
Inputs: value (required).
set_crash_recovery_angleB
Set crash_recovery_angle: Maximum recovery correction angle (degrees). [UINT8, 5–30, default: 10 (per profile)]
Inputs: value (required).
set_crash_recovery_rateA
Set crash_recovery_rate: Rate at which the FC tries to recover from a crash. [UINT8, 50–255, default: 100 (per profile)]
Inputs: value (required).
set_crash_setpoint_thresholdB
Set crash_setpoint_threshold: Setpoint threshold for crash detection. [UINT16, 50–2000, default: 350 (per profile)]
Inputs: value (required).
set_crash_timeA
Set crash_time: Minimum crash duration before recovery triggers. [UINT16, 100–5000, default: 500 (per profile)]
Inputs: value (required).
set_crsf_use_negotiated_baudA
Set crsf_use_negotiated_baud: Allow CRSF to negotiate baud rate. Enable when using faster CRSF rates (e.g. ELRS negotiated speed). [UINT8, default: OFF]
Inputs: value (required).
set_current_meterB
Set current_meter: Current sensor source. ADC = onboard shunt. ESC = ESC telemetry current. [UINT8, default: ADC]
Inputs: value (required).
set_deadbandA
Set deadband: RC deadband around stick center (microseconds). Increase if sticks don't return to exact center. [UINT8, 0–32, default: 0]
Inputs: value (required).
set_debug_modeA
Set debug_mode: Select which internal signals are exposed in blackbox debug fields. Key modes: FFT_FREQ (filter frequency analysis), FFT_TIME (FFT time-domain), FFT (general FFT), GYRO_SCALED (raw gyro, filter tuning), D_MAX (dynamic damping), DYN_IDLE (dynamic idle), ITERM_RELAX (I-term relax), FEEDFORWARD (FF signals), FAILSAFE (failsafe state). [UINT8, default: NONE]
Inputs: value (required).
set_d_max_advanceA
Set d_max_advance: Allows D boost to start before the gyro rate peaks, using feedforward signal. Set to 0 during baseline tuning — rarely beneficial and can cause premature D oscillation. Only explore once the baseline is stable. [UINT8, 0–200, default: 20]
Inputs: value (required).
set_d_max_gainA
Set d_max_gain: Controls how aggressively D rises from base D toward d_max on sharp moves. Default is suitable; reduce if D boost causes propwash on move initiation. [UINT8, 0–100, default: 37]
Inputs: value (required).
set_d_max_pitchB
Set d_max_pitch: D_max for pitch. [UINT8, default: 46]
Inputs: value (required).
set_d_max_rollA
Set d_max_roll: Dynamic damping ceiling — D value used during fast moves. Must be ≥ d_roll. [UINT8, default: 40]
Inputs: value (required).
set_d_max_yawB
Set d_max_yaw: D_max for yaw. [UINT8, default: 0]
Inputs: value (required).
set_d_pitchA
Set d_pitch: Base D — active in smooth flight. Boosted toward d_max_pitch on fast moves. [UINT8, default: 34]
Inputs: value (required).
set_d_rollA
Set d_roll: Base D — active in smooth flight. Damps rate of change, counters P overshoot and propwash. Boosted toward d_max_roll on fast moves. [UINT8, default: 30]
Inputs: value (required).
set_dshot_bidirA
Set dshot_bidir: Enables bidirectional DSHOT for RPM telemetry. Required for RPM filtering. ESC firmware must support it. (Requires: USE_DSHOT + USE_DSHOT_TELEMETRY) [UINT8, default: OFF]
Inputs: value (required).
set_dshot_bitbangB
Set dshot_bitbang: DSHOT bitbang implementation (software DSHOT). AUTO selects automatically. (Requires: USE_DSHOT + USE_DSHOT_BITBANG) [UINT8, default: AUTO]
Inputs: value (required).
set_dshot_bitbang_timerA
Set dshot_bitbang_timer: Timer used for bitbang DSHOT. (Requires: USE_DSHOT + USE_DSHOT_BITBANG) [UINT8, default: AUTO]
Inputs: value (required).
set_dshot_burstA
Set dshot_burst: DSHOT burst transmission mode. AUTO selects based on hardware capability. (Requires: USE_DSHOT + USE_DSHOT_DMAR) [UINT8, default: AUTO]
Inputs: value (required).
set_dshot_edtA
Set dshot_edt: Extended DSHOT Telemetry — provides additional ESC data beyond RPM. FORCE enables EDT even when bidir is off. (Requires: USE_DSHOT + USE_DSHOT_TELEMETRY) [UINT8, default: OFF]
Inputs: value (required).
set_dterm_lpf1_dyn_expoA
Set dterm_lpf1_dyn_expo: Expo curve for dynamic D-term LPF1 vs throttle. Push as high as possible without mid-throttle oscillations. [UINT8, 0–10, default: 5]
Inputs: value (required).
set_dterm_lpf1_dyn_max_hzB
Set dterm_lpf1_dyn_max_hz: Dynamic D-term LPF1 maximum cutoff (at full throttle). AOS tune: 110 Hz. [UINT16, default: 150]
Inputs: value (required).
set_dterm_lpf1_dyn_min_hzA
Set dterm_lpf1_dyn_min_hz: Dynamic D-term LPF1 minimum cutoff (at idle throttle). AOS tune: 80 Hz. [UINT16, default: 75]
Inputs: value (required).
set_dterm_lpf1_static_hzA
Set dterm_lpf1_static_hz: Static cutoff for D-term LPF1. Used when dterm_lpf1_dyn_min_hz == dterm_lpf1_dyn_max_hz. [INT16, default: 75]
Inputs: value (required).
set_dterm_lpf1_typeA
Set dterm_lpf1_type: Type for D-term LPF1. BIQUAD gives sharper roll-off; PT1 is less phase. [UINT8, default: PT1]
Inputs: value (required).
set_dterm_lpf2_static_hzA
Set dterm_lpf2_static_hz: Cutoff for D-term LPF2 (always static). Use as a secondary anti-noise stage. [INT16, default: 150]
Inputs: value (required).
set_dterm_lpf2_typeC
Set dterm_lpf2_type: Type for D-term LPF2. [UINT8, default: PT1]
Inputs: value (required).
set_dterm_notch_cutoffC
Set dterm_notch_cutoff: Static D-term notch bandwidth. [UINT16, default: 0]
Inputs: value (required).
set_dterm_notch_hzA
Set dterm_notch_hz: Static D-term notch centre frequency. 0 = disabled. Rarely needed when dynamic notch is active. [UINT16, default: 0]
Inputs: value (required).
set_d_yawA
Set d_yaw: Yaw D gain. Usually left at 0 — yaw is torque-based and inherently slower; D adds noise. [UINT8, default: 0]
Inputs: value (required).
set_dyn_idle_d_gainA
Set dyn_idle_d_gain: D gain of the dynamic idle RPM controller. [UINT8, 0–250, default: 50]
Inputs: value (required).
set_dyn_idle_i_gainA
Set dyn_idle_i_gain: I gain of the dynamic idle RPM controller. [UINT8, 1–250, default: 50]
Inputs: value (required).
set_dyn_idle_max_increaseB
Set dyn_idle_max_increase: Maximum throttle increase (in motor units) the dynamic idle controller can command above the static idle value. [UINT8, 10–255, default: 150]
Inputs: value (required).
set_dyn_idle_min_rpmA
Set dyn_idle_min_rpm: Minimum motor RPM maintained by dynamic idle. Set non-zero to enable. Target by prop size. [UINT8, 0–200, default: 0]
Inputs: value (required).
set_dyn_idle_p_gainB
Set dyn_idle_p_gain: P gain of the dynamic idle RPM controller. Reduce if idle causes oscillation. [UINT8, 1–250, default: 50]
Inputs: value (required).
set_dyn_notch_countA
Set dyn_notch_count: Number of independently tracked dynamic notches. Set to 0 to disable if no frame resonances are visible in the spectrum (eliminates delay). With RPM filtering active, 1–2 notches are sufficient for most frame resonances. Without RPM filtering, use 4–5. [UINT8, default: 3]
Inputs: value (required).
set_dyn_notch_max_hzA
Set dyn_notch_max_hz: Maximum frequency any notch will track. Default 600 is fine for most builds. Narrowing the range improves notch resolution. [UINT16, 200–1000, default: 600]
Inputs: value (required).
set_dyn_notch_min_hzA
Set dyn_notch_min_hz: Minimum frequency any notch will track. Set ~25 Hz below the lowest resonance you need to catch. ideally >=150 Hz unless blackbox shows a real resonance below that — tracking low frequencies causes unwanted filtering of PID-relevant signals. [UINT16, 20–250, default: 100]
Inputs: value (required).
set_dyn_notch_qA
Set dyn_notch_q: Q factor — narrowness of each notch. Increase until the resonance just stays within the notch, then stop. Max useful value ~1000. [UINT16, 1–1000, default: 300]
Inputs: value (required).
set_enable_stick_armingA
Set enable_stick_arming: Enable stick-combination arming (throttle-down/yaw-right). Disable if using a dedicated arm switch. [UINT8, default: OFF]
Inputs: value (required).
set_esc_sensor_current_offsetA
Set esc_sensor_current_offset: Current offset applied to ESC sensor current reading in mA. Use to zero-calibrate ESC current reporting. (Requires: USE_ESC_SENSOR) [UINT16, 0–16000, default: 0]
Inputs: value (required).
set_esc_sensor_halfduplexA
Set esc_sensor_halfduplex: Enable half-duplex UART for ESC sensor (BLHeli32/AM32 telemetry on a single wire). (Requires: USE_ESC_SENSOR) [UINT8, default: OFF]
Inputs: value (required).
set_ez_landing_limitB
Set ez_landing_limit: Minimum throttle floor enforced by EZ landing (%). [UINT8, 0–75, default: 15 (per profile)]
Inputs: value (required).
set_ez_landing_speedA
Set ez_landing_speed: Rate at which throttle is reduced during EZ landing. [UINT8, 0–250, default: 50 (per profile)]
Inputs: value (required).
set_ez_landing_thresholdB
Set ez_landing_threshold: Throttle percentage below which EZ landing activates. [UINT8, 0–200, default: 25 (per profile)]
Inputs: value (required).
set_failsafe_delayA
Set failsafe_delay: Stage 1 guard duration — time from confirmed signal loss to Stage 2 activation. Default 15 = 1.5 s. Minimum safe value is 2 (200 ms). [UINT8, default: 15 (1.5 s)]
Inputs: value (required).
set_failsafe_landing_timeA
Set failsafe_landing_time: Duration of Landing Mode (AUTO-LAND) Stage 2. [UINT8, 0–250, default: 60 (6 s)]
Inputs: value (required).
set_failsafe_procedureA
Set failsafe_procedure: Stage 2 procedure. DROP = immediate motor cut and disarm (default, safest for racing). AUTO-LAND = fixed throttle + centered sticks for failsafe_landing_time then disarm. GPS-RESCUE = autonomous return-to-home. [UINT8, default: DROP]
Inputs: value (required).
set_failsafe_recovery_delayA
Set failsafe_recovery_delay: Duration the signal must be stable after Stage 2 before the pilot can re-arm or (for GPS Rescue) before stick inputs are assessed. [UINT16, 1–200, default: 5 (0.5 s)]
Inputs: value (required).
set_failsafe_stick_thresholdA
Set failsafe_stick_threshold: Stick deflection (degrees from center) required to exit GPS Rescue Stage 2 after signal recovery. Move sticks to this threshold once video returns and RXLOSS clears. [UINT8, 0–50, default: 30]
Inputs: value (required).
set_failsafe_switch_modeA
Set failsafe_switch_mode: Aux switch behavior: STAGE1 = simulates signal loss (useful for testing and as a panic switch), STAGE2 = skips Stage 1 (instant GPS rescue / drop), KILL = instant disarm (dangerous, any glitch crashes the quad). [UINT8, default: STAGE1]
Inputs: value (required).
set_failsafe_throttleA
Set failsafe_throttle: Throttle value applied during Landing Mode Stage 2 AND used as the Stage 1 fallback throttle if configured. Default 1000 = motors off. For GPS Rescue: must be set to a hover throttle value, or the quad drops in Stage 1 before Rescue can activate. [UINT16, default: 1000]
Inputs: value (required).
set_failsafe_throttle_low_delayA
Set failsafe_throttle_low_delay: If throttle has been low for this duration before Stage 2 triggers, the FC immediately disarms instead of activating Landing Mode (the "Just Drop" override). Protects pilots who power off their transmitter after landing without disarming. [UINT16, 0–300, default: 100 (10 s)]
Inputs: value (required).
set_feedforward_averagingA
Set feedforward_averaging: Averages stick input samples before FF calculation to smooth out RC link quantization. OFF = no averaging (snappiest); 4_POINT = heaviest smoothing. [UINT8, default: 2_POINT]
Inputs: value (required).
set_feedforward_boostA
Set feedforward_boost: Adds an acceleration component to FF (second derivative of stick). Increase if gyro lags at the start of a move. Decrease if gyro overshoots at move entry (bounce-back at start). [UINT8, 0–50, default: 15]
Inputs: value (required).
set_feedforward_jitter_factorA
Set feedforward_jitter_factor: Suppresses FF on very slow or jittery stick inputs. Higher = smoother center feel during slow moves (freestyle/HD). Lower = snappier (racing). [UINT8, 0–20, default: 7]
Inputs: value (required).
set_feedforward_max_rate_limitA
Set feedforward_max_rate_limit: Reduces FF as sticks approach maximum deflection. 90 = cut FF when stick is at 90% travel. Raise to 92–95 for crisper move entry on responsive builds. [UINT8, 0–200, default: 90]
Inputs: value (required).
set_feedforward_smooth_factorA
Set feedforward_smooth_factor: Additional smoothing applied to the FF signal. Higher = smoother FF output. [UINT8, 0–95, default: 65]
Inputs: value (required).
set_feedforward_transitionA
Set feedforward_transition: Blends FF toward zero near stick center. 0 = full FF throughout (racing). 40 = freestyle/HD. 70 = cinematic. Set to 0 when feedforward_jitter_factor is active — they serve overlapping purposes and must not be combined. [UINT8, 0–100, default: 0]
Inputs: value (required).
set_feedforward_yaw_hold_gainA
Set feedforward_yaw_hold_gain: Sustains a residual FF signal in yaw after the stick is released, counteracting I-term under-yaw. [UINT8, 0–100, default: 15]
Inputs: value (required).
set_feedforward_yaw_hold_timeA
Set feedforward_yaw_hold_time: Duration (ms) of the yaw FF hold after stick release. [UINT8, 10–250, default: 100]
Inputs: value (required).
set_flash_spi_busA
Set flash_spi_bus: SPI bus number for onboard flash (blackbox storage). (Requires: USE_FLASH_SPI) [UINT8, default: 3]
Inputs: value (required).
set_force_battery_cell_countA
Set force_battery_cell_count: Override auto cell-count detection. 0 = auto-detect from vbat_max_cell_voltage. [UINT8, 0–24, default: 0]
Inputs: value (required).
set_f_pitchB
Set f_pitch: Feed forward for pitch. [UINT16, default: 125]
Inputs: value (required).
set_fpv_mix_degreesA
Set fpv_mix_degrees: FPV camera tilt angle for tilt-compensated yaw mixing. [UINT8, 0–90, default: 0]
Inputs: value (required).
set_f_rollA
Set f_roll: Feed forward for roll. Compensates for stick input lag. Scaled by the simplified_feedforward_gain slider. [UINT16, default: 120]
Inputs: value (required).
set_f_yawB
Set f_yaw: Feed forward for yaw. [UINT16, default: 120]
Inputs: value (required).
set_gps_auto_baudB
Set gps_auto_baud: Automatically detect GPS baud rate. [UINT8, default: OFF]
Inputs: value (required).
set_gps_auto_configB
Set gps_auto_config: Automatically configure UBlox modules on connection (baud rate, update rate, message types). Leave ON unless you pre-configure the module with uCenter. [UINT8, default: ON]
Inputs: value (required).
set_gps_nmea_custom_commandsA
Set gps_nmea_custom_commands: Custom NMEA sentences to send to the GPS module on init (NMEA provider only). [UINT8, default: —]
Inputs: value (required).
set_gps_providerA
Set gps_provider: GPS protocol. Prefer UBLOX for UBlox modules — significantly more reliable than NMEA. [UINT8, default: UBLOX]
Inputs: value (required).
set_gps_rescue_allow_arming_without_fixA
Set gps_rescue_allow_arming_without_fix: Allow arming without a GPS fix. GPS rescue is unavailable during such a flight — OSD shows RESCUE OFF. [UINT8, default: OFF]
Inputs: value (required).
set_gps_rescue_alt_modeA
Set gps_rescue_alt_mode: MAX_ALT = use the higher of gps_rescue_initial_climb or max altitude recorded + 15 m. FIXED_ALT = always return to gps_rescue_initial_climb. CURRENT_ALT = hold current altitude (not recommended). [UINT8, default: MAX_ALT]
Inputs: value (required).
set_gps_rescue_ascend_rateA
Set gps_rescue_ascend_rate: Climb rate during initial climb phase. [UINT16, 50–2500, default: 750]
Inputs: value (required).
set_gps_rescue_descend_rateA
Set gps_rescue_descend_rate: Descent rate when approaching home. [UINT16, 25–500, default: 150]
Inputs: value (required).
set_gps_rescue_descent_distA
Set gps_rescue_descent_dist: Distance from home at which descent begins. [UINT16, 5–500, default: 20]
Inputs: value (required).
set_gps_rescue_ground_speedA
Set gps_rescue_ground_speed: Forward speed during return (cm/s). 750 ≈ 27 km/h. Reduce for reliability in windy conditions. [UINT16, 0–3000, default: 750]
Inputs: value (required).
set_gps_rescue_initial_climbA
Set gps_rescue_initial_climb: Altitude to climb from current position before heading home. Set high enough to clear local obstacles. [UINT16, 0–100, default: 10]
Inputs: value (required).
set_gps_rescue_min_satsB
Set gps_rescue_min_sats: Minimum satellite count required to arm with GPS rescue configured. OSD shows RESCUE N/A if below this. [UINT8, 5–50, default: 8]
Inputs: value (required).
set_gps_rescue_min_start_distA
Set gps_rescue_min_start_dist: Minimum distance from home to activate rescue. Closer than this → disarm and drop (prevents accidental rescue activation nearby). [UINT16, 5–30, default: 15]
Inputs: value (required).
set_gps_rescue_return_altA
Set gps_rescue_return_alt: Target return cruise altitude. If the quad is already above this, it maintains current altitude. [UINT16, 5–1000, default: 30]
Inputs: value (required).
set_gps_rescue_sanity_checksA
Set gps_rescue_sanity_checks: Strongly recommended: RESCUE_SANITY_ON. Aborts rescue (disarms) if: GPS lost, fix invalid, quad crashed, sat count drops, or quad not approaching home. [UINT8, default: RESCUE_SANITY_FS_ONLY]
Inputs: value (required).
set_gps_rescue_yaw_pA
Set gps_rescue_yaw_p: Yaw P gain during rescue (heading correction). [UINT8, 0–200, default: 20]
Inputs: value (required).
set_gps_sbas_integrityA
Set gps_sbas_integrity: Require SBAS integrity data before using SBAS corrections. [UINT8, default: OFF]
Inputs: value (required).
set_gps_sbas_modeB
Set gps_sbas_mode: SBAS (satellite correction) system for the region. [UINT8, default: NONE]
Inputs: value (required).
set_gps_set_home_point_onceA
Set gps_set_home_point_once: Only set the home point on the first arm after battery connect. Prevents home being reset if you disarm and re-arm mid-field. [UINT8, default: OFF]
Inputs: value (required).
set_gps_ublox_acquire_modelA
Set gps_ublox_acquire_model: UBlox dynamic model used while acquiring fix. [UINT8, default: STATIONARY]
Inputs: value (required).
set_gps_ublox_flight_modelA
Set gps_ublox_flight_model: UBlox dynamic model used during flight. AIRBORNE_4G handles high-dynamics FPV. [UINT8, default: AIRBORNE_4G]
Inputs: value (required).
set_gps_ublox_use_galileoB
Set gps_ublox_use_galileo: Enable Galileo constellation on UBlox modules. [UINT8, default: OFF]
Inputs: value (required).
set_gps_ublox_utc_standardC
Set gps_ublox_utc_standard: UTC time standard to configure on UBlox modules. [UINT8, default: AUTO]
Inputs: value (required).
set_gps_update_rate_hzA
Set gps_update_rate_hz: Target GPS update rate. 10 Hz recommended for GPS rescue. Reduce to 1–2 Hz if not using GPS rescue (reduces CPU load, may allow 8k8k on some boards). [UINT8, 1–20, default: 10]
Inputs: value (required).
set_gps_use_3d_speedB
Set gps_use_3d_speed: Use 3D speed (including vertical) for GPS speed display. [UINT8, default: OFF]
Inputs: value (required).
set_gyro_calib_durationA
Set gyro_calib_duration: Gyro calibration duration in 0.1s steps (125 = 12.5s). Longer = more accurate offset measurement. [UINT16, 50–3000, default: 125]
Inputs: value (required).
set_gyro_calib_noise_limitA
Set gyro_calib_noise_limit: Noise threshold during calibration. If movement exceeds this, calibration restarts. Increase if it won't calibrate in a noisy environment. [UINT8, 0–200, default: 48]
Inputs: value (required).
set_gyro_cal_on_first_armB
Set gyro_cal_on_first_arm: Recalibrates gyro on first arm after power-up. Useful if the FC warms up and gyro drifts before the first arm. [UINT8, default: OFF]
Inputs: value (required).
set_gyro_filter_debug_axisB
Set gyro_filter_debug_axis: Which axis is exposed in debug fields for gyro filter analysis. [UINT8, default: ROLL]
Inputs: value (required).
set_gyro_hardware_lpfA
Set gyro_hardware_lpf: Hardware low-pass filter mode built into the gyro chip. NORMAL is correct for almost all builds. OPTION_1/2/EXPERIMENTAL select alternative hardware bandwidth settings where supported by the sensor. [UINT8, default: NORMAL]
Inputs: value (required).
set_gyro_lpf1_dyn_expoA
Set gyro_lpf1_dyn_expo: Expo curve shaping for dynamic LPF1 cutoff vs throttle. Higher = faster rise. [UINT8, 0–10, default: 5]
Inputs: value (required).
set_gyro_lpf1_dyn_max_hzB
Set gyro_lpf1_dyn_max_hz: Dynamic LPF1 maximum cutoff (at full throttle). [UINT16, default: 500]
Inputs: value (required).
set_gyro_lpf1_dyn_min_hzA
Set gyro_lpf1_dyn_min_hz: Dynamic LPF1 minimum cutoff (at low throttle). Set equal to gyro_lpf1_static_hz to use static mode. [UINT16, default: 250]
Inputs: value (required).
set_gyro_lpf1_static_hzA
Set gyro_lpf1_static_hz: Static cutoff for LPF1. Set to 0 to disable (recommended with RPM filtering). [UINT16, default: 250]
Inputs: value (required).
set_gyro_lpf1_typeA
Set gyro_lpf1_type: Filter type for gyro LPF1. PT1 = first-order, least delay. [UINT8, default: PT1]
Inputs: value (required).
set_gyro_lpf2_static_hzA
Set gyro_lpf2_static_hz: LPF2 cutoff. Raise toward 1000 Hz to reduce phase delay. Set to 0 if gyro rate = PID rate (aliasing not possible). [UINT16, default: 500]
Inputs: value (required).
set_gyro_lpf2_typeB
Set gyro_lpf2_type: Filter type for gyro LPF2 (anti-aliasing). [UINT8, default: PT1]
Inputs: value (required).
set_gyro_notch1_cutoffA
Set gyro_notch1_cutoff: Bandwidth of gyro notch 1. Must be less than gyro_notch1_hz. [UINT16, default: 0]
Inputs: value (required).
set_gyro_notch1_hzA
Set gyro_notch1_hz: Centre frequency of static gyro notch 1. 0 = disabled. Use for specific persistent resonances not handled by dynamic notch. [UINT16, default: 0]
Inputs: value (required).
set_gyro_notch2_cutoffB
Set gyro_notch2_cutoff: Bandwidth of gyro notch 2. [UINT16, default: 0]
Inputs: value (required).
set_gyro_notch2_hzA
Set gyro_notch2_hz: Centre frequency of static gyro notch 2. 0 = disabled. [UINT16, default: 0]
Inputs: value (required).
set_gyro_offset_yawA
Set gyro_offset_yaw: Manual yaw gyro trim (tenths of degrees/s). Use to correct persistent yaw drift if trim sticks or acc trim are not sufficient. [INT16, -1000–1000, default: 0]
Inputs: value (required).
set_gyro_overflow_detectA
Set gyro_overflow_detect: Detects gyro ADC saturation (sensor hitting its limit) and disarms. Recommended: ALL. [UINT8, default: ALL]
Inputs: value (required).
set_horizon_delay_msA
Set horizon_delay_ms: Time (ms) before horizon mode re-applies leveling after sticks return to center. Delays return-to-level for a more acro-like feel. [UINT16, 10–5000, default: 500]
Inputs: value (required).
set_horizon_ignore_sticksA
Set horizon_ignore_sticks: When ON, horizon mode ignores stick input for the leveling transition — governed by horizon_delay_ms only. [UINT8, default: OFF]
Inputs: value (required).
set_horizon_level_strengthA
Set horizon_level_strength: Level mode strength at stick center in horizon mode. [UINT8, 0–100, default: 75]
Inputs: value (required).
set_horizon_limit_degreesA
Set horizon_limit_degrees: Maximum attitude angle before horizon mode enforces leveling. [UINT8, 10–250, default: 135]
Inputs: value (required).
set_horizon_limit_sticksA
Set horizon_limit_sticks: Stick deflection (%) at which horizon mode gives full acro authority. [UINT8, 10–200, default: 75]
Inputs: value (required).
set_i2c1_clockspeed_khzA
Set i2c1_clockspeed_khz: I2C bus 1 clock speed in kHz. (Requires: USE_I2C_DEVICE_1) [UINT16, default: 800]
Inputs: value (required).
set_i2c1_pullupC
Set i2c1_pullup: Enable internal pull-up resistors on I2C bus 1. (Requires: USE_I2C_DEVICE_1) [UINT8, default: OFF]
Inputs: value (required).
set_i2c2_clockspeed_khzA
Set i2c2_clockspeed_khz: I2C bus 2 clock speed in kHz. (Requires: USE_I2C_DEVICE_2) [UINT16, default: 800]
Inputs: value (required).
set_i2c2_pullupA
Set i2c2_pullup: Enable internal pull-up resistors on I2C bus 2. (Requires: USE_I2C_DEVICE_2) [UINT8, default: OFF]
Inputs: value (required).
set_i2c3_clockspeed_khzA
Set i2c3_clockspeed_khz: I2C bus 3 clock speed in kHz. (Requires: USE_I2C_DEVICE_3) [UINT16, default: 800]
Inputs: value (required).
set_i2c3_pullupA
Set i2c3_pullup: Enable internal pull-up resistors on I2C bus 3. (Requires: USE_I2C_DEVICE_3) [UINT8, default: OFF]
Inputs: value (required).
set_ibata_offsetA
Set ibata_offset: ADC current sensor offset in millivolts. [INT16, -32000–32000, default: 0]
Inputs: value (required).
set_ibata_scaleA
Set ibata_scale: ADC current sensor scale factor (mV/A × 10). Calibrate against a known load. [INT16, -16000–16000, default: 558]
Inputs: value (required).
set_ibat_lpf_periodA
Set ibat_lpf_period: LPF period for the displayed current reading. Higher = smoother OSD current display. [UINT8, default: 10]
Inputs: value (required).
set_ibatv_offsetA
Set ibatv_offset: Virtual current sensor voltage offset. (Requires: USE_VIRTUAL_CURRENT_METER) [UINT16, 0–16000, default: 0]
Inputs: value (required).
set_ibatv_scaleA
Set ibatv_scale: Virtual current sensor scale. (Requires: USE_VIRTUAL_CURRENT_METER) [INT16, -16000–16000, default: 0]
Inputs: value (required).
set_imu_dcm_kiA
Set imu_dcm_ki: Complementary filter integral gain. Non-zero allows slow acc-based yaw correction. Rarely changed. [UINT16, 0–32000, default: 0]
Inputs: value (required).
set_imu_dcm_kpA
Set imu_dcm_kp: Complementary filter proportional gain. Controls how aggressively acc data is blended with gyro integration. Default is suitable for all normal use. [UINT16, 0–32000, default: 2500]
Inputs: value (required).
set_imu_process_denomA
Set imu_process_denom: IMU attitude update rate divisor relative to gyro task rate. 2 = update every second gyro cycle. Higher values reduce CPU load at the cost of attitude accuracy. [UINT8, 1–4, default: 2]
Inputs: value (required).
set_input_filtering_modeA
Set input_filtering_mode: Enable hardware-level RC input filtering. Required on some F1 targets; leave OFF on modern hardware. [INT8, default: OFF]
Inputs: value (required).
set_i_pitchB
Set i_pitch: Pitch I gain. [UINT8, default: 84]
Inputs: value (required).
set_i_rollA
Set i_roll: Roll I gain. Corrects accumulated angle error and maintains attitude. Too low → drift; too high → slow post-flip wobble. [UINT8, default: 80]
Inputs: value (required).
set_iterm_relaxB
Set iterm_relax: Axes on which I-term relaxation (anti-windup during fast moves) is active. RP = roll and pitch. RPY includes yaw. [UINT8, default: RP]
Inputs: value (required).
set_iterm_relax_cutoffA
Set iterm_relax_cutoff: Cutoff frequency for the I-term relax HP filter. Higher = reacts faster (better for racing). Lower = smoother (better for large/slow builds). Typical ranges: Racing: 30–40, Freestyle 5": 15, 7"+: 10, X-Class: 3–5. If bounce-back or post-flip oscillation persists, step this down: 15→10→7→5. [UINT8, 1–50, default: 15]
Inputs: value (required).
set_iterm_relax_typeA
Set iterm_relax_type: Signal used to detect a fast move. SETPOINT uses stick input signal; GYRO uses actual gyro rate. SETPOINT is default and works well for most cases. [UINT8, default: SETPOINT]
Inputs: value (required).
set_iterm_rotationA
Set iterm_rotation: Rotates I-term vector with the aircraft during yaw to reduce cross-axis coupling. Primarily useful for 3D flying. [UINT8, default: OFF]
Inputs: value (required).
set_iterm_windupA
Set iterm_windup: Suppresses I accumulation (in %) when motors are near saturation. Default 80 is sensible. [UINT8, 20–100, default: 80]
Inputs: value (required).
set_i_yawC
Set i_yaw: Yaw I gain. [UINT8, default: 80]
Inputs: value (required).
set_landing_disarm_thresholdA
Set landing_disarm_threshold: Accelerometer impact threshold for auto-disarm on landing (used by GPS Rescue and EZ Landing). 0 = disabled. [UINT8, 0–250, default: 0]
Inputs: value (required).
set_level_race_modeA
Set level_race_mode: When ON, angle mode holds the current angle as the setpoint rather than actively leveling. For racing use of angle mode. [UINT8, default: OFF]
Inputs: value (required).
set_mag_declinationA
Set mag_declination: Magnetic declination correction for your location. Find at ngdc.noaa.gov/geomag/calculators. (Requires: USE_MAG) [INT16, -300–300, default: 0]
Inputs: value (required).
set_mag_hardwareA
Set mag_hardware: Magnetometer hardware selection. NONE = disabled. (Requires: USE_MAG) [UINT8, default: NONE]
Inputs: value (required).
set_max_aux_channelsA
Set max_aux_channels: Maximum number of AUX channels processed. [UINT8, default: 14]
Inputs: value (required).
set_max_checkA
Set max_check: RC channel value above which arm/disarm and stick commands are recognized. [UINT16, default: 1900]
Inputs: value (required).
set_max_throttleA
Set max_throttle: Maximum PWM value sent to ESCs (for PWM-based protocols). [UINT16, default: 2000]
Inputs: value (required).
set_mco2_on_pc9A
Set mco2_on_pc9: Output MCO2 clock signal on PC9 pin (STM32 specific). Advanced hardware debugging only. [UINT8, default: OFF]
Inputs: value (required).
set_mid_rcA
Set mid_rc: RC mid-point. Match to your transmitter's stick center value. Futaba radios often need 1520. [UINT16, 1200–1700, default: 1500]
Inputs: value (required).
set_min_checkB
Set min_check: RC channel value below which arm/disarm and stick commands are recognized. [UINT16, default: 1050]
Inputs: value (required).
set_min_commandA
Set min_command: PWM value sent to ESCs when disarmed or at zero throttle (for PWM-based protocols). For DSHOT, this is overridden by the protocol. [UINT16, default: 1000]
Inputs: value (required).
set_mixer_typeB
Set mixer_type: Motor mixer output mode. LEGACY = classic mixer. LINEAR = linear output scaling. DYNAMIC = dynamic output scaling. EZLANDING = enables EZ Landing soft-landing feature. [UINT8, default: LEGACY]
Inputs: value (required).
set_motor_idleA
Set motor_idle: Idle throttle value sent to ESCs when armed (units depend on protocol). Used as the minimum non-zero motor command. [UINT16, 0–2000, default: 550]
Inputs: value (required).
set_motor_kvA
Set motor_kv: Motor KV rating. Used in some internal calculations. Set to your actual motor KV for accurate RPM limit and dynamic idle features. [UINT16, 1–40000, default: 1960]
Inputs: value (required).
set_motor_output_limitA
Set motor_output_limit: Caps per-motor output as a percentage. Use when running higher cell count than motors are rated for (e.g. 6S on a 4S build → set to ~66%). [UINT8, default: 100]
Inputs: value (required).
set_motor_output_reorderingA
Set motor_output_reordering: Reorders motor output channels without rewiring. Specify the output index for each motor position. [UINT8, default: 0,1,2,3,4,5,6,7]
Inputs: value (required).
set_motor_polesA
Set motor_poles: Number of magnetic poles on the motor bell (magnet count, not stator count). Critical for RPM filter accuracy. Most 5" motors have 14 magnets; verify on your specific motors. Wrong value → filters tracking wrong frequencies. [UINT8, default: 14]
Inputs: value (required).
set_motor_pwm_inversionA
Set motor_pwm_inversion: Invert PWM output polarity. For ESCs that require inverted signal. [UINT8, default: OFF]
Inputs: value (required).
set_motor_pwm_protocolA
Set motor_pwm_protocol: ESC communication protocol. DSHOT600 for ICM-42688P/MPU-6000 at 8kHz; DSHOT300 for BMI270 at 3.2kHz (DSHOT600 at 3.2kHz is marginal). [UINT8, default: DSHOT600]
Inputs: value (required).
set_motor_pwm_rateA
Set motor_pwm_rate: PWM frequency for brushed motor mode. Not relevant for DSHOT protocols. [UINT16, 200–32000, default: 480]
Inputs: value (required).
set_pid_at_min_throttleA
Set pid_at_min_throttle: Keeps PIDs active at minimum throttle (idle). Required for airmode to function correctly; normally left ON. [UINT8, default: ON]
Inputs: value (required).
set_pid_in_tlmA
Set pid_in_tlm: Include PID data in telemetry output (where supported by the telemetry protocol). [UINT8, default: OFF]
Inputs: value (required).
set_pid_process_denomA
Set pid_process_denom: PID loop rate divisor relative to gyro rate. 1 = PID runs every gyro sample. For 8kHz gyro with denom=2 → 4kHz PID rate. Target: BMI270 → 3.2kHz (tune with denom accordingly); ICM-42688P/MPU-6000 → 8kHz. [UINT8, default: 1]
Inputs: value (required).
set_pid_profileB
Switch the active PID profile (0-indexed). Call cli_save afterwards to persist the change.
Inputs: index (required).
set_pid_slidersA
Set Betaflight simplified filter and tuning slider values. Provide only the sliders you want to change; all others keep their current values. The FC recalculates actual PID gains immediately via MSP (equivalent to moving sliders in Configurator). Call cli_save afterwards to persist to EEPROM. If pids_mode is currently 0 (disabled), it is automatically enabled (set to 1) unless you specify otherwise.
Inputs: d_gain, i_gain, master, pi_gain, +9 more.
set_pidsum_limitA
Set pidsum_limit: Clamps total P+I+D output. Set to 1000 (remove clamp) during initial PID tuning; restore default after. [UINT16, default: 500]
Inputs: value (required).
set_pidsum_limit_yawA
Set pidsum_limit_yaw: Clamps total yaw PID output. Set to 1000 during initial tuning; default 400 limits yaw authority. [UINT16, default: 400]
Inputs: value (required).
set_pinio_boxA
Set pinio_box: AUX box assignments for the 4 PINIO outputs (255 = disabled). [UINT8, default: 255,255,255,255]
Inputs: value (required).
set_pinio_configC
Set pinio_config: PINIO output configuration (active-high/low, open-drain, etc.). [UINT8, default: 1,1,1,1]
Inputs: value (required).
set_pitch_expoC
Set pitch_expo: Pitch expo. [UINT8, default: 0]
Inputs: value (required).
set_pitch_rate_limitA
Set pitch_rate_limit: Hard cap on pitch rate. [UINT16, default: 1998]
Inputs: value (required).
set_pitch_rc_rateA
Set pitch_rc_rate: Pitch rate at stick center. [UINT8, default: 7]
Inputs: value (required).
set_pitch_srateB
Set pitch_srate: Pitch super rate. [UINT8, default: 67]
Inputs: value (required).
set_p_pitchA
Set p_pitch: Pitch P gain. Pitch typically needs slightly higher P than roll due to greater inertia. [UINT8, default: 47]
Inputs: value (required).
set_prearm_allow_rearmA
Set prearm_allow_rearm: Allow re-arm without toggling the prearm switch between flights. [UINT8, default: OFF]
Inputs: value (required).
set_p_rollA
Set p_roll: Roll P gain. Reacts to angle error. Too high → fast oscillations on sharp moves. [UINT8, default: 45]
Inputs: value (required).
set_pwr_on_arm_graceA
Set pwr_on_arm_grace: Grace period after power-on during which arming is blocked (prevents arming before receiver binds). [UINT8, 0–30, default: 5]
Inputs: value (required).
set_p_yawA
Set p_yaw: Yaw P gain. [UINT8, default: 45]
Inputs: value (required).
set_quickrates_rc_expoC
Set quickrates_rc_expo: In QUICK rates mode, applies expo globally. [UINT8, default: OFF]
Inputs: value (required).
set_rate_6pos_switchB
Set rate_6pos_switch: Enable 6-position rate profile selection via an AUX channel. [UINT8, default: OFF]
Inputs: value (required).
set_rate_profileA
Switch the active rate profile (0-indexed). Call cli_save afterwards to persist the change.
Inputs: index (required).
set_rates_typeB
Set rates_type: Rate calculation system. ACTUAL is the most intuitive (center sens and max rate are directly set). [UINT8, default: ACTUAL]
Inputs: value (required).
set_rc_smoothingA
Set rc_smoothing: Enables RC input interpolation and smoothing between received frames. [UINT8, default: ON]
Inputs: value (required).
set_rc_smoothing_auto_factorA
Set rc_smoothing_auto_factor: Auto-smoothing aggressiveness for setpoint channels. Higher = smoother but more lag. Preset applies the correct value for your RC link. [UINT8, default: 30]
Inputs: value (required).
set_rc_smoothing_auto_factor_throttleA
Set rc_smoothing_auto_factor_throttle: Auto-smoothing aggressiveness for throttle channel. [UINT8, default: 30]
Inputs: value (required).
set_rc_smoothing_debug_axisA
Set rc_smoothing_debug_axis: Which axis to expose in the RC smoothing debug fields (visible in blackbox when debug_mode = RC_SMOOTHING). [UINT8, default: ROLL]
Inputs: value (required).
set_rc_smoothing_setpoint_cutoffB
Set rc_smoothing_setpoint_cutoff: Manual setpoint smoothing cutoff. 0 = use auto. [UINT8, default: 0]
Inputs: value (required).
set_rc_smoothing_throttle_cutoffA
Set rc_smoothing_throttle_cutoff: Manual throttle smoothing cutoff. 0 = use auto. [UINT8, default: 0]
Inputs: value (required).
set_reboot_characterA
Set reboot_character: ASCII character that triggers a reboot when sent to the FC (default: 'R'). [UINT8, 48–126, default: 82]
Inputs: value (required).
set_report_cell_voltageC
Set report_cell_voltage: Report per-cell voltage (total / cell count) instead of pack voltage in telemetry. [UINT8, default: OFF]
Inputs: value (required).
set_roll_expoA
Set roll_expo: Roll expo — transition between center sensitivity and max rate. Higher = more expo, slower center, faster edges. [UINT8, default: 0]
Inputs: value (required).
set_roll_rate_limitA
Set roll_rate_limit: Hard cap on roll rate in deg/s, applied after the rates curve. [UINT16, default: 1998]
Inputs: value (required).
set_roll_rc_rateA
Set roll_rc_rate: Roll rate at stick center in deg/s×10 (ACTUAL) or RC multiplier (legacy). [UINT8, default: 7]
Inputs: value (required).
set_roll_srateA
Set roll_srate: Roll super rate — max rate at full stick deflection (ACTUAL system). [UINT8, default: 67]
Inputs: value (required).
set_rpm_filter_fade_range_hzA
Set rpm_filter_fade_range_hz: Frequency band over which notches fade in at low throttle, reducing delay at idle. [UINT16, 0–1000, default: 50]
Inputs: value (required).
set_rpm_filter_harmonicsA
Set rpm_filter_harmonics: Number of RPM harmonics to filter per motor. 3 = fundamental + 2nd + 3rd. 0 disables RPM filtering. [UINT8, 0–3, default: 3]
Inputs: value (required).
set_rpm_filter_lpf_hzA
Set rpm_filter_lpf_hz: Post-notch smoothing LPF applied to the RPM signal used for notch tracking. [UINT16, 100–500, default: 150]
Inputs: value (required).
set_rpm_filter_min_hzA
Set rpm_filter_min_hz: Below this frequency, notches are not applied. Lower on larger quads with slower-spinning motors (7"+ reduce to 60–80 Hz). [UINT8, 30–200, default: 100]
Inputs: value (required).
set_rpm_filter_qA
Set rpm_filter_q: Q factor (notch sharpness). Target 1000 on well-configured 5" builds — default 500 is a starting point, not a goal. Higher Q = narrower notch = less phase delay. Back off only if motor noise bleeds through. [UINT16, 250–3000, default: 500]
Inputs: value (required).
set_rpm_filter_weightsA
Set rpm_filter_weights: Per-harmonic notch depth percentage. Tri-blade props: try 100,0,80 (2nd harmonic absent). Bi-blade: 100,80,0 or 100,50,0. Lower each as far as possible without motor noise appearing in filtered gyro. [UINT8, default: 100,100,100]
Inputs: value (required).
set_rpm_limitA
Set rpm_limit: Enables per-motor RPM limit. (Requires: USE_RPM_LIMIT) [INT8, default: OFF]
Inputs: value (required).
set_rpm_limit_dA
Set rpm_limit_d: D gain for RPM limiter controller. (Requires: USE_RPM_LIMIT) [UINT16, 0–100, default: 8]
Inputs: value (required).
set_rpm_limit_iA
Set rpm_limit_i: I gain for RPM limiter controller. (Requires: USE_RPM_LIMIT) [UINT16, 0–1000, default: 10]
Inputs: value (required).
set_rpm_limit_pA
Set rpm_limit_p: P gain for RPM limiter controller. (Requires: USE_RPM_LIMIT) [UINT16, 0–100, default: 25]
Inputs: value (required).
set_rpm_limit_valueA
Set rpm_limit_value: Maximum motor RPM when rpm_limit is ON. (Requires: USE_RPM_LIMIT) [UINT16, default: 18000]
Inputs: value (required).
set_rssi_channelB
Set rssi_channel: AUX channel carrying RSSI signal. 0 = not using channel RSSI. [INT8, default: 0]
Inputs: value (required).
set_rssi_invertA
Set rssi_invert: Invert the RSSI signal (some receivers send inverted RSSI). [INT8, default: OFF]
Inputs: value (required).
set_rssi_offsetB
Set rssi_offset: Offsets the RSSI reading. [INT8, -100–100, default: 0]
Inputs: value (required).
set_rssi_scaleB
Set rssi_scale: Scales the RSSI input. [UINT8, default: 100]
Inputs: value (required).
set_rssi_smoothingA
Set rssi_smoothing: LPF period for RSSI smoothing. Higher = smoother but slower response to signal changes. [UINT8, default: 125]
Inputs: value (required).
set_rssi_src_frame_errorsA
Set rssi_src_frame_errors: Derive RSSI from frame error rate (for receivers that do not report RSSI directly). [INT8, default: OFF]
Inputs: value (required).
set_rssi_src_frame_lpf_periodB
Set rssi_src_frame_lpf_period: LPF period for frame-error-based RSSI smoothing. [UINT8, default: 30]
Inputs: value (required).
set_runaway_takeoff_deactivate_delayA
Set runaway_takeoff_deactivate_delay: Time after arming before runaway takeoff protection stops monitoring. [UINT16, 100–1000, default: 500]
Inputs: value (required).
set_runaway_takeoff_deactivate_throttle_percentA
Set runaway_takeoff_deactivate_throttle_percent: Throttle percentage above which the pilot's intent is clear and runaway protection deactivates. [UINT8, 0–100, default: 20]
Inputs: value (required).
set_runaway_takeoff_preventionB
Set runaway_takeoff_prevention: Detects uncommanded throttle-up on arm and disarms to prevent injury. [UINT8, default: ON]
Inputs: value (required).
set_rx_max_usecA
Set rx_max_usec: Longest channel pulse width considered valid. [UINT16, default: 2115]
Inputs: value (required).
set_rx_min_usecA
Set rx_min_usec: Shortest channel pulse width considered valid. Values below this trigger signal-loss detection (PPM/PWM). [UINT16, default: 885]
Inputs: value (required).
set_sbus_baud_fastA
Set sbus_baud_fast: Enable fast (200kbps) SBUS mode. For SBUS receivers that support it. [UINT8, default: OFF]
Inputs: value (required).
set_scheduler_debug_taskA
Set scheduler_debug_task: Task index to expose in scheduler debug output. Used for per-task timing analysis. [UINT16, default: 0]
Inputs: value (required).
set_scheduler_relax_osdB
Set scheduler_relax_osd: Scheduler relaxation time for OSD task. [UINT16, 0–500, default: 25]
Inputs: value (required).
set_scheduler_relax_rxA
Set scheduler_relax_rx: Scheduler relaxation time for RX task. Controls how much other tasks can run during RX processing. [UINT16, 0–500, default: 25]
Inputs: value (required).
set_serialmsp_halfduplexB
Set serialmsp_halfduplex: Enable half-duplex operation on MSP serial ports. [UINT8, default: OFF]
Inputs: value (required).
set_serialrx_halfduplexA
Set serialrx_halfduplex: Use single-wire half-duplex UART for serial RX (some CRSF implementations). [UINT8, default: OFF]
Inputs: value (required).
set_serialrx_invertedC
Set serialrx_inverted: Invert the serial RX signal. Required for some receivers on certain FC designs. [UINT8, default: OFF]
Inputs: value (required).
set_serialrx_providerA
Set serialrx_provider: Serial RX protocol. Must match the receiver's output format. [UINT8, default: CRSF]
Inputs: value (required).
set_serial_update_rate_hzA
Set serial_update_rate_hz: Rate at which MSP/CLI serial output is processed. [UINT16, 100–2000, default: 100]
Inputs: value (required).
set_simplified_d_gainB
Set simplified_d_gain: D scaling slider. [UINT8, default: 100]
Inputs: value (required).
set_simplified_d_max_gainB
Set simplified_d_max_gain: D_max scaling slider (dynamic damping ceiling). [UINT8, default: 100]
Inputs: value (required).
set_simplified_dterm_filterA
Set simplified_dterm_filter: Whether simplified slider controls D-term filter cutoffs. [UINT8, default: ON]
Inputs: value (required).
set_simplified_dterm_filter_multiplierB
Set simplified_dterm_filter_multiplier: D-term filter cutoff scaling slider. [UINT8, default: 100]
Inputs: value (required).
set_simplified_feedforward_gainB
Set simplified_feedforward_gain: Feedforward scaling slider. [UINT8, default: 100]
Inputs: value (required).
set_simplified_gyro_filterA
Set simplified_gyro_filter: Whether simplified slider controls gyro filter cutoffs. [UINT8, default: ON]
Inputs: value (required).
set_simplified_gyro_filter_multiplierA
Set simplified_gyro_filter_multiplier: Gyro filter cutoff scaling slider. 100 = current static values. Raise to reduce gyro filtering (faster). [UINT8, default: 100]
Inputs: value (required).
set_simplified_i_gainA
Set simplified_i_gain: I scaling slider (independent of P). [UINT8, default: 100]
Inputs: value (required).
set_simplified_master_multiplierA
Set simplified_master_multiplier: Master gain slider — scales all P, I, D and D_max together. Equivalent to PIDtoolbox "Master Multiplier". 100 = default gains. [UINT8, default: 100]
Inputs: value (required).
set_simplified_pids_modeA
Set simplified_pids_mode: Which axes the simplified PID sliders control. RPY = all axes. [UINT8, default: RPY]
Inputs: value (required).
set_simplified_pi_gainB
Set simplified_pi_gain: P and I scaling slider (relative to master). [UINT8, default: 100]
Inputs: value (required).
set_simplified_pitch_d_gainA
Set simplified_pitch_d_gain: Additional D multiplier for pitch only. [UINT8, default: 100]
Inputs: value (required).
set_simplified_pitch_pi_gainA
Set simplified_pitch_pi_gain: Additional P and I multiplier for pitch only (relative compensation for pitch inertia). [UINT8, default: 100]
Inputs: value (required).
set_small_angleA
Set small_angle: Maximum tilt angle (degrees) to permit arming — a pre-arm safety lock. Turtle/crash-flip mode re-arms while inverted, which requires small_angle = 180 to work reliably. [UINT8, 0–180, default: 25]
Inputs: value (required).
set_spa_pitch_centerC
Set spa_pitch_center: Setpoint centre value for pitch SPA. (Requires: USE_WING) [UINT16, default: 0 (per profile)]
Inputs: value (required).
set_spa_pitch_modeB
Set spa_pitch_mode: SPA mode for pitch. (Requires: USE_WING) [UINT8, default: OFF (per profile)]
Inputs: value (required).
set_spa_pitch_widthA
Set spa_pitch_width: Setpoint width for pitch SPA attenuation ramp. (Requires: USE_WING) [UINT16, default: 0 (per profile)]
Inputs: value (required).
set_spa_roll_centerA
Set spa_roll_center: Setpoint centre value at which no attenuation is applied (roll). (Requires: USE_WING) [UINT16, default: 0 (per profile)]
Inputs: value (required).
set_spa_roll_modeA
Set spa_roll_mode: SPA mode for roll. I = scale I term; PID = scale all terms; PDI_FREEZE = scale P and D, freeze I. (Requires: USE_WING)_ [UINT8, default: OFF (per profile)]
Inputs: value (required).
set_spa_roll_widthA
Set spa_roll_width: Setpoint range over which attenuation ramps from 0 to full (roll). (Requires: USE_WING) [UINT16, default: 0 (per profile)]
Inputs: value (required).
set_spa_yaw_centerA
Set spa_yaw_center: Setpoint centre value for yaw SPA. (Requires: USE_WING) [UINT16, default: 0 (per profile)]
Inputs: value (required).
set_spa_yaw_modeB
Set spa_yaw_mode: SPA mode for yaw. (Requires: USE_WING) [UINT8, default: OFF (per profile)]
Inputs: value (required).
set_spa_yaw_widthA
Set spa_yaw_width: Setpoint width for yaw SPA attenuation ramp. (Requires: USE_WING) [UINT16, default: 0 (per profile)]
Inputs: value (required).
set_s_pitchB
Set s_pitch: S-term for pitch. (Requires: USE_WING) [UINT8, default: 0]
Inputs: value (required).
set_s_rollA
Set s_roll: S-term (stability term) for roll. New in 2025.12 — provides additional stability control. (Requires: USE_WING) [UINT8, default: 0]
Inputs: value (required).
set_s_yawB
Set s_yaw: S-term for yaw. (Requires: USE_WING) [UINT8, default: 0]
Inputs: value (required).
set_system_hse_mhzB
Set system_hse_mhz: External crystal frequency in MHz. Set to 0 for auto-detect. Required for some non-standard clock speeds. [UINT8, 0–30, default: 0]
Inputs: value (required).
set_task_statisticsA
Set task_statistics: Enables CPU task profiling visible via tasks CLI command. Turn OFF to reduce overhead on heavily loaded systems. [INT8, default: ON]
Inputs: value (required).
set_thr_expoA
Set thr_expo: Throttle expo. [UINT8, 0–100, default: 0]
Inputs: value (required).
set_thr_hoverA
Set thr_hover: Estimated hover throttle percentage. Used by alt-hold and some internal calculations. [UINT8, 0–100, default: 50]
Inputs: value (required).
set_thr_midA
Set thr_mid: Throttle curve mid-point — sets the thrust at 50% stick. [UINT8, 0–100, default: 50]
Inputs: value (required).
set_throttle_boostA
Set throttle_boost: Transiently boosts throttle output on fast throttle stick changes for immediate throttle feel. [UINT8, 0–100, default: 5]
Inputs: value (required).
set_throttle_boost_cutoffA
Set throttle_boost_cutoff: LPF cutoff for throttle derivative used by throttle_boost. [UINT8, 5–50, default: 15]
Inputs: value (required).
set_throttle_limit_percentA
Set throttle_limit_percent: Maximum throttle percentage when throttle_limit_type is active. [UINT8, 25–100, default: 100]
Inputs: value (required).
set_throttle_limit_typeB
Set throttle_limit_type: Limits maximum throttle output. SCALE = proportionally scales all outputs; CLIP = hard ceiling. [UINT8, default: OFF]
Inputs: value (required).
set_thrust_linearA
Set thrust_linear: Linearises the thrust curve at low throttle. Improves low-throttle authority and responsiveness, especially for whoops and 48kHz ESCs. 20–40% is typically enough; no effect above mid-throttle. [UINT8, 0–150, default: 0]
Inputs: value (required).
set_tpa_breakpointB
Set tpa_breakpoint: Throttle level (1000–2000 scale) where TPA begins. Attenuation is proportional from here to full throttle. [UINT16, default: 1350]
Inputs: value (required).
set_tpa_curve_expoA
Set tpa_curve_expo: Expo applied to the TPA curve. Negative = more attenuation at low throttle; positive = more at high throttle. (Requires: USE_ADVANCED_TPA) [INT8, default: 20]
Inputs: value (required).
set_tpa_curve_pid_thr0A
Set tpa_curve_pid_thr0: PID value (×0.1%) at zero throttle for the TPA curve. Default 200 = 20% of full PID at idle. (Requires: USE_ADVANCED_TPA) [UINT16, default: 200]
Inputs: value (required).
set_tpa_curve_pid_thr100A
Set tpa_curve_pid_thr100: PID value (×0.1%) at full throttle for the TPA curve. Default 70 = 7% of full PID at max throttle. (Requires: USE_ADVANCED_TPA) [UINT16, default: 70]
Inputs: value (required).
set_tpa_curve_stall_throttleA
Set tpa_curve_stall_throttle: Throttle % below which the craft is considered stalled (for wing/fixed-wing TPA). (Requires: USE_ADVANCED_TPA) [UINT8, default: 30]
Inputs: value (required).
set_tpa_curve_typeA
Set tpa_curve_type: TPA curve shape. CLASSIC matches legacy TPA behaviour. HYPERBOLIC applies a hyperbolic attenuation curve. (Requires: USE_ADVANCED_TPA) [UINT8, default: CLASSIC]
Inputs: value (required).
set_tpa_low_alwaysA
Set tpa_low_always: OFF = TPA Low is only active before Airmode activates; ON = active throughout the flight. [UINT8, default: OFF]
Inputs: value (required).
set_tpa_low_breakpointA
Set tpa_low_breakpoint: Throttle level below which TPA Low applies. [UINT16, default: 1050]
Inputs: value (required).
set_tpa_low_rateA
Set tpa_low_rate: D attenuation at minimum throttle (TPA Low). Reduces D-term shaking during throttle chops. [INT8, default: 20]
Inputs: value (required).
set_tpa_modeA
Set tpa_mode: Which terms TPA attenuates. D = D only (default, safest). PD = P and D. PDS = P, D, and S-term. [UINT8, default: D]
Inputs: value (required).
set_tpa_rateB
Set tpa_rate: Maximum attenuation percentage at full throttle. 65 = PIDs are at 35% above the breakpoint. [UINT8, default: 65]
Inputs: value (required).
set_tpa_speed_adv_drag_kB
Set tpa_speed_adv_drag_k: Aerodynamic drag coefficient for ADVANCED speed TPA physics model. (Requires: USE_WING) [UINT16, default: 1000]
Inputs: value (required).
set_tpa_speed_adv_massA
Set tpa_speed_adv_mass: Craft mass (g×0.1) for ADVANCED speed TPA physics model. (Requires: USE_WING) [UINT16, default: 1000]
Inputs: value (required).
set_tpa_speed_adv_prop_pitchA
Set tpa_speed_adv_prop_pitch: Propeller pitch (mm) for ADVANCED speed TPA physics model. (Requires: USE_WING) [UINT16, default: 370]
Inputs: value (required).
set_tpa_speed_adv_thrustB
Set tpa_speed_adv_thrust: Maximum thrust (g) for ADVANCED speed TPA physics model. (Requires: USE_WING) [UINT16, default: 2000]
Inputs: value (required).
set_tpa_speed_basic_delayA
Set tpa_speed_basic_delay: Delay (ms) before speed-based TPA updates after a speed change. Prevents rapid gain changes during maneuvers. (Requires: USE_WING) [UINT16, default: 1000]
Inputs: value (required).
set_tpa_speed_basic_gravityA
Set tpa_speed_basic_gravity: Gravity factor for BASIC speed TPA. Affects TPA response curve vs airspeed. (Requires: USE_WING) [UINT16, default: 50]
Inputs: value (required).
set_tpa_speed_max_voltageA
Set tpa_speed_max_voltage: Maximum pack voltage (in mV×0.1) used to normalize motor speed in BASIC speed TPA. (Requires: USE_WING) [UINT16, default: 2520]
Inputs: value (required).
set_tpa_speed_pitch_offsetC
Set tpa_speed_pitch_offset: Pitch offset correction for speed TPA (wing/fixed-wing trim). (Requires: USE_WING) [INT16, default: 0]
Inputs: value (required).
set_tpa_speed_typeB
Set tpa_speed_type: Speed-based TPA. BASIC uses GPS-derived speed. ADVANCED uses a physics model based on motor/prop parameters. (Requires: USE_WING) [UINT8, default: BASIC]
Inputs: value (required).
set_usb_hid_cdcA
Set usb_hid_cdc: Use USB HID (combined HID + CDC) instead of pure CDC. Required for some OTG hosts. [UINT8, default: OFF]
Inputs: value (required).
set_usb_msc_pin_pullupB
Set usb_msc_pin_pullup: Enable pull-up on USB MSC detect pin. [UINT8, default: ON]
Inputs: value (required).
set_use_cbat_alertsB
Set use_cbat_alerts: Enable capacity-based OSD/beeper warnings. [UINT8, default: OFF]
Inputs: value (required).
set_use_unsynced_pwmA
Set use_unsynced_pwm: Send motor PWM unsynchronised to the PID loop. Primarily for brushed motors. [UINT8, default: OFF]
Inputs: value (required).
set_use_vbat_alertsC
Set use_vbat_alerts: Enable voltage-based OSD/beeper warnings. [UINT8, default: ON]
Inputs: value (required).
set_vbat_cutoff_percentB
Set vbat_cutoff_percent: Percentage of vbat_sag_compensation to apply at critically low voltage. [UINT8, 0–100, default: 100]
Inputs: value (required).
set_vbat_detect_cell_voltageA
Set vbat_detect_cell_voltage: Voltage above which a battery is considered connected (×0.01V per cell). [UINT16, 0–2000, default: 300]
Inputs: value (required).
set_vbat_display_lpf_periodA
Set vbat_display_lpf_period: LPF period for the voltage shown on the OSD (smooths display flickering). Does not affect alarm thresholds. [UINT8, default: 30]
Inputs: value (required).
set_vbat_dividerC
Set vbat_divider: Voltage divider ratio numerator. [UINT8, default: 10]
Inputs: value (required).
set_vbat_duration_for_criticalC
Set vbat_duration_for_critical: Same as above but for the critical threshold. [UINT8, 0–150, default: 0]
Inputs: value (required).
set_vbat_duration_for_warningA
Set vbat_duration_for_warning: Consecutive tenths-of-seconds the voltage must remain below the warning threshold before the warning alarm fires. Prevents brief-spike false alarms. [UINT8, 0–150, default: 0]
Inputs: value (required).
set_vbat_full_cell_voltageA
Set vbat_full_cell_voltage: "Full" cell voltage for capacity display. Default 410 = 4.10V. [UINT16, default: 410]
Inputs: value (required).
set_vbat_hysteresisA
Set vbat_hysteresis: Hysteresis on voltage warnings to prevent flicker (×0.01V). [UINT8, 0–250, default: 1]
Inputs: value (required).
set_vbat_max_cell_voltageA
Set vbat_max_cell_voltage: Maximum per-cell voltage for auto cell-count detection (×0.01V). Default 430 = 4.30V. [UINT16, default: 430]
Inputs: value (required).
set_vbat_min_cell_voltageA
Set vbat_min_cell_voltage: Minimum cell voltage — triggers battery-critical alarm (×0.01V). Default 330 = 3.30V. [UINT16, default: 330]
Inputs: value (required).
set_vbat_multiplierB
Set vbat_multiplier: Voltage divider ratio multiplier. [UINT8, default: 1]
Inputs: value (required).
set_vbat_sag_compensationA
Set vbat_sag_compensation: Compensates for battery voltage sag to maintain consistent PID authority and throttle output across a pack. 90% is a good target — avoids stressing the pack at low voltage while still providing consistency. Requires cell voltage monitoring; configure a low-voltage OSD warning when enabled. [UINT8, 0–150, default: 0]
Inputs: value (required).
set_vbat_sag_lpf_periodA
Set vbat_sag_lpf_period: LPF period for battery sag compensation voltage measurement. Lower = faster response to sag. [UINT8, default: 2]
Inputs: value (required).
set_vbat_scaleA
Set vbat_scale: Voltage divider calibration. Adjust until reported voltage matches a multimeter. [UINT8, default: 110]
Inputs: value (required).
set_vbat_warning_cell_voltageA
Set vbat_warning_cell_voltage: Warning threshold voltage per cell (×0.01V). Default 350 = 3.50V. [UINT16, default: 350]
Inputs: value (required).
set_yaw_control_reversedC
Set yaw_control_reversed: Reverses the direction of yaw stick. [INT8, default: OFF]
Inputs: value (required).
set_yaw_deadbandA
Set yaw_deadband: Yaw-specific deadband around center. [UINT8, 0–100, default: 0]
Inputs: value (required).
set_yaw_expoC
Set yaw_expo: Yaw expo. [UINT8, default: 0]
Inputs: value (required).
set_yaw_lowpass_hzA
Set yaw_lowpass_hz: Low-pass filter applied to the final yaw PID output (post-summation). Reduces yaw noise feeding into motors. Set to 0 to disable for maximum yaw responsiveness. [UINT16, 0–500, default: 100]
Inputs: value (required).
set_yaw_motors_reversedA
Set yaw_motors_reversed: Reverse yaw PID output sign. Use when motor spin direction is swapped from normal. [INT8, default: OFF]
Inputs: value (required).
set_yaw_rate_limitC
Set yaw_rate_limit: Hard cap on yaw rate. [UINT16, default: 1998]
Inputs: value (required).
set_yaw_rc_rateA
Set yaw_rc_rate: Yaw rate at stick center. [UINT8, default: 7]
Inputs: value (required).
set_yaw_srateC
Set yaw_srate: Yaw super rate. [UINT8, default: 67]
Inputs: value (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 795 tools
The vast majority of tools follow a strict get_parameter/set_parameter pattern with unique parameter names, making the intended target unambiguous. A few overlapping tools like get_status vs cli_status and get_battery vs get_battery_state introduce minor potential for misselection.
Most tools consistently use get_/set_ prefixes for configuration parameters and verb_noun names for actions like connect_flight_controller and erase_blackbox_logs. Minor deviations such as motor_get/motor_set and feature_list break the dominant pattern but remain recognizable.
With 795 tools, this server is extremely oversized. Exposing every individual Betaflight setting as a get/set pair creates an overwhelming interface that is poorly scoped for an MCP server.
The server covers virtually the entire Betaflight configuration surface with get/set pairs, plus connection, CLI, calibration, profile, and blackbox tools. Minor gaps include some get-only structural settings and the absence of firmware flashing, but these are not significant for configuration tasks.
Maintenance
Related MCP Connectors
- DNS-DATA RemoteDeprecatedcom.dns-data
Connect AI assistants to authorized Windows and macOS devices for files, commands, and management.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Connect ChatGPT, Claude, Cursor or VS Code to your Windows PC: files, terminal, browser, apps.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables natural language interaction with Betaflight FPV drone flight controllers for configuration, PID tuning, sensor monitoring, VTX control, and blackbox management through Claude AI.4-
- AlicenseNot gradedqualityDmaintenanceEnables natural language control of ArduPilot drones via MAVLink, supporting arm, takeoff, mode changes, and mission uploads.9GPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with an ArduPilot vehicle in real-time via MAVLink, including reading state, inspecting and changing parameters, switching flight modes, diagnosing arming failures, and gated arming/disarming.37 PyPI4MIT
- AlicenseAqualityDmaintenanceConnects AI agents to MAVLink drones (PX4, ArduPilot) via a capability layer with safety guardrails, enabling telemetry, flight control, and mission management through natural language.122MIT