Skip to main content

PX4 Native Stack

PX4

Overview

PX4 is an open source flight controller hardware and software project that came out of ETH Zurich. PX4 Native Stack is the firmware and PX4v1, PX4v2(a.k.a. Pixhawk) etc. are the hardware. Both software AND hardware are open source. Usually, Pixhawk and clones come pre-installed with PX4 Native Stack.

Usually, most hardware that can run PX4 Native Stack can run ArduPilot and vise versa.

The license is BSD.

PX4 Hardware

Pixhawk is definitely the most famous, but since the hardware is also open source, there are many clones with or without various improvements. However, be aware that there are low-quality cheap faux copies of both 3DR Pixhawks as well as clones.

There was a short-lived board called PX4 (PX4 FMU-v1) before Pixhawk v1 (PX4 FMUv2) came out.

PX4 Hardware

NOTE: PX4 FMUv1, FMUv2 etc. are software designation, but used here to distinguish different generations of pixhawk hardware for convenience. Actually, FMUv2 firmware can be run on both FMUv2 (Pixhawk v1) as well as FMUv3 (3DR Pixhawk 2), thus there isn't a dedicated FMUv3 firmware. Pixracer needs a different firmware version (PX4 FMUv4) since the pinouts has been changed. Also, there are other differences between v2 and v4 firmware such as the size of usable memory.

PX4 Software

PX4 Native Stack is comprised of a number of applications running on NuttX realtime OS made for 32bit ARM processors on Pixhawk and clones. The design and architecture is close to UNIX.

The firmware can control many frame types including multi-rotors, VTOL's without re-compile.

Usually, the firmware that comes pre-installed on Pixhawk and many clones is the PX4 Native Stack, but some products have ArduPilot pre-installed.

It is licenced under 3-clause BSD, as opposed to ArduPilot's GPLv3.

Since it's BSD, it's easier for corporations to incorporate into their products. Also since ArduPilot parted away from the DroneCode foundation, PX4 Native Stack is the only firmware available under DroneCode.

Since it came out of academia, it's better suited for use with motion capture cameras and simulations.

As a side note, since ArduPilot was initially implemented on Pixhawk as an application on top of PX4 Native Stack, usually if one firmware supports a particular hardware, then the other can also be used. However, there are a few exceptions, especially on Linux boards.

PX4 Native Stack is usually used with QGroundControl GCS software.

Other PX4 projects

Linux Support

  • RaspberryPi is now officially supported
  • SnapDragon Flight
  • Intel Up-board + Realsense

Core Members

Lorenz Meier

  • ETH Computer Vision and Geometry Lab
  • PX4/Pixhawk Project/PX4 Native Stack lead developper
  • Also the author of MAVLink

Prof. Marc Pollefeys

  • Institute for Visual Computing, Computer Vision and Geometry Group

Don Gagne

  • QGroundControl

Paul Riseborough

  • EKF
  • Paul Risenborough is also the author of the EKF for ArduPilot

Configuration Guides

User Guides

Developers

Source Code Repository

Dev Guides

Apps

Command to start SF0 LIDAR

sf0x start

Debugging Guides

Simulation

Support for clones