1 Yokasa

Quadcopter Flight Controller Comparison Essay

How to Make a Drone / UAV – Lesson 1: Terminology
How to Make a Drone / UAV – Lesson 2: The Frame
How to Make a Drone / UAV – Lesson 3: Propulsion
How to Make a Drone / UAV – Lesson 4: Flight Controller
How to Make a Drone / UAV – Lesson 5: Assembly
How to Make a Drone / UAV – Lesson 6: Get it all working together
How to Make a Drone / UAV – Lesson 7: FPV & Long-range
How to Make a Drone / UAV – Lesson 8: Aircraft

Now that you have chosen or designed a UAV frame, chosen the appropriate motors, propellers, ESCs and battery, you can start looking into choosing a flight controller. A flight controller for a multi-rotor UAV is an integrated circuit normally made up of a microprocessor, sensors and input / output pins. Out of the box, a flight controller does not magically know your specific UAV type or configuration, so you need to set certain parameters in a software program, and once complete, that configuration is then uploaded to board. Rather than simply comparing flight controllers which are currently available, the approach we have taken here lists which features serve which functions, as well as aspects to look for.

Main Processor


8051 vs AVR vs PIC vs ARM: These microcontroller families form the basis of most current flight controllers. Arduino is AVR based (ATmel) and the community seems to focus on MultiWii as being the preferred code. Microchip is the primary manufacturer of PIC chips. It is difficult to argue that one is better than the other, and it really comes down to what the software can do. ARM (STM32 for example) uses 16/32-bit architecture, whereas AVR and PIC tens to use 8 / 16-bit (described below). As single board computers become less and less expensive, expect to see a new generation of flight controllers which can run full operating systems such as Linux or Android.

CPU: Normally these are in multiples of 8 (8-bit, 16-bit, 32-bit, 64-bit) and is a reference to the size of the primary registers in a CPU. Microprocessors can only process a set (maximum) number of bits in memory at a time. The more bits a microcontroller can handle, the more accurate (and faster) the processing will be. For example processing a 16-bit variable on an 8-bit processor is a bit of a chose, whereas on a 32-bit processor it is very fast. Note that the code also needs to work with the right number of bits, and at the time of this article, very few programs use code optimized for 32 bits.


Operating frequency: The frequency at which the main processor operates. Frequency is measured in “Hertz” (cycles per second). This is also commonly referred to as the “clock rate”. The higher the operating frequency, the faster it can process data.

Program Memory / Flash: The flash memory is essentially where the main code is stored. If the program is complex it may take up quite a bit of space. Obviously the greater the memory, the more information it can store. Memory is also useful when storing in-flight data such as GPS coordinates, flight plans, automated camera movement etc. The code loaded to the flash memory remains on the chip even if it power is cut.

SRAM: SRAM stands for “Static Random-Access Memory”, and is the space on the chip which is used when making calculations. The data stored in RAM is lost when power is cut. The higher the RAM, the more information will be “readily available” for calculations at any given time.

EEPROM: Electrically Erasable Programmable Read-Only Memory (EEPROM) is normally used to store information which does not change in flight, such as settings, unlike data stored in SRAM which can relate to sensor data etc.

Additional I/O Pins: Most microcontrollers have a lot of digital and analog input and output pins, and on a flight controller, some are used by the sensors, others for communication and some may remain for general input and output.. These additional pins can be connected to RC servos, gimbal systems, buzzers and more.

A/D converter: Should the sensors used onboard output analog voltage (normally 0-3.3V or 0-5V), the analog to digital converter needs to translate these readings into digital data. Just like the CPU, the number of bits which can be processed by the A/D determines the maximum accuracy. Related to this is the frequency at which the microprocessor can read the data (number of times per second) to try to ensure no information is lost. It is nevertheless hard not to lose some data during this conversion, so the higher the A/D conversion, the more accurate the readings will be, but it is important that the processor can handle the rate at which the information is being sent.


There are often two voltage ranges described in the spec sheet of a flight controller, the first being the voltage input range of the flight controller itself (most operate at 5V nominal), and the second being the voltage input range of the main microprocessor’s logic (ex 3.3V or 5V). Since the flight controller is a fairly integrated unit, you really only need to pay attention to the input range for the flight controller itself. Most multi-rotor aircraft flight controllers operate at 5V since that is the voltage provided by a BEC (see lesson 3 for more information). To reiterate, you should ideally not power the flight controller separately from the main battery. The one exception is if you want a battery backup in the event that the main battery draws enough power that the BEC cannot provide enough current / voltage, causing a brownout / reset. Rather than a battery backup however, capacitors are often used.



