# Pixhawk

Pixhawk is a project responsible for creating open-source standards for the flight controller hardware that can be installed on various unmanned aerial vehicles. Additionally, any flight controller built to the open standards often includes "Pixhawk" in its name and may be referred to as such.

## Overview

An unmanned vehicle's flight controller, also referred to as an FC, FCB (flight control board), FMU (flight management unit), or autopilot, is a combination of hardware and software that is responsible for interfacing with a variety of onboard sensors and control systems in order to facilitate remote control or provide fully autonomous control.
Pixhawk-standardized flight controllers are being used for academic, professional, and amateur applications, and are supported by two mainstream autopilot firmware options: PX4 and ArduPilot. Both firmware options allow for a variety of vehicle types through the Pixhawk flight controller system, including configuration options for unmanned boats, rovers, helicopters, planes, VTOLs, and multirotors. Many manufacturers have adopted various iterations of the Pixhawk standard, including Holybro and CubePilot. Refer to the UAV-systems hardware chart for a full list of flight controllers that have fully or partially adopted the Pixhawk standard.
Pixhawk flight controllers typically feature one or two microcontrollers. In the case of two microcontrollers, a main flight management processor handles all sensor readings, PID calculations, and other resource-heavy computations, while the other handles input/output operations to external motors, switches and radio control receivers. Onboard sensors include an IMU with a multi-axis accelerometer and gyroscope, magnetometer to use as a compass, and a GPS tracking unit to estimate the vehicle's location.

## Standards

The Pixhawk standards dictate the hardware requirements for manufacturers who are building products to be compatible with the PX4 autopilot software stack. However, due to ArduPilot's adaptation of Pixhawk flight controllers, the standard is able to ensure compatibility with ArduPilot as well.
The open standards consist of a main autopilot reference standard for each iteration of the Pixhawk FMU, as well as various other standards that apply to the general Pixhawk control ecosystem, such as a payload bus standard or a smart battery standard.

### Autopilot Reference Standard

This is the main section of the Pixhawk open standards, containing all mechanical and electrical specification for each version of the flight management unit. Currently, versions 1, 2, 3, 4, 4X, 5, 5X, 6X, 6U, and 6C autopilots have been released. The mechanical design standard includes dimensional drawings of the FMU's PCB, the selected sensor types and their locations, and areas that need additional heat sinking. The electrical standard includes the pin-out of each pin in the main processing microcontroller, and which interface each pin is set to communicate with.

### Autopilot Bus Standard

The autopilot bus standard is an extension of the autopilot reference standard specifically for providing more information about manufacturing the latest reference versions of Pixhawk FMU, such as the 5X and 6X. The main reason for this is that these are the first flight units featuring a system on module design, where the housing of the flight controller module takes the form of a compact prism with a set of extremely high-density, 100-pin connectors between the module and the baseboard (seen at the bottom of the image on the right). The baseboard allows users to plug the necessary peripheral devices (such as motors, servos, and radios) into the flight controller, while the system on module design results in an easily swappable flight computer. Additionally, this bus standard details PCB layout guidelines for the system on module along with a catalog of reference schematics for interfaces between the module and the baseboard.

### Connector Standard

In the connector standard, the Pixhawk project specifies using the JST GH for the vast majority of all interfaces between the flight controller board and pluggable peripherals. Just as importantly, the standard defines a convention for user-facing pin-outs for telemetry, GPS, CAN bus, SPI, power, and debug ports. External pin-out information is critical for anyone developing a vehicle with an autopilot, as improperly plugging in peripherals results in a non-functional system at best, and a dangerous environment with broken hardware at worst. Although there is a great deal of variation within the Pixhawk family in terms of available ports and port types, the standardization of pin-outs for the most popular interfaces is immensely helpful to any user working with multiple generations of Pixhawk flight controllers.

### Other standards
#### Payload Bus Standard

Although this section serves as an accessory to the main Autopilot Reference Standard, it concisely details how the Pixhawk standards suggest making additional vehicle payloads that are compatible with a Pixhawk autopilot. Although it is not strictly enforced across all vehicle payload manufacturers, this facilitates the possibility for users to implement payloads and flight controllers from different manufacturers.

#### Smart Battery Standard

The smart battery standard has not been published yet, but it is set to define the interface between a smart battery and a Pixhawk FMU. Such a standard would define the communication protocols, connectors, and capabilities of a battery management system that would be used in a Pixhawk-operated vehicle.

#### Radio Interface Standard

Although there are a variety of radio solutions that can be interfaced with a Pixhawk flight controller, the project does have a short mechanical, electrical, and software definition for a Pixhawk-specific radio communication system. The standard anticipates connections between ground stations and radio modules to be over USB or Ethernet, while connections between local and remote radios could go over traditional radio-frequency links, or LTE.

## History

In 2008, Lorenz Meier, a master's student at ETH Zurich, wanted to make an indoor drone that could use computer vision to autonomously traverse a space and avoid collisions with obstacles. However, such technology did not exist, let alone in a way that was accessible to a university student. Motivated by participating in the indoor autonomy category of a European Micro Air Vehicle competition, Lorenz leveraged the help of professor Marc Pollefeys and assembled a group of 14 teammates to spend nine tireless months creating custom flight controller hardware, firmware, and high-level software. The team, named "Pixhawk," won first place in their category in 2009, being the first competitors to successfully implement computer vision for obstacle avoidance.
Revisiting the project in subsequent years, Lorenz realized that there were not a lot of existing industry tools that could be used to accomplish what he and his team did. As a result, the Pixhawk team made the entire project open source. The ground control software that allowed the team to interface with the drone while it was in flight, the MAVLink communication protocol that was custom developed for streaming telemetry back to the ground station, the PX4 autopilot software that was responsible for controlling the drone, and the Pixhawk flight controller hardware that the autopilot ran on were all released to the public for further development.
Over time, the released project began to grow. MAVLink was picked up by the open-source ArduPilot autopilot software development project, and the ground control software QGroundControl was subsequently used to interface with MAVLink systems. After a couple codebase rewrites and hardware development cycles, Lorenz and a worldwide team of open-source maintainers were able to support a manufacturer that would build a flight controller to their standards. In 2013, 3D Robotics became the first manufacturer of commercial Pixhawk flight controllers, officially lowering the barrier to entry to autonomous flight for enthusiasts and corporations worldwide. Now, anyone could purchase an extremely capable autonomous flight control, flash it with free, open-source PX4 or ArduPilot firmware, and have a university research-level drone platform.
Lorenz heavily credits the open-source community with the extensive success of the Pixhawk platform, as the combined development power seemed to be greater than that of a well-resourced company. In order to help standardize various developments across the project and ensure that it remained accessible and open-source, the Dronecode organization was founded in 2014. Dronecode is currently a non-profit organization under the Linux Foundation, and it has been responsible for facilitating conversations that define the Pixhawk standards.