1. Home
  2. Tutorials
  3. Drones
Yolinux.com Tutorial

Open Source Drones:

This page is a resource for the drone community supporting Drones based on Free and Open Source Software (FOSS).

Free Information Technology Magazines and Document Downloads
TradePub link image


The ubiquity of the electric multicopter drone was made possible by Arduino based flight software and Linux based ground station planning software. Some drone manufacturers like 3D Robotics and Yuneec have stayed true to the Open Source Software roots while the industry leader DJI is predominantly closed source and proprietary.

This page lists the open source software components and related hardware to support the drone eccosystem.


FOSS Based Drone Manufacturers:

Flight Software:

Big open source institutions like the Linux Foundation (industry financed) are sponsoring flight software operating systems through the DroneCode project. Industry partners include chipmakers like Intel and Qualcomm as well as by FOSS based drone manufacturers. Developemnt and experimentation has begun using a more powerful Linux based Raspberry Pi. There are even "fused" systems that have integrated Arduino based Pixhawk and Linux based Raspberry Pi. These systems are Raspberry Pi based with a "Companion Computer" (CC) for real-time flight control. Flight software follows drone brands and flight controller brands where legacy 3DR and partners are ArduPilot based, DJI is mostly proprietary but has new projects based on Robot Operating System (ROS), Eagle Tree based systems use OSD and Libre Pilot based systems are simpler and used extensively in smaller drone racers.

Drone Stacks:

most provide a software technology stack which includes a flight control/autopilot, an SDK, ground software, mobile apps, etc:
  • DroneCode.org: (stack) (Linux Foundation sponsored) (Linux Foundation sponsored)
    • PX4 flight code project (originated from the Pixhawk flight controller project). Runs on QuRT OS, Pixhawk-compatible flight controllers and Linux based systems.
  • Flybase.com: FlytOS: (stack) Drone OS which supports PX4 or APM, multiple companion computers built on ROS and Linux, a control station, etc.
  • dRonin.org - open source software stack targeted to FPV racing
  • Libre Pilot (OpenPilot) - (source) - FPV racing
  • DroneKit.io - 3DR Solo drone stack which includes Tocto Linux connected to a Pixhawk/ArduPilot autopilot and MAVLink telemetry all connected to an Android based ground software and their cloud services.
  • PaparazziUAV.org - autopilot and ground station software
Support Software:
  • MAVLink - message marshalling library for drones - used for telemetry streams, configuring the onboard mission or changing the system configuration.
  • ROS.org: DJI SDK (Github: DJI OSD source code) - a ROS interface for the DJI SDK using a serial port.
  • MW OSD - On Screen Display Open Source solution for use primarily with UAV's and with GPS. Supports APM, Naza and Eagle Tree flight controller hardware.

Flight Controller/AutoPilot:

These are the flight/auto pilot software found in many drone stacks. Both APM and PX4 run on the same OS and Driver layers.
  • PX4: (large number of peripherals supported)
    • PX4 flight code project (originated from the Pixhawk flight controller project). Runs on QuRT OS, Pixhawk-compatible flight controllers and Linux based systems.
    PX4 will require DSP Abstraction Layer (DSPAL) to provide a POSIX interface for porting code for QuRT.
  • APM: also known as ArduPilot (large community and used in 3DR Solo) Note that Arduino based platforms are embedded, minimalistic platforms.

The flight controller software in turn runs on a Real-Time Operating System (RTOS): (typically bundled with the flight stack)

Flight Hardware:

Most Open Source flight software runs on an Arduino based flight controllers developed by 3D Robotics known as the Pixhawk. This runs a single purpose embedded OS.

Drone Rasberry Pi/Companion Computer (CC): (Note: Raspberry Pi B+ has been designed specifically with add-on boards in mind) Also see software for Raspberry Pi B+ ADD-ON BOARDS AND HATs

Ground Station Software:

PC Based:

  • Mission Planner - C# .net
  • APM PLanner - APM Planner Ground Control Station (Qt)
  • QGroundControl (QGC) - full flight control and mission planning for any MAVLink enabled drone. Configuration for ArduPilot or PX4 Pro powered flight control. (Linux Foundation sponsored)
  • Real Flight - RC flight simulator
  • Skyward IO - Collaborate with customer and pilot on flight plans

Web Based:

Mobile App Software:
  • B4UFLY - FAA mobile app to help determine whether there are any restrictions or requirements in effect at the location where they want to fly
  • AirMap - Airspace maps from FAA "Know before you fly" program
  • Drone Deploy - Capture imagery, process maps and 3D models, and interpret data
  • Drone Watcher - detects, tracks and alerts most commercially-available consumer and prosumer drones and records data including the drone type and ID using advanced signals intelligence technology
  • Pocket Drone Control - Get local weather and drone flight conditions for your current location
  • Tower/DroidPlanner 3 - Ground Control Station (GCS) Android app built atop DroneKit-Android, for UAVs running Ardupilot software. Works with 3DR drones (default).
  • UAV Forecast - identify no-fly zones, get weather forecasts, view flight restrictions
  • Real Flight - RC flight simulator
  • Skyward IO - IOS and Android collaborative flight planner
  • Verify.com: on demand drone flight insurance - select flight area and get instant approval with on-the-spot proof of insurance
  • AirNest - flight planning, logger, playback and metrics
  • Hover - flight readiness dashboard to let you know if its safe to fly your and a real-time weather and an aggregated news feed. Includes no fly zone maps (US only)

FlytBase Apps available as source code: (only)
  • Joystick - Drone control uses FlytBase Drone Navigation APIs to send velocity setpoints to your drone and eventually control Roll, Pitch and Yaw movements of the vehicle.
  • Video Streaming App - for drones using Wi-Fi video streaming.
  • GPS Follow Me App - GPS Follow Me mobile app enables your drone to follow you around.
  • Visual Follow Me - object tracking using computer vision
  • AprilTag Detection - AprilTags are 2D barcodes developed for robotics applications and are now being used in various drone applications. This project integrates AprilTags detection with FlytOS.
  • Obstacle Detection using Sonar - uses Sonar connected to Arduino to detect obstacles from 6 directions and publish the distance data into ROS.
  • Visual Servoing - video pointing and control - This app uses gimbal APIs to control a 3-axis gimbal in order to keep the camera(mounted on gimbal) focused on an object of interest in the vicinity. FlytOS vision APIs are used to detect and track the object.
  • Search and Rescue - dedicated to find missing people

Other Software:

Drone Software:


Visible light, optical sensors (still cameras and video).


Micro Four Thirds Cameras: also known as MFT or M4/3 is a standard design for mirrorless, interchangeable lens digital cameras and lenses. The design facilitates smaller body designs and shorter focal distances supported by smaller lenses. The image sensor is 18 mm × 13.5 mm with an imaging area of 17.3 mm × 13.0 mm using a 4:3 image aspect ratio. Typical DSLRs are 3:2 defined by the traditional 35 mm format. Cropping is used to produce 16:9, 3:2 and 1:1 ratio images. The MFT format cameras are becomming a favorite for high quality drone photography.


Lidar, infrared sensors:


Keeps the camera steady in 3 axis

Video Transmitters and Receivers:

Typically the video TX/RX is on 5.8 GHz. The transmitters typically have a USB Mini-B plug to the video camera. A RP-SMA (Reverse Polarity - Sub-Miniature Version A) antenna is connected using coaxial RF connectors.

Video Transmitters:

Video Receivers:

  • Hoodman - hoods to block screen glare
The black pigtail connects to the camera (in this case a GoPro), and the black/red pig tail connects to a power supply. Antenna is shown connected to the video transmitter.

Radio Control Transmitters and Receivers:

Left joystick:
  • Up/Down: Throttle to make the drone go up or down
  • Left/Right: yaw (spin counter clockwise/clockwise)
Right joystick:
  • Up/Down: Forward/backward flight also known as pitch
  • Left/Right: fly left/right also known as roll
Switchces and knobs control specific functions such as camera pitch, pre-programmed functions such as Return to Launch (RTL), etc. The screen in the lower middle is a telemetry display.


Extended Range Transmitters, Receivers and Antennas:

  • ItElite: 5 GHz - extended range video antennas
    ItEDBS - DJI and racing extenders, Video (5GHz) and RC (2.4 GHz) transmitter range extending antennas to double or triple the normal range.


Typically the multicopter drones are electric powered using 11 to 15 volt (depending on the manufacturer) lithium-ion polymer batteries, also known as LiPO batteries. These batteries use a semi-solid polymer gel electrolyte instead of a liquid one. They are also charged in a Nomex burn proof pouch in case they catch fire while charging. The charger must also be careful not to over-charge the battery or exceed its charging rate to avoid over-temperature conditions. Overcharging can result in a slight vaporisation of the electrolyte resulting in delamination of the cells and diminished reliability.

