docs: fix callouts, wiki references, and improve hardware pages (#7204)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Peter Feerick
2026-03-24 09:03:22 +10:00
committed by GitHub
co-authored by Claude Sonnet 4.6
parent 248060438a
commit 6ce88fc231
22 changed files with 418 additions and 398 deletions
+248 -293
View File
@@ -1,302 +1,257 @@
# Compilation Options
!!! note "Work in Progress"
This page is a work in progress. The raw option list below is an initial dump of all compile-time defines. It still needs to be sorted into categories, have details added for options like `PCBREV` (with all possible values), and be converted into tables.
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`:
=== "X7"
| 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 |
=== "X9D+"
| Value | Radio |
|-------|-------|
| `2014` | X9D+ (original, default) |
| `2019` | X9D+ 2019 |
=== "X10"
| 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 |
=== "PL18"
| 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 |
### `POPUP_LEVEL`
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 |
**TODO:**
- [ ] Sort into categories — PCB/TX model, hardware-specific, handy default setting flags, etc.
- [ ] Add details for options like `PCBREV` with all possible values
- [ ] Convert to a set of tables
- [x] Clear out system-specific / autogenerated flags
---
Initial dump of all the compile time defines / options (`cmake -LAH` output)
## Release Build Options
```
// Support for AFHDS2
AFHDS2:BOOL=OFF
These options are used to produce official manufacturer-specific firmware releases and are not needed for general development builds.
// Support for AFHDS3
AFHDS3:BOOL=ON
| 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 |
// Allow nightly builds download / update
ALLOW_NIGHTLY_BUILDS:BOOL=OFF
---
// Enable asterisk icon (test only firmware)
ASTERISK:BOOL=OFF
## Compiler & Build Flags
// Automatic source detection in menus
AUTOSOURCE:BOOL=ON
// Automatic switch detection in menus
AUTOSWITCH:BOOL=ON
// Support for bluetooth module
BLUETOOTH:BOOL=OFF
// Include Bootloader
BOOTLOADER:BOOL=ON
// Command Line Interface
CLI:BOOL=OFF
// Crossfire TX Module
CROSSFIRE:BOOL=ON
// Curves
CURVES:BOOL=ON
// Dangerous module functions (RangeCheck / Bind / Module OFF, etc.) available
DANGEROUS_MODULE_FUNCTIONS:BOOL=OFF
// Double Keys
DBLKEYS:BOOL=ON
// Debug mode
DEBUG:BOOL=Y
// Count interrupts
DEBUG_INTERRUPTS:BOOL=OFF
// Debug latency
DEBUG_LATENCY:BOOL=OFF
// Turn on debug output for storage import
DEBUG_STORAGE_IMPORT:BOOL=OFF
// Task switching statistics
DEBUG_TASKS:BOOL=OFF
// Time critical parts of the code
DEBUG_TIMERS:BOOL=OFF
// Debug Trace Screen
DEBUG_TRACE_BUFFER:BOOL=OFF
// Count individual USB interrupts
DEBUG_USB_INTERRUPTS:BOOL=OFF
// Turn on windows traces
DEBUG_WINDOWS:BOOL=OFF
// Default sticks mode
DEFAULT_MODE:STRING=
//
DEFAULT_TEMPLATE_SETUP:STRING=21
// Disable building companion and simulators
DISABLE_COMPANION:BOOL=OFF
// Enable SD card disk cache
DISK_CACHE:BOOL=ON
// DSM2 TX Module
DSM2:BOOL=ON
// Competition mode (no telemetry)
FAI:BOOL=OFF
// Support of old FAS prototypes (different resistors)
FAS_PROTOTYPE:BOOL=OFF
// Configure Firmware target (can be turned off for compiling Companion only)
FIRMWARE_TARGET:BOOL=ON
// Flight Modes
FLIGHT_MODES:BOOL=ON
// Enable FlySky Hall Sticks
FLYSKY_HALL_STICKS:BOOL=OFF
// Used to build FrSky released firmware
FRSKY_RELEASE:BOOL=OFF
// Reverse sticks for FrSky sticks
FRSKY_STICKS:BOOL=OFF
// Ghost TX Module
GHOST:BOOL=ON
// GUI enabled
GUI:BOOL=ON
// Global variables
GVARS:BOOL=ON
// Support for R9M 2019 hardware mod
HARDWARE_EXTERNAL_ACCESS_MOD:BOOL=OFF
// Allow multi trainer
HARDWARE_TRAINER_MULTI:BOOL=OFF
// Heli menu
HELI:BOOL=ON
// Used to build IMRC released firmware
IMRC_RELEASE:BOOL=OFF
// Support for internal ublox GPS
INTERNAL_GPS:BOOL=YES
// Baud rate for internal GPS
INTERNAL_GPS_BAUDRATE:STRING=9600
// Support for MULTI internal module
INTERNAL_MODULE_MULTI:BOOL=ON
// Enable ADC jitter measurement
JITTER_MEASURE:BOOL=OFF
// Bluetooth Logs on SD card
LOG_BLUETOOTH:BOOL=OFF
// Telemetry Logs on SD card
LOG_TELEMETRY:BOOL=OFF
// Enable LUA support
LUA:BOOL=ON
// Trace Lua memory (de)allocations to debug port (also needs DEBUG=YES NANO=NO)
LUA_ALLOCATOR_TRACER:BOOL=OFF
// Pre-compile and save Lua scripts
LUA_COMPILER:BOOL=ON
// Script loading mode and compilation flags [btTxcd] (see loadScript() API docs). Blank for default ('bt' on radio, 'T' on SIMU/DEBUG builds)
LUA_SCRIPT_LOAD_MODE:STRING=
// Add support for D8 modules
MODULE_PROTOCOL_D8:BOOL=ON
// Add support for FCC modules
MODULE_PROTOCOL_FCC:BOOL=ON
// Add support for non certified FLEX modules
MODULE_PROTOCOL_FLEX:BOOL=OFF
// Add support for EU/LBT modules
MODULE_PROTOCOL_LBT:BOOL=ON
// Standard size TX Module
MODULE_SIZE_STD:BOOL=ON
// DIY Multiprotocol TX Module (https://github.com/pascallanger/DIY-Multiprotocol-TX-Module)
MULTIMODULE:BOOL=ON
// Use nano newlib and binalloc
NANO:BOOL=OFF
// OverrideChannel function available
OVERRIDE_CHANNEL_FUNCTION:BOOL=ON
// Radio type, one of: X9LITE;X9LITES;X7;XLITE;XLITES;X9D;X9D+;X9E;X10;X12S;SKY9X;9XRPRO;AR9X;NV14
PCB:STRING=X10
// PCB Revision
PCBREV:STRING=TX16S
// Popup level
POPUP_LEVEL:STRING=2
// PPM TX Module
PPM:BOOL=ON
// PPM center adjustable
PPM_CENTER_ADJUSTABLE:BOOL=ON
// PPM limits symetrical
PPM_LIMITS_SYMETRICAL:BOOL=OFF
// PPM display unit (US/PERCENT_PREC1/PERCENT_PREC0)
PPM_UNIT:STRING=PERCENT_PREC1
// Pwr button type (PRESS/SWITCH)
PWR_BUTTON:STRING=PRESS
// PXX1 protocol support
PXX1:BOOL=ON
// PXX2 protocol support
PXX2:BOOL=OFF
// RAS (SWR) enabled
RAS:BOOL=ON
// SBUS TX Module
SBUS:BOOL=ON
// Enable debugger semihosting
SEMIHOSTING:BOOL=OFF
// Alternative simulator library search path
SIMULATOR_INSTALL_PREFIX:STRING=
// Enable disk IO simulation in simulator. Simulator will use FatFs module and simulated IO layer that uses "./sdcard.image" file as image of SD card. This file must contain whole SD card from first to last sector
SIMU_DISKIO:BOOL=OFF
// Pre-compile and save Lua scripts in simulator.
SIMU_LUA_COMPILER:BOOL=ON
// Configure libsimulator/simu targets (can be turned off for compiling Companion only)
SIMU_TARGET:BOOL=ON
// Splash (DEFAULT/OFF/FRSKY)
SPLASH:STRING=DEFAULT
// Use QTableWidget for grid layouts
TABLE_LAYOUT:BOOL=OFF
// Used to build TBS released firmware
TBS_RELEASE:BOOL=OFF
// Model templates menu
TEMPLATES:BOOL=OFF
// Warn this is a test build
TEST_BUILD_WARNING:BOOL=OFF
// Timers count (2 or 3)
TIMERS:STRING=3
// Traces audio enabled
TRACE_AUDIO:BOOL=OFF
// Traces FatFS enabled
TRACE_FATFS:BOOL=OFF
// Turn on traces for Lua internals
TRACE_LUA_INTERNALS:BOOL=OFF
// Traces SD enabled
TRACE_SD_CARD:BOOL=OFF
// Turn on traces in simpgmspace.cpp
TRACE_SIMPGMSPACE:BOOL=ON
// Radio language, one of: CZ;DE;EN;ES;FR;IT;PT;SK;SE;PL;HU;NL;CN;TW
TRANSLATIONS:STRING=EN
// Enable the Unexpected Shutdown screen
UNEXPECTED_SHUTDOWN:BOOL=ON
// Enable USB serial (CDC)
USB_SERIAL:BOOL=ON
// Show extra information while processing CMakeLists.txt files.
VERBOSE_CMAKELISTS:BOOL=OFF
// Treat any compiler warning as an error (adds -Werror flag).
WARNINGS_AS_ERRORS:BOOL=OFF
// Enable hardware Watchdog
WATCHDOG:BOOL=ON
// Draw bounding boxes around windows
WINDOWS_INSPECT_BORDERS:BOOL=OFF
// XJT TX Module
XJT:BOOL=ON
// Enable YAML storage
YAML_STORAGE:BOOL=OFF
```
| 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 |