In this detailed guide, you will learn all you need to know about drone programming and programmable drone kits, as well as our top recommendations for the best programmable drone kit available in the market today.
So without further adieu, let’s begin.
Yes, there are specific drone models that are programmable, but it’s important to understand that not all drones are programmable.
Most programmable drones are designed for educational purposes to help students and hobbyists learn, but there are also DIY drone kits where you can build the drone and program the drone from scratch to make it totally your own.
To answer this question, we have to understand that there are two different layers of drone programming: low-level and high-level. In low-level programming, we are dealing with the drone’s firmware, while in high-level drone programming, we are talking about applications or software level.
In low-level programming, our concentration is on the drone’s firmware, which basically coordinates the hardware aspects of the drone such as the motor(s), propellers, ESC, battery, etc. Basically, the drone’s firmware allows the drone to have its basic functionalities and operations.
The drone’s firmware, for example, handles things like determining the exact amount of power that should be delivered to the motors by analyzing the information coming from the drone’s IMU (Inertial Measurement Unit). This will allow the drone to perform a stable and level flight, the most basic and yet most important function of any drone.
In low-level programming, C and C++ are the primary programming language you’d need to learn, although lower-level machine language like Assembly can also help.
Obviously, these lower-level languages aren’t the easiest to learn, but once you get the hang of them, they can be a lot of fun as you learn to program the different aspects of the drone’s hardware and firmware.
In cases of DIY/modular drone, the hardware kit used would also determine what kinds of language is needed to build the code.
For example, Arduino and Raspberry Pi are popular in modular drone kits, and in such cases, we should use the respective language that is compatible with these modular hardware kits. Most of these languages, however, are based on C/C++.
Arduino, for example, is actually a group of C/C++ commands that we can call through an interface that is Arduino sketch.
So, basically, if you know enough C and C++, you are good to go.
In this type of programming, we are dealing with the applications of the drone. A drone is already a complete unit, and we can treat it as an API that would respond to our command.
Functions like controlling the drone to a certain altitude via the Flight Controller (FC) or interpreting information from GPS so the drone can move to a GPS waypoint, and even increasing/decreasing speed are handled by high-level programming.
High-level programming will work together with the firmware to perform the intended response and a high-level programmer doesn’t need to consider the technicalities of how the program is executed at the firmware level.
For example, in high-level programming, we only need to consider how the drone can read the information from GPS correctly and ensure it will move to the desired location. How the motors and ESC must work are handled in low-level programming, and is not the concern here.
As you can see, high-level programming is much more accessible and user-friendly. Python is a very popular high-level language that is also popular in drone programming, and Java is another popular choice.
Typically in high-level programming, however, we are most likely to deal with APIs (Application Programming Interfaces) rather than an actual language.
For example, the drone in question might provide a Java-based API so we can code the AR in Java with the help of an interface. There are, however, APIs that are based on C/C++, so again knowing your C/C++ can be a valuable asset.
The best approach is to get a programmable drone and use an SDK and API to program the drone at its application level.
There are programmable drones that include their SDK/API in their packages, but if you already happen to own a compatible drone, you might be able to hack into the drone to use an SDK, depending on the drone model.
Basically what you need to do here is to get a drone that supports the SDK and/or programming language of your choosing.
The basic approach here is to build your own mobile drone app using the SDK, the app is where our high-level programming will go, and in turn, the app will control the drone’s application.
There are many SDK/API options available for building drone apps at the moment, but here are some of the common options that are supported by popular drone products:
DroneKit is an SDK/API produced by 3D Robotics, and you can easily access DroneKit’s Android SDK documentation to create an Android control app. The DroneKit APIs and SDKs are free and open-source and supports all major drone platforms.
DroneKit DK supports autonomous flight features, intelligent path planning, and live telemetry, but we can use its API libraries to integrate additional actuators, sensors, and unlock more features.
It is an open-source SDK, so although it is totally free, you won’t get dedicated customer support. However, there are various example projects that can help you learn to program in their GitHub repositories.
FlytBase is another popular platform offering SDKs and APIs to build a drone control app. Unlike DroneKit, however, it is not an open-source platform, so you’d need to register with FlytBase before you can use the solution. Meaning, it’s not free.
FlytBase supports all popular drone models, sensors, and cloud services, and also offer several unique features like unified APIs and a drone simulator feature. You can use its Android SDK (called FlytSDK) to create your Android control app, and FlytBase also offers various APIs.
DJI is obviously one of the most famous drone manufacturers today, and it offers its SDKs and APIs for creating both iOS and Android drone control apps. DJI’s SDKs and APIs are actually very versatile, offering various features like obstacle evasion, live video feed, remote access to camera’s media, high and low-level flight control, and more.
DJI’s SDK and API are not free, and you can contact DJI for more information. Depending on the drone device you use, DJI also offers brand-specific SDKs that support Spark, Mavic, Phantom series, and more.
Parrot offers free SDK with sample code repositories that you can use to build your drone control app. You can include some unique features like save/download media and send autopilot flight plans with the programmed drone control app.
Parrot’s SDK works with various popular drone platforms and is based on C/C++. Supports both Android and iOS. You can easily check their sample projects (for both Android and iOS) in their GitHub repository.
With that being said, below we will discuss some programmable drones you can buy that supports these SDKs and APIs.
Below are the programmable drone kits we think top the list right now. Drone programming can be a great way to learn different programming languages and constructs. The best part is you’ll enjoy hours of fun flying something that you’ve programmed from scratch.
Parrot, as discussed, has its own APIs and SDKs, and recently they have launched Parrot Education to support people who want to learn about drone programming.
In short, a very versatile platform if you want to try drone programming.
The Parrot Anafi is a fast and agile drone with a fairly compact design. Very versatile for programming needs, and also in the hardware department as you can add and combine various physical modules.
By itself, it is already a strong performer with a great battery/motor and various auto-pilot options, but it is the versatility that makes the Parrot Anafit one of the best programmable drone kits available in the market today.
You can use Python and C/C++ programming language with this drone, and you might want to check the GitHub repository here.
The Eachine E520 is great programmable drone kit that is relatively affordable. It is portable and compact but includes a great camera that can handle 4K. Also, what’s really great about this drone is it support VR (Virtual Reality).
Put your cellphone into the VR Glasses (not included) and experience real-time transmission to enjoy 3D Virtual Reality live video! It is also pretty versatile, programming-wise, since it supports both Python and C/C++.
Ryze Tech Tello has a mobile programming app called Tello EDU, which supports Scratch, a block-based visual programming language that allows you to program the Ryze Tech Tello to perform the desired movement.
Scratch is a very intuitive programming language, where you can simply drag and drop coding blocks on your smartphone to program the drone.
The Ryze Tech Tello is an affordable programmable drone if you want to learn drone programming. Great for both children and adults, and actually produces pretty decent 720p video. Easily programmable with Scratch, a very easy programming language to learn.
It is also very light and compact with only 80 grams of weight. However, due to its lightweight, it can’t fly well in winds above 5mph, so you might only want to only fly the Tello during windless conditions.
It’s not a modular design, so you can’t build it DIY, and it doesn’t support more ‘difficult’ programming languages. It’s more tailored for beginner programmers that wanted to learn the basics of software programming.
Parrot, as discusses, has its own APIs and SDKs, and recently they have launched Parrot Education to support people who want to learn about drone programming.
One of the most stable mini-drones available today with its great auto-pilot system and great sensors. Very easy to fly indoors and outdoors. Again, the Parrot SDKs and APIs are a great environment for learning drone programming, making it one of the best programmable drone kits if you want to learn software programming.
The CoDrone Pro is an Adruino-based drone with an Adruino-based remote, so programming is done in a text-based Adruino coding environment, but you can also use C++.
The Robolink CoDrone Pro only weighs slightly less than 40 grams (37 grams). A very popular drone programming kit that offers free online tutorials. Offers Adruino-based programming and also supports C++.
A great choice if you want to learn fundamental drone programming like loops, variables, and conditionals to fly the drone and customize your flight.
The 5 best programmable drones we have shared above are our top picks that can suit electronics hobbyists, students, and even professionals. Our number one pick here goes to the Parrot Anafi Quadcopter for its great overall quality and features.
However, this drone is not cheap so opting for one of the cheaper options on the list may be a better fit for you. Rest assured, all models presented are great drones and programmable drone kits with their own unique strengths and weaknesses.
We hope you’ve gathered enough information from this guide, and we hope that you’ll consider a drone for your next programming project!
If you enjoyed this article about programming, be sure to check out some of these great articles too: