A Review of Open-Source Flight Control Systems

David Such
15 min readJun 3, 2021

The evolution of open-source flight control firmware is fascinating and involves everything from years of committed development with no reward, to convoluted betrayal from previous partners and friends. In this article, we will review the most popular open-source projects, explain their antecedents and highlight the survivors.

1. The Flight Control Ecosystem

These days the hardest challenge in designing your own drone is the flight control firmware. For those who can’t be bothered spending the months and years crafting this code, there are other options, albeit not much targeting the Arduino platform. Most available flight controller firmware tends to target a niche application, but of course there is a fair amount of overlap as every piece of firmware needs to be able to provide the same fundamental controls. For example, as a minimum, Flight Controllers need to:

  • Allow pilot input and convert this to pitch, roll, yaw and throttle speed on the drone.
  • Use sensors to provide feedback on the drones’ orientation and position which can be compared with the pilot input to determine the correct speed of all the motors.

Thus, any flight controller firmware can be used for any drone mission, but some will be better at it than others. The major drone applications are:

1. Cinematic Video.

2. FPV, Acrobatics and Racing.

3. Autopilot and Surveying.

4. Research.

5. Indoor and Micro Drones.

Using these classifications, we can group the available flight controller firmware, which is one way to select what to use for your application (Figure 1).

Figure 1. The Open-Source Flight Control Ecosystem

2. The MultiWii Family

2.1 MultiWii

It is interesting to observe the ancestry of flight controller firmware. In around 2010, MultiWii was developed by Alexandre Dubus (AKA Alexinparis) to support…

David Such

Reefwing Software · Embedded Systems Engineer · iOS & Android Development · Robotics · Drones · Arduino · Raspberry Pi · Flight Control