Skip to main content

Parameter Group Reference

This page lists all Parameter Groups (PGs) registered in Betaflight firmware master. PGs are Betaflight's configuration storage system — each group maps a C struct to a persistent ID stored in EEPROM.

For the full rules on PG design and versioning see Parameter Groups.

info

This table is generated from firmware source by scripts/extract-pg-msp.js. To regenerate after a firmware update:

node scripts/extract-pg-msp.js --firmware-path <path-to-betaflight-repo>

Parameter Group Table

Generated from firmware commit: c925d4f68202d5882af011b3b33bb3afee9a54e3

IDNameStruct TypePG VersionSource File
1PG_FAILSAFE_CONFIGfailsafeConfig_t2src/main/flight/failsafe.c
2PG_BOARD_ALIGNMENTboardAlignment_t1src/main/sensors/boardalignment.c
3PG_GIMBAL_CONFIGgimbalConfig_t0src/main/flight/servos.c
4PG_MOTOR_MIXERmotorMixer_t0src/main/flight/mixer_init.c
5PG_BLACKBOX_CONFIGblackboxConfig_t4src/main/blackbox/blackbox.c
6PG_MOTOR_CONFIGmotorConfig_t3src/main/pg/motor.c
7PG_SENSOR_SELECTION_CONFIG
8PG_SENSOR_ALIGNMENT_CONFIG
9PG_SENSOR_TRIMS
10PG_GYRO_CONFIGgyroConfig_t10src/main/sensors/gyro.c
11PG_BATTERY_CONFIGbatteryConfig_t4src/main/sensors/battery.c
12PG_CONTROL_RATE_PROFILEScontrolRateConfig_t7src/main/fc/controlrate_profile.c
13PG_SERIAL_CONFIGserialConfig_t1src/main/io/serial.c
14PG_PID_PROFILEpidProfile_t11src/main/flight/pid.c
16PG_ARMING_CONFIGarmingConfig_t2src/main/fc/rc_controls.c
17PG_TRANSPONDER_CONFIGtransponderConfig_t0src/main/io/transponder_ir.c
18PG_SYSTEM_CONFIGsystemConfig_t4src/main/config/config.c
19PG_FEATURE_CONFIGfeatureConfig_t1src/main/config/feature.c
20PG_MIXER_CONFIGmixerConfig_t2src/main/flight/mixer_init.c
21PG_SERVO_MIXERservoMixer_t0src/main/flight/servos.c
22PG_IMU_CONFIGimuConfig_t3src/main/flight/imu.c
23PG_PROFILE_SELECTION
24PG_RX_CONFIGrxConfig_t4src/main/pg/rx.c
25PG_RC_CONTROLS_CONFIGrcControlsConfig_t1src/main/fc/rc_controls.c
26PG_MOTOR_3D_CONFIGflight3DConfig_t0src/main/fc/rc_controls.c
27PG_LED_STRIP_CONFIGledStripConfig_t3src/main/io/ledstrip.c
28PG_COLOR_CONFIG
29PG_AIRPLANE_CONFIG
30PG_GPS_CONFIGgpsConfig_t4src/main/pg/gps.c
31PG_TELEMETRY_CONFIGtelemetryConfig_t6src/main/telemetry/telemetry.c
32PG_FRSKY_TELEMETRY_CONFIG
33PG_HOTT_TELEMETRY_CONFIG
34PG_NAVIGATION_CONFIG
35PG_ACCELEROMETER_CONFIGaccelerometerConfig_t2src/main/sensors/acceleration_init.c
36PG_RATE_PROFILE_SELECTION
37PG_ADJUSTMENT_RANGE_CONFIGadjustmentRange_t2src/main/fc/rc_adjustments.c
38PG_BAROMETER_CONFIGbarometerConfig_t3src/main/sensors/barometer.c
39PG_THROTTLE_CORRECTION_CONFIGthrottleCorrectionConfig_t0src/main/fc/core.c
40PG_COMPASS_CONFIGcompassConfig_t4src/main/sensors/compass.c
41PG_MODE_ACTIVATION_PROFILEmodeActivationCondition_t5src/main/fc/rc_modes.c
42PG_SERVO_PARAMSservoParam_t0src/main/flight/servos.c
43PG_RX_FAILSAFE_CHANNEL_CONFIGrxFailsafeChannelConfig_t0src/main/rx/rx.c
44PG_RX_CHANNEL_RANGE_CONFIGrxChannelRangeConfig_t0src/main/rx/rx.c
45PG_MODE_COLOR_CONFIG
46PG_SPECIAL_COLOR_CONFIG
47PG_PILOT_CONFIGpilotConfig_t2src/main/pg/pilot.c
48PG_MSP_SERVER_CONFIG
49PG_VOLTAGE_METER_CONFIG
50PG_AMPERAGE_METER_CONFIG
51PG_DEBUG_CONFIG
52PG_SERVO_CONFIGservoConfig_t0src/main/flight/servos.c
53PG_IBUS_TELEMETRY_CONFIG
55PG_GPS_RESCUEgpsRescueConfig_t7src/main/pg/gps_rescue_multirotor.c
56PG_POSITIONpositionConfig_t7src/main/flight/position.c
57PG_VTX_IO_CONFIGvtxIOConfig_t0src/main/pg/vtx_io.c
58PG_GPS_LAP_TIMERgpsLapTimerConfig_t1src/main/pg/gps_lap_timer.c
59PG_ALTHOLD_CONFIGaltHoldConfig_t4src/main/pg/alt_hold_multirotor.c
60PG_AUTOPILOTautopilotConfig_t6src/main/pg/autopilot.c
61PG_POSHOLD_CONFIGposHoldConfig_t1src/main/pg/pos_hold_multirotor.c
100PG_DRIVER_PWM_RX_CONFIG
101PG_DRIVER_FLASHCHIP_CONFIG
256PG_CURRENT_SENSOR_ADC_CONFIGcurrentSensorADCConfig_t0src/main/sensors/current.c
257PG_CURRENT_SENSOR_VIRTUAL_CONFIGcurrentSensorVirtualConfig_t0src/main/sensors/current.c
258PG_VOLTAGE_SENSOR_ADC_CONFIGvoltageSensorADCConfig_t0src/main/sensors/voltage.c
259PG_VTX_SETTINGS_CONFIGvtxSettingsConfig_t1src/main/io/vtx.c
500PG_BETAFLIGHT_START
501PG_OSD_CONFIGosdConfig_t13src/main/osd/osd.c
502PG_BEEPER_CONFIGbeeperConfig_t3src/main/pg/beeper.c
503PG_BEEPER_DEV_CONFIGbeeperDevConfig_t0src/main/pg/beeper_dev.c
504PG_PID_CONFIGpidConfig_t4src/main/flight/pid.c
505PG_STATUS_LED_CONFIGstatusLedConfig_t0src/main/drivers/light_led.c
506PG_FLASH_CONFIGflashConfig_t0src/main/pg/flash.c
507PG_PPM_CONFIGppmConfig_t0src/main/pg/rx_pwm.c
508PG_PWM_CONFIGpwmConfig_t0src/main/pg/rx_pwm.c
509PG_SERIAL_PIN_CONFIGserialPinConfig_t0src/main/drivers/serial_pinconfig.c
510PG_ADC_CONFIGadcConfig_t0src/main/pg/adc.c
511PG_SDCARD_CONFIGsdcardConfig_t2src/main/pg/sdcard.c
512PG_DISPLAY_PORT_MSP_CONFIGdisplayPortProfile_t1src/main/pg/displayport_profiles.c
513PG_DISPLAY_PORT_MAX7456_CONFIGdisplayPortProfile_t0src/main/pg/displayport_profiles.c
514PG_VCD_CONFIGvcdProfile_t0src/main/pg/vcd.c
515PG_VTX_CONFIGvtxConfig_t1src/main/io/vtx_control.c
516PG_SONAR_CONFIGsonarConfig_t1src/main/sensors/rangefinder.c
517PG_ESC_SENSOR_CONFIGescSensorConfig_t0src/main/sensors/esc_sensor.c
518PG_I2C_CONFIGi2cConfig_t1src/main/pg/bus_i2c.c
519PG_DASHBOARD_CONFIGdashboardConfig_t0src/main/pg/dashboard.c
520PG_SPI_PIN_CONFIGspiPinConfig_t1src/main/pg/bus_spi.c
521PG_ESCSERIAL_CONFIGescSerialConfig_t0src/main/drivers/serial_escserial.c
522PG_CAMERA_CONTROL_CONFIGcameraControlConfig_t0src/main/drivers/camera_control.c
523PG_RX_CC2500_SPI_CONFIGrxCc2500SpiConfig_t2src/main/pg/rx_spi_cc2500.c
524PG_MAX7456_CONFIGmax7456Config_t0src/main/pg/max7456.c
525PG_FLYSKY_CONFIGflySkyConfig_t1src/main/rx/a7105_flysky.c
526PG_TIME_CONFIGtimeConfig_t0src/main/common/time.c
527PG_RANGEFINDER_CONFIGrangefinderConfig_t0src/main/sensors/rangefinder.c
528PG_TRICOPTER_CONFIGtricopterMixerConfig_t0src/main/flight/mixer_tricopter.c
529PG_PINIO_CONFIGpinioConfig_t0src/main/pg/pinio.c
530PG_PINIOBOX_CONFIGpinioBoxConfig_t1src/main/pg/piniobox.c
531PG_USB_CONFIGusbDev_t0src/main/pg/usb.c
532PG_SDIO_CONFIGsdioConfig_t0src/main/pg/sdio.c
533PG_DISPLAY_PORT_CRSF_CONFIG
534PG_TIMER_IO_CONFIGtimerIOConfig_t0src/main/pg/timerio.c
535PG_SPI_PREINIT_IPU_CONFIG
536PG_SPI_PREINIT_OPU_CONFIG
537PG_RX_SPI_CONFIGrxSpiConfig_t0src/main/pg/rx_spi.c
538PG_BOARD_CONFIGboardConfig_t0src/main/pg/board.c
539PG_RCDEVICE_CONFIGrcdeviceConfig_t0src/main/pg/rcdevice.c
540PG_GYRO_DEVICE_CONFIGgyroDeviceConfig_t1src/main/pg/gyrodev.c
541PG_MCO_CONFIGmcoConfig_t0src/main/pg/mco.c
542PG_RX_SPEKTRUM_SPI_CONFIGspektrumConfig_t0src/main/rx/cyrf6936_spektrum.c
543PG_SERIAL_UART_CONFIGserialUartConfig_t0src/main/pg/serial_uart.c
544PG_RPM_FILTER_CONFIGrpmFilterConfig_t6src/main/pg/rpm_filter.c
545PG_LED_STRIP_STATUS_MODE_CONFIGledStripStatusModeConfig_t0src/main/io/ledstrip.c
546PG_VTX_TABLE_CONFIGvtxTableConfig_t0src/main/pg/vtx_table.c
547PG_STATS_CONFIGstatsConfig_t4src/main/pg/stats.c
548PG_QUADSPI_CONFIGquadSpiConfig_t1src/main/pg/bus_quadspi.c
549PG_TIMER_UP_CONFIGtimerUpConfig_t0src/main/pg/timerup.c
550PG_SDIO_PIN_CONFIGsdioPinConfig_t0src/main/pg/sdio.c
551PG_PULLUP_CONFIGpinPullUpDownConfig_t0src/main/pg/pin_pull_up_down.c
552PG_PULLDOWN_CONFIGpinPullUpDownConfig_t0src/main/pg/pin_pull_up_down.c
553PG_MODE_ACTIVATION_CONFIGmodeActivationConfig_t0src/main/fc/rc_modes.c
554PG_DYN_NOTCH_CONFIGdynNotchConfig_t1src/main/pg/dyn_notch.c
555PG_RX_EXPRESSLRS_SPI_CONFIGrxExpressLrsSpiConfig_t0src/main/pg/rx_spi_expresslrs.c
556PG_SCHEDULER_CONFIGschedulerConfig_t2src/main/pg/scheduler.c
557PG_MSP_CONFIGmspConfig_t0src/main/pg/msp.c
559PG_GIMBAL_TRACK_CONFIGgimbalTrackConfig_t0src/main/pg/gimbal.c
560PG_OPTICALFLOW_CONFIGopticalflowConfig_t1src/main/sensors/opticalflow.c
561PG_BATTERY_PROFILESbatteryProfile_t1src/main/sensors/battery.c
561PG_DISPLAY_PORT_FBOSD_CONFIGdisplayPortProfile_t0src/main/pg/displayport_profiles.c
562PG_FLIGHT_PLAN_CONFIGflightPlanConfig_t0src/main/pg/flight_plan.c
563PG_CAN_PIN_CONFIGcanPinConfig_t0src/main/pg/can.c
564PG_CAN_CONFIGcanConfig_t0src/main/pg/can.c
565PG_DRONECAN_CONFIGdronecanConfig_t0src/main/pg/dronecan.c
2044PG_OSD_CUSTOM_TEXT_CONFIGosdCustomTextConfig_t0src/main/osd/osd_custom_text.c
2045PG_OSD_ELEMENT_CONFIGosdElementConfig_t3src/main/osd/osd.c
2046PG_OSD_VIDEO_CONFIG
2047PG_OSD_FONT_CONFIG
4093PG_RESERVED_FOR_TESTING_3
4094PG_RESERVED_FOR_TESTING_2
4095PG_RESERVED_FOR_TESTING_1

