Defines
Betaflight uses #define macros to add software parts and hardware drivers to the firmware at build time. Most of these macros are USE_ flags.
The Build Options page in the wiki gives the flags that a user can set. These are the selectable build options (the lists in the Firmware Flasher tab of the Betaflight App) and the manual build options (the Custom Defines field). This page gives all the other USE_ flags.
How Flags Get Set
src/main/target/common_pre.hsets the default flags before the board configuration. For a cloud build (CLOUD_BUILD), the user selection replaces the defaults in the!defined(CLOUD_BUILD)block.- The board
config.hsets the hardware flags for the board. - The cloud build server adds the flags that the user selects, and the related flags from its flag mappings.
src/main/target/common_post.handsrc/main/target/common_defaults_post.hadd or remove flags that depend on other flags.- The platform headers under
src/platform/set the MCU flags.
Betaflight is changing from USE_ flags to ENABLE_ flags. A USE_ flag is either defined or not defined (#ifdef). An ENABLE_ flag has the value 0 or 1 (#if). Thus, you can stop an ENABLE_ feature from the command line with ENABLE_X=0. When USE_X is defined, common_post.h sets ENABLE_X to 1. The change occurs when the related code changes.
How To Read the Tables
- Set by: The file or condition that turns on the flag.
- Introduced: The first firmware release that has the flag. "< 2025.12" means that the flag was in Betaflight 4.5 or earlier. "2026.12" means that the flag is only in the development (master) version at this time.
Always On
Every normal build has these flags. The user does not set them.
| Flag | Set by | Description | Introduced |
|---|---|---|---|
USE_ACC | common_post.h (always) | Adds the accelerometer subsystem. Angle mode, Horizon mode and GPS Rescue use it. Board configs also set it. common_post.h makes sure it is always on, and requires at least one accelerometer driver flag. | < 2025.12 |
USE_BATTERY_VOLTAGE_SAG_COMPENSATION | common_pre.h (always) | Adds compensation for battery voltage sag. The motor output stays more constant as the battery voltage drops. | < 2025.12 |
USE_BEEPER | All main MCU targets | Adds the beeper driver and beeper alerts (arm, low battery, lost model and other events). Board config.h files also set it on some targets. The beeper pin comes from the board config or the CLI resource command. | < 2025.12 |
USE_BOARD_INFO | common_pre.h (always) | Adds board name, manufacturer ID and signature storage, shown in the CLI, MSP and the USB descriptor. | < 2025.12 |
USE_CLI | common_pre.h (always) | Adds the command line interface (CLI). | < 2025.12 |
USE_CLI_BATCH | common_pre.h (always) | Adds the CLI batch command, which applies a set of commands as one group and reports errors. | < 2025.12 |
USE_CRAFTNAME_MSGS | common_pre.h (always) | Lets the OSD show warnings, link quality and RSSI dBm in the craft name field. The CLI setting osd_craftname_msgs turns it on. | < 2025.12 |
USE_CUSTOM_BOX_NAMES | common_pre.h (always) | Lets you give custom names to some modes (USER1 to USER4). | < 2025.12 |
USE_DMA | common_pre.h (always) | Adds DMA support for buses, motors, LED strip and other peripherals. ESP32 targets remove it. | < 2025.12 |
USE_DYN_IDLE | Each MCU family (not ESP32 or SITL) | Adds dynamic idle, which uses motor RPM to keep a minimum motor speed. The build removes it when bidirectional DShot is not present. | < 2025.12 |
USE_DYN_LPF | common_pre.h (always) | Adds dynamic low pass filters for gyro and D-term, with a cutoff that follows throttle. | < 2025.12 |
USE_DYN_NOTCH_FILTER | Each MCU family (not ESP32 or SITL) | Adds the dynamic notch filter, which follows gyro noise peaks with FFT analysis. The build removes it for the simulator because it needs arm_math.h. | < 2025.12 |
USE_D_MAX | common_pre.h (always) | Adds D Max, which increases the D-term during fast stick moves and prop wash. | 2025.12 |
USE_ESC_SENSOR_INFO | common_pre.h (always) | Adds ESC information read-back to the CLI dshotprog command for KISS and BLHeli_32 ESCs. | < 2025.12 |
USE_FEEDFORWARD | common_pre.h (always) | Adds feedforward, which uses the rate of stick movement to make the quad respond faster. | < 2025.12 |
USE_GYRO | common_post.h (always) | Adds gyro sensor support. Every build needs a gyro, so common_post.h always sets this flag. | < 2025.12 |
USE_GYRO_DLPF_EXPERIMENTAL | common_pre.h (always) | Adds the EXPERIMENTAL option to the gyro_hardware_lpf CLI setting. This option sets a higher gyro hardware low-pass filter cutoff on supported gyro chips. | < 2025.12 |
USE_GYRO_LPF2 | common_pre.h (always) | Adds the second gyro software low-pass filter and its CMS menu item. | < 2025.12 |
USE_GYRO_OVERFLOW_CHECK | common_pre.h (always) | Adds gyro overflow detection and the gyro_overflow_detect CLI setting. It helps stop a crash when a gyro axis reaches its full-scale limit. | < 2025.12 |
USE_GYRO_REGISTER_DUMP | common_pre.h (always) | Adds the gyroregisters CLI command, which shows the configuration register values of the detected gyro. The command is not available in SITL simulator builds. | < 2025.12 |
USE_HOTT_TEXTMODE | common_pre.h (always) | Adds the HoTT text mode, which shows the CMS menus on a Graupner HoTT transmitter. It has an effect only when HoTT telemetry and CMS are in the build. | < 2025.12 |
USE_HUFFMAN | common_pre.h (always) | Adds Huffman compression for MSP data, for example the dataflash read command. | < 2025.12 |
USE_IMU_CALC | common_pre.h (always) | Adds the attitude estimation (IMU) calculations. SITL removes it when SITL_ATTITUDE_DIRECT gets the attitude from the simulator. | < 2025.12 |
USE_ITERM_RELAX | common_pre.h (always) | Adds I-term relax, which limits I-term growth during fast stick movements. | < 2025.12 |
USE_LAUNCH_CONTROL | common_pre.h (always, except CORE_BUILD) | Adds launch control, which holds the quad at a set angle until the race start. USE_WING removes it. | < 2025.12 |
USE_MOTOR | common_pre.h (always) | Adds the motor output layer. | < 2025.12 |
USE_PARAMETER_GROUPS | common_pre.h (always) | Marks that the build uses parameter groups for configuration storage. No code reads this flag. | < 2025.12 |
USE_PERSISTENT_STATS | common_pre.h (always) | Keeps flight statistics, such as total flights and flight time, in the configuration. | < 2025.12 |
USE_PROFILE_NAMES | common_pre.h (always) | Lets the pilot give names to PID and rate profiles. | < 2025.12 |
USE_RCDEVICE | common_pre.h (always) | Adds the RunCam Device protocol to control cameras through a serial port. | < 2025.12 |
USE_RC_SMOOTHING_FILTER | common_pre.h (always) | Adds the RC smoothing filter that smooths stick input between receiver frames. | < 2025.12 |
USE_RESOURCE_MGMT | common_pre.h (always) | Adds the CLI resource command, which shows and changes pin assignments at run time. SITL removes it. | < 2025.12 |
USE_RPM_FILTER | Each MCU family (STM32, AT32, APM32, GD32, X32, PICO, ESP32) | Adds the RPM filter, which uses DShot motor telemetry to remove motor noise from the gyro signal. common_post.h removes it when USE_DSHOT_TELEMETRY is not set. Turn on bidirectional DShot to use it. | < 2025.12 |
USE_RTC_TIME | common_pre.h (always) | Adds a real-time clock in software. Blackbox logs, the OSD and GPS use it for date and time. | < 2025.12 |
USE_RUNAWAY_TAKEOFF | common_pre.h (always) | Adds runaway takeoff prevention. It stops the motors if the quad accelerates out of control after arm. common_pre.h removes it when USE_WING is set. | < 2025.12 |
USE_RX_LINK_QUALITY_INFO | common_pre.h (always) | Adds link quality (LQ) from the receiver, for example CRSF, ExpressLRS and Ghost, to the OSD. common_post.h removes it when USE_OSD is not set. | < 2025.12 |
USE_RX_LINK_UPLINK_POWER | common_pre.h (always) | Adds the uplink transmit power from the receiver to the OSD. common_post.h removes it when USE_OSD is not set. | < 2025.12 |
USE_RX_MSP | common_pre.h (always) | Adds the MSP receiver, which gets RC channel data through MSP messages. | < 2025.12 |
USE_RX_MSP_OVERRIDE | common_pre.h (always) | Adds the MSP Override mode, which lets MSP data replace selected RC channels. common_post.h removes it when USE_RX_MSP is not set. | < 2025.12 |
USE_RX_RSNR | common_pre.h (always) | Adds the receiver signal-to-noise ratio (RSNR) from CRSF, ExpressLRS and MAVLink links to the OSD. | < 2025.12 |
USE_RX_RSSI_DBM | common_pre.h (always) | Adds receiver RSSI in dBm from CRSF, ExpressLRS and MAVLink links to the OSD. common_post.h removes it when USE_RX_EXPRESSLRS, USE_SERIALRX_CRSF and USE_SERIALRX_MAVLINK are all not set. | < 2025.12 |
USE_SENSOR_NAMES | common_pre.h (always) | Adds the names of the detected sensors to the CLI status output. | < 2025.12 |
USE_SERIAL_4WAY_BLHELI_BOOTLOADER | common_pre.h (always) | Adds the BLHeli bootloader protocol to the 4-way ESC interface. ESC configuration tools use it to flash and configure BLHeli ESCs. ESP32 and SITL targets remove it. | < 2025.12 |
USE_SERIAL_PASSTHROUGH | common_pre.h (always) | Adds the CLI serialpassthrough command, which connects a USB port to a UART. Use it to configure or flash devices on a UART. | < 2025.12 |
USE_SIGNATURE | common_pre.h (always) | Adds a board signature that the CLI and MSP can read and write. The signature is kept with the board information. common_post.h removes it when USE_BOARD_INFO is not set. | < 2025.12 |
USE_SIMPLIFIED_TUNING | common_pre.h (always) | Adds the simplified tuning sliders for PID and filter settings in the CLI, CMS and the app. | < 2025.12 |
USE_TELEMETRY_SENSORS_DISABLED_DETAILS | common_pre.h (always) | Adds the telemetrydisabled* CLI settings. These let you stop each telemetry sensor value. | < 2025.12 |
USE_THROTTLE_BOOST | common_pre.h (always) | Adds throttle boost. It gives a short throttle increase when you move the throttle stick fast. | < 2025.12 |
USE_THRUST_LINEARIZATION | common_pre.h (always) | Adds thrust linearisation. It increases motor output at low throttle to make the thrust response more linear. | < 2025.12 |
USE_TIMER | common_pre.h (always) | Adds the hardware timer driver. The RP2350 target header removes it. | < 2025.12 |
USE_UNCOMMON_MIXERS | common_pre.h (always) | Adds the uncommon mixer types, for example bicopter, dualcopter, Hex6H and OctoX8. | < 2025.12 |
USE_VIRTUAL_CURRENT_METER | common_pre.h (always) | Adds the virtual current meter. It calculates current from throttle position with a scale and offset that you set. | < 2025.12 |
USE_YAW_SPIN_RECOVERY | common_pre.h (always) | Adds yaw spin recovery. It helps the quad stop a fast uncontrolled yaw spin, for example after a crash. Wing builds (USE_WING) remove it. | < 2025.12 |
Set Automatically
Another flag turns on these flags. The "Set by" column gives the parent flag. Do not set them directly.
| Flag | Set by | Description | Introduced |
|---|---|---|---|
USE_ADVANCED_TPA | common_pre.h when USE_WING | Adds advanced TPA (throttle PID attenuation) settings for wings. It adds TPA curve types, for example hyperbolic and speed reference (VREF) curves. | 2025.12 |
USE_AUTO_ACKKNOWLEDGEMENT | Source code (always) | Adds packet acknowledgement in the iNav NRF24 SPI receiver protocol. The flag is local to nrf24_inav.c and has no effect in other files. | < 2025.12 |
USE_CANVAS | common_pre.h when USE_OSD | Adds canvas (pixel drawing) support for OSD display ports that supply a canvas. | < 2025.12 |
USE_CMS | common_pre.h when USE_OSD | Adds the Configuration Menu System (CMS), the stick-controlled OSD menu. | < 2025.12 |
USE_CMS_FAILSAFE_MENU | common_pre.h when USE_OSD | Adds the failsafe settings menu to the CMS. | < 2025.12 |
USE_CMS_GPS_LAP_TIMER_MENU | common_post.h when USE_GPS_LAP_TIMER | Adds the GPS lap timer menu to the CMS. | < 2025.12 |
USE_CMS_GPS_RESCUE_MENU | common_pre.h when USE_OSD and USE_GPS | Adds the GPS Rescue settings menu to the CMS. common_post.h removes it when GPS Rescue is not available, for example on wing builds without the rescue plan. | < 2025.12 |
USE_CRSF_ACCGYRO_TELEMETRY | common_pre.h when USE_SERIALRX_CRSF and USE_TELEMETRY_CRSF | Adds CRSF telemetry frames that send accelerometer and gyro data. | 2026.6 |
USE_CRSF_CMS_TELEMETRY | common_pre.h when USE_SERIALRX_CRSF, USE_TELEMETRY_CRSF and USE_CMS | Lets a CRSF radio (for example a TBS or ELRS Lua script) show and use the CMS menus. | < 2025.12 |
USE_CRSF_LINK_STATISTICS | common_pre.h when USE_SERIALRX_CRSF, USE_TELEMETRY_CRSF and USE_CMS; common_post.h when USE_RX_EXPRESSLRS | Adds the CRSF link statistics (RSSI, link quality, RF mode) from the receiver. | < 2025.12 |
USE_CRSF_V3 | common_pre.h when USE_SERIALRX_CRSF | Adds CRSF protocol version 3, which lets the receiver and flight controller change to a higher baud rate. | < 2025.12 |
USE_DSHOT_BITBANG | common_pre.h when USE_DSHOT; ESP32 and RP2350 | Adds the bitbang DShot output driver, which drives motor pins through GPIO port writes with DMA. | < 2025.12 |
USE_DSHOT_DMAR | common_pre.h when USE_DSHOT; AT32F435 | Adds timer DMA burst (DMAR) output for DShot, which uses one DMA stream for all channels of a timer. | < 2025.12 |
USE_DSHOT_TELEMETRY | common_pre.h when USE_DSHOT; ESP32 and RP2350 | Adds bidirectional DShot, which reads motor RPM back from the ESC. | < 2025.12 |
USE_DSHOT_TELEMETRY_STATS | common_pre.h when USE_DSHOT | Adds error rate statistics for bidirectional DShot telemetry. The CLI dshot_telemetry_info command shows them. | < 2025.12 |
USE_EMFAT_AUTORUN | Build server when USE_EMFAT_TOOLS; common_pre.h for local builds with 1024 KB flash or more | Adds an autorun.inf file to the emulated USB mass storage drive, which gives the drive a label. | < 2025.12 |
USE_EMFAT_ICON | Build server when USE_EMFAT_TOOLS; common_pre.h for local builds with 1024 KB flash or more | Adds an icon file to the emulated USB mass storage drive. | < 2025.12 |
USE_ESC_SENSOR | common_pre.h when USE_DSHOT; ESP32 | Adds the ESC sensor, which reads voltage, current, temperature and RPM from the ESC serial telemetry wire. | < 2025.12 |
USE_ESC_SENSOR_TELEMETRY | common_pre.h (always); common_post.h removes it without USE_ESC_SENSOR | Sends ESC sensor data (voltage, current, temperature, RPM) to the radio through RX telemetry protocols. | < 2025.12 |
USE_EXTENDED_CMS_MENUS | common_pre.h when USE_OSD | Adds extra OSD menu (CMS) pages for PID, rate, filter, OSD and SmartAudio settings. | < 2025.12 |
USE_FLASHFS | common_post.h when USE_FLASH | Adds the flash file system that stores Blackbox logs on the on-board flash chip. The build removes it when no flash chip driver is present. | < 2025.12 |
USE_FLASH_CHIP | common_post.h when any flash chip driver is set; STM32N657 and ESP32 | Shows that at least one flash chip driver is in the build, which turns on the common flash code. | < 2025.12 |
USE_FLASH_OCTOSPI | common_post.h when USE_OCTOSPI and USE_FLASH_W25Q128FV or USE_FLASH_MX66UW1G45G | Adds flash chip access through the octal SPI (OCTOSPI) peripheral. | < 2025.12 |
USE_FLASH_QUADSPI | common_post.h when USE_QUADSPI and a QUADSPI flash driver is set | Adds flash chip access through the QUADSPI peripheral. | < 2025.12 |
USE_FLASH_READS_USING_4LINES | Source code when USE_QUADSPI or USE_OCTOSPI | Makes the W25Q128FV driver read data on four QUADSPI or OCTOSPI data lines. | < 2025.12 |
USE_FLASH_SPI | common_post.h when USE_SPI and an SPI flash driver is set | Adds flash chip access through a standard SPI bus. | < 2025.12 |
USE_FLASH_TOOLS | common_post.h when USE_FLASH | Adds the CLI flash test commands flash_read, flash_scan and flash_write. The build removes it when no flash chip driver is present. | < 2025.12 |
USE_FLASH_W25M | common_post.h when USE_FLASH_M25P16 or USE_FLASH_W25N | Adds the driver for Winbond W25M stacked-die flash chips. | < 2025.12 |
USE_FLASH_W25N | common_post.h when USE_FLASH_W25N01G or USE_FLASH_W25N02K | Adds the common driver for Winbond W25N NAND flash chips. | < 2025.12 |
USE_FLASH_WRITES_USING_4LINES | Source code when USE_QUADSPI or USE_OCTOSPI | Makes the W25Q128FV driver write data on four QUADSPI or OCTOSPI data lines. | < 2025.12 |
USE_GPS_NMEA | common_post.h when USE_GPS | Adds the NMEA GPS protocol driver. | < 2025.12 |
USE_GPS_PLUS_CODES | Build server when USE_GPS; common_pre.h for local builds with 1024 KB flash or more | Adds an OSD element that shows the GPS position as a Google Plus Code. | < 2025.12 |
USE_GPS_RESCUE | common_post.h when USE_GPS and USE_ACC | Adds GPS rescue, which flies the quad back to the home point when the radio link fails. | < 2025.12 |
USE_GPS_UBLOX | common_post.h when USE_GPS | Adds the u-blox UBX GPS protocol driver. | < 2025.12 |
USE_GYRO_SLEW_LIMITER | Source code when USE_GYRO_SPI_MPU6500, USE_GYRO_SPI_ICM20689 or USE_GYRO_SPI_ICM20601 | Adds a slew limiter on raw gyro data for MPU-6500 class and ICM-20689 SPI gyros. It removes single-sample spikes from these chips. Needs more than 128 KB flash. gyro.c sets the flag locally, so the init code in gyro_init.c never sees it. | < 2025.12 |
USE_I2C_OLED_DISPLAY | common_post.h when USE_DASHBOARD and USE_I2C | Adds the driver for the UG-2864HSWEG01 I2C OLED display that the dashboard uses. | < 2025.12 |
USE_LAUNCH_WING | common_pre.h when USE_WING | Adds launch assist for hand or bungee launch of a wing. | 2026.12 |
USE_LED_STRIP_STATUS_MODE | common_pre.h when USE_LED_STRIP | Adds the LED strip status mode, which shows flight modes, warnings and battery state on the LEDs. | < 2025.12 |
USE_MAG_AK8963 | common_post.h when USE_MAG | Adds the driver for the AKM AK8963 magnetometer (I2C). | < 2025.12 |
USE_MAG_AK8975 | common_post.h when USE_MAG | Adds the driver for the AKM AK8975 magnetometer. | < 2025.12 |
USE_MAG_AK9916 | common_post.h when USE_MAG | Adds the driver for the AKM AK09916 magnetometer. This is the compass in the ICM-20948. | 2026.12 |
USE_MAG_BMM350 | common_post.h when USE_MAG | Adds the driver for the Bosch BMM350 magnetometer. | 2026.12 |
USE_MAG_DATA_READY_SIGNAL | common_post.h when USE_MAG | Adds use of the compass data-ready interrupt pin, set with the CLI resource command. Only the HMC5883L driver uses it. | < 2025.12 |
USE_MAG_HMC5883 | common_post.h when USE_MAG | Adds the driver for the Honeywell HMC5883L magnetometer (I2C). | < 2025.12 |
USE_MAG_IST8310 | common_post.h when USE_MAG | Adds the driver for the iSentek IST8310 magnetometer. | < 2025.12 |
USE_MAG_LIS2MDL | common_post.h when USE_MAG | Adds the driver for the ST LIS2MDL magnetometer. | < 2025.12 |
USE_MAG_LIS3MDL | common_post.h when USE_MAG | Adds the driver for the ST LIS3MDL magnetometer. | < 2025.12 |
USE_MAG_MMC560X | common_post.h when USE_MAG | Adds the driver for the MEMSIC MMC560xNJ magnetometer. | 2026.6 |
USE_MAG_MPU925X_AK8963 | common_post.h when USE_MAG | Adds the driver for the AK8963 magnetometer inside the InvenSense MPU-9250 and MPU-9255. | < 2025.12 |
USE_MAG_QMC5883 | common_post.h when USE_MAG | Adds the QST QMC5883 magnetometer drivers (QMC5883L and QMC5883P). | < 2025.12 |
USE_MAG_QMC5883L | common_post.h when USE_MAG_QMC5883 | Adds the driver for the QST QMC5883L magnetometer. | 2026.6 |
USE_MAG_QMC5883P | common_post.h when USE_MAG_QMC5883 | Adds the driver for the QST QMC5883P magnetometer. | 2026.6 |
USE_MAG_SPI_AK8963 | common_post.h when USE_MAG | Adds the driver for the AKM AK8963 magnetometer (SPI). | < 2025.12 |
USE_MAG_SPI_HMC5883 | common_post.h when USE_MAG | Adds the driver for the Honeywell HMC5883L magnetometer (SPI). | < 2025.12 |
USE_MSP_DISPLAYPORT | common_pre.h when USE_OSD | Adds the MSP DisplayPort OSD, used by HD digital video systems. | < 2025.12 |
USE_MSP_OVER_TELEMETRY | common_pre.h; kept only with USE_TELEMETRY_SMARTPORT, USE_TELEMETRY_CRSF or USE_TELEMETRY_GHST | Adds MSP through the RC link telemetry, so you can change settings from the transmitter. | < 2025.12 |
USE_OPTICALFLOW_MT | common_post.h when USE_OPTICALFLOW | Adds the optical flow driver for the MicoAir MTF-01 and MTF-02 series sensors. It also turns on USE_RANGEFINDER_MT. | 2025.12 |
USE_OPTICALFLOW_UPT1 | common_post.h when USE_OPTICALFLOW | Adds the optical flow driver for the Upixels UP-T1 optical flow and laser module. It also turns on USE_RANGEFINDER_UPT1. | 2026.6 |
USE_OSD | common_pre.h when USE_OSD_SD, USE_OSD_HD or USE_FRSKYOSD; Build server when USE_OSD_SD | Adds the on-screen display core, CMS menus and OSD elements. Two board configs also set it. | < 2025.12 |
USE_OSD_ADJUSTMENTS | common_pre.h when USE_OSD | Shows in-flight adjustment names and values on the OSD. | < 2025.12 |
USE_OSD_CUSTOM_TEXT | common_pre.h when USE_OSD | Adds OSD elements that show custom text set by the pilot. | 2026.6 |
USE_OSD_NAV_MAP | common_post.h when ENABLE_FLIGHT_PLAN, USE_OSD and USE_GPS | Adds an OSD map that shows the flight plan waypoints and the flight trail. Not available on wing builds (USE_WING). | 2026.6 |
USE_OSD_OVER_MSP_DISPLAYPORT | common_pre.h when USE_OSD | Lets the OSD send its output over MSP DisplayPort. | < 2025.12 |
USE_OSD_PROFILES | common_pre.h when USE_OSD | Adds OSD profiles, so that the pilot can change between OSD layouts. | < 2025.12 |
USE_OSD_STICK_OVERLAY | common_pre.h when USE_OSD | Adds an OSD element that shows the stick positions. | < 2025.12 |
USE_PINIOBOX | common_post.h when USE_PINIO | Lets flight mode switches control the PINIO outputs. | < 2025.12 |
USE_PIN_PULL_UP_DOWN | common_post.h when USE_PINIO | Adds CLI resource settings for pin pull-up and pull-down resistors. | < 2025.12 |
USE_RANGEFINDER_HCSR04 | common_post.h when USE_RANGEFINDER | Adds the driver for the HC-SR04 ultrasonic rangefinder. Set the trigger and echo pins with the CLI resource command. ESP32 and RP2350 headers remove it. | < 2025.12 |
USE_RANGEFINDER_MT | common_post.h when USE_RANGEFINDER or USE_OPTICALFLOW_MT | Adds the rangefinder driver for the MicoAir MTF-01 and MTF-02 series sensors. | 2025.12 |
USE_RANGEFINDER_NOOPLOOP | common_post.h when USE_RANGEFINDER | Adds the driver for the Nooploop TOFSense F2 serial laser rangefinder. | 2026.6 |
USE_RANGEFINDER_TF | common_post.h when USE_RANGEFINDER | Adds the driver for the Benewake TFmini, TF02 and TF-Nova serial laser rangefinders. | < 2025.12 |
USE_RANGEFINDER_UPT1 | common_post.h when USE_RANGEFINDER or USE_OPTICALFLOW_UPT1 | Adds the rangefinder driver for the Upixels UP-T1 optical flow and laser module. | 2026.6 |
USE_RX_BIND | common_post.h when USE_RX_SPI, USE_SERIALRX_SRXL2 or USE_SERIALRX_CRSF | Adds the CLI bind_rx command and the MSP bind request for receivers that can bind from the flight controller. | < 2025.12 |
USE_RX_CC2500_SPI_DIVERSITY | common_post.h when USE_RX_CC2500 | Adds antenna diversity support to the CC2500 SPI receiver driver. | < 2025.12 |
USE_RX_CC2500_SPI_PA_LNA | common_post.h when USE_RX_CC2500 | Adds control of an external power amplifier (PA) and low-noise amplifier (LNA) for the CC2500 SPI receiver. | < 2025.12 |
USE_RX_FLYSKY | common_post.h when USE_RX_CC2500 | Adds the FlySky and FlySky 2A protocols for an A7105 SPI receiver chip. No board config sets an A7105 receiver. | < 2025.12 |
USE_RX_FLYSKY_SPI_LED | common_post.h when USE_RX_CC2500 | Flag for the FlySky SPI receiver LED. No code uses it now. It has no effect. Only common_post.h defines it. | < 2025.12 |
USE_RX_FRSKY_SPI | common_post.h when USE_RX_CC2500 | Adds the common FrSky SPI receiver code for the CC2500 chip. | < 2025.12 |
USE_RX_FRSKY_SPI_D | common_post.h when USE_RX_CC2500 | Adds the FrSky D8 protocol for the CC2500 SPI receiver. | < 2025.12 |
USE_RX_FRSKY_SPI_TELEMETRY | common_post.h when USE_RX_CC2500 | Adds FrSky telemetry for the CC2500 SPI receiver. | < 2025.12 |
USE_RX_FRSKY_SPI_X | common_post.h when USE_RX_CC2500 | Adds the FrSky D16 (X) protocol for the CC2500 SPI receiver. | < 2025.12 |
USE_RX_REDPINE_SPI | common_post.h when USE_RX_CC2500 | Adds the Redpine protocol for the CC2500 SPI receiver. | < 2025.12 |
USE_RX_SFHSS_SPI | common_post.h when USE_RX_CC2500 | Adds the Futaba SFHSS protocol for the CC2500 SPI receiver. | < 2025.12 |
USE_RX_SPEKTRUM | common_post.h when USE_RX_CC2500 | Adds the Spektrum DSM protocol for a CYRF6936 SPI receiver chip. No board config sets a CYRF6936 receiver. | < 2025.12 |
USE_RX_SPEKTRUM_TELEMETRY | common_post.h when USE_RX_CC2500 | Adds Spektrum telemetry for the CYRF6936 SPI receiver. | < 2025.12 |
USE_SBUS_CHANNELS | common_post.h when USE_SERIALRX_SBUS or USE_SERIALRX_FPORT | Adds the shared SBUS channel decoder for the SBUS and FPort receivers. | < 2025.12 |
USE_SERIALRX | Build server when any USE_SERIALRX_* option; common_pre.h (local builds) | Adds the serial receiver framework that all serial RX protocols use. SITL removes it. | < 2025.12 |
USE_SERIAL_4WAY_BLHELI_INTERFACE | common_post.h when USE_SERIAL_4WAY_BLHELI_BOOTLOADER or USE_SERIAL_4WAY_SK_BOOTLOADER | Adds the 4-way ESC passthrough interface. ESC configuration tools use it through the flight controller. ESP32 targets remove it. | < 2025.12 |
USE_SERIAL_4WAY_SK_BOOTLOADER | Build server when USE_ESCSERIAL_SIMONK; common_pre.h (local builds, 1 MB flash or more) | Adds the SimonK (AVR STK500v2) bootloader protocol to the 4-way ESC interface for old SimonK ESCs. AT32F435, ESP32, RP2350 and SITL targets remove it. | < 2025.12 |
USE_SOFTSERIAL1 | serial_post.h when USE_SOFTSERIAL | Turns on the first software serial port. ESP32 and RP2350 target headers remove it. | 2025.12 |
USE_SOFTSERIAL2 | serial_post.h when USE_SOFTSERIAL | Turns on the second software serial port. ESP32 and RP2350 target headers remove it. | 2025.12 |
USE_SPEKTRUM_BIND | common_pre.h when USE_SERIALRX_SPEKTRUM | Adds Spektrum satellite receiver bind from the flight controller. It adds the spektrum_sat_bind CLI settings. Pick SPEKTRUM in the app receiver list to get it. ESP32 and RP2350 target headers remove it. | < 2025.12 |
USE_SPEKTRUM_BIND_PLUG | common_pre.h when USE_SERIALRX_SPEKTRUM | Adds a bind plug input for Spektrum satellite bind. The bind starts only when the bind plug pin is connected to ground. Set the pin at run time with the CLI resource command. | < 2025.12 |
USE_SPEKTRUM_CMS_TELEMETRY | common_pre.h when USE_SERIALRX_SPEKTRUM or USE_TELEMETRY_SRXL | Adds the CMS menu over Spektrum SRXL telemetry, so you can change settings from the transmitter screen. | < 2025.12 |
USE_SPEKTRUM_REAL_RSSI | common_pre.h when USE_SERIALRX_SPEKTRUM | Adds RSSI from the Spektrum receiver fade data. | < 2025.12 |
USE_SPEKTRUM_RSSI_PERCENT_CONVERSION | common_pre.h when USE_SERIALRX_SPEKTRUM | Converts the Spektrum receiver signal level in dBm to a percent RSSI value. | < 2025.12 |
USE_SPEKTRUM_VIRTUAL_RSSI | common_pre.h when USE_SERIALRX_SPEKTRUM | Adds a calculated RSSI value from Spektrum frame loss when the receiver gives no real RSSI. | < 2025.12 |
USE_SPEKTRUM_VTX_CONTROL | common_pre.h when USE_SERIALRX_SPEKTRUM or USE_TELEMETRY_SRXL | Lets a Spektrum transmitter change the VTX band, channel and power. ESP32 target headers remove it. | < 2025.12 |
USE_SPEKTRUM_VTX_TELEMETRY | common_pre.h when USE_SERIALRX_SPEKTRUM or USE_TELEMETRY_SRXL | Sends the VTX settings to a Spektrum transmitter through SRXL telemetry. | < 2025.12 |
USE_SPI_GYRO | common_post.h when any SPI gyro driver flag is set | Marks that the build has an SPI gyro driver. It adds the gyro SPI bus settings. Some board configs also set it. | < 2025.12 |
USE_TELEMETRY | Build server when a telemetry protocol, CRSF, GHST, FPORT, JETIEXBUS or ExpressLRS is picked; common_post.h | Adds the telemetry framework. Each telemetry protocol needs it. | < 2025.12 |
USE_TELEMETRY_CRSF | Build server when USE_SERIALRX_CRSF; common_post.h when USE_RX_EXPRESSLRS | Adds CRSF telemetry for Crossfire and ExpressLRS receivers. common_post.h removes it when USE_SERIALRX_CRSF is not set. | < 2025.12 |
USE_TELEMETRY_GHST | Build server when USE_SERIALRX_GHST | Adds telemetry for ImmersionRC Ghost receivers. common_post.h removes it when USE_SERIALRX_GHST is not set. Not available on RP2350 targets. | < 2025.12 |
USE_TELEMETRY_JETIEXBUS | Build server and common_post.h when USE_SERIALRX_JETIEXBUS | Adds Jeti EX Bus telemetry. common_post.h removes it when USE_SERIALRX_JETIEXBUS is not set. Not available on ESP32 and RP2350 targets. | < 2025.12 |
USE_TELEMETRY_PROVIDERS | Source code when one or more slot-based telemetry protocols are present | Adds the telemetry provider slots for serial port telemetry protocols. CRSF and GHST telemetry do not use a slot. | 2026.12 |
USE_TIMER_DMA | common_post.h when USE_DMA_SPEC | Adds DMA support for timer outputs. | < 2025.12 |
USE_TXRX_LED | Source code when USE_SERIAL_4WAY_BLHELI_INTERFACE | Flashes the board LEDs when the BLHeli 4-way ESC interface sends and receives data. | < 2025.12 |
USE_UART | serial_post.h when SERIAL_UART_COUNT, SERIAL_LPUART_COUNT or SERIAL_PIOUART_COUNT is not zero | Adds the common hardware UART serial driver. serial_post.h sets it when the target has one or more UART, LPUART or PIO UART ports. | < 2025.12 |
USE_USB_ADVANCED_PROFILES | common_post.h when USE_USB_CDC_HID or USE_USB_MSC | Adds the USB composite device profiles that USB CDC HID and USB mass storage use. | < 2025.12 |
USE_VARIO | common_post.h when USE_BARO or USE_GPS | Adds vertical speed (vario) data to the telemetry and other outputs. | < 2025.12 |
USE_VIDEO_SYSTEM | common_post.h when USE_MAX7456, USE_FRSKYOSD or USE_MSP_DISPLAYPORT | Adds the vcd_video_system setting to select PAL, NTSC or HD video. | < 2025.12 |
USE_VTX_COMMON | common_pre.h when USE_VTX | Adds the common VTX device layer that all VTX drivers use. | < 2025.12 |
USE_VTX_CONTROL | common_pre.h when USE_VTX | Adds VTX control from the radio and from switches. | < 2025.12 |
USE_VTX_MSP | common_pre.h when USE_VTX | Adds VTX control over MSP, for example for HD video systems. | < 2025.12 |
USE_VTX_SMARTAUDIO | common_pre.h when USE_VTX | Adds the TBS SmartAudio VTX control protocol. | < 2025.12 |
USE_VTX_TABLE | common_pre.h when USE_VTX | Adds the VTX table, which sets the bands, channels and power levels of the VTX. | < 2025.12 |
USE_VTX_TRAMP | common_pre.h when USE_VTX | Adds the IRC Tramp VTX control protocol. | < 2025.12 |
USE_WS2811_SINGLE_COLOUR | common_post.h when USE_LED_STRIP and not USE_LED_STRIP_STATUS_MODE | Adds single colour mode for the LED strip when LED strip status mode is not available. | < 2025.12 |
Board Configuration
These flags are for hardware that is fitted to the flight controller. The board config.h in the config repository sets them. Users must not set them.
| Flag | Set by | Description | Introduced |
|---|---|---|---|
USE_ACCGYRO_BMI160 | Board config.h | Adds the driver for the Bosch BMI160 accelerometer and gyro (IMU). | < 2025.12 |
USE_ACCGYRO_BMI270 | Board config.h | Adds the driver for the Bosch BMI270 accelerometer and gyro (IMU). | < 2025.12 |
USE_ACCGYRO_BMI423 | Board config.h | Adds the driver for the Bosch BMI423 accelerometer and gyro (IMU). No board config uses it at this time. | 2026.12 |
USE_ACCGYRO_ICM40609D | Board config.h | Adds the driver for the TDK InvenSense ICM-40609-D accelerometer and gyro (IMU). | 2025.12 |
USE_ACCGYRO_ICM42622P | Board config.h | Adds the driver for the TDK InvenSense ICM-42622-P accelerometer and gyro (IMU). | 2026.6 |
USE_ACCGYRO_ICM42686P | Board config.h | Adds the driver for the TDK InvenSense ICM-42686-P accelerometer and gyro (IMU). | 2026.6 |
USE_ACCGYRO_ICM45605 | Board config.h | Adds the driver for the TDK InvenSense ICM-45605 accelerometer and gyro (IMU). | 2025.12 |
USE_ACCGYRO_ICM45686 | Board config.h | Adds the driver for the TDK InvenSense ICM-45686 accelerometer and gyro (IMU). | 2025.12 |
USE_ACCGYRO_ICM56686 | Board config.h | Adds the driver for the TDK InvenSense ICM-56686 accelerometer and gyro (IMU). | 2026.6 |
USE_ACCGYRO_IIM42652 | Board config.h | Adds the driver for the TDK InvenSense IIM-42652 industrial accelerometer and gyro (IMU). | 2025.12 |
USE_ACCGYRO_IIM42653 | Board config.h | Adds the driver for the TDK InvenSense IIM-42653 industrial accelerometer and gyro (IMU). | 2025.12 |
USE_ACCGYRO_LSM6DSK320X | Board config.h | Adds the driver for the ST LSM6DSK320X accelerometer and gyro (IMU). The LSM6DSV16X driver file supplies this driver. | 2026.6 |
USE_ACCGYRO_LSM6DSO | Board config.h | Adds the driver for the ST LSM6DSO accelerometer and gyro (IMU). | < 2025.12 |
USE_ACCGYRO_LSM6DSV16X | Board config.h | Adds the driver for the ST LSM6DSV16X accelerometer and gyro (IMU). | < 2025.12 |
USE_ACCGYRO_LSM6DSV32X | Board config.h | Adds the driver for the ST LSM6DSV32X accelerometer and gyro (IMU). This part has a 32 g accelerometer range. No board config uses it at this time. The LSM6DSV16X driver file supplies this driver. | 2026.12 |
USE_ACC_ICM20601 | Board config.h | Adds I2C accelerometer support for the TDK InvenSense ICM-20601. It turns on the MPU6500 I2C driver, which reads this part. No board config uses it at this time. common_post.h sets USE_ACC_MPU6500 when this flag is on. | < 2025.12 |
USE_ACC_ICM20602 | Board config.h | Adds I2C accelerometer support for the TDK InvenSense ICM-20602. It turns on the MPU6500 I2C driver, which reads this part. No board config uses it at this time. common_post.h sets USE_ACC_MPU6500 when this flag is on. | < 2025.12 |
USE_ACC_ICM20608G | Board config.h | Adds I2C accelerometer support for the TDK InvenSense ICM-20608-G. It turns on the MPU6500 I2C driver, which reads this part. No board config uses it at this time. common_post.h sets USE_ACC_MPU6500 when this flag is on. | < 2025.12 |
USE_ACC_MPU6050 | Board config.h | Adds the driver for the InvenSense MPU6050 accelerometer on the I2C bus. Only STM32 Nucleo development boards use it at this time. | < 2025.12 |
USE_ACC_MPU6500 | Board config.h; common_post.h when USE_ACC_ICM20601, USE_ACC_ICM20602 or USE_ACC_ICM20608G | Adds the driver for the InvenSense MPU6500 accelerometer on the I2C bus. ICM-20601, ICM-20602 and ICM-20608-G parts also use this driver. | < 2025.12 |
USE_ACC_SPI_ICM20601 | Board config.h | Adds SPI accelerometer support for the TDK InvenSense ICM-20601. It turns on the MPU6500 SPI driver, which reads this part. No board config uses it at this time. common_post.h sets USE_ACC_SPI_MPU6500 when this flag is on. | < 2025.12 |
USE_ACC_SPI_ICM20602 | Board config.h | Adds SPI accelerometer support for the TDK InvenSense ICM-20602. It turns on the MPU6500 SPI driver, which reads this part. common_post.h sets USE_ACC_SPI_MPU6500 when this flag is on. | < 2025.12 |
USE_ACC_SPI_ICM20608G | Board config.h | Adds SPI accelerometer support for the TDK InvenSense ICM-20608-G. It turns on the MPU6500 SPI driver, which reads this part. No board config uses it at this time. common_post.h sets USE_ACC_SPI_MPU6500 when this flag is on. | < 2025.12 |
USE_ACC_SPI_ICM20649 | Board config.h | Adds the accelerometer part of the TDK InvenSense ICM-20649 SPI driver. No board config uses it at this time. The driver file compiles only when USE_GYRO_SPI_ICM20649 is on. | < 2025.12 |
USE_ACC_SPI_ICM20689 | Board config.h | Adds the accelerometer part of the TDK InvenSense ICM-20689 SPI driver. | < 2025.12 |
USE_ACC_SPI_ICM42605 | Board config.h | Adds the accelerometer part of the TDK InvenSense ICM-42605 SPI driver. The ICM426xx driver file compiles only when a gyro flag for this family is on. | < 2025.12 |
USE_ACC_SPI_ICM42688P | Board config.h | Adds the accelerometer part of the TDK InvenSense ICM-42688-P SPI driver. The ICM426xx driver file compiles only when a gyro flag for this family is on. | < 2025.12 |
USE_ACC_SPI_MPU6000 | Board config.h | Adds the accelerometer part of the InvenSense MPU6000 SPI driver. | < 2025.12 |
USE_ACC_SPI_MPU6500 | Board config.h; common_post.h when USE_ACC_SPI_MPU9250 or an SPI ICM-2060x flag | Adds the accelerometer part of the InvenSense MPU6500 SPI driver. ICM-20601, ICM-20602, ICM-20608-G and MPU9250 parts also use this driver. | < 2025.12 |
USE_ACC_SPI_MPU9250 | Board config.h; ESP32S3 when no board config | Adds the driver for the InvenSense MPU9250 accelerometer on the SPI bus. common_post.h also sets USE_ACC_SPI_MPU6500 when this flag is on. | < 2025.12 |
USE_BARO_SPI_2SMBP_02B | Board config.h | Adds SPI bus support to the Omron 2SMPB-02B barometer driver. The driver file compiles only when USE_BARO_2SMBP_02B is on. No board config uses it at this time. | < 2025.12 |
USE_BARO_SPI_BMP280 | Board config.h | Adds the driver for the Bosch BMP280 barometer on the SPI bus. | < 2025.12 |
USE_BARO_SPI_BMP388 | Board config.h | Adds the driver for the Bosch BMP388 barometer on the SPI bus. No board config uses it at this time. | < 2025.12 |
USE_BARO_SPI_BMP580 | Board config.h | Adds the driver for the Bosch BMP580 barometer on the SPI bus. No board config uses it at this time. | 2026.6 |
USE_BARO_SPI_BMP581 | Board config.h | Adds the driver for the Bosch BMP581 barometer on the SPI bus. No board config uses it at this time. | 2026.6 |
USE_BARO_SPI_DPS310 | Board config.h | Adds the driver for the Infineon DPS310 barometer on the SPI bus. The build server also adds USE_BARO_DPS310 when this flag is on. | < 2025.12 |
USE_BARO_SPI_LPS | Board config.h | Adds the driver for the ST LPS25H, LPS22HB, LPS33 and LPS35 barometer on the SPI bus. | < 2025.12 |
USE_BARO_SPI_LPS22DF | Board config.h | Adds the driver for the ST LPS22DF barometer on the SPI bus. No board config uses it at this time. | < 2025.12 |
USE_BARO_SPI_MS5611 | Board config.h | Adds the driver for the TE MS5611 barometer on the SPI bus. | < 2025.12 |
USE_BARO_SPI_QMP6988 | Board config.h | Adds the driver for the QST QMP6988 barometer on the SPI bus. No board config uses it at this time. | < 2025.12 |
USE_BUTTONS | Board config.h | Adds support for on-board push buttons, for example a two-button reset of the configuration at power on. Only SPRacing H7 boards use it. | < 2025.12 |
USE_CONFIG_TARGET_PREINIT | Board config.h | Calls the board function configTargetPreInit() before the configuration loads. The board must supply configTargetPreInit() in its config.c. Only ARK_FPV uses it. | 2025.12 |
USE_FIRMWARE_PARTITION | Board config.h | Adds a firmware partition to the external flash partition table, for boards that store the firmware on external flash. Only SPRacing H7 EXST boards use it. | < 2025.12 |
USE_FLASH | Board config.h; ESP32; common_pre.h for local builds without a board config | Adds support for an on-board flash memory chip, for example for Blackbox logs. The build adds USE_FLASHFS and USE_FLASH_TOOLS when it is set. | < 2025.12 |
USE_FLASH_FM25V02A | Board config.h; common_pre.h for local builds without a board config | Adds the driver for the Cypress (Infineon) FM25V02A 256 Kbit SPI F-RAM chip. No current board config uses it. | 2026.12 |
USE_FLASH_M25P16 | Board config.h; common_post.h when USE_FLASH_W25Q128FV, USE_FLASH_W25M512 or USE_FLASH_PY25Q128HA | Adds the driver for M25P16 compatible SPI NOR flash chips. Many 16 MB Winbond and similar chips use this driver. | < 2025.12 |
USE_FLASH_MT29F | Never set (no board config uses it) | Adds the driver for the Micron MT29F1G01 1 Gbit NAND flash chip. The driver is a first version. No current board uses it. | 2026.6 |
USE_FLASH_MX66UW1G45G | STM32N657 | Adds the driver for the Macronix MX66UW1G45G 1 Gbit octal SPI NOR flash chip. Only STM32N6 boards use it. | 2026.6 |
USE_FLASH_PY25Q128HA | Board config.h; common_pre.h for local builds without a board config | Adds support for the PUYA PY25Q128HA 16 MB SPI NOR flash chip. The build uses the M25P16 driver for this chip. | < 2025.12 |
USE_FLASH_W25M02G | Board config.h; common_pre.h for local builds without a board config | Adds support for the Winbond W25M02G 2 Gbit (two 1 Gbit dies) stacked NAND flash chip. The build adds the W25N01G and W25M drivers for this chip. | < 2025.12 |
USE_FLASH_W25M512 | Board config.h; common_pre.h for local builds without a board config | Adds support for the Winbond W25M512 512 Mbit (two 256 Mbit dies) stacked NOR flash chip. The build adds the M25P16 and W25M drivers for this chip. | < 2025.12 |
USE_FLASH_W25N01G | Board config.h; common_pre.h for local builds without a board config | Adds support for the Winbond W25N01G 1 Gbit NAND flash chip. | < 2025.12 |
USE_FLASH_W25N02K | Board config.h; common_pre.h for local builds without a board config | Adds support for the Winbond W25N02K 2 Gbit NAND flash chip. | < 2025.12 |
USE_FLASH_W25Q128FV | Board config.h; common_pre.h for local builds without a board config | Adds the driver for the Winbond W25Q128FV 16 MB NOR flash chip on SPI, QUADSPI or OCTOSPI. | < 2025.12 |
USE_GYRO_CLKIN | Board config.h | Adds an external clock output from an MCU timer pin to the gyro CLKIN pin. The ICM-42688-P then uses this clock for more stable sample timing. The board must wire a timer pin to the gyro CLKIN pin and set GYRO_1_CLKIN_PIN. The driver uses the external clock only for the ICM-42688-P. The RP2350 (PICO) path does not compile yet. | 2025.12 |
USE_GYRO_ICM20601 | Board config.h | Alias for the InvenSense ICM-20601 gyro on I2C. common_post.h maps it to USE_GYRO_MPU6500. No board config uses it at this time. | < 2025.12 |
USE_GYRO_ICM20602 | Board config.h | Alias for the InvenSense ICM-20602 gyro on I2C. common_post.h maps it to USE_GYRO_MPU6500. No board config uses it at this time. | < 2025.12 |
USE_GYRO_ICM20608G | Board config.h | Alias for the InvenSense ICM-20608-G gyro on I2C. common_post.h maps it to USE_GYRO_MPU6500. No board config uses it at this time. | < 2025.12 |
USE_GYRO_L3GD20 | Board config.h | Adds the driver for the STMicroelectronics L3GD20 SPI gyro. No board config in the config repository uses it. The chip was used on old STM32F3 boards. | < 2025.12 |
USE_GYRO_MPU6050 | Board config.h | Adds the driver for the InvenSense MPU-6050 gyro on I2C. Local builds without a board config also set it when flash is more than 512 KB. | < 2025.12 |
USE_GYRO_MPU6500 | Board config.h | Adds the driver for the InvenSense MPU-6500 gyro on I2C. The same driver also reads the ICM-20601, ICM-20602 and ICM-20608-G. common_post.h also sets it when USE_GYRO_ICM20601, USE_GYRO_ICM20602 or USE_GYRO_ICM20608G is set. | < 2025.12 |
USE_GYRO_SPI_ICM20601 | Board config.h | Alias for the InvenSense ICM-20601 gyro on SPI. common_post.h maps it to USE_GYRO_SPI_MPU6500. No board config uses it at this time. | < 2025.12 |
USE_GYRO_SPI_ICM20602 | Board config.h | Adds support for the InvenSense ICM-20602 gyro on SPI. common_post.h maps it to the MPU-6500 SPI driver. It sets USE_GYRO_SPI_MPU6500 through common_post.h. | < 2025.12 |
USE_GYRO_SPI_ICM20608G | Board config.h | Alias for the InvenSense ICM-20608-G gyro on SPI. common_post.h maps it to USE_GYRO_SPI_MPU6500. No board config uses it at this time. | < 2025.12 |
USE_GYRO_SPI_ICM20649 | Board config.h | Adds the driver for the InvenSense ICM-20649 gyro on SPI. No board config in the config repository uses it. | < 2025.12 |
USE_GYRO_SPI_ICM20689 | Board config.h | Adds the driver for the InvenSense ICM-20689 gyro on SPI. Local builds without a board config also set it. | < 2025.12 |
USE_GYRO_SPI_ICM42605 | Board config.h | Adds the driver for the InvenSense ICM-42605 gyro on SPI. Local builds without a board config also set it. | < 2025.12 |
USE_GYRO_SPI_ICM42688P | Board config.h | Adds the driver for the InvenSense ICM-42688-P gyro on SPI. Local builds without a board config also set it. | < 2025.12 |
USE_GYRO_SPI_MPU6000 | Board config.h | Adds the driver for the InvenSense MPU-6000 gyro on SPI. Local builds without a board config also set it. | < 2025.12 |
USE_GYRO_SPI_MPU6500 | Board config.h | Adds the driver for the InvenSense MPU-6500 gyro on SPI. The same driver also reads the MPU-9250, ICM-20601, ICM-20602 and ICM-20608-G. common_post.h also sets it when USE_GYRO_SPI_ICM20601, USE_GYRO_SPI_ICM20602 or USE_GYRO_SPI_ICM20608G is set. | < 2025.12 |
USE_GYRO_SPI_MPU9250 | Board config.h | Adds the driver for the InvenSense MPU-9250 gyro on SPI. It also lets the AK8963 compass inside the MPU-9250 work through the gyro. The ESP32-S3 target header also sets it when there is no board config. | < 2025.12 |
USE_I2C_GYRO | Board config.h | Adds the I2C reset and probe code for an MPU gyro that connects through I2C. Only development boards (Nucleo) set it. | < 2025.12 |
USE_I2C_PULLUP | Board config.h | Turns on the MCU internal pull-up resistors on all I2C buses by default. Use it only on boards that do not have external I2C pull-up resistors. | < 2025.12 |
USE_I3C_AS_I2C | Board config.h | Uses the STM32 I3C controller as a legacy I2C master, for boards that connect sensors to I3C pins. The board config must also set I3C_AS_I2C_SCL_PIN and I3C_AS_I2C_SDA_PIN. It replaces the normal hardware I2C driver. | 2026.6 |
USE_MAX7456 | Board config.h | Adds the driver for the MAX7456 (or AT7456E) analogue OSD chip. Without USE_OSD_SD the build removes it. | < 2025.12 |
USE_MSP_DISPLAYPORT_FONT | Board config.h | Adds OSD font upload through MSP DisplayPort, for an on-board MSP OSD chip (AIRBOT Theia). | 2025.12 |
USE_MSP_UART | Board config.h | Sets the serial port that the board config reserves for MSP by default. The value is a serial port identifier, not only a switch. | < 2025.12 |
USE_OCTOSPI | Board config.h; STM32N657 | Adds the OCTOSPI bus driver for external flash chips on the flight controller. STM32H7 and STM32N6 only. | < 2025.12 |
USE_OCTOSPI_DEVICE_1 | Board config.h; STM32N657 | Turns on OCTOSPI instance 1 for the on-board flash chip. | < 2025.12 |
USE_PID_AUDIO | Board config.h | Sends PID error as sound through the MCU DAC output on the flight controller. STM32F7, STM32H7, GD32H7 and X32 only. The board must have an audio output on the DAC pin. | < 2025.12 |
USE_QUADSPI | Board config.h | Adds the QUADSPI bus driver for external flash chips on the flight controller. STM32H7, STM32G4 and RP2350 only. | < 2025.12 |
USE_QUADSPI_DEVICE_1 | Board config.h | Turns on QUADSPI instance 1 for the on-board flash chip. | < 2025.12 |
USE_RX_CC2500 | Board config.h; build server adds USE_RX_SPI | Adds the driver for an on-board TI CC2500 SPI receiver chip. It turns on the FrSky D/X, Redpine, SFHSS and related SPI protocols. AT32F435, ESP32 and RP2350 targets remove it. | < 2025.12 |
USE_RX_EXPRESSLRS | Board config.h; build server adds USE_RX_SPI, USE_SERIALRX_CRSF, USE_TELEMETRY_CRSF | Adds the ExpressLRS protocol for an on-board SPI ExpressLRS receiver. ESP32 and RP2350 targets remove it. | < 2025.12 |
USE_RX_SPI | Board config.h; build server when USE_RX_EXPRESSLRS, USE_RX_SX1280 or USE_RX_CC2500; common_post.h when USE_RX_CC2500 | Adds the SPI receiver framework for a receiver chip on the flight controller. ESP32 and RP2350 targets remove it. | < 2025.12 |
USE_RX_SX127X | common_pre.h (local builds without a board config) | Adds the driver for an on-board Semtech SX127x (900 MHz LoRa) SPI receiver chip for ExpressLRS. No board config sets it now. | < 2025.12 |
USE_RX_SX1280 | Board config.h; build server adds USE_RX_SPI | Adds the driver for an on-board Semtech SX1280 (2.4 GHz) SPI receiver chip for ExpressLRS. ESP32 and RP2350 targets remove it. | < 2025.12 |
USE_SDCARD | Board config.h | Adds support for an SD card on the flight controller for Blackbox logs. STM32G474 removes it. | < 2025.12 |
USE_SDCARD_SDIO | Board config.h; Platform when USE_SDCARD (H7, H5, F745, N6, X32) | Adds the SDIO (SDMMC) bus driver for an on-board SD card. | < 2025.12 |
USE_SDCARD_SPI | Board config.h; Platform when USE_SDCARD (H7, H5, F745, N6, X32) | Adds the SPI bus driver for an on-board SD card. | < 2025.12 |
USE_SDIO_PULLUP | Board config.h | Turns on the internal pull-up resistors on the SDIO pins for boards that do not have external pull-ups. Only STM32H5, H7, N6 and X32 SDIO drivers use it. | 2025.12 |
USE_SMARTAUDIO_NOPULLDOWN | Board config.h | Stops the pull-down resistor on the SmartAudio serial pin. Some boards with an on-board VTX need this. | < 2025.12 |
USE_SPI_MAG | Board config.h | Sets the default compass bus to an on-board SPI magnetometer. The board config must give MAG_SPI_INSTANCE and MAG_CS_PIN. | < 2025.12 |
USE_SPRACING_PERSISTENT_RTC_WORKAROUND | Board config.h (SPRacing H7 boards) | Moves the reset reason to a different RTC backup register. This keeps DFU and MSC modes correct with the SPRacing H7 bootloader. | < 2025.12 |
USE_VTX_RTC6705 | Board config.h; common_post.h when USE_VTX_RTC6705_SOFTSPI; common_pre.h for local builds with 1 MB flash | Adds the driver for an on-board RTC6705 video transmitter on the hardware SPI bus. PICO and ESP32 targets do not support it. | < 2025.12 |
USE_VTX_RTC6705_SOFTSPI | Board config.h; common_pre.h for local builds with 1 MB flash | Adds the driver for an on-board RTC6705 video transmitter on a software SPI link. PICO and ESP32 targets do not support it. | < 2025.12 |
Platform
These flags are for the MCU, the HAL, vendor libraries, DMA, timers, clocks, USB and UART instances. The platform headers under src/platform/ set them.
| Flag | Set by | Description | Introduced |
|---|---|---|---|
USE_ADC | For example STM32H743 | Adds the analogue to digital converter (ADC) driver. The firmware uses it for battery voltage, current, RSSI and external ADC inputs. Some board configs also set it. | < 2025.12 |
USE_ADC_DEVICE_0 | GD32; X32 | Adds ADC device index 0 to the ADC device list, for MCUs that number ADCs from 0. | 2026.6 |
USE_ADC_INTERNAL | Each MCU family | Adds reads of the MCU internal ADC channels, for core temperature and the internal voltage reference. common_post.h removes it when USE_ADC is not on. | < 2025.12 |
USE_ATBSP_DRIVER | AT32F4 | Selects the Artery AT32 BSP vendor library for clocks, DMA, SPI and UART code. | < 2025.12 |
USE_CONFIG | Makefile when CONFIG= is given | Marks a build that uses a board config.h. It makes Platform read the board config and stops the all-drivers default set. | < 2025.12 |
USE_CUBEFRAMEWORK_M7 | Never set | On STM32H757, lets the M7 core start the M4 core if a valid M4 image is in flash. STM32H757 dual-core only. No target or board sets it at this time. | 2026.6 |
USE_DAL_ADC_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the ADC driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_CAN_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the CAN driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_CRYP_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the CRYP (crypto) driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_DAC_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the DAC driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_DCI_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the DCI (camera interface) driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_DRIVER | APM32F4 | Selects the Geehy APM32 DAL vendor library for APM32F4 targets. | 2025.12 |
USE_DAL_ETH_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the Ethernet driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_HASH_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the HASH driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_HCD_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the USB host (HCD) driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_I2C_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the I2C driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_I2S_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the I2S driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_IRDA_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the IrDA driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_MMC_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the MMC driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_NAND_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the NAND driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_NOR_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the NOR driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_PCCARD_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the PC card driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_PCD_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the USB device (PCD) driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_QSPI_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the QSPI driver. Betaflight sets it to 0 (off). | 2026.6 |
USE_DAL_RNG_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the RNG driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_RTC_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the RTC driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_SDRAM_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the SDRAM driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_SD_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the SD driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_SMARTCARD_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the smartcard driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_SMBUS_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the SMBus driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_SPI_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the SPI driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_SRAM_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the SRAM driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_TMR_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the timer (TMR) driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_UART_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the UART driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_USART_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the USART driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DAL_WWDT_REGISTER_CALLBACKS | APM32F4 | APM32F4 DAL setting that turns on dynamic callback registration for the window watchdog (WWDT) driver. Betaflight sets it to 0 (off). | 2025.12 |
USE_DEVICE_MODE | Vendor USB library (STM32F4, GD32H7, X32M7) | Configures the vendor USB OTG library for device mode (USB VCP to the host computer). | < 2025.12 |
USE_DMA_MUX | AT32, X32 | Marks MCUs with a DMA request multiplexer (DMAMUX), where any DMA channel can serve any peripheral. | < 2025.12 |
USE_DMA_RAM | STM32H7, STM32N6, GD32H7 | Puts DMA buffers in a separate RAM section that the MPU marks as not cached. | < 2025.12 |
USE_DMA_REGISTER_CACHE | STM32 (all except X32M7) | Makes DShot bitbang keep a copy of the DMA registers and restore them fast for each transfer. | < 2025.12 |
USE_DMA_SPEC | Each MCU family | Adds the DMA specification table, which lets the user pick a DMA stream per peripheral with the CLI dma command. RP2350 removes it. | < 2025.12 |
USE_DSHOT_BITBAND | STM32F405/F411/F446, AT32F435, APM32F4 | Uses the Cortex-M4 bit-band memory region to decode bitbang DShot telemetry faster. | < 2025.12 |
USE_DSHOT_CACHE_MGMT | STM32H7, STM32N6, GD32H7, X32M7 when USE_DSHOT | Adds data cache clean and invalidate for the DShot bitbang DMA buffers on MCUs with a data cache. | < 2025.12 |
USE_EMBEDDED_PHY | Never set (vendor USB library option) | Selects the embedded USB PHY in the STM32F4 USB OTG HS vendor library configuration. Betaflight does not set it. The vendor default is the ULPI PHY. | < 2025.12 |
USE_ESCSERIAL | Each MCU | Adds the ESC serial driver, which the 4way interface uses to flash and configure ESCs through the motor pins. | < 2025.12 |
USE_EXST | Build system when EXST=yes (board config sets FC_VMA_ADDRESS) | Builds the firmware for the external storage (EXST) boot method. A bootloader loads the firmware from external flash into RAM. Only STM32H7 boards with the EXST bootloader use it, for example SPRacing H7 boards. | < 2025.12 |
USE_EXTENDED_SPI_DEVICE | Never set | Adds DMA mappings for SPI5 and SPI6 on STM32F4 and STM32F7 MCUs that have these SPI ports. No platform header or board config sets it at present. | < 2025.12 |
USE_EXTI | Each MCU | Adds the external interrupt (EXTI) driver for GPIO pins, for example the gyro data ready signal. | < 2025.12 |
USE_FAST_DATA | STM32F40x, F7, H7, GD32F4, GD32H7, APM32F4, X32M7 | Puts time-critical variables into fast RAM (CCM, DTCM or TCM) on MCUs that have it. | < 2025.12 |
USE_FLASH_BOOT_LOADER | MCU when USE_EXST and not RAMBASED | Adds the CLI and MSP command that restarts the board into the external flash bootloader. | < 2025.12 |
USE_FLASH_MEMORY_MAPPED | STM32N657; Board config.h (SPRacing H7 EXST boards) | Runs the firmware from external flash in memory-mapped mode. The firmware then copies flash access code to RAM. Only boards that boot from external flash use it. | < 2025.12 |
USE_FULL_DDL_DRIVER | APM32F4 | Selects the full APM32 DDL (low layer) vendor driver library. | 2025.12 |
USE_FULL_LL_DRIVER | STM32 (STM32F7, G4, H5, H7, C5, N6); APM32 when USE_FULL_DDL_DRIVER | Selects the full STM32 LL (low layer) vendor driver library. | < 2025.12 |
USE_GDBSP_DRIVER | GD32H7 | Selects the GigaDevice GD32 board support package (BSP) vendor library in shared drivers. | 2026.12 |
USE_H7_HSERDY_SLOW_WORKAROUND | STM32H7 | Drives the HSE oscillator pins low before HSE start on STM32H743, H750, H753 and H757. This workaround helps when HSERDY takes a very long time to set. STM32H7 only. | < 2025.12 |
USE_H7_HSE_TIMEOUT_WORKAROUND | STM32H7 | Resets the MCU when the HSE oscillator start times out on STM32H743, H750, H753 and H757. A retry is necessary because HSERDY sometimes does not set. STM32H7 only. | < 2025.12 |
USE_HAL_ADC_MODULE | STM32C5 | STM32C5 HAL2 module select for the analogue-to-digital converter (ADC) driver. Betaflight sets it to 1, so the build adds this HAL module. Used only on STM32C5. | 2026.6 |
USE_HAL_ADC_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4, STM32C5 | STM32 HAL configuration value for the analogue-to-digital converter (ADC) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7, STM32N6 and STM32C5. | < 2025.12 |
USE_HAL_CACHEAXI_REGISTER_CALLBACKS | STM32N6 | STM32 HAL configuration value for the AXI cache (CACHEAXI) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32N6. | 2026.6 |
USE_HAL_CEC_REGISTER_CALLBACKS | STM32H7, STM32H5 | STM32 HAL configuration value for the HDMI-CEC controller driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H5 and STM32H7. | < 2025.12 |
USE_HAL_COMP_REGISTER_CALLBACKS | STM32H7, STM32H5, STM32G4, STM32C5 | STM32 HAL configuration value for the comparator (COMP) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7 and STM32C5. | < 2025.12 |
USE_HAL_CORDIC_REGISTER_CALLBACKS | STM32H7, STM32H5, STM32G4, STM32C5 | STM32 HAL configuration value for the CORDIC co-processor driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7 and STM32C5. | < 2025.12 |
USE_HAL_CORTEX_MODULE | STM32C5 | STM32C5 HAL2 module select for the Cortex-M core (NVIC, SysTick, MPU) driver. Betaflight sets it to 1, so the build adds this HAL module. Used only on STM32C5. | 2026.6 |
USE_HAL_CRC_REGISTER_CALLBACKS | STM32C5 | STM32 HAL configuration value for the CRC calculation unit driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32C5. | 2026.6 |
USE_HAL_CRS_REGISTER_CALLBACKS | STM32C5 | STM32 HAL configuration value for the clock recovery system (CRS) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32C5. | 2026.6 |
USE_HAL_CRYP_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4 | STM32 HAL configuration value for the crypto processor (CRYP) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_DAC_REGISTER_CALLBACKS | STM32H7, STM32H5, STM32G4, STM32C5 | STM32 HAL configuration value for the digital-to-analogue converter (DAC) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7 and STM32C5. | < 2025.12 |
USE_HAL_DCMIPP_REGISTER_CALLBACKS | STM32N6 | STM32 HAL configuration value for the camera pixel pipeline (DCMIPP) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32N6. | 2026.6 |
USE_HAL_DCMI_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5 | STM32 HAL configuration value for the digital camera interface (DCMI) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H5, STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_DFSDM_REGISTER_CALLBACKS | STM32H7 | STM32 HAL configuration value for the sigma-delta filter (DFSDM) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H7. | < 2025.12 |
USE_HAL_DMA2D_REGISTER_CALLBACKS | STM32N6, STM32H7 | STM32 HAL configuration value for the Chrom-ART graphics accelerator (DMA2D) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_DMA_MODULE | STM32C5 | STM32C5 HAL2 module select for the DMA controller driver. Betaflight sets it to 1, so the build adds this HAL module. Used only on STM32C5. | 2026.6 |
USE_HAL_DMA_REGISTER_CALLBACKS | STM32C5 | STM32 HAL configuration value for the DMA controller driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32C5. | 2026.6 |
USE_HAL_DRIVER | STM32 (F7, G4, H5, H7, N6, C5), APM32 when USE_DAL_DRIVER | Selects the vendor HAL driver library for the MCU. Platform code uses it to choose HAL calls instead of the standard peripheral library. STM32F4 builds use USE_STDPERIPH_DRIVER instead. | < 2025.12 |
USE_HAL_DSI_REGISTER_CALLBACKS | STM32H7 | STM32 HAL configuration value for the display serial interface (DSI) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H7. | < 2025.12 |
USE_HAL_DTS_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5 | STM32 HAL configuration value for the digital temperature sensor (DTS) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H5, STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_ETH_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5 | STM32 HAL configuration value for the Ethernet controller (ETH) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H5, STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_EXTI_MODULE | STM32C5 | STM32C5 HAL2 module select for the external interrupt controller (EXTI) driver. Betaflight sets it to 1, so the build adds this HAL module. Used only on STM32C5. | 2026.6 |
USE_HAL_EXTI_REGISTER_CALLBACKS | STM32G4 | STM32 HAL configuration value for the external interrupt controller (EXTI) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4. | < 2025.12 |
USE_HAL_FDCAN_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4 | STM32 HAL configuration value for the FDCAN controller driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_FLASH_ERASE_PAGE | STM32C5 | STM32C5 HAL2 option that adds page erase support to the flash driver. Betaflight sets it to 1. Used only on STM32C5. | 2026.6 |
USE_HAL_FLASH_MODULE | STM32C5 | STM32C5 HAL2 module select for the internal flash memory controller driver. Betaflight sets it to 1, so the build adds this HAL module. Used only on STM32C5. | 2026.6 |
USE_HAL_FLASH_PROGRAM_BY_ADDR | STM32C5 | STM32C5 HAL2 option that adds program-by-address support to the flash driver. Betaflight sets it to 1. Used only on STM32C5. | 2026.6 |
USE_HAL_FLASH_REGISTER_CALLBACKS | STM32C5 | STM32 HAL configuration value for the internal flash memory controller driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32C5. | 2026.6 |
USE_HAL_FMAC_REGISTER_CALLBACKS | STM32H7, STM32H5, STM32G4 | STM32 HAL configuration value for the filter maths accelerator (FMAC) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5 and STM32H7. | < 2025.12 |
USE_HAL_GFXMMU_REGISTER_CALLBACKS | STM32N6, STM32H7 | STM32 HAL configuration value for the graphic memory management unit (GFXMMU) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_GFXTIM_REGISTER_CALLBACKS | STM32N6 | STM32 HAL configuration value for the graphic timer (GFXTIM) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32N6. | 2026.6 |
USE_HAL_GPIO_MODULE | STM32C5 | STM32C5 HAL2 module select for the GPIO ports driver. Betaflight sets it to 1, so the build adds this HAL module. Used only on STM32C5. | 2026.6 |
USE_HAL_HASH_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32C5 | STM32 HAL configuration value for the hash processor (HASH) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H5, STM32H7, STM32N6 and STM32C5. | < 2025.12 |
USE_HAL_HCD_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5 | STM32 HAL configuration value for the USB host controller (HCD) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H5, STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_HRTIM_REGISTER_CALLBACKS | STM32H7, STM32G4 | STM32 HAL configuration value for the high-resolution timer (HRTIM) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4 and STM32H7. | < 2025.12 |
USE_HAL_I2C_MODULE | STM32C5 | STM32C5 HAL2 module select for the I2C controller driver. Betaflight sets it to 1, so the build adds this HAL module. Used only on STM32C5. | 2026.6 |
USE_HAL_I2C_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4, STM32C5 | STM32 HAL configuration value for the I2C controller driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7, STM32N6 and STM32C5. | < 2025.12 |
USE_HAL_I2S_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4 | STM32 HAL configuration value for the I2S audio interface driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_I3C_REGISTER_CALLBACKS | STM32N6, STM32H5, STM32C5 | STM32 HAL configuration value for the I3C controller driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H5, STM32N6 and STM32C5. | 2025.12 |
USE_HAL_IRDA_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4 | STM32 HAL configuration value for the IrDA interface driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_IWDG_REGISTER_CALLBACKS | STM32N6, STM32H5, STM32C5 | STM32 HAL configuration value for the independent watchdog (IWDG) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H5, STM32N6 and STM32C5. | 2025.12 |
USE_HAL_JPEG_REGISTER_CALLBACKS | STM32H7 | STM32 HAL configuration value for the JPEG codec driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H7. | < 2025.12 |
USE_HAL_LPTIM_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4, STM32C5 | STM32 HAL configuration value for the low-power timer (LPTIM) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7, STM32N6 and STM32C5. | < 2025.12 |
USE_HAL_LTDC_REGISTER_CALLBACKS | STM32N6, STM32H7 | STM32 HAL configuration value for the LCD-TFT display controller (LTDC) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_MCE_REGISTER_CALLBACKS | STM32N6 | STM32 HAL configuration value for the memory cipher engine (MCE) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32N6. | 2026.6 |
USE_HAL_MDF_REGISTER_CALLBACKS | STM32N6 | STM32 HAL configuration value for the multi-function digital filter (MDF) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32N6. | 2026.6 |
USE_HAL_MDIOS_REGISTER_CALLBACKS | STM32H7 | STM32 HAL configuration value for the MDIO slave interface (MDIOS) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H7. | < 2025.12 |
USE_HAL_MMC_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5 | STM32 HAL configuration value for the MMC card interface driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H5, STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_NAND_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4 | STM32 HAL configuration value for the NAND flash memory controller driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_NOR_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4 | STM32 HAL configuration value for the NOR flash memory controller driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_OPAMP_REGISTER_CALLBACKS | STM32H7, STM32H5, STM32G4, STM32C5 | STM32 HAL configuration value for the operational amplifier (OPAMP) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7 and STM32C5. | < 2025.12 |
USE_HAL_OSPI_REGISTER_CALLBACKS | STM32H7 | STM32 HAL configuration value for the Octo-SPI interface (OSPI) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H7. | < 2025.12 |
USE_HAL_OTFDEC_REGISTER_CALLBACKS | STM32H7, STM32H5 | STM32 HAL configuration value for the on-the-fly decryption unit (OTFDEC) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H5 and STM32H7. | < 2025.12 |
USE_HAL_PCD_MODULE | STM32C5 | STM32C5 HAL2 module select for the USB device controller (PCD) driver. Betaflight sets it to 1, so the build adds this HAL module. Used only on STM32C5. | 2026.6 |
USE_HAL_PCD_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4, STM32C5 | STM32 HAL configuration value for the USB device controller (PCD) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7, STM32N6 and STM32C5. | < 2025.12 |
USE_HAL_PCD_USER_DATA | STM32C5 | STM32C5 HAL2 option that adds a user data pointer to the USB device (PCD) handle. Betaflight sets it to 1. Used only on STM32C5. | 2026.6 |
USE_HAL_PKA_REGISTER_CALLBACKS | STM32N6, STM32H5, STM32C5 | STM32 HAL configuration value for the public key accelerator (PKA) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H5, STM32N6 and STM32C5. | 2025.12 |
USE_HAL_PSSI_REGISTER_CALLBACKS | STM32N6 | STM32 HAL configuration value for the parallel synchronous slave interface (PSSI) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32N6. | 2026.6 |
USE_HAL_PWR_MODULE | STM32C5 | STM32C5 HAL2 module select for the power controller (PWR) driver. Betaflight sets it to 1, so the build adds this HAL module. Used only on STM32C5. | 2026.6 |
USE_HAL_QSPI_REGISTER_CALLBACKS | STM32H7, STM32G4 | STM32 HAL configuration value for the Quad-SPI interface (QSPI) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4 and STM32H7. | < 2025.12 |
USE_HAL_RAMCFG_REGISTER_CALLBACKS | STM32N6, STM32H5, STM32C5 | STM32 HAL configuration value for the RAM configuration controller (RAMCFG) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H5, STM32N6 and STM32C5. | 2025.12 |
USE_HAL_RCC_MODULE | STM32C5 | STM32C5 HAL2 module select for the reset and clock controller (RCC) driver. Betaflight sets it to 1, so the build adds this HAL module. Used only on STM32C5. | 2026.6 |
USE_HAL_RNG_MODULE | STM32C5 | STM32C5 HAL2 module select for the random number generator (RNG) driver. Betaflight sets it to 1, so the build adds this HAL module. Used only on STM32C5. | 2026.6 |
USE_HAL_RNG_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4, STM32C5 | STM32 HAL configuration value for the random number generator (RNG) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7, STM32N6 and STM32C5. | < 2025.12 |
USE_HAL_RTC_MODULE | STM32C5 | STM32C5 HAL2 module select for the real-time clock (RTC) driver. Betaflight sets it to 1, so the build adds this HAL module. Used only on STM32C5. | 2026.6 |
USE_HAL_RTC_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4, STM32C5 | STM32 HAL configuration value for the real-time clock (RTC) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7, STM32N6 and STM32C5. | < 2025.12 |
USE_HAL_SAI_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4 | STM32 HAL configuration value for the serial audio interface (SAI) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_SDRAM_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5 | STM32 HAL configuration value for the SDRAM controller driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H5, STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_SD_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5 | STM32 HAL configuration value for the SD card interface driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H5, STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_SMARTCARD_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4, STM32C5 | STM32 HAL configuration value for the smartcard interface driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7, STM32N6 and STM32C5. | < 2025.12 |
USE_HAL_SMBUS_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4, STM32C5 | STM32 HAL configuration value for the SMBus interface driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7, STM32N6 and STM32C5. | < 2025.12 |
USE_HAL_SPDIFRX_REGISTER_CALLBACKS | STM32N6, STM32H7 | STM32 HAL configuration value for the SPDIF receiver (SPDIFRX) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_SPI_MODULE | STM32C5 | STM32C5 HAL2 module select for the SPI controller driver. Betaflight sets it to 1, so the build adds this HAL module. Used only on STM32C5. | 2026.6 |
USE_HAL_SPI_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4, STM32C5 | STM32 HAL configuration value for the SPI controller driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7, STM32N6 and STM32C5. | < 2025.12 |
USE_HAL_SRAM_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4 | STM32 HAL configuration value for the SRAM controller driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7 and STM32N6. | < 2025.12 |
USE_HAL_SWPMI_REGISTER_CALLBACKS | STM32H7 | STM32 HAL configuration value for the single-wire protocol master interface (SWPMI) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H7. | < 2025.12 |
USE_HAL_TAMP_MODULE | STM32C5 | STM32C5 HAL2 module select for the tamper and backup register unit (TAMP) driver. Betaflight sets it to 1, so the build adds this HAL module. Used only on STM32C5. | 2026.6 |
USE_HAL_TIM_MODULE | STM32C5 | STM32C5 HAL2 module select for the timer (TIM) driver. Betaflight sets it to 1, so the build adds this HAL module. Used only on STM32C5. | 2026.6 |
USE_HAL_TIM_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4, STM32C5 | STM32 HAL configuration value for the timer (TIM) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7, STM32N6 and STM32C5. | < 2025.12 |
USE_HAL_UART_MODULE | STM32C5 | STM32C5 HAL2 module select for the UART driver. Betaflight sets it to 1, so the build adds this HAL module. Used only on STM32C5. | 2026.6 |
USE_HAL_UART_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4, STM32C5 | STM32 HAL configuration value for the UART driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7, STM32N6 and STM32C5. | < 2025.12 |
USE_HAL_USART_MODULE | STM32C5 | STM32C5 HAL2 module select for the USART driver. Betaflight sets it to 1, so the build adds this HAL module. Used only on STM32C5. | 2026.6 |
USE_HAL_USART_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4, STM32C5 | STM32 HAL configuration value for the USART driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7, STM32N6 and STM32C5. | < 2025.12 |
USE_HAL_WWDG_REGISTER_CALLBACKS | STM32N6, STM32H7, STM32H5, STM32G4, STM32C5 | STM32 HAL configuration value for the window watchdog (WWDG) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32G4, STM32H5, STM32H7, STM32N6 and STM32C5. | < 2025.12 |
USE_HAL_XSPI_REGISTER_CALLBACKS | STM32N6, STM32H5, STM32C5 | STM32 HAL configuration value for the extended SPI interface (XSPI) driver. Betaflight sets it to 0, so the HAL does not use register callbacks for this peripheral. Used only on STM32H5, STM32N6 and STM32C5. | 2025.12 |
USE_HOST_MODE | Never set (vendor USB library option) | Vendor USB library option that sets the USB peripheral to host mode instead of device mode. Betaflight uses USB device mode only. Do not set this flag. | < 2025.12 |
USE_I2C | Platform | Adds the hardware I2C bus driver for external and on-board sensors. Some board configs also set it. | < 2025.12 |
USE_I2C_DEVICE_0 | ESP32, GD32, PICO | Adds the I2C bus instance 0 on MCUs that number I2C buses from 0. | 2025.12 |
USE_I2C_DEVICE_1 | Platform | Adds the I2C1 bus instance. Some board configs also set it on H5, H7 and N6 boards. | < 2025.12 |
USE_I2C_DEVICE_10 | X32M7B | Adds the I2C10 bus instance. Only the X32M7 MCU has this bus. | 2026.6 |
USE_I2C_DEVICE_2 | Platform | Adds the I2C2 bus instance. Some board configs also set it. | < 2025.12 |
USE_I2C_DEVICE_3 | Platform | Adds the I2C3 bus instance. | < 2025.12 |
USE_I2C_DEVICE_4 | Platform | Adds the I2C4 bus instance. Only some F7, G4, H7 and X32 MCUs have this bus. | < 2025.12 |
USE_I2C_DEVICE_5 | Platform | Adds the I2C5 bus instance. Only the STM32H723, H725, H735 and X32M7 MCUs have this bus. | < 2025.12 |
USE_I2C_DEVICE_6 | X32M7B | Adds the I2C6 bus instance. Only the X32M7 MCU has this bus. | 2026.6 |
USE_I2C_DEVICE_7 | X32M7B | Adds the I2C7 bus instance. Only the X32M7 MCU has this bus. | 2026.6 |
USE_I2C_DEVICE_8 | X32M7B | Adds the I2C8 bus instance. Only the X32M7 MCU has this bus. | 2026.6 |
USE_I2C_DEVICE_9 | X32M7B | Adds the I2C9 bus instance. Only the X32M7 MCU has this bus. | 2026.6 |
USE_I2C_PHY | Never set (vendor USB library option) | Vendor USB library option that selects an external USB PHY on I2C. Betaflight does not use an I2C USB PHY. Do not set this flag. | < 2025.12 |
USE_INVERTER | F4 MCUs; serial_post.h when the board sets INVERTER_PIN_UARTx | Adds control of external serial signal inverters, for example for SBUS on F4 MCUs. | < 2025.12 |
USE_IRC48M | GD32H7 | Uses the internal 48 MHz IRC oscillator as the USB clock on GD32H7 MCUs. | 2026.12 |
USE_ITCM_RAM | STM32F7, STM32H7, GD32H7 | Puts time-critical code in the ITCM RAM of the MCU. | < 2025.12 |
USE_LATE_TASK_STATISTICS | Most MCUs | Adds statistics about late scheduler tasks to the tasks CLI command. | < 2025.12 |
USE_LED_STRIP_CACHE_MGMT | H7, GD32H7, X32 when USE_LED_STRIP | Adds data cache maintenance for the LED strip DMA buffer. | < 2025.12 |
USE_LPUART | serial_post.h when the MCU has an LPUART | Adds common support for low-power UART (LPUART) ports. | 2025.12 |
USE_LPUART1 | STM32G4, H5, H7 and others | Adds the LPUART1 serial port instance. | < 2025.12 |
USE_MCO | STM32F4, F7, G4, APM32, GD32F4 | Adds the MCU clock output (MCO) feature, which sends a clock signal to a pin. | < 2025.12 |
USE_MCO_DEVICE1 | STM32G4 | Adds the MCO1 clock output instance. | 2025.12 |
USE_MCO_DEVICE2 | STM32F4, F7, APM32 | Adds the MCO2 clock output instance. | 2025.12 |
USE_MULTICORE | ESP32S3 | Turns on the multicore API, which runs tasks on the second CPU core. On RP2350 this flag is in a comment for test use only. | 2025.12 |
USE_OTG_DEVICE_MODE | AT32 | Sets the AT32 USB OTG controller to device mode in the vendor USB stack. | < 2025.12 |
USE_OTG_HOST_MODE | Never set | Sets the AT32 USB OTG controller to host mode in the vendor USB stack. It is in a comment in AT32. | < 2025.12 |
USE_OVERCLOCK | STM32; APM32 | Adds the cpu_overclock CLI setting for MCUs that can run above their rated clock. STM32F405, STM32F411, STM32F7, STM32G4 and APM32 only. | < 2025.12 |
USE_PERSISTENT_MSC_RTC | STM32F4, F7, H7, GD32, AT32F435 and APM32 | Keeps the RTC time across a reboot into USB mass storage mode, so that log files get correct dates. common_post.h removes it if a required flag is missing. | < 2025.12 |
USE_PERSISTENT_OBJECTS | STM32, GD32, AT32, APM32 and X32 | Adds RAM storage that keeps its data through a software reset. | < 2025.12 |
USE_PID_DENOM_CHECK | STM32F405, F411, F722, F745, G474 and APM32F4 | Forces DShot300 when bidirectional DShot is on, to keep the PID loop rate safe on slower MCUs. | < 2025.12 |
USE_PID_DENOM_OVERCLOCK_LEVEL | STM32F405 and APM32F4 | Sets the overclock level at which USE_PID_DENOM_CHECK stops forcing DShot300. | < 2025.12 |
USE_PIN_AF | STM32 | Marks that the MCU uses per-pin alternate function settings. No code reads this flag. | < 2025.12 |
USE_PIOUART | Source code when a USE_PIOUARTn flag is set | Adds the RP2350 PIO UART support code. RP2350 only. | 2025.12 |
USE_PIOUART0 | RP2350 | Adds PIO UART 0 on the RP2350. | 2025.12 |
USE_PIOUART1 | RP2350 | Adds PIO UART 1 on the RP2350. | 2025.12 |
USE_PIOUART2 | Never set | Adds PIO UART 2 on the RP2350. The serial_post.h code makes a port slot for it. uart_pio.c supports only PIOUART0 and PIOUART1. The build stops with an error if you set this flag. | 2025.12 |
USE_PIOUART3 | Never set | Adds PIO UART 3 on the RP2350. The serial_post.h code makes a port slot for it. uart_pio.c supports only PIOUART0 and PIOUART1. The build stops with an error if you set this flag. | 2025.12 |
USE_PIOUART4 | Never set | Adds PIO UART 4 on the RP2350. The serial_post.h code makes a port slot for it. uart_pio.c supports only PIOUART0 and PIOUART1. The build stops with an error if you set this flag. | 2025.12 |
USE_PIOUART5 | Never set | Adds PIO UART 5 on the RP2350. The serial_post.h code makes a port slot for it. uart_pio.c supports only PIOUART0 and PIOUART1. The build stops with an error if you set this flag. | 2025.12 |
USE_PIOUART6 | Never set | Adds PIO UART 6 on the RP2350. The serial_post.h code makes a port slot for it. uart_pio.c supports only PIOUART0 and PIOUART1. The build stops with an error if you set this flag. | 2025.12 |
USE_PIOUART7 | Never set | Adds PIO UART 7 on the RP2350. The serial_post.h code makes a port slot for it. uart_pio.c supports only PIOUART0 and PIOUART1. The build stops with an error if you set this flag. | 2025.12 |
USE_PIOUART8 | Never set | Adds PIO UART 8 on the RP2350. The serial_post.h code makes a port slot for it. uart_pio.c supports only PIOUART0 and PIOUART1. The build stops with an error if you set this flag. | 2025.12 |
USE_PIOUART9 | Never set | Adds PIO UART 9 on the RP2350. The serial_post.h code makes a port slot for it. uart_pio.c supports only PIOUART0 and PIOUART1. The build stops with an error if you set this flag. | 2025.12 |
USE_RAM_CODE | common_post.h and STM32 when USE_FLASH_MEMORY_MAPPED | Puts time-critical code in RAM when the firmware runs from memory-mapped flash. | < 2025.12 |
USE_RESOURCE_INDEX_FROM_ZERO | PICO and ESP32 | Makes the CLI resource command number bus peripherals (UART, SPI, I2C) from 0 to match the chip numbering. Motors, servos and sensors stay 1-based. | 2026.6 |
USE_RTOS | STM32, APM32F4 | HAL configuration value that tells the vendor HAL that no RTOS is used. It is set to 0. | < 2025.12 |
USE_SD_TRANSCEIVER | STM32H7, STM32N6 | HAL configuration value for a 1.8 V SD card transceiver. It is set to 0. | < 2025.12 |
USE_SPI | Each MCU | Adds the SPI bus driver. Some board configs also set it. | < 2025.12 |
USE_SPI_CRC | STM32 and APM32 HAL configuration | Turns on the SPI CRC module in the vendor HAL configuration. | < 2025.12 |
USE_SPI_DEVICE_0 | ESP32, RP2350, GD32H757 | Turns on SPI bus 0 on MCUs that number SPI buses from 0. | 2025.12 |
USE_SPI_DEVICE_1 | Each MCU | Turns on SPI bus 1. Some board configs also set it. | < 2025.12 |
USE_SPI_DEVICE_2 | Each MCU | Turns on SPI bus 2. Some board configs also set it. | < 2025.12 |
USE_SPI_DEVICE_3 | Each MCU | Turns on SPI bus 3. Some board configs also set it. | < 2025.12 |
USE_SPI_DEVICE_4 | Each MCU | Turns on SPI bus 4 on MCUs that have it. Some board configs also set it. | < 2025.12 |
USE_SPI_DEVICE_5 | STM32H7, STM32N6, X32, GD32H757 | Turns on SPI bus 5 on MCUs that have it. | < 2025.12 |
USE_SPI_DEVICE_6 | STM32H7, STM32N6, X32 | Turns on SPI bus 6 on MCUs that have it. Some board configs also set it. | < 2025.12 |
USE_SPI_DEVICE_7 | X32M7B | Turns on SPI bus 7 on the X32M7B MCU. | 2026.6 |
USE_SPI_DMA_ENABLE_EARLY | STM32F4, STM32F7, APM32F4 | Starts SPI DMA early in the init sequence, before the sensors are found. | < 2025.12 |
USE_SPI_DMA_ENABLE_LATE | STM32H7, STM32G4, STM32H5, STM32N6, AT32, ESP32, RP2350 and others | Starts SPI DMA late in the init sequence, after the sensors are found. | < 2025.12 |
USE_STDPERIPH_DRIVER | AT32 and GD32 | Selects the vendor standard peripheral library in the AT32 and GD32 device headers. | < 2025.12 |
USE_STM3210C_EVAL | Never set (ST vendor USB code) | Selects the STM3210C evaluation board strings in the ST USB mass storage descriptor code. | < 2025.12 |
USE_TIMER_AF | Platform | Marks MCUs that use alternate function numbers for timer pin mapping. | < 2025.12 |
USE_TIMER_MGMT | Platform | Adds run time timer pin assignment with the CLI timer command. common_post.h removes it when USE_DMA_SPEC is not set. | < 2025.12 |
USE_TIMER_UP_CONFIG | STM32H7, STM32G4, STM32H5, STM32N6, X32 | Adds the timer update DMA configuration with the CLI dma command. | < 2025.12 |
USE_TX_IRQ_HANDLER | STM32F4, STM32F7, GD32F4, APM32F4, X32 | Uses an interrupt handler for SPI transmit on some MCU families. | < 2025.12 |
USE_UART0 | RP2350, GD32H757, ESP32 family | Adds hardware serial port UART0 on MCUs that number their UARTs from 0. | 2025.12 |
USE_UART1 | All MCU families | Adds hardware serial port UART1 on MCUs that have it. | < 2025.12 |
USE_UART10 | STM32H730, X32M7B | Adds hardware serial port UART10 on MCUs that have it. | < 2025.12 |
USE_UART11 | X32M7B | Adds hardware serial port UART11 on MCUs that have it. | 2026.6 |
USE_UART12 | X32M7B | Adds hardware serial port UART12 on MCUs that have it. | 2026.6 |
USE_UART13 | X32M7B | Adds hardware serial port UART13 on MCUs that have it. | 2026.6 |
USE_UART14 | X32M7B | Adds hardware serial port UART14 on MCUs that have it. | 2026.6 |
USE_UART15 | X32M7B | Adds hardware serial port UART15 on MCUs that have it. | 2026.6 |
USE_UART2 | All MCU families | Adds hardware serial port UART2 on MCUs that have it. | < 2025.12 |
USE_UART3 | All MCU families | Adds hardware serial port UART3 on MCUs that have it. The NUCLEOH563ZI board config also sets it. | < 2025.12 |
USE_UART4 | MCU families with UART4 | Adds hardware serial port UART4 on MCUs that have it. | < 2025.12 |
USE_UART5 | MCU families with UART5 | Adds hardware serial port UART5 on MCUs that have it. | < 2025.12 |
USE_UART6 | MCU families with UART6 | Adds hardware serial port UART6 on MCUs that have it. | < 2025.12 |
USE_UART7 | STM32H5, STM32H7, X32M7 | Adds hardware serial port UART7 on MCUs that have it. | < 2025.12 |
USE_UART8 | STM32H5, STM32H7, X32M7 and others | Adds hardware serial port UART8 on MCUs that have it. | < 2025.12 |
USE_UART9 | STM32H72x/H73x, X32M7B | Adds hardware serial port UART9 on MCUs that have it. | < 2025.12 |
USE_ULPI_PHY | STM32 | Selects the external ULPI USB PHY in the STM32F4 and GD32H7 USB stacks. | < 2025.12 |
USE_USBHS0 | GD32H7 | Selects the USBHS0 controller in the GD32H7 USB stack. | 2026.12 |
USE_USBHS1 | X32M7B | Selects the USBHS1 controller in the X32M7 USB stack. | 2026.6 |
USE_USBHS2 | Never set | Selects the USBHS2 controller in the X32M7 USB stack instead of USBHS1. No target defines it. USE_USBHS1 and USE_USBHS2 cannot both be set for USB MSC. | 2026.6 |
USE_USB_CDC_HID | STM32F4, F7, H7, G4, GD32F4, GD32H7 | Adds a USB HID joystick device next to the virtual COM port, so a simulator can read the RC channels. common_post.h removes it when USE_VCP is not set. | < 2025.12 |
USE_USB_CLOCK_PLL3 | Never set | Clocks the STM32H7 USB peripheral from PLL3 instead of HSI48 with CRS. The dividers support HSE at 24 MHz only. No target or board config defines it at present. | 2026.6 |
USE_USB_DETECT | Most STM32, AT32, APM32, GD32 and X32 targets | Adds USB cable detection, so the firmware knows when a USB host is connected. The ARK_FPV board config also sets it. | < 2025.12 |
USE_USB_FS | STM32, APM32, GD32H7 | Selects the USB full speed core in the vendor USB stack. | < 2025.12 |
USE_USB_HS | Never set | Selects the USB high speed core in the vendor USB stack. Present only as commented-out defines in the APM32 and GD32H7 files. | < 2025.12 |
USE_USB_HS_IN_FS | X32M7 | Runs the USB high speed core in full speed mode in the STM32F7 and X32M7 USB stacks. | < 2025.12 |
USE_USB_HS_IN_HS | Never set | Runs the USB high speed core in high speed mode in the X32M7 USB stack. | 2026.6 |
USE_USB_ID | STM32H730 | Configures the USB OTG ID pin on STM32F7 and STM32H7. Three SPRacing H7 board configs also set it. | < 2025.12 |
USE_USB_MSC | STM32F4, F7, H7, G4, C5, GD32, RP2350, X32M7 | Adds USB mass storage mode, so a computer can read the blackbox flash or SD card over USB. common_post.h removes it when USE_VCP is not set. | < 2025.12 |
USE_USB_OTG_FS | STM32 | Selects the USB OTG full speed core in the STM32F4 USB stack. | < 2025.12 |
USE_USB_OTG_HS | Never set | Selects the USB OTG high speed core in the STM32F4 USB stack. Present only as a commented-out define in STM32. | < 2025.12 |
USE_VCP | Most MCU targets, serial_post.h | Adds the USB virtual COM port that the app uses to connect to the flight controller. Some development board configs also set it. | < 2025.12 |
Development and Test
These flags are for debug, test and the simulator (SITL) only. Do not use them in flight firmware.
| Flag | Set by | Description | Introduced |
|---|---|---|---|
USE_BLACKBOX_VIRTUAL | SITL | Adds a virtual Blackbox device that writes log files to the host file system in SITL. | 2025.12 |
USE_CLI_DEBUG_PRINT | Never set (developer only) | Adds debug print functions that write text to the CLI. The build shows a warning. Do not use in production firmware. | < 2025.12 |
USE_CRS_INTERRUPTS | Never set (developer only) | Turns on the STM32H7 clock recovery system (CRS) interrupts so that a developer can monitor USB clock sync. STM32H7 only. | < 2025.12 |
USE_DEBUG_PIN | Never set (developer only) | Adds GPIO debug pins that a developer can toggle to measure timing with a logic analyser. The target must define dbgPins and DEBUG_PIN_COUNT. | < 2025.12 |
USE_F7_CHECK_TX | Never set | Starts the serial transmit check on STM32F7. Without this flag, F7 builds skip the check because it is broken on F7. Use it only to test a fix for the F7 serial transmit check. | 2025.12 |
USE_FLASH_TEST_PRBS | Never set | Adds a flash write test that writes a pseudo-random sequence to the flash and checks it. Use it only to test flash drivers. It changes Blackbox data when the test is active. | 2025.12 |
USE_FULL_ASSERT | Never set (vendor library option) | Turns on parameter checks (assert_param) in the STM32 HAL and APM32 vendor libraries. Use it only for debug. It makes the firmware larger and slower. | < 2025.12 |
USE_MAIN_ARGS | SITL | Passes the command line arguments to main() for the SITL simulator. | 2025.12 |
USE_MSP_CLI_COMMAND | SITL | Adds the MSP2_CLI_COMMAND message, which runs CLI commands through MSP. Only SITL sets it. The Betaflight App does not use it. | 2026.12 |
USE_OCTOSPI_EXPERIMENTAL | Never set | Lets the flash driver start OCTOSPI flash when memory-mapped mode is not on at boot. This code is not tested. | < 2025.12 |
USE_OLED_GPS_DEBUG_PAGE_ONLY | Never set | Makes the OLED dashboard show only the GPS page and stop page cycling. | < 2025.12 |
USE_OVERRIDE_SOFTSERIAL_BAUDRATE | Never set | Removes the 19200 baud limit on soft serial ports. Soft serial is not reliable above 19200 baud. | < 2025.12 |
USE_SMARTAUDIO_DPRINTF | Never set | Adds debug print output to the SmartAudio VTX driver. The output goes to a serial port. | < 2025.12 |
USE_STACK_CHECK | Never set | Adds a task that measures the used stack size. The CLI status command shows the result. For development only. SITL removes it. | < 2025.12 |
USE_TIMEOUT_4WAYIF | Never set | Adds a read timeout to the BLHeli 4-way ESC interface. Without it, the interface waits with no limit for each byte. | < 2025.12 |
USE_TIMER_MAP_PRINT | Board config.h (development boards) | Adds the timer map CLI command. It shows the timer and pin map. Two development board configs set it. | < 2025.12 |
USE_VIRTUAL_ACC | SITL | Adds a virtual accelerometer that the simulator feeds. The STM32N657DK development board configs also set it. | < 2025.12 |
USE_VIRTUAL_BARO | SITL | Adds a virtual barometer that the simulator feeds. The STM32N657DK development board configs also set it. | < 2025.12 |
USE_VIRTUAL_ESC | Never set | Replaces the BLHeli bootloader link with a simulated ESC flash for tests of the 4way interface. Do not use on a real aircraft. It stops the real ESC bootloader link. | < 2025.12 |
USE_VIRTUAL_GPS | SITL | Adds a virtual GPS that the simulator feeds. | 2025.12 |
USE_VIRTUAL_GYRO | SITL | Adds a virtual gyro that the simulator feeds. The STM32N657DK development board configs also set it. | < 2025.12 |
USE_VIRTUAL_LED | SITL | Replaces the status LED hardware with a virtual LED for the simulator. | < 2025.12 |
USE_VIRTUAL_MAG | SITL | Adds a virtual magnetometer that the simulator feeds. The STM32N657DK development board configs also set it. | < 2025.12 |
Legacy
The source code contains these flags, but no build sets them. The code that they control is not maintained. Do not use them.
| Flag | Set by | Description | Introduced |
|---|---|---|---|
USE_64BIT_TIME | Never set | Changes the microsecond time type (timeUs_t) from 32 bits to 64 bits. No target, platform or board defines it. Code comments say SITL and PICO could use it in future, but the change is not complete. | < 2025.12 |
USE_ACC_MPU6000 | Board config.h (one board, no effect) | Names the InvenSense MPU6000 accelerometer on the I2C bus. No driver code uses it. Only the accelerometer presence check in common_post.h reads it. The MPU6000 driver uses USE_ACC_SPI_MPU6000. One board config sets it, but it adds nothing. | < 2025.12 |
USE_ADC3_DIRECT_HAL_INIT | Never set | Adds direct HAL clock setup for ADC3 on STM32H7, as a possible fix for ADC3 self calibration faults. No target or board defines it. The code is an unverified test path. | < 2025.12 |
USE_ADC_INTERRUPT | Never set | Adds a DMA interrupt for the ADC on STM32G4 and STM32H7. No target or board defines it. The ADC driver does not use an interrupt, and the code says to skip it. | < 2025.12 |
USE_BIND_ADDRESS_FOR_DATA_STATE | Never set | Makes the NRF24 iNav receiver protocol use the bind address in the data state. Only a commented-out debug define in rx/nrf24_inav.c. The NRF24 iNav receiver code is not built for any board. | < 2025.12 |
USE_BST | Never set | Adds the TBS BST (Black Sheep Telemetry) I2C bus master task. The i2c_bst driver is not in the source tree. The flag does not compile. | < 2025.12 |
USE_CCM_CODE | Never set | Copies functions marked CCM_CODE into the STM32 core-coupled memory at start-up. No code uses the CCM_CODE section. No target or board sets the flag. | < 2025.12 |
USE_EMFAT_README | Never set | Adds a placeholder readme.txt file to the emulated USB mass storage drive. No build sets it. The file contains only placeholder text and gives no useful function. | < 2025.12 |
USE_GYRO_EXTI | AT32F435G, AT32F435M, Board config.h | Marker flag set by the AT32F435 platform headers and some board configs. No source file reads it, so it has no effect. Gyro interrupt support comes from USE_EXTI and the gyro EXTI pin. This flag does not change the build. | < 2025.12 |
USE_HAL_PCD_REGISTER_CALLBACK | Never set | Misspelt form of USE_HAL_PCD_REGISTER_CALLBACKS in the STM32G4 USB device code. No file defines it, so the #if test is always false. The STM32G4 HAL sets USE_HAL_PCD_REGISTER_CALLBACKS to 0, so the build behaviour does not change. | < 2025.12 |
USE_HARDWARE_REVISION_DETECTION | Never set | Adds code that reads the board hardware revision at start-up and reports it through MSP and the OSD. The hardware_revision.h header is not in the source tree. The build fails if you set this flag. | < 2025.12 |
USE_MCO_OUTPUTS | Never set | Starts the MCO clock outputs during STM32H7 system start-up. No build path or board sets it. Use USE_MCO for clock output. | < 2025.12 |
USE_MPU9250_MAG | Never set | Turns on the I2C bypass of the MPU-6500 family, so the FC can read the MPU-9250 internal magnetometer directly. No build path or board sets it. The MPU925X_AK8963 compass driver sets bypass mode itself. | < 2025.12 |
USE_MSP_CURRENT_METER | Never set | Adds a current meter that requests current data from another device through MSP_ANALOG. No build path or board sets it. No supported device supplies this data. | < 2025.12 |
USE_MSP_PUSH_OVER_VCP | Never set | Lets the FC push MSP messages on the USB VCP port. No build path or board sets it. The code skips the VCP port to prevent problems with a closed USB port. | < 2025.12 |
USE_MULTI_GYRO | Never set | Old flag for more than one gyro. No firmware code reads it now. Multi-gyro support does not use this flag. Platform headers only undefine it. One board config still sets it, with no effect. | < 2025.12 |
USE_PWM | Never set | Old flag that adds the parallel PWM receiver feature to the feature mask. No build sets it. It seems to be an old name for USE_RX_PWM. Because of this, FEATURE_RX_PARALLEL_PWM is not in the allowed feature mask. | < 2025.12 |
USE_QUAD_MIXER_ONLY | Never set | Limits the build to the quad mixer, four motors and one servo, to save flash. No board or build path sets it. It removes functions and does not add them. | < 2025.12 |
USE_RCC | Never set | Old flag for the MCU reset and clock control driver. No code reads it now. ESP32 and RP2350 platform headers only undefine it. | 2025.12 |
USE_RX_CX10 | Never set | Adds the Cheerson CX10 protocol for an NRF24L01 SPI receiver. No build path or board sets it. Only the STM32F446 target.mk lists its source file. | < 2025.12 |
USE_RX_H8_3D | Never set | Adds the JJRC H8 3D protocol for an NRF24L01 SPI receiver. No build path or board sets it. Only the STM32F446 target.mk lists its source file. | < 2025.12 |
USE_RX_INAV | Never set | Adds the INAV NRF24 protocol for an NRF24L01 SPI receiver. No build path or board sets it. Only the STM32F446 target.mk lists its source file. | < 2025.12 |
USE_RX_KN | Never set | Adds the KN protocol for an NRF24L01 SPI receiver. No build path or board sets it. No target.mk lists its source file. | < 2025.12 |
USE_RX_NRF24 | Never set | Adds the driver for the Nordic NRF24L01 SPI receiver chip. No build path or board sets it. Only the STM32F446 target.mk lists its source file. | < 2025.12 |
USE_RX_SYMA | Never set | Adds the Syma X5C and X8 protocols for an NRF24L01 SPI receiver. No build path or board sets it. Only the STM32F446 target.mk lists its source file. | < 2025.12 |
USE_RX_V202 | Never set | Adds the WLtoys V202 protocol for an NRF24L01 SPI receiver. No build path or board sets it. Only the STM32F446 target.mk lists its source file. | < 2025.12 |
USE_RX_XN297 | common_post.h when USE_RX_CX10 | Adds the XN297 radio emulation used by the CX10 NRF24 protocol. USE_RX_CX10 is never set, so this flag is never set. SITL excludes its source file. | < 2025.12 |
USE_SERIALRX_TARGET_CUSTOM | Never set | Adds a target-specific custom serial receiver protocol. No code defines targetCustomSerialRxInit(), so the build fails at link time. No target or board uses it. | < 2025.12 |
USE_SERIAL_RX | Never set | Guard in common_pre.h that stops the default serial RX protocol list in local builds. No target, board or build server sets it. It is probably a typo of USE_SERIALRX. Use the radio protocol pick list. | < 2025.12 |
USE_SOFT_I2C | Never set | Replaces the hardware I2C driver with a bit-bang I2C driver. No build path or board sets it. The driver needs SOFT_I2C_SCL and SOFT_I2C_SDA pins at compile time, and no board config gives them. | 2025.12 |
USE_SPEKTRUM | Never set | Old flag name for Spektrum support. Only an #undef in the RP2350 target header uses it. No code depends on it. | 2025.12 |
USE_SPEKTRUM_REGION_CODES | Never set | Adds Spektrum VTX region codes to VTX control and telemetry. No build path or board sets it. The code in spektrum_vtx_control.c has a syntax error and does not compile. | < 2025.12 |
USE_SRXL | Never set | Old flag name for Spektrum SRXL support. Only #undef lines in ESP32 and RP2350 target headers use it. No code depends on it. | 2025.12 |
USE_TARGET_CONFIG | Never set | Calls a target-specific targetConfiguration() function at start and on config reset. No source file defines targetConfiguration(), so the build fails to link. Board settings now go in the board config.h. | < 2025.12 |
USE_TELEMETRY_NRF24_LTM | Never set | Sends LTM telemetry in the acknowledge packets of the NRF24 iNav receiver protocol. No build path sets USE_RX_INAV, so this code never compiles. | < 2025.12 |
USE_UART1_RX_DMA | Never set | Adds a fixed RX DMA stream to the UART1 hardware table in the STM32F4, STM32F7 and APM32F4 UART drivers. No target or board config defines it. UART DMA comes from the dma CLI option at run time instead. | < 2025.12 |
USE_UART1_TX_DMA | Never set | Adds a fixed TX DMA stream to the UART1 hardware table in the STM32F4, STM32F7 and APM32F4 UART drivers. No target or board config defines it. UART DMA comes from the dma CLI option at run time instead. | < 2025.12 |
USE_UART2_RX_DMA | Never set | Adds a fixed RX DMA stream to the UART2 hardware table in the STM32F4, STM32F7 and APM32F4 UART drivers. No target or board config defines it. UART DMA comes from the dma CLI option at run time instead. | < 2025.12 |
USE_UART2_TX_DMA | Never set | Adds a fixed TX DMA stream to the UART2 hardware table in the STM32F4, STM32F7 and APM32F4 UART drivers. No target or board config defines it. UART DMA comes from the dma CLI option at run time instead. | < 2025.12 |
USE_UART3_RX_DMA | Never set | Adds a fixed RX DMA stream to the UART3 hardware table in the STM32F4, STM32F7 and APM32F4 UART drivers. No target or board config defines it. UART DMA comes from the dma CLI option at run time instead. | < 2025.12 |
USE_UART3_TX_DMA | Never set | Adds a fixed TX DMA stream to the UART3 hardware table in the STM32F4, STM32F7 and APM32F4 UART drivers. No target or board config defines it. UART DMA comes from the dma CLI option at run time instead. | < 2025.12 |
USE_UART4_RX_DMA | Never set | Adds a fixed RX DMA stream to the UART4 hardware table in the STM32F4, STM32F7 and APM32F4 UART drivers. No target or board config defines it. UART DMA comes from the dma CLI option at run time instead. | < 2025.12 |
USE_UART4_TX_DMA | Never set | Adds a fixed TX DMA stream to the UART4 hardware table in the STM32F4, STM32F7 and APM32F4 UART drivers. No target or board config defines it. UART DMA comes from the dma CLI option at run time instead. | < 2025.12 |
USE_UART5_RX_DMA | Never set | Adds a fixed RX DMA stream to the UART5 hardware table in the STM32F4, STM32F7 and APM32F4 UART drivers. No target or board config defines it. UART DMA comes from the dma CLI option at run time instead. | < 2025.12 |
USE_UART5_TX_DMA | Never set | Adds a fixed TX DMA stream to the UART5 hardware table in the STM32F4, STM32F7 and APM32F4 UART drivers. No target or board config defines it. UART DMA comes from the dma CLI option at run time instead. | < 2025.12 |
USE_UART6_RX_DMA | Never set | Adds a fixed RX DMA stream to the UART6 hardware table in the STM32F4, STM32F7 and APM32F4 UART drivers. No target or board config defines it. UART DMA comes from the dma CLI option at run time instead. | < 2025.12 |
USE_UART6_TX_DMA | Never set | Adds a fixed TX DMA stream to the UART6 hardware table in the STM32F4, STM32F7 and APM32F4 UART drivers. No target or board config defines it. UART DMA comes from the dma CLI option at run time instead. | < 2025.12 |
USE_UART7_RX_DMA | Never set | Adds a fixed RX DMA stream to the UART7 hardware table in the STM32F7 UART drivers. No target or board config defines it. UART DMA comes from the dma CLI option at run time instead. | < 2025.12 |
USE_UART7_TX_DMA | Never set | Adds a fixed TX DMA stream to the UART7 hardware table in the STM32F7 UART drivers. No target or board config defines it. UART DMA comes from the dma CLI option at run time instead. | < 2025.12 |
USE_UART8_RX_DMA | Never set | Adds a fixed RX DMA stream to the UART8 hardware table in the STM32F7 UART drivers. No target or board config defines it. UART DMA comes from the dma CLI option at run time instead. | < 2025.12 |
USE_UART8_TX_DMA | Never set | Adds a fixed TX DMA stream to the UART8 hardware table in the STM32F7 UART drivers. No target or board config defines it. UART DMA comes from the dma CLI option at run time instead. | < 2025.12 |
USE_USART6 | Never set | Adds the UART6 DMA option entry to the serial UART parameter group table. This is a misspelt form of USE_UART6. No build defines it, so the table never gets a UART6 entry. | 2025.12 |
USE_USART7 | Never set | Adds the UART7 DMA option entry to the serial UART parameter group table. This is a misspelt form of USE_UART7. No build defines it, so the table never gets a UART7 entry. | 2025.12 |
USE_USART8 | Never set | Adds the UART8 DMA option entry to the serial UART parameter group table. This is a misspelt form of USE_UART8. No build defines it, so the table never gets a UART8 entry. | 2025.12 |
USE_VTX_COMMON_FREQ_API | Never set | Sends direct VTX frequencies from Spektrum VTX control instead of band and channel. The define is commented out because some VTX devices do not support the common frequency API. | < 2025.12 |
Config Defines Without a USE_ Prefix
A small number of build options are not feature switches and therefore do not carry the USE_ prefix, so they do not appear in the generated list above. These are set in a board's config.h and take a numeric value:
| Define | Values | Purpose |
|---|---|---|
ENABLE_BMI270_ALIGN_AS_ICM | 0 (default) / 1 | Rotates BMI270 raw gyro and accelerometer data CW90 so the part presents ICM-42688-P axes, for boards that second-source both chips on one footprint. See the manufacturer design guidelines. |