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

djitellopy on Chromebooks?

gotdrone

Member
Joined
Mar 10, 2022
Messages
13
Reaction score
1
TL;DR I'm getting the "did not receive a state packet" with DJITelloPy on a Chromebook.

Long version:

I found this thread but it only indicated a problem with Chromebooks at the end, not a solution:


I'm having trouble with the newer Chromebooks with Crostini built in, they run containers under lxd

I get the "did not receive a state packet from the tello" when the library is listening on port 8890 for the state info from the drone.

DJITelloPy works fine for me under pure Linux (and on Python 3.9 and 3.10!), but on the Chromebook there's an issue related to how IPs are assigned and routed.

If I have this right, because the Linux container is on its own IP address, not routable to the outside world, another computer trying to connect to the container IP will always fail.

There is port forwarding but it doesn't get around the fact that the drone is trying to connect to the interal IP of the container.

There's a post somewhere that talks about downgrading Python to 3.8, I have tried 3.7 and 3.8 from source and they still have this error.

So my bottom line question, I think the easiest way to fix this would be if I had access to the ChromeOS routing tables and I'd add a route to the internal IP through the external IP.

Chromebook 4+
running Bullseye under lxd/Crostini
Python 3.9.2 (have tried 3.8.x and 3.7.x from source)
Tello EDU drone

Also looked at:
 
Last edited:
I was possibly being stupid and opened a TCP port when I needed to open a UDP port.

Will update this post, I'm starting from scratch and seeing if all the lxd stuff was necessary.
 
TL;DR I'm getting the "did not receive a state packet" with DJITelloPy on a Chromebook.

Long version:

I found this thread but it only indicated a problem with Chromebooks at the end, not a solution:


I'm having trouble with the newer Chromebooks with Crostini built in, they run containers under lxd

I get the "did not receive a state packet from the tello" when the library is listening on port 8890 for the state info from the drone.

DJITelloPy works fine for me under pure Linux (and on Python 3.9 and 3.10!), but on the Chromebook there's an issue related to how IPs are assigned and routed.

If I have this right, because the Linux container is on its own IP address, not routable to the outside world, another computer trying to connect to the container IP will always fail.

There is port forwarding but it doesn't get around the fact that the drone is trying to connect to the interal IP of the container.

There's a post somewhere that talks about downgrading Python to 3.8, I have tried 3.7 and 3.8 from source and they still have this error.

So my bottom line question, I think the easiest way to fix this would be if I had access to the ChromeOS routing tables and I'd add a route to the internal IP through the external IP.

Chromebook 4+
running Bullseye under lxd/Crostini
Python 3.9.2 (have tried 3.8.x and 3.7.x from source)
Tello EDU drone

Also looked at:
I was able to get it to work by simply enabling port forwarding for port 8890 in Settings->Developers->Linux development environment->Port forwarding
 

New Posts

Members online

No members online now.

Forum statistics

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

New Posts