Skip to main content
Glama
Betaflight MCP

Betaflight MCP

by bvandevliet

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 source

  • Expert 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)

%APPDATA%\Claude\claude_desktop_config.json

Claude Desktop (macOS)

~/Library/Application Support/Claude/claude_desktop_config.json

Claude Desktop (Linux)

~/.config/Claude/claude_desktop_config.json

Claude Code

.mcp.json in your project, or claude mcp add

Cursor

.cursor/mcp.json

Windsurf

~/.codeium/windsurf/mcp_config.json

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-mcp

Then whitelist the read-only tools so Claude doesn't ask for approval on every read:

npx -y betaflight-mcp-whitelist-reads

Restart 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-mcp

Since 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.md as 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 --global

Then 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 tools
calibrate_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

    B3/5.0

    Scored across 795 tools

    Disambiguation4/5

    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.

    Naming Consistency4/5

    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.

    Tool Count1/5

    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.

    Completeness4/5

    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

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers