Retrieving Drone Status Information Automatically

In the last example, the program explicitly retrieved the status information available from the drone by calling methods on the TelloControl class. These methods send commands to the drone which request an information item, receive the reply, then return the information to the caller (and also store it in the TelloDrone class instance).

Retrieving Drone Status Information

We are about ready to work with the first example program. But first we need to cover some concepts that you will encounter in the example.


The Tello-SDK

The Tello-SDK is a Java project. It contains several packages, each with one or more classes that present the data and methods used to control a Tello drone.

Getting Started with Tello Programming

Programming Tello drones follows a different model than the other robotics platforms discussed in this curriculum. Rather than writing programs that are downloaded to the drone for execution, like the other platforms, Tello programs are executed on the development PC and control the drone by sending it commands over a WIFI connection. So you are writing a PC program rather than a program deployed to a robotics platform.

Getting the Tello Ready

Once you have your Tello in hand, you can download the Tello App. The app will allow you test communications and get an introduction to operating the Tello. The app will also check the firmware version on the drone and allow you to update if needed. The Tello app is an example of a program written to control the drone remotely, very much like the programs you will learn to write.


This lesson is the first in the "off ramp" unit for Tello programmers. This unit contains a detailed exploration of writing Java programs for the control system used on Tello drones. 

We have been learning a lot about the Java programming language. Now its time to explore how we actually write, compile and execute Java programs that control the Tello.

Robotics History

Robotics History Activity

Exercise: Using a Regulated Motor as a Servo

A servo is a motor where we control its movements in finer detail than just turn on or off. Typically we want to move the motor in a range less than one revolution. This allows us to use the servo (motor) to control things like arms (raise/lower) and grippers (open/close). A Regulated Motor allows us to move the motor to a specific angle or by a specific angle. This allows us to have finer control over the movement of the motor and that allows us to control more complex mechanisms than things that just rotate.

What's Next

If you are using the EV3 platform, it is simple enough that you have learned enough Java to do some actual programming. You can skip to Unit 9 and start working on some EV3 example programs. As you proceed in the examples you may see Java concepts and constructs that are covered in Unit 8. After doing some of the examples you should return to Unit 8 and complete it as it covers topics that, while not needed to get started, likely will be needed as you write more serious robot programs.

Packages and Imports

Classes within a project or in a library are organized into packages. A package is simply a grouping identifier specified at the top of a class with the package statement. In a project, all classes with the same package name are grouped together under that name. Packages are important when we want to use libraries of classes published by other programmers, such as the Java Class Library or one of the robot specific libraries included in robot SDKs.