How to Add a New Parameter Group

Follow these steps when adding new persistent configuration to firmware:

1. Reserve a PG ID

Add a #define to src/main/pg/pg_ids.h. Choose a value in the appropriate range:

  • 1–255 — legacy Cleanflight/Betaflight core (avoid; range is mostly full)
  • 256–499 — Cleanflight v2 specific
  • 500–2044 — Betaflight specific (use this range for new groups)
  • 2045–4095 — OSD configuration
// In src/main/pg/pg_ids.h
#define PG_MY_NEW_CONFIG 562 // example only — choose an unallocated ID from the table above

2. Define the Struct

Add the struct type and its default values in your feature's header file:

// In src/main/feature/my_feature.h
typedef struct myNewConfig_s {
uint8_t someValue;
uint16_t anotherValue;
} myNewConfig_t;

PG_DECLARE(myNewConfig_t, myNewConfig)

3. Register the PG

Register the PG in the corresponding .c file using the appropriate macro:

// In src/main/feature/my_feature.c
#include "pg/pg.h"
#include "pg/pg_ids.h"

PG_REGISTER_WITH_RESET_TEMPLATE(myNewConfig_t, myNewConfig, PG_MY_NEW_CONFIG, 0);

static const myNewConfig_t pgResetTemplate_myNewConfig = {
.someValue = 42,
.anotherValue = 1000,
};

Use PG_REGISTER_WITH_RESET_FN if the defaults require runtime computation:

PG_REGISTER_WITH_RESET_FN(myNewConfig_t, myNewConfig, PG_MY_NEW_CONFIG, 0);

void pgResetFn_myNewConfig(myNewConfig_t *config) {
config->someValue = 42;
config->anotherValue = 1000;
}

4. Bump the PG Version on Breaking Changes

If you change the struct layout (add, remove, or reorder fields), increment the PG version:

PG_REGISTER_WITH_RESET_TEMPLATE(myNewConfig_t, myNewConfig, PG_MY_NEW_CONFIG, 1);
// ^ bumped from 0

Betaflight will reset the PG to defaults when the stored version does not match. For backwards-compatible additions (adding fields at the end), version bumping is optional but recommended.

5. Add CLI Settings

Expose settings via CLI by adding entries to src/main/cli/settings.c using the LOOKUP_TABLE_ENTRY / DEFINE_SETTING macros. See existing entries in that file for examples.

Further Reading

See Parameter Groups for the complete specification and design rules.