Skip to content

Compilation Options

This page documents the CMake options available when building EdgeTX firmware. Most options have sensible defaults set by the target's CMakeLists.txt — you only need to override them when you have a specific reason to.

Target Selection

These are the most important options to set, as they determine which radio you are building for.

PCB

Selects the radio target.

Value Radio
X7 FrSky Taranis Q X7 / X7S and Jumper / RadioMaster variants (see PCBREV)
X9LITE FrSky Taranis X9 Lite
X9LITES FrSky Taranis X9 Lite S
XLITE FrSky X-Lite
XLITES FrSky X-Lite S
X9D FrSky Taranis X9D
X9D+ FrSky Taranis X9D+ (see PCBREV)
X9E FrSky Taranis X9E
X10 FrSky Horus X10 / X10S and RadioMaster / Jumper variants (see PCBREV)
X12S FrSky Horus X12S
PL18 Flysky PL18 and variants (see PCBREV)
TX15 RadioMaster TX15
TX16SMK3 RadioMaster TX16S Mark III
T15PRO Jumper T15 Pro
ST16 Siyi ST16
PA01 FrSky PA01

PCBREV

Selects a specific variant within a PCB target. Valid values depend on the selected PCB:

Value Radio
TX12 RadioMaster TX12
TX12MK2 RadioMaster TX12 Mark II
ZORRO RadioMaster Zorro
BOXER RadioMaster Boxer
MT12 RadioMaster MT12
GX12 RadioMaster GX12
POCKET RadioMaster Pocket
T8 RadioMaster T8
COMMANDO8 RadioMaster Commando 8
T12 Jumper T12
T12MAX Jumper T12 Max
TPRO Jumper T-Pro
TPROV2 Jumper T-Pro V2
TPROS Jumper T-Pro S
T14 Jumper T14
T20 Jumper T20
T20V2 Jumper T20 V2
TLITE Jumper T-Lite
LR3PRO Jumper LR3 Pro
BUMBLEBEE Jumper Bumblebee
ACCESS FrSky Q X7 Access
V12 FrSky Q X7 V1.2
V14 FrSky Q X7 V1.4
Value Radio
2014 X9D+ (original, default)
2019 X9D+ 2019
Value Radio
STD FrSky Horus X10 (default)
EXPRESS FrSky Horus X10 Express
T16 RadioMaster TX16S
TX16S RadioMaster TX16S Mark II
F16 Flyzone F16
V16 VolantexRC V16
T18 Jumper T18
T15 Jumper T15
Value Radio
PL18 Flysky PL18 (default)
PL18EV Flysky PL18EV / Paladin EV
PL18U Flysky PL18U
EL18 Flysky EL18
NV14 Flysky NV14
NB4P Flysky NB4+

TRANSLATIONS

Firmware language. Default: EN

Valid values: CN CZ DA DE EN ES FI FR HE HU IT JP KO NL PL PT RU SE SK TW UA


Feature Options

These options enable or disable firmware features. Defaults are typically set by the target, so you only need to override them if you want to add or remove a feature for a specific build.

Option Default Description
AUTOSOURCE ON Automatic source detection in menus
AUTOSWITCH ON Automatic switch detection in menus
BLUETOOTH varies Bluetooth module support
BOOTLOADER ON Include bootloader
CURVES ON Curves support
DANGEROUS_MODULE_FUNCTIONS OFF Enable RangeCheck / Bind / Module OFF functions
DBLKEYS ON Double key shortcuts
DISK_CACHE ON SD card disk cache (color screen targets)
FAI OFF Competition mode — disables telemetry
FLIGHT_MODES ON Flight modes
FLYSKY_GIMBAL varies Flysky serial gimbal support
GVARS ON Global variables
GUI ON GUI
HELI ON Helicopter mixer menu
INTERNAL_GPS varies Internal GPS support
KCX_BTAUDIO OFF KCX BT audio emitter support
LUA ON Lua scripting
LUA_COMPILER ON Pre-compile and cache Lua scripts on the radio
LUA_MIXER ON Lua mixer / model scripts
MODULE_PROTOCOL_D8 ON FrSky D8 module protocol
MODULE_PROTOCOL_FCC ON FCC module protocol
MODULE_PROTOCOL_FLEX OFF Non-certified FLEX module protocol
MODULE_PROTOCOL_LBT ON EU / LBT module protocol
MODULE_SIZE_STD ON Standard size external module bay
MULTIMODULE ON DIY Multiprotocol TX Module
OVERRIDE_CHANNEL_FUNCTION ON OverrideChannel function
PPM_CENTER_ADJUSTABLE ON PPM centre adjustable
PPM_LIMITS_SYMETRICAL OFF PPM limits symmetrical
RAS ON RAS (SWR) measurement
SPACEMOUSE OFF SpaceMouse support (Horus only)
TEMPLATES OFF Model templates menu
UNEXPECTED_SHUTDOWN ON Unexpected shutdown warning screen
USB_SERIAL ON USB serial (CDC)
WATCHDOG ON Hardware watchdog

Hardware Configuration

These string options configure hardware behaviour and are normally set by the target.

PWR_BUTTON

How the power button works. Default is target-specific.

Value Description
PRESS Momentary press to power on/off (most radios)
SWITCH Toggle switch

PPM_UNIT

PPM display unit. Default is target-specific.

Value Description
PERCENT_PREC1 Percentage with one decimal place (e.g. 100.0%)
PERCENT_PREC0 Percentage with no decimal places (e.g. 100%)
US Microseconds

DEFAULT_MODE

Default sticks mode. Leave blank to use the firmware default.

Value Description
`` Use firmware default
1 Mode 1
2 Mode 2
3 Mode 3
4 Mode 4

INTERNAL_GPS_BAUDRATE

Baud rate for the internal GPS, where supported. Default: 9600

LUA_SCRIPT_LOAD_MODE

Controls how Lua scripts are loaded and compiled. Leave blank to use the firmware default (bt on radio, T on simulator/debug builds). Accepts a combination of the following flags:

Flag Description
b Load binary (pre-compiled) scripts
t Load text scripts
T Pre-compile scripts
x Execute on load
c Compile only
d Decompress

Controls the verbosity of popup notifications. Default: 2 (set to 3 for FRSKY_RELEASE builds).


Debug & Tracing

These options are for development and debugging. All default to OFF.

Option Description
ASTERISK Show asterisk icon to identify test-only firmware
DEBUG_SEGGER_RTT Route debug output to Segger RTT
DEBUG_WINDOWS Trace UI window activity
DEBUG_YAML Trace YAML parser activity
DEBUG_LABELS Trace label activity
JITTER_MEASURE Enable ADC jitter measurement
SEMIHOSTING Enable debugger semihosting
TEST_BUILD_WARNING Show a warning banner on test builds
TRACE_AUDIO Trace audio subsystem
TRACE_LUA_INTERNALS Trace Lua VM internals
UI_PERF_MONITOR Overlay frame rate and CPU usage on screen
WARNINGS_AS_ERRORS Treat compiler warnings as errors (-Werror)

Simulator Options

Option Default Description
SIMU_DISKIO OFF Enable disk I/O simulation using a sdcard.image file
SIMU_LUA_COMPILER ON Pre-compile and cache Lua scripts in the simulator
SIMU_TARGET ON Build the simulator target
DISABLE_COMPANION OFF Skip building Companion and simulators

Release Build Options

These options are used to produce official manufacturer-specific firmware releases and are not needed for general development builds.

Option Manufacturer
FRSKY_RELEASE FrSky (also sets POPUP_LEVEL=3)
IMRC_RELEASE IMRC
TBS_RELEASE Team BlackSheep
JUMPER_RELEASE Jumper
RADIOMASTER_RELEASE RadioMaster
RADIOMASTER_RTF_RELEASE RadioMaster RTF
IFLIGHT_RELEASE iFlight
BETAFPV_RELEASE BetaFPV

Compiler & Build Flags

Option Default Description
OPT s Optimisation level (0, 1, 2, s)
FIRMWARE_C_FLAGS `` Additional C compiler flags
FIRMWARE_CXX_FLAGS `` Additional C++ compiler flags
WARNINGS_AS_ERRORS OFF Treat all compiler warnings as errors
VERBOSE_CMAKELISTS OFF Show extra information when processing CMake files