The term drone an increasingly popular way to refer to the helicopter-like devices that are being flown by millions of people around the globe. However, there are other terms used to describe them, which can make things a bit confusing. It does seem a bit strange to have the word “drone” used to not only cover a $30 hobby aircraft that a child can fly but to also describe a high-tech $10 million weapon used on a battlefield. Those devices don’t exactly serve the same purpose. So why don’t they have different names?

UAV – A UAV is an Unmanned Aerial Vehicle. They are able to fly remotely (such as with a controller or tablet) or autonomously.
UAS – A UAS (Unmanned Aircraft Systems) includes not only the UAV (or drone), but also the person on the ground controlling the flight and the system in place that connects both of them.
RPA – RPA is Remotely Piloted Aircraft is essentially interchangeable with UAV since there is no consensus at the moment.

Let’s take a look at some of those projects the drone-building community has created many software and hardware projects under open licenses that allow you to build, repair, customize, and experiment with your own drone, or to supplement the use of drones in some other way.


Paparazzi UAV

Paparazzi UAV is a GPLv2 licensed project that combines both the software and hardware needed to build and fly an open source vehicle under open licenses. Its primary focus is autonomous flight, and it’s designed to be portable to allow operators to easily take their devices into the field and program their flights across a series of waypoints. Source code and releases of the software components can be found on GitHub, and tutorials for adapting it to off-the-shelf or custom-built hardware can be found on the project’s wiki.



ArduPilot claims it’s “the most advanced, full-featured, and reliable open source autopilot software available.” That’s probably not blowing smoke: it’s installed in more than 1 million drones and other UAVs, including airplanes, helicopters, boats, and submarines, and it has a large number of contributors working on the project. Its features include advanced data-logging, analysis, and simulation tools, and it’s supported by a broad ecosystem of third-party sensors, companion computers, and communication systems.

ArduPilot founded the Dronecode project (described below), but split from it in 2016 over disagreements around open source licensing; ArduPilot is licensed under GPLv3, which co-founder Craig Elder says leads to greater collaboration because all code changes must be openly published, unlike Dronecode’s BSD license. ArduPilot’s source code is available on GitHub.



The Dronecode project is a Linux Foundation-sponsored project working to build a common open source platform for UAV development. It’s been through a lot of changes in the last few years, but today it serves as the governance structure for the components of the overall platform, where the project’s actual development occurs. Those components include the PX4 autopilot flight control system, the MAVLink robotics communication toolkit, and the QGroundControl user interface for flight control, mission planning, and configuration, all of which have individual GitHub repositories.



The LibrePilot software suite is designed to control multi-copters and other radio-controlled drones. The project’s roots lie in the Open Pilot UAV software project, and its goals are to support research and development of software and hardware for vehicle control and stabilization, unmanned autonomous vehicles, and robotics applications. LibreProject’s founders are committed to creating an open and collaborative environment, including working with similar projects. The main project is hosted on BitBucket and it’s licensed under GPLv3.



Flone is a cool project that basically turns a smartphone into a drone. It combines a digitally fabricated airframe with software that allows an Android smartphone on the ground to control the one strapped onto the airframe via Bluetooth. It is licensed under GPLv3 and its source code resides on GitHub. English-speaking developers and drone enthusiasts should know that the project is based in Spain and most of the documentation and other materials are in Spanish.



The opendronemap software takes this aerial imagery and helps you process it into point clouds, digital surface and elevation models, or just orthorectify the imagery (in essence, line up the imagery to a known coordinate system for further analysis).

Grab the source or a beta release on GitHub under a GPLv3 license, as well as a sample data set, and see whether it’s a good fit for you; the project’s wiki has more information. OpenDroneMap is designed to be run on Linux and can be run with Docker to avoid needing the exact configuration environment the project was built for.



DronePan is an iOS app (with an Android app on the way) that automates panoramic photography with DJI drones. As Preston Ward explained in an article, DronePan, “temporarily takes control of the [drone’s] aircraft heading and camera angle. After a simple tap or two, DronePan begins shooting 15 to 25 photos automatically with the proper overlap required for an aerial spherical panorama. When the panorama is complete, users resume manual control and can fly to other locations to shoot more panoramas.” DronePan is licensed under the GPLv3 license; you can access its source code on GitHub.