Hello Tello Pilot!
Join our DJI Tello community & remove this banner.
Sign up

Problem with returned speed and altitude values from API

chippy

Member
Joined
Nov 17, 2021
Messages
6
Reaction score
0
I'm currently coding a Python application to drive my (basic, not EDU) Tello with a PS3 gamepad. It's going well - I can control the Tello with the game pad joysticks, and show the video feed in the application window - but more refining to do yet.

Two issues though...
(1) the value returned by the height? query is supposed to be (SDK 1.3) in cm, but I get e.g. "9dm". Judging by other examples and the actual height of the drone at the time it looks like the value is in decimeters (it's what "dm" sounds like). Is this possible? It's not what the docs say.
(2) the value returned by speed? is always 100. Any ideas why?

My firmware level is 01.04.92.01 (could be 01.04.97.01, can't read my own writing). The Tello app says there's an update available 01.05.01.07 but it's for the Tello EDU/Talent so I've not tried it, and advice on this forum suggests I shouldn't.
 
Last edited:
I would recommend to listen to the telemetry messages received on UDP port 8890 and parse them.

As far as I know, basic Tello can not be upgraded to Tello EDU using the latest firmware.
 
I would recommend to listen to the telemetry messages received on UDP port 8890 and parse them.
Yes, that's what I am doing.
As far as I know, basic Tello can not be upgraded to Tello EDU using the latest firmware.
That's what I assumed. I only mentioned the EDU upgrade to show that I've looked and found I'm probably already on the latest firmware for this Tello.

Can you confirm that my model should conform to SDK 1.3? If so, I'm more than curious as to why it doesn't appear to, and why no-one else has complained. At the moment, I'm trying to establish through trial and error just how each command responds (or doesn't), but I shouldn't really have to do that.
 
I can not confirm, if your model / firmware conforms to SDK 1.3.
I can only say, that Tello EDU with latest firmware provides "z" (height) in cm.

EDIT:
...and "x", "y" and "z" only come with valid values, when you fly above a mission pad. In other cases, "tof" and "baro" may be helpful but I did not experiment with these.
 
Last edited:
It's frustrating that I can find no mention anywhere, even the official websites, what the SDK level is that the basic Tello supports. SDK 1.3 is the earliest level I can find mentioned anywhere so I'm assuming it's this, but who knows. I looks like I will have to continue reverse engineering the API by observation.

I did find someone else asking the same "dm" question as me, and making the same guess at the answer. The Tello app displays speed and height correctly, so it clearly understands the responses from this Tello.
 
That's useful, thanks. I'm pulling the response data directly from the UDP port so it's as raw as it gets.

In that discussion, @VR_Dev said:
The height I'm getting here is the TelloLib.Height value which you can see jumps in decimeters. I also apply a .2m offset just by eyeballing.
which agrees with my guess at the units. I also think a fudge factor is needed.
 
Just to wrap this up...

I browsed the Tello class in the djitellopy module and it's full of insights into Tello communication - not sure why I'd not thought of this before as it's the "official" interface code. I've switched over to using it.

From this I realized that the speed query is just retrieving the value of set_speed (which is what sets the slow/fast setting of the mobile app) and not as I thought the instantaneous speed over the ground. Its value is 10-100, and the default appears to be 100.
 
Just to wrap this up...

I browsed the Tello class in the djitellopy module and it's full of insights into Tello communication - not sure why I'd not thought of this before as it's the "official" interface code. I've switched over to using it.
The official documentation is not very good. Glad you found a way to get better information. I did not yet look into djitellopy.

Apart from the API, there is a way to communicate with Tello with non-ASCII messages. This seems to be used by smartphone apps. There seems to be no documentation, at least not open to public. Some people try to reverse-engineer this protocol.
Look here, The author uses golang language. I had a look at it, but did not dive deeply into the matter.

From this I realized that the speed query is just retrieving the value of set_speed (which is what sets the slow/fast setting of the mobile app) and not as I thought the instantaneous speed over the ground. Its value is 10-100, and the default appears to be 100.
That's correct.
 
Yes, that's what I am doing.

That's what I assumed. I only mentioned the EDU upgrade to show that I've looked and found I'm probably already on the latest firmware for this Tello.

Can you confirm that my model should conform to SDK 1.3? If so, I'm more than curious as to why it doesn't appear to, and why no-one else has complained. At the moment, I'm trying to establish through trial and error just how each command responds (or doesn't), but I shouldn't really have to do that.
@chippy Can you please share the code or detail that how do you get the telemetry logs from the Tello?
 

New Posts

Members online

No members online now.

Forum statistics

Threads
5,690
Messages
39,934
Members
17,023
Latest member
Repiv

New Posts