PX4 Command Catalog
PX4 downlink has two protocol families. Ordinary flight-controller actions use MAVLinkCOMMAND_LONG / COMMAND_INT and complete through COMMAND_ACK. Parameter reads and writes use the MAVLink parameter microservice and complete through PARAM_VALUE / PARAM_ERROR. Both families are created and queried through the same Open Platform command API.
API Entry
| Operation | Method and path |
|---|---|
| Create command | POST /api/v1/open/downlink/commands |
| Query command status | GET /api/v1/open/downlink/commands/{commandId} |
| Request field | Requirement |
|---|---|
vendor | Fixed px4 |
command_type | MAV_CMD named flow or px4.parameter.* |
payload | Typed request for the command; raw param1..param7 fields are not accepted |
idempotency_key | Required; repeated requests return the same command |
Protocol Coverage
| Protocol family | Count | Completion signal | Entry |
|---|---|---|---|
| MAV_CMD named flow | 178 | COMMAND_ACK | Capability domains on this page |
| Parameter read | 1 | PARAM_VALUE / PARAM_ERROR | px4.parameter.read |
| Parameter write | 1873 | PARAM_VALUE / PARAM_ERROR | Named parameter set |
| Excluded entry | 1 | Not applicable | MAV_CMD_DO_SET_PARAMETER is replaced by named parameter set commands |
Flow
- Call the create command API with
vendor=px4,command_type, and the command-specificpayload. - The platform returns
command_idand acceptance statusACCEPTED. - In the default disabled mode, the PX4 agent sends no real MAVLink frame; guarded mode sends and waits for a PX4 response.
- Use
command_idto query command status; terminal state is advanced byCOMMAND_ACKor parameter microservice response.
MAV_CMD Capability Domains
| Capability domain | Commands | Purpose |
|---|---|---|
navigation | 33 | Waypoint, takeoff, landing, return, mission, and geofence related commands. |
condition | 6 | Mission condition, delay, distance, heading, and threshold commands. |
system-control | 19 | Arming, mode, preflight, calibration, reboot, logging, and system-level commands. |
do-control | 45 | Speed, ROI, servo, relay, parachute, actuator, and mission action commands. |
request-system | 9 | Message request, protocol version, camera information, event, and storage information commands. |
camera-media | 37 | Camera capture, recording, zoom, gimbal, video stream, and media management commands. |
external-guided | 5 | External pose, state estimate, follow, and guided control commands. |
user-extension | 15 | User-defined MAVLink command range. |
other | 9 | MAVLink commands not covered by the preceding capability groups. |
Parameter Protocol
| Capability | command_type | Description |
|---|---|---|
| Read parameter | px4.parameter.read | Sends PARAM_REQUEST_READ; payload specifies param_id. |
| Write parameter | px4.parameter.<name>.set | One named command per PX4 parameter; callers do not pass param_id. |
| Full write catalog | Parameter set catalog | 1873 QGroundControl-style parameters generated from PX4 parameters.json/xml. |
| Browse by group | PX4 parameter group index | Find parameters by Commander, EKF2, MAVLink, Sensors, and other PX4 groups. |
Forbidden
- No generic
mavlink_commandpayloads. - No cloud payload fields named
param1throughparam7. - No generic
px4.parameter.set. - No
MAV_CMD_DO_SET_PARAMETERordinary command; parameter writes must use named parameter set commands.