Skip to main content

Controller

Selecting a Controller

When you are trying to select an flight controller / autopilots / robot controller for your vehicle, it feels like there are just too many options out there. While it's generally a good to have options, the information you need to make an informed decision is usually scattered across the internet and since the technology and industry is evolving very very rapidly, what you find tends to be often outdated. Case in point, something probably changed while we were writing this article and we are already outdated even before we publish. Needless to say, it could be a confusing and daunting task for most of us. In this article, we'll give you the lowdown on the current open-source flight controller situation and help you pick the right controller for you.

What is a Flight Controller / Autopilot / Robot Controller Anyway?

These terminologies are often used interchangeably to describe an on-board computer-device-thingy that controls the behaviors of a robot / drone / multi-rotor / quad-copter / what-have-you.

Generally, they come in a small box with an embedded microcontroller/CPU, memory, SD card, some on-board sensors, and various IO ports. It takes inputs from various internal and external sensors and outputs control signal to actuators such as electric motors and servos. They can communicate with your PC/Tablet/Phones via internal or external communication devices such as WiFi, Bluetooth, ZigBee, or serial radio, so you can check the onboard telemetry such as attitude, altitude, battery level, etc. and send commands to the vehicle.

Capabilities of various FC's differ greatly. On the simpler side of things, they could just be a simple stabilization device using accelerometer and magnetometer (compass) on a cheap quads. On higher end, they could perform fully autonomous missions, using advanced self-positioning and environment mapping using GPS, sonar, LiDAR, computer vision, etc., and even communicate with other robots/drones and coordinate moves with each other.

ControllerComponents

Pixhawk Family of Flight Controllers

If you are considering Pixhawk Family of flight controllers, also check out our article on that topic. Pixhawk Family of Flight Controllers

Flight Controller Ecosystem

Controller

On-board computer, often with minimal set of sensors such as IMU and barometer. Controller

There are two types of Flight Controllers, namely, micro-controller based, and Linux SBC based units. More recently, use of Linux SBC as a companion computer to a micro-controller based FC is becoming common. In this configuration, FC only handles basic flight control functions while Linux SBC handles more heavier loads such as graphics based navigation. Pixhawk Hardware Types Controller Hardware Types

Software Choices

There are 2 parts to the software. The part that runs on the vehicle, and the other part that runs on the ground PC or tablet.

ControllerSoftware

Flight Control Software (Firmware)

Firmware is the piece of software that runs on the Flight Controller on-board the vehicle.

Ground Control Station (GCS)

Ground Control Station is what you run on your PC or Tablet/Phone to setup and configure the controller firmware as well as to send commands and plan your autonomous missions. This communicates with the flight controller firmware via telemetry link and you can monitor, plan and send commands, keep and analyze flight logs.

Peripherals

In addition to the FC itself, you also need sensors, power modules, RC system, telemetry radio, etc. before you can fly your vehicle.

Sometimes, availability of certain peripherals limits your controller options. For example, if you want to use the latest LiDAR, or an IR beacon, there may not be a proprietary solution available that supports the sensor. At least with open source hardware, you have the option of writing a driver for any sensor as long as you can connect it to the FC. Same can be said about the telemetry connections, gimbals, special actuators, etc.

Perihperals

Open v.s. Proprietary

There are lot of open source solutions with varying degree of sophistication and functionalities. Proprietary solutions might be better if you want manufacturer support and/or little more "brushed" look.

Open Source Systems

The term "Open Source" means 2 different things here. Typically, people associate "Open Source" with software. But hardware could also be open source, as in schematics and board layout data being available so that anybody with access to electronics manufacturing facility can build and produce the hardware and people are free to customize and make improvements. Many of the hardware controllers for drones are being released as open source hardware & software.

Open Source Flight Controller Examples

PX4 Native Stack ArduPilot

PX4 vs ArduPilot

Others Open Source Software:

Open Source Hardware Examples

Pixhawk Pixhawk Pixracer Pixracer PXF Pixhawk Fire (PXF)

Other Open Source Hardware:

Partially Open Source Systems

These are mixture of open and closed software and hardware.

Open Source Software + Closed Source Hardware Examples

SnapDragon Flight SnapDragon Flight

Closed Systems

In a closed proprietary systems, both software and hardware sources are not available, but they often come with externally accessible API's that you can use to extend the functionality in a limited way.

  • DJI SDK
  • etc.

Other On-board Components

Depending on your needs, you might want to consider these additional components

Sensor

PowerModule

  • BEC
  • Battery Voltage/Current Monitor

RC System

  • RC Transmitter
  • RC Receiver

Telemetry

  • Telemetry Radio
  • ZigBee/XBee
  • Wifi
  • Bluetooth

FPV

  • FPV Camera
  • Video Transmitter
  • OSD (On Screen Display)
  • Gimbal

Actuator / Thruster

  • Servo
  • ESC
  • Brushless Motors

Indicators

  • LED
  • Buzzer

Other Ground Components

  • PC/Tablet/Smart Phone
  • RC Transmitter
  • Telemetry Transceiver
  • Video Receiver
  • Video Monitor
  • FPV Goggle
  • Antenna Tracker