Low-Level Protocol- DJI Tello


The Tello has also been created with the help of DJI and another industry giant, Intel, using technology from both to make this a budget drone capable of much more than its low-budget competitors. The drone does indeed have a lot of incredible features like HD camera, intelligent flight modes, image stabilization, and a handful of sensors for stable flight. In my option this is the best low-budget drone that you can buy in the market. The biggest benefit for me is that the Tello is programmable and you can unleash your imagination. In the following posts I will explain how you can make it autonomous, as well as how to put a computer vision and artificial intelligence in it. The drone may look small, but it has great potential


I want to thank the United Drone Community for providing me with a Tello drone for my experiments. More information about the Drone Community can be found HERE.

I also want to thank the Tello Pilots forum who helped me start programming the drone. Most of the information in this post is borrowed from them. For more information for the forum you can find in the link below.


Low-Level Protocol


The DJI Tello is communicating with its controller via Wifi on a default port number 8889 using UDP messages. Big part of this messages consist of a structured packet of data in the general format as showed in the table below.


Tello General UDP Packet Structure

The Packet Size is in a strange little-endian format where the lower (first) byte is normal, but the upper (second) byte is shifted 3 bits to the left. So decoding the size looks something like this: size = buffer[1] + ((buffer[2]<<8)>>3)


Packet Type Info Format

The Packet Type dictates the structure of the Payload (if there is one). Subtype seems to be always zero.

Packet Types


Tello Message IDs and Meanings

That's all for now. Thanks again for the borrowed information from the forum. In one of the following posts I will show you how to program the Tello drone.

27 views
  • Dimitar Rangelov linkedin blog
  • Dimitar Rangelov github blog
  • Dimitar Rangelov facebook blog
  • Dimitar Rangelov instagram blog

ʕ•ᴥ•ʔ  Dimitar Rangelov Blog © 2020 | Sharing is Caring | About me ʕ•ᴥ•ʔ