How to Program a drone( DJI)

silakironji
4 min readMar 5, 2024

--

If you’re a complete beginner, you might be surprised to learn that DJI drones, one of the most popular consumer drone brands, can be programmed to perform various tasks beyond their standard capabilities. In this series, we’ll explore how and why programming DJI drones can unlock new possibilities and why they’re an excellent choice for beginners like you.

Why DJI drones?

DJI is a well-established and respected drone manufacturer known for producing high-quality and reliable products. Their drones cater to a wide range of users, from hobbyists to professionals, and offer a variety of features and capabilities. One of the key reasons for choosing DJI drones is their support for development and customization, which allows adapting the drone’s functionalities to specific needs and applications.

Why Program a Drone?

Programming a drone unlocks possibilities allowing you to capture specific types of data, or automate tasks to suit your needs. Whether you’re a hobbyist, a professional photographer, a filmmaker, a scientist, or an engineer, programming a DJI drone can enable you to accomplish tasks that were previously impossible.

Getting started with programming DJI drones

To start programming DJI drones, you’ll need to become familiar with DJI Developer SDKs.

The DJI Developer SDK (Software Development Kit) is a set of software tools, libraries, provided by DJI to enable third-party developers to create custom applications for DJI drones

The SDK allows access to DJI’s core functionalities, such as flight control, camera operations, and real-time data transmission.

The main components of the DJI SDK are:

Mobile SDK:

The Mobile SDK is designed for mobile app development on iOS and Android platforms.

It provides access to features such as flight control, camera control, telemetry data, live video streaming, and intelligent flight modes.

Developers can create custom applications for controlling and interacting with DJI drones using mobile devices.

Onboard SDK:

The Onboard SDK targets embedded systems and onboard computer platforms.

It allows developers to create applications that run directly on DJI drones or companion computers connected to the drones.

With the Onboard SDK, developers can access low-level flight control, sensor data, and perform custom algorithms directly on the drone’s hardware.

NVIDIA Jetson TX2 on a M210

Payload SDK:

The Payload SDK enables developers to create applications that interact with DJI payload devices, such as cameras, sensors, and other accessories.

It provides access to camera control, data transmission, and other functionalities specific to the connected payload.

DJI M200series

UX SDK:

The UX SDK focuses on enhancing the user experience of DJI drone applications.

It provides tools for customizing the user interface, integrating maps, and adding telemetry data overlays to improve the usability and functionality of drone apps.

Windows SDK:

The Windows SDK is specifically tailored for application development on the Windows platform.

It enables developers to create Windows-based applications that interact with DJI drones .

With the Windows SDK, developers can access features similar to those provided by the Mobile SDK, including flight control, camera control, telemetry data, and more.

Cloud API:

The Cloud API (Application Programming Interface) provides access to cloud-based services and functionalities offered by DJI.

It enables integration with DJI’s cloud-based services, such as DJI FlightHub, for managing drone fleets, mission planning, and data analysis.

DJI Pilot 2 App

Before diving deeper, we’ll need to create a DJI Developer account. This account gives you access to DJI’s developer resources, SDKs, documentation and app keys.

Sign up for a DJI developer account at https://developer.dji.com/. This will give you access to DJI’s SDK, documentation, and developer forum.

In the next part of this series, we’ll dive deeper into exploring the structure of DJI Mobile SDK framework

--

--