In terms of hardware, a flight controller is essentially a normal programmable microcontroller, but has specific sensors onboard. At a bare minimum, a flight controller will include a three axis gyroscope, but as such will not be able to auto-level. Not all flight controllers will include all of the sensors below and may include a combination thereof. The sensors

Accelerometer Axes



As the name implies, accelerometers measure linear acceleration in up to three axes (let’s call them X, Y and Z). The units are normally in “gravity” (g) which is 9.81 meters per second per second, or 32 feet per second per second. The output of an accelerometer can be integrated twice to give a position, though because of losses in the output, it is subject to “drift”. A very important characteristic of three axis accelerometers is that they detect gravity, and as such, can know which direction is “down”. This plays a major role in allowing multirotor aircraft to stay stable. The accelerometer should be mounted to the flight controller so that the linear axes line up with the main axes of the UAV.

Gyroscope Axes



A gyroscope measures the rate of angular change in up to three angular axes (let’s call them alpha, beta and gamma).  The units are often degrees per second. Note that a gyroscope does not measure absolute angles directly, but you can iterate to get the angle which, just like an accelerometer, is subject to drift. The output of the actual gyroscope tends to be analog or I2C, but in most cases you do not need to worry about it since this is handled by the flight controller‘s code. The gyroscope should be mounted so that its rotational axes line up with the axes of the UAV.

IMU 6 Axes

Inertia Measurement Unit (IMU)


An IMU is essentially a small board which contains both an accelerometer and gyroscope (normally these are multi-axis). Most contain a three axis accelerometer and a three-axis gyroscpe, and others may contain additional sensors such as a three axis magnetometer, providing a total of 9 axes of measurement.


Compass / Magnetometer


An electronic magnetic compass is able to measure the earth’s magnetic field and used it to determine the drone‘s compass direction (with respect to magnetic north). This sensor is almost always present if the system has GPS input and is available in one to three axes.

Atmospheric Pressure

Pressure / Barometer


Since atmospheric pressure changes the farther away you are from sea level, a pressure sensor can be used to give you a pretty accurate reading for the UAV’s height. Most flight controllers take input from both the pressure sensor and GPS altitude to calculate a more accurate height above sea level. Note that it is preferable to have the barometer covered with a piece of foam to diminish the effects of wind over the chip.

GPS Satellites



Global Positioning Systems (GPS) use the signals sent by a number of satellites in orbit around the earth in order to determine their specific geographic location. A flight controller can either have onboard GPS or one which is connected to it via a cable. The GPS antenna should not be confused with the GPS chip itself, and can look like a small black box or a normal “duck” antenna. In order to get an accurate GPS lock, the GPS chip should receive data from multiple satellites, and the more the better.




Distance sensors are being used more and more on drones since GPS coordinates and pressure sensors alone cannot tell you how far away from the ground you are (think hill, mountain or building) or if you will hit an object. A downward-facing distance sensor might be based on ultrasonic, laser or lidar technology (infrared has issues in sunlight). Very few flight controllers include distance sensors as part of the standard package.


Flight Modes

Below is a list of the most popular flight modes, though not all will be available on all flight controllers. A “flight mode” is the way the flight controller uses sensors and RC input in order to fly and stabilize the aircraft. If you have a transmitter with five or more channels you may be able to configure the software to allow you to change the flight mode via the 5th channel (aux switch) while in flight. Each mode is defined below.

ACRO / Gyro Only-X-Normally a default mode and is more “acrobatic” flight (drone cannot auto-level)
ANGLE (Stable/Level/Acc)-X--X-Stable mode; will try to keep the model level to the ground (but not at a fixed position).
HORIZON-X-Combines the stable effect with slow RC commands and acrobatics with fast RC commands.
BARO (Altitude Hold)-X--X--X-Barometer is used in order to keep a certain (fixed) height when no other commands are received.
MAG (Heading Hold)-X--X-  -X-Heading (compass direction) lock mode, it will try to keep its Yaw orientation.
HEADFREE (CareFree)-X--X-  -X-Holds the orientation (yaw) of the drone and will always move in the same 2D direction for the same ROLL/PITCH stick movement.
GPS / Return to Home-X--X-  -X-  -X-Automatically uses compass and GPS to return home to the starting GPS point.
GPS / Waypoint-X--X-  -X-  -X-Automatically follows pre-configured GPS way-points autonomously.
GPS / Position Hold-X--X-  -X-  -X-Hold current position using GPS and baro (if available).
Failsafe-X-Aircraft reverts to acro / gyro only when no other modes are selected.



PID Control Loop & Tuning


