This is a continuation of my Tello Drone blog. I thought that I'd go over some of the controller options.
As I mentioned in the previous blog, communication with the Tello is via 802.11n wifi (2.4GHz). There are iOS and Android apps available and there is a command mode (control via text strings).
iOS control
I typically fly the Tello using the Tello app on my iPhone 6. I have also used my iPad Air 2, but I prefer the smaller size of the iPhone. I haven't tried Android but I imagine it is a similar experience.
This is a screenshot of the Tello app. There are virtual joysticks on the left and right. The joystick on the left controls altitude and yaw, the joystick on the right controls forward, back, left, right movement. The video stream from the Tello is displayed on screen. Across the top there are buttons for takeoff/land, intelligent flight modes, settings, playback (pictures/video), take snapshot, record video. And there are status indicators for battery, wifi, bluetooth, speed and altitude. There is a slow/fast flight speed setting. Slow has a maximum flight attitude angle of 9 degrees and maximum flight speed of 6.7 mph (10.8 kph). Fast has a maximum flight attitude angle of 25 degrees and maximum flight speed of 17.8 mph (28.8 kph). I use the slow setting when I am using the virtual joysticks. That being said, I have to admit that the virtual joysticks are quite usable.
There is an option to use a "real" game controller either via usb or bluetooth. The only controller that I have seen that is guaranteed compatible with iOS app is the Gamesir T1. That's what I ended up using.
Picture of my iPhone mounted on the Gamesir controller.
Screenshot of Tello app using Gamesir controller - virtual joysticks are gone. Bluetooth is connected.
Diagram of the controller button functions.
It is much easier to fly with the game controller. Highly recommended.
FPV (First Person View)
I normally fly the Tello line-of-sight (i.e. I watch the drone as I fly it). The only issues that I've had is being able to identify which direction the drone is pointing when it is far away. The Tello comes with only black propellers. The instructor at PCC gave me a set of yellow aftermarket propellers that I mounted in the front so it is easier to identify. If you are flying with prop guards, you could also paint the front prop guards. I was told never to paint the propellers because they could become unbalanced. Also these quad drones use counter rotating propellers, so if you mount the propellers in the incorrect positions the drone will flip over when you attempt to take off.
The app has an FPV (VR) capability that allows you to fly with a standard VR headset that is configured to use the phone as the display.
Here is a screenshot of the VR display on the phone.
Images of the VR headset. I am using an inexpensive VR-Shinecon - about $15.
The FPV experience is something that takes some getting used to. First time I used it I could fly for only about 10 minutes and came away with a headache. The biggest problem with flying the Tello with FPV is the lag due to using high resolution digital video. It is very difficult to fly at reasonable speeds because you will always overshoot. A very experienced pilot, who races micro drones using FPV with analog video, had problems flying the Tello with FPV because of the lag. I have found that FPV is useful in positioning the drone for taking pictures, but I don't use it for flying. I've crashed too many times.
Tello Command SDK:
Tello has an SDK that allows you to fly drone using text commands via a WiFi UDP port. The original intent was to allow kids to do simple flight programs using a kid-friendly language like Scratch. Since it is just using a UDP port, you can pretty much use any programming language to send the commands. I've used Python on a Linux laptop to fly the drone in command mode. I found the Droneblocks app for iOS. Droneblocks was written as a control program app for the DJI family of drone and it has been updated to include the Tello.
Screenshot of the Droneblocks app on my iPhone. It's a lot like Scratch.
I've had a few issues using command mode. A general issue flying under program control is that you depend on the drone to be able to hold position correctly (i.e. only move as commanded). I've found that the altitude/position hold on the Tello is very sensitive to light and ground surface conditions. If there is low light or a reflective surface the Tello will drift in x,y,z directions. And it has issues holding if there is wind. So, if you try to fly programmatically..... make sure you have lots of extra space. Another issue is command lag. It is necessary to insert delays between commands or they may not execute correctly. I'm not sure what the source of the delay is.
The biggest issue I've had with command mode is it apparently disables some of the failsafes. Command mode cannot run simultaneously with the Tello app - they are mutually exclusive. So, if there is an issue in command mode - there isn't any way to recover. On several occasions I've lost the ability to land (not sure if the sensors were having issues). I could basically execute all the other flight commands, but it would not land. There is a failsafe mode which automatically initiates landing if WiFi is weak or lost for 50 seconds. I disconnected my WiFi, but the Tello just kept hovering (and slowly drifting away).
There has been a pretty active community of "hackers" finding ways to access the Tello resources to implement additional functionality (e.g. image identification and tracking). I'm certainly interested in that and I may do a future blog if I make any headway in that area.
I'll end with a short video showing the Tello trying to hold altitude and position in a relatively benign environment (my garage) while doing a 360 degree spin.
Top Comments