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

udp frames starting with 0xcc, data is 12 or 13 bytes long - what is this?

martinpi

Well-known member
Joined
Dec 15, 2019
Messages
111
Reaction score
54
Location
Vienna. Austria
Website
martinpi.at
On Wireshark, I see frames like this one:

cc-frames.jpg

192.168.0.3 is my PC.
192.168.0.0 is Tello.

The frames with a data length of roughly 160 are the stat frames. "mid:-1;x:0;y:0..."
Then there are the frames which I send, like "go 0 0 0 25 20"
and the frames which I expect, like "ok".

And inbetween, roughly every half second, there are these frames like the one in the picture.
What does that mean?
 
  • Like
Reactions: arrow_206
You have low level protocol decoded in the wiki section here:
Message ID is in bytes 5-6 (little endian), in this case 0x0035 ... its Light Strenght!
 
You have low level protocol decoded in the wiki section here:
Message ID is in bytes 5-6 (little endian), in this case 0x0035 ... its Light Strenght!
Thanks a lot!

When I am not mistaken, there is a way to send and receive information that is not covered in the SDK.
This information is not encoded in ASCII characters, is this correct?

I found this on the web: "https://github.com/SMerrony/tello/blob/master/ImplementationChart.md"
(where I find 00 35 = light strength. And many others)
 
Thanks a lot!

When I am not mistaken, there is a way to send and receive information that is not covered in the SDK.
This information is not encoded in ASCII characters, is this correct?

I found this on the web: "https://github.com/SMerrony/tello/blob/master/ImplementationChart.md"
(where I find 00 35 = light strength. And many others)
That is the low level protocol, there are GO and C# implementations available. I tried to implement this using Processing make some progress but still struggling with getting flightdata and Video, too.

The Processing language is based on Java.

Example:

Code:
public byte[] land()
  {
    byte[] packet =  { byte(0xcc), byte(0x60), byte(0x00), byte(0x27), byte(0x68), byte(0x55), byte(0x00), byte(0xe5), byte(0x01), byte(0x00), byte(0xba), byte(0xc7) };

    //payload
    packet[9] = 0x00;//todo. Find out what this is for.
    setPacketSequence(packet);
    setPacketCRCs(packet);
    return packet;
  }
...
......
 /** 
  /*
  /*  document me
  */
  public byte[]setMaxHeight(int height)
  {
     //                                                         crc         typ         cmdL        cmdH        seqL        seqH        heiL        heiH       crc          crc
     byte[] packet = { byte(0xcc), byte(0x68), byte(0x00), byte(0x27), byte(0x68), byte(0x58), byte(0x00), byte(0x00), byte(0x00), byte(0x00), byte(0x00),byte(0x5b) , byte(0xc5) };

     //payload
     packet[9] = (byte)(height & 0xff);
     packet[10] = (byte)((height >>8) & 0xff);

     setPacketSequence(packet);
     setPacketCRCs(packet);

     return (packet);
  }
 

New Posts

Members online

Forum statistics

Threads
5,700
Messages
39,966
Members
17,060
Latest member
Clubfooted

New Posts