Proportional Integral Derivate (PID) control allows you to change the drone‘s flight characteristics, including how it reacts to user input, how well and how quickly it stabilizes and more. The PID settings and how the software uses the various sensor inputs are incredibly important, but without seeing and understanding the code which dictates this is not too useful when comparing flight controllers. Manufacturer which produce “ready to fly” kits are able to fine tune the PID settings and equations for their specific platform, which is why most RTF muti-rotors fly quite well out of the box. Builders of custom drones however need to use flight controllers which are designed to be suitable for almost any type of multi-rotor aircraft, and as such it is up to the end-user to adjust the values until they are satisfied with the flight characteristics.

PID Graph



A GUI (Graphical User Interface) is what is used to visually edit the code (via a computer) which will be uploaded to the flight controller. The software provided with flight controllers continues to get better and better; the first flight controllers on the market used largely text-based interfaces which required that you understand almost all of the code and change specific sections to suit your project. More recently flight controller GUIs use interactive graphical interfaces to help you configure the necessary parameters.

Quadrino GUI

Additional Features


The software used on certain flight controllers may have additional features which are not available on others. Your selection of a specific flight controller may ultimately depend on which additional features / fuctionality are offered. These features can include:

  • Autonomous waypoint navigation, which allows you to set GPS waypoints which the drone will follow autonomously
  • “Oribiting” i.e. moving around a fixed GPS coordinate with the front of the drone always pointed towards the coordinate (useful for filming)
  • “Follow me”: certain drones have a “follow me” feature which can be GPS based (for example tracking the GPS coordinates of a smart phone)
  • 3D imaging: Most 3D imaging is done after a flight using images captured during the flight and GPS data
  • “Open source”: the software associated with certain flight controllers cannot be modified / customized. Open-source products generally allow advanced users to modify the code to suit their specific needs.

3D Terrain



Hitec RC Transmitter

Spektrum RC Transmitter

Radio Control (RC)


Radio Control (RC) communication normally involves a hand-held (hobby) RC transmitter and RC receiver. For UAVs, you need a minimum four channels, and more are suggested, even if they are not used. Normally these channels are associated with:

  • Pitch (which translates to forward / backward motion)
  • Elevation (closer to or farther away from the ground)
  • Yaw (rotating clockwise or counter-clockwise)
  • Roll (to strafe left and right)

Additional channels can be used for any of the following

  • Arming / disarming the motors
  • Gimbal controls (pan up/down, rotate clockwise / counter-clockwise, zoom)
  • Change flight modes (acrobatic mode, stable mode etc)
  • Activate / deploy a payload, parachute, buzzer or other device
  • Any number of other uses

Most drone pilots prefer handheld control, meaning RC systems are still the number one choice for controlling a UAV. On its own, the receiver simply relays the values input into the controller, and as such, cannot control a UAV. The receiver must be connected to the flight controller, which needs to be programmed to receive RC signals. There are very few flight controllers on the market which do not directly accept RC input from a receiver, and most even provide power to the receiver from one of the pins.

Additional considerations when choosing a remote control include:

  • Not all RC transmitters can provide the full RC signal range of 500ms to 2500ms; some artificially limit this since most RC applications are for RC cars, airplanes and helicopters
  • The range / max wireless range (feet or meters) of an RC system is almost never provided from the manufacturers because it involves many factors such as obstructions, temperature, humidity, battery power and more.
  • Some RC systems have a receiver which also has a built-in transmitter for transmitting sensor data (GPS coordinates for example) which are shown on the RC transmitter’s LCD display.




Bluetooth, and more recent BLE (Bluetooth Low Energy) products were originally intended to be used to transfer data between devices without the complexity of pairing or matching frequencies. Certain flight controllers on the market can send and receive data wirelessly via Bluetooth connection, making it easier to troubleshoot issues in the field.




A Flight Controller, commonly referenced as FC is the brain of the drone. It is a circuit board that has several sensors that receive and send instructions within the engine of the drone. It basically directs every orientation that is related to the movement of the drone including the movement of the rotors. To this end, it is important that you get the right Flight Controller for your drone in order to ensure it suits the purpose for which it was intended. There are several different flight controllers in the market and each is best suited for a particular purpose. This guide will help you make the right choice as far as FCs are concerned.


1. Flight Controllers – Racing

Kiss FC

The KISS FC is one of the few flight controllers that are preferred when sourcing for a racing FC. It comes with a 32 bit microcontroller that significantly improves its performance. It does not come with an inbuilt magnometer or barometer but has an inbuilt firmware that is relatively easy to configure and set up. It is however preferred among drone racers thanks to its simplicity and custom firmware. It has an input voltage of 2-6s and an output of 6 motors which is impressive by all standards. It is best used for drone racing and other high intensity activities.