Balance Connector: There is typically an extra pair of wires connecting the battery to the charger known as the "balance connector" which helps to monitor and "ballance" the charge among the cells in the battery. Without the balance connector, an imbalance can occur which could lead to cell damage or in extreme cases, result in a fire. The charging wire connects to the positive of one cell while the negative connects to one cell at the other end of the series of connected cells. For a typical 11.1 vold battery of three cells, the voltages are additive in series: 3.7v, 7.4v and 11.1 v. A single cell should never be charged beyond 4.2 v as damage and fire may occur. Only the balance connector will be connected to each cell in the series. The balancer can monitor and even discharge the higher voltage cells before they become problematic. There are three popular balance connector types:

  • TP: Thunder Power (2 mm spacing)
  • JST-XH (0.1 in spacing) [most popular]
  • Hyperion (0.1 in spacing)
One will have to choose a compatible battery charger combination.

  • Never charge a battery that is at a temperature below 0ºC (freezing) as you risk an explosion at these temperatures.
  • Cells that are obviously swollen or have physical damage should never be used. A swollen cell should never be punctured.
  • If the battery is getting hot, unplug it! This can lead to a swollen cell.
  • Only charge a LiPO battery in a fireproof container.
  • Never leave a LiPO battery charging unattended.
  • Never allow a single cell to discharge below 3.3 v for a 3.7 v battery. If the cell ever reaches 3.0 volts or lower, it is done, never use it again. This may sound strange when compared to NiCad or automotive batteries. Always store a LiPO battery charged (3.8 v) to avoid a low voltage condition.
  • A LiPO battery cell MUST stay within a voltage range of 3.0 to 4.2 volts to avoid damage to the battery. The electronic speed control (ESC) will have a low voltage cutoff (LVC) programmed to 3.0 volts to prevent an over-discharge condition. In flight there will be a sudden drop in power caused by the LVC.
Drone charger and battery

Battery Chargers:


Lithium Polymer batteries are used in drones because of their low weight compared to NiCad, NiMH and lead-acid batteries, have a high energy to weight ratio and offer high discharge rates.

C Ratings: Lithium Polymer batteries have a "C" rating to describe their "capacity" for discharge or continuous discharge rate. Charging is typically at a "1 C" rate. The burst rate is typically twice the continuous discharge rate but can not be sustained.

Single Cell Charging Capacity:
Percent ChargedVoltage
Don't fly with less than 3.7 volts.

Drone Battery Vendors:
Drone battery
Venom LiPO 5100 mAh, 11.1 volt 3S 8C battery for the IRIS+
  • Discharge rate: 8C (5.1 A x 8 = 40.8 A max continuous discharge rate)
  • Number of Cells in Series: 3 S (3 x 3.7v cells in series = 11.1 volts)
  • Power connector: XT60
  • Ballance connector: JST-XH
  • Weight: 320 g
  • Dimensions: 13.5 cm x 4 cm x 2.5 cm


Drone Structure and Parts:

Open Designs:


Travel Cases:

Drone Services:

Drone Related Acronyms:

AOIAsynchronous Input/Output
CAN busController Area Network bus standard for microcontrollers and devices to communicate with each other in applications without a host computer
CCCompanion Computer (typically a real-time flight "companion" computer connected to a Rasberry Pi)
ESCElectronic Speed Controller (controls the rotational speed of the electric motors)
FPVFirst Person View
GCSGround Control Station
GNSSGlobal Navigation Satellite System (using GPS, GLONASS, Galileo or BeiDou systems)
HALHardware Abstraction Layer
HATHardware Attached on Top (companion processor), also Height Above Terrain
HDMIHigh-Definition Multimedia Interface (video interface)
IMUInertial Measurement Unit
INSInertial Navigation System (used where GPS is blocked/shadowed or has multi-path errors)
LVCLow Voltage Cutoff (set by the ESC to avoid battery discharge below 3 v)
LWIRLong Wave Infra Red
MIPIMobile Industry Processor Interface (VGA camera interface)
OSDOn Screen Display
OTGOn The Go USB port for a device to act as a host
ROSRobot Operating System - middleware layer and support apps which run on Linux or a POSIX compliant OS
RTOSReal-Time Operating System (code runs on processor without sharing with multiple users and applications which reduce the latency and predictability of the software's response time)
SUASSmall Unmanned Aerial Systems
UASUnmanned Aerial Systems
UAVUnmanned Aerial Vehicle
UBECUniversal Battery Eliminator Circuit
VGAVideo Graphics Array

Book imageBooks:


    Bookmark and Share