PX4 Parameter Protocol
PX4 parameter reads and writes are not ordinaryMAV_CMD flows. They use the MAVLink parameter microservice, while Open Platform still exposes them through the standard command lifecycle: create with POST /api/v1/open/downlink/commands and query with GET /api/v1/open/downlink/commands/{commandId}.
Capability Summary
| Capability | Count | command_type | MAVLink frame | Response |
|---|---|---|---|---|
| Parameter read | 1 | px4.parameter.read | PARAM_REQUEST_READ (20) | PARAM_VALUE / PARAM_ERROR |
| Parameter write | 1873 | px4.parameter.<px4_param_name_lower>.set | PARAM_SET (23) | PARAM_VALUE / PARAM_ERROR |
Where To Start
Read Parameter
Read any PX4 parameter id, for example COM_RC_IN_MODE
Write Parameter
Understand named parameter set requests, validation, and safety policy
Full Set Catalog
Browse 1873 named set commands and baseline metadata
Browse By PX4 Group
Find parameters by Commander, EKF2, MAVLink, Sensors, and other groups
Catalog Source
The current catalog is generated from PX4parameters.json/xml build artifacts and checked with PX4 MAVLink parameter code as evidence. Catalog size:
| Category | Count | Meaning |
|---|---|---|
| All writable named sets | 1873 | One fixed command type per parameter |
FLOAT | 1310 | Written as floating-point values |
INT32 | 563 | Written as integers, enums, booleans, or bitmasks |
Standard | 1455 | Normal runtime parameters |
System | 411 | System, driver, and calibration parameters |
Developer | 7 | Circuit breakers and development/debug parameters |
volatile | 101 | PX4 runtime volatile parameters |
Write Model
Callers do not construct rawPARAM_SET fields such as param_id, param_value, or param_type. Each parameter has its own named command:
CBRK_USB_CHK maps to:
payload.value:
COM_RC_IN_MODE uses payload.mode.
Completion Semantics
| PX4 response | command.completed result | Query status |
|---|---|---|
Matching PARAM_VALUE with expected param_id, type, and value | parameter_value_confirmed | SUCCEEDED |
PARAM_ERROR | parameter_error | FAILED |
PARAM_VALUE for another parameter or mismatched value | parameter_mismatch | UNKNOWN |
| No matching response before timeout | parameter_timeout | TIMED_OUT |
| Transport send failure | transport_failed | FAILED |
| Agent local rejection | rejected_by_agent | FAILED |
Safety Policy
PX4_COMMAND_MODE=disabledis the default; disabled mode sends no real parameter frame to the controller.- Real reads and writes require guarded mode, ready transport, and operator guard.
- Writes also require
PX4_PARAMETER_WRITE_ALLOWLISTto contain the PX4 parameter ID fixed by the named command. - Payloads cannot provide
param_id,value_type, or genericparam1..param7. MAV_CMD_DO_SET_PARAMETERis not exposed as an ordinary command flow; use named parameter set commands.
Detail Pages
The pages below provide more business-oriented explanations and typed payloads. They are not the full set command list; see the full set catalog for complete coverage.| Parameter | command_type | Description |
|---|---|---|
COM_RC_IN_MODE | px4.parameter.com_rc_in_mode.set | Manual-control input source |
MPC_XY_VEL_MAX | px4.parameter.mpc_xy_vel_max.set | Maximum horizontal velocity |
CBRK_USB_CHK | px4.parameter.cbrk_usb_chk.set | USB-link circuit breaker |
EKF2_GPS_CTRL | px4.parameter.ekf2_gps_ctrl.set | GNSS fusion bitmask |
MPC_Z_VEL_MAX_UP | px4.parameter.mpc_z_vel_max_up.set | Maximum ascent velocity |