The Naze32 flight controller is another racing flight controller that is not very different from the KISS model. It is designed with a 32 bit microcontroller that runs at 72MHz. The best thing about the Naze32 is that it comes in two different options to choose from which is the Acro and the full version. The full version is more superior in that it comes with an inbuilt barometer and compass which gives a much better performance. The Acro version on the other hand is good for just flying around and has better stability.


2. Flight Controller – Aerial photography

KK2. X

The KK2 X flight controller is well-known for its cheap price and easy to setup structure. There are two different designs namely the mini size and the regular size. The KK2.X flight controller is different and better than other flight controllers because it comes with an on board LCD screen that makes it easy to configure and set up. You do not need to connect it to a computer or any other external device to set it up. Its plug ‘n’ play nature makes it convenient for use especially by beginners. It is built with 8 different output pins which make it versatile in that it can be used on quadcopters and even octocopters. It is not limited to a particular drone type. If you are a beginner who is just trying to find a footing as far as flight controller are concerned, then the KK2.X is your ideal flight controller.


3. Autonomous missions/Advanced FCs

ArduPilot Mega

The ArduPilot Mega stands out as one of the most advanced flight controllers in the market. It is designed for multipurpose use meaning it is not only limited for use in the development of quadcopters but it is also used by multirotor drones. It comes with in-built software known as the Mission planner which gives you the freedom to choose which configurations you would like to have. It also gives you the chance to select various flight modes including but not limited to position hold, altitude hold, return to launch and so much more.

It has a feature that helps it connect to an external GPS module which comes in handy when planning autonomous missions or aerial photography. With this flight controller installed in your drone, you can be able to communicate independently with the drone through wireless connectivity at all times within a maximum range of 1 kilometer.

Pix Hawk

The Pix Hawk is another advanced flight controller that comes with an in-built software or firmware that allows for advanced autonomous missions. If you intend to use your drone for advanced missions such as aerial photography, geo-mapping or even aerial delivery of items, then the Pix Hawk is the best FC to use. Most of its features are comparable to the KK2.X although the PixHawk offers greater performance and can also allow for autopilot missions.

It comes equipped with some of the most advanced sensors including but not limited to Gyros, magnometer, barometer, 3D accelerometer among others. It is also designed with a microSD slot within it to allow for extra storage. In the event that the flight veers off course, the PixHawk is designed with an advanced feature known as the failsafe feature that will ensure it returns safely to the launch pad. The PixHawk is for enthusiasts who are not working on a tight budget and want to get something that offers superior performance.


The NAZA m V2 is no doubt the best FC in its category and comes with some of the most advanced features in its category. It is known for its superior performance qualities and although a little bit pricey, the FC offers some of the best features the industry has seen yet. It is designed by one of the biggest drone manufacturers – DJI. It has a smart phone feature within it that allows you to connect it to your smart phone and control it independently from the ground using your smart phone. It also allows for various flight modes including position hold, follow me mode, altitude hold and so much more and gives you the option to intelligently switch between the different modes. An in-built GPS module is strategically included in the controller to ensure it gives accurate location details at all times.

An important feature of the NAZA m V2 is that it has two distinct levels of low voltage warning that warns you when the power has reduced to alarming levels which allows you to recharge and stay on top of your game. In addition to that, it has a unique feature of single motor failure protection that is intended to protect the drone from accident in the event that a single motor fails to work as it should. This is a feature that is not available in all the other FCs which gives the NAZA V2 a greater advantage over all the competitors. It is capable of recording and transmitting video and image footage from the air in real-time which is why it is the most advanced and most sophisticated flight controller.


4. Flight Controller – Cost

When it comes to the cost of Flight controllers, the most advanced controllers will obviously cost more than the less advanced and this is definitely because of the superior quality and advanced features. More advanced FCs such as the DJI NAZA m V2 have a higher pricing than other flight controllers and it is because in terms of the functionality, they offer more and have a higher performance index than the rest.

Flight controllers will usually cost anything from $35 to $150. Depending on the intended use and your budget altogether, you should go for a controller that matches your needs. Superior FCs such as the DJI NAZA will cost in excess of $300 for good reasons. Whichever controller you choose to go for, ensure you are informed of all the functionalities of the controller and what type of drone is supported.



The fact that a flight controller is usually hidden within the drone, it is never easy to tell what FC is the best for your specific need. One must therefore ensure they take care when selecting a flight controller because an error in judgment may lead to losses that could have been avoided from the start. Also, more expensive flight controllers do not necessarily translate to high performance. Caution should be exercised when choosing which one to go for because you may end up paying more for less.

Leave a Comment


Your email address will not be published. Required fields are marked *