open-source-drone-software-projectsWhether you’re building an FPV quad, a fixed wing drone or an octocopter, every drone enthusiast will face the choice of which flight control software to use. Chances are, if you’re building a drone you’ll also want to use some sort of open source drone software to run your drone’s flight control board.

Oh, and here is a helpful resource to aid you in building your own drone.

In this post, we will be looking at some of the best open source uav projects out there. After reading this, you will understand which drone firmware projects are viable for the drone you are wanting to create.

As Michael Bolton says in his famous Lonely Island feature, let’s get to it! (Have I successfully totally confused Google regarding what the heck this page is about??)

michael-bolton-the-man-the-myth-the-legend

Best Open Source Drone Projects

ArduPilot

Full disclosure: This is my favorite project

Ardupilot was one of the early pioneers of open source drone software. The project began on Arduino hardware (hence the “Ardu” part), and has grown into a powerhouse in the drone industry.

A random historical note, APM is also used to refer to ArduPilot software.

The ArduPilot community is really supportive, and their forum is a great tool for getting involved.

ArduPilot can work on many different types of vehicles, including: multirotors, fixed wing planes, land rovers and even submarines. Ardupilot strives to make these vehicles purely autonomous.

There is also a diverse collection of flight controller boards that ArduPilot is compatible with. The ArduPilot flight stack is pretty advanced, as it uses the popular MissionPlanner as the ground control station and MAVLink as the middleware.

The open source license that ArduPilot operates by is GPL, which essentially means that any changes that are made to the ArduPilot codebase needs to be added back to the parent project.

There is a way around this GPL requirement, as a company could create their IP outside of ArduPilot. Then they could keep their innovation private, while using ArduPilot for the basic function of drone control.

GPL could make ArduPilot less attractive for businesses wanting to protect their IP from competitors. However, this hasn’t stopped drone giants like Matternet from using the ArduPilot flight stack.

While you can use ArduPilot for some FPV quad applications, typically it is used by those wanting a drone that can fly autonomously.

I have written an in-depth overview of the ArduPilot flight stack for those interested.

PROS:

  • Great support
  • Large amount of supported flight controllers. Ardupilot supported hardware boards
  • Very advanced control algorithms
  • Works on many vehicle types
  • GPL License means more community driven innovation to benefit all users

CONS:

  • GPL license (Only a con to consider for businesses)
  • Not a great choice for FPV drone racing

PX4

PX4 is a part of the Dronecode project, a non-profit organization administered by the Linux Foundation. Dronecode aims to supply the emerging drone industry with a platform of open source software.

You wouldn’t want write a whole operating system to create a solitaire app on Linux. Dronecode supplies you with the ‘operating system’ framework, freeing its users for developing innovation on top of the platform.

An interesting anecdote is that ArduPilot used to be the featured flight control software project in Dronecode, which has contributed to an ArduPilot vs PX4 semi-rivalry.

One of the founders of ArduPilot remarked on the flight control transplant by saying the “Platinum members (of the Dronecode project) staged what can only be called a coup (in supplanting ArduPilot with PX4)”

PX4 came out of the Pixhawk project, which is an open source hardware project, as they needed some open source drone software to run their boards.

One of the key distinctions between PX4 and ArduPilot is that it operates under the BSD license. This essentially means that if you add a new feature to the PX4 project in a private fork, you don’t have to push your changes back to the parent PX4 project.

This feature makes PX4 more attractive to businesses looking to protect their intellectual property. Due to this reason, and their inclusion in the Dronecode project, PX4 is getting much more funding for development work than ArduPilot.

PX4 is also supported on a large amount of flight control boards. It also isn’t the best choice for FPV quad enthusiasts, as it is more focused on autonomous drones.

All things considered, PX4 and ArduPilot are still pretty similar in terms of functionality.

PROS:

  • Great support
  • Industry backed project
  • Supported on many flight controller boards. PX4 supported hardware boards 
  • Usable on many different vehicle types
  • BSD License allows businesses to protect their IP

CONS:

  • BSD License. The project will lose out on innovation getting pushed back to the main branch
  • Not a good choice for FPV racers

BetaFlight

Now we are getting into the FPV projects and away from the autonomous drone projects.

The BetaFlight flight controller software is focused on the performance of manual flight, making it a great choice for FPV quad fanatics. It is arguably the most popular open source software project for FPV drones today.

BefaFlight is primarily used with quadcopters, but can be used on fixed wing aircraft as well. It is a highly supported flight control software project on the popular FPV autopilot boards. Basically, if the board is using at least an STM32F3 processor, then BetaFlight will probably be supported.

BetaFlight is completely open source and has a vast amount of community support behind the project. There are tons of resources available online for the inevitable problems you may run into.

BetaFlight also supports the big RC products like FrSky, FlySky and Graupner.

PROS:

  • Supported on any autopilot hardware board using at least a STM32F3 processor. BetaFlight supported hardware boards
  • Great community support
  • Dedicated to manual flight performance and safety

CONS:

  • Not applicable for autonomous drones (Not really a con, just a reminder)

CleanFlight

The CleanFlight software project is also extremely popular for FPV quad applications.

It has its roots in the now deprecated MultiWii code, but has upgraded the firmware from an 8-bit to a 32-bit project.

CleanFlight operates under the GPL license, so any changes must be pushed back to the main branch.

Much like BetaFlight, CleanFlight is also supported on a wide variety of autopilot boards, as it is available on 8 different boards.

Their documentation is excellent and online resources vast, which will aid any troubleshooting you may have.

Ultimately, CleanFlight and BetaFlight are very similar, and choosing between the two may just be a matter of preference. Much like Dr. Pepper vs Mr. Pibb.

PROS:

  • Supported on any autopilot hardware board using at least a STM32F3 processor. CleanFlight supported hardware boards
  • Great community support
  • Dedicated to manual flight performance and safety

CONS:

  • Not applicable for autonomous drones (Not really a con, just a reminder)

Honorable FPV Software Mention

LibrePilot

The pieces of the OpenPilot project turned into the LibrePilot project. While not as popular as CleanFlight and BetaFlight, it is a viable option for FPV quadcopters as well.

LibrePilot supported boards

Drone Flight Controllers

So now you’ve learned about the major open source drone projects. A next step might be determining which flight control board you will want to use. If so, checkout my list of the top autopilot boards on the market.