Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/PX4/PX4-Autopilot/llms.txt

Use this file to discover all available pages before exploring further.

PX4 supports a wide range of unmanned vehicle types — from small racing quadcopters to large fixed-wing survey aircraft, hybrid VTOL platforms, and ground rovers. Every vehicle class shares the same core firmware and configuration pipeline: you select an airframe, calibrate sensors, assign actuators, and tune the controller. Understanding how the airframe system fits together helps you get your vehicle flying faster and with fewer surprises.

Supported vehicle classes

PX4 organizes vehicles into four primary classes. Each class has dedicated flight modes, controller logic, and configuration workflows.

Multicopter

Quadcopters, hexarotors, octocopters, and other rotor-only frames. Best for hover tasks, close-range operations, and short missions requiring vertical takeoff and landing.

Fixed-Wing

Standard planes, flying wings, and V-tail aircraft. More efficient for long-range, high-speed, or high-endurance missions where a runway or hand-launch is acceptable.

VTOL

Vehicles that take off and land vertically but cruise like a fixed-wing aircraft. Three sub-types: standard VTOL (quadplane), tiltrotor, and tailsitter.

Rover

Ground vehicles with Ackermann, differential, or mecanum drive. Experimental in PX4 v1.16, requiring a custom firmware build separate from the standard image.

How the ROMFS airframe system works

Every airframe in PX4 is defined by a shell script stored in the ROMFS (Read-Only Memory File System) on the flight controller, under ROMFS/px4fmu_common/init.d/airframes/. Each script carries a numeric ID and a human-readable name and calls param set-default to load values appropriate for that vehicle geometry — motor count, rotor positions, control surface assignments, PID gain defaults, and output mappings. When you select an airframe in QGroundControl, PX4 runs the corresponding ROMFS script and applies those parameter defaults. You can then override individual parameters to fine-tune your specific hardware without modifying firmware.
Selecting a new airframe resets vehicle-specific parameters to their defaults. Save your current parameters first if you have existing custom tuning you want to preserve.
Some examples of built-in airframe IDs:
IDNameVehicle class
4001Generic Quadrotor XMulticopter
6001Generic Hexarotor XMulticopter
2100Generic Standard PlaneFixed-wing
3000Generic Flying WingFixed-wing
13000Generic Standard VTOLVTOL
13100Generic VTOL TiltrotorVTOL
50000Generic Rover DifferentialRover
51000Generic Rover AckermannRover
52000Generic Rover MecanumRover
If no existing airframe matches your build, you can add a new ROMFS shell script to the repository. The full list of built-in airframes is in the PX4 Airframes Reference.

Pre-built vs. generic airframes

If your vehicle matches a specific entry in the airframe reference (for example, Holybro S500, NXP HoverGames, or Axial Trail Honcho), select it. Named airframes include pre-tuned PID gains and verified actuator mappings, so you often need only minor adjustments before flying.
When no specific entry exists, pick the Generic frame for your vehicle class and geometry (e.g., Generic Quadrotor X, Generic Standard Plane). You will need to configure actuator geometry manually and perform a full tune, but the generic defaults give you a safe starting point.
For recurring builds or open-source contributions, add a new shell script under ROMFS/px4fmu_common/init.d/airframes/ in the PX4-Autopilot repository. The script sets all relevant parameters and is picked up automatically by the build system. Follow the PX4 developer documentation for the complete procedure.

Basic setup workflow

Follow these steps to go from a new flight controller to a configured vehicle ready for its first flight.
1

Install PX4 firmware

Open QGroundControl and navigate to Vehicle Setup > Firmware. Connect your flight controller via USB and allow QGroundControl to flash the latest stable PX4 release. For rover vehicles, note that rover support requires a custom firmware build — see the Rover page for details.
2

Select an airframe

Navigate to Vehicle Setup > Airframe. Browse by vehicle class, select the entry that best matches your frame geometry, then click Apply and Restart. PX4 loads the matching ROMFS parameter set and reboots.
3

Configure actuators

Go to Vehicle Setup > Actuators. Verify that motor positions, spin directions, and servo assignments match your physical wiring. Use the slider controls to test each actuator with propellers removed.
4

Calibrate sensors

Go to Vehicle Setup > Sensors and complete calibration for the accelerometer, gyroscope, and compass. For fixed-wing and VTOL aircraft, also calibrate the airspeed sensor. Follow the on-screen prompts for each step.
5

Configure radio and flight modes

Under Vehicle Setup > Radio, bind your RC transmitter and map channels to roll, pitch, yaw, and throttle. Then go to Vehicle Setup > Flight Modes to assign flight modes to switch positions. Include at minimum a manual or stabilized mode and one autonomous mode.
6

Calibrate ESCs (multicopter and VTOL)

If you are using PWM or OneShot ESCs, run the ESC calibration procedure under Vehicle Setup > Power before arming. DShot ESCs communicate digitally and skip this step.
7

Tune the controller

Use the Tuning section of QGroundControl or the vehicle-specific tuning guide for your frame type. For multicopters, start with Autotune. For fixed-wing, adjust TECS airspeed and climb rate parameters. For VTOLs, verify transition parameters before attempting mode switches.
8

Perform a ground check and first flight

Confirm GPS lock, battery level, and safety switch status before arming. Start your first flight in a manual or stabilized mode to verify control response before enabling autonomous modes.
When contributing a new airframe to PX4, include a build log with photos, a component list, and tuned parameter values. This helps other builders reproduce your setup without starting from scratch.

Build docs developers (and LLMs) love