Alexei Yankelevich's Posts (1)

Sort by

Flying drones over long distances or scanning large areas is always challenging. One of the biggest problems is the limited drone communication range. Of course, a drone can fly along the route pre-developed in UgCS, but receiving drone telemetry or sending commands over long distances is not always possible.

For DJI, one of the most widespread drones in the world, the problem is aggravated by the fact that nearly all models require a remote controller with a very limited communication range.

To tackle this problem, we came up with the following ideas:

  1. communicate with a drone via the LTE/4G/5G mobile network
  2. use an antenna with a narrower radiation pattern
  3. use more powerful transmitters and wider communication channels

We investigated each idea and this is what we found. 

1. Communication with the drone via the LTE/4G/5G mobile network

That sounded promising since mobile networks are expanding all over the world and mobile communications are covering more and more territory. Of course, flights sometimes take place in remote areas without LTE/4G/5G, but mobile network communication is OK for most use cases. So, we chose this option as the main one.

2. Antenna with a narrower radiation pattern

Using an antenna with a narrower radiation pattern can increase the communication range, but not dramatically. This option has an inherent challenge: a narrow pattern antenna must track the drone position and rotate accordingly. We began working on it because it seemed interesting, so we will publish a post about it in the future. Stay tuned!

3. More powerful transmitters and wider communication channels

Officially there are no devices yet that are compatible with DJI's most popular drones, so this option was discarded from the very beginning.

Controlling a DJI drone via 4G

To try creating a LTE/4G/5G-controlled drone, we opted for DJI as one of the most common drones on the market. We decided to place a 4G modem on the drone and connect it to an automatic flight controller. The analysis showed that there was only one way to do this: use DJI OSDK (, an additional on-board computer (for example, Raspberry PI or NVidia Jetson Nano) and 4G modem plugged into it.


The DJI OSDK requirements specify the list of compatible drones: all Matrice models and those based on the A3 flight controller.

We assembled an A3-based test bench for local development and debugging. And after successful tests, assembled the full system. The photo with the equipment installed on M600 is provided below.


We also decided that the application should not only ensure integration with DJI OSDK, but act as a full-fledged UgCS onboard VSM (vehicle specific module). That is, the application should allow the drone to connect to UgCS directly via LTE/4G/5G.

As soon as the prototype was ready and debugged, we performed some test flights with Matrice 600.


Moreover, one of these flights included crossing the border, and during it, we tested the switching between two mobile operators. For details, see

As a result of all the experiments, we had an application that meets the following requirements:

  1. The application can be installed on the drone using an additional Raspberry PI computer.
  2. The application allows controlling your DJI drone directly from UgCS without additional remote control or mobile app.
  3. The drone connects to an UgCS server via a LTE/4G/5G network.
  4. UgCS onboard VSM behaviour can be modified to support specific requirements: for example, to add some actions during takeoff or manage a non-standard payload.

Considering that our solution could be useful to others, we decided to make it publicly available to simplify the development and use of various solutions based on UgCS and DJI OSDK. You can download the source code here

Here are possible use-cases for the application:

  1. The drone can be managed via the LTE/4G/5G mobile network, which significantly expands the range of drone use cases in areas covered by mobile Internet.
  2. This solution can help air traffic control bodies to easily track the drone, thus replacing ADS-B to some extent.
  3. Additional payload management features can be added.
  4. Instead of mobile communication channels, you can use any other data links that support TCP and UDP packets for video transmission.
  5. You can use our source code as an example and develop your own solution based on the DJI OSDK and UgCS.



Read more…