- Joined
- May 21, 2019
- Messages
- 1
- Reaction score
- 0
I've written about how to interface the Tello with the Logitech F310 Gamepad, with more thoughts about the Tello on my blog here: Using the Logitech F310 gamepad with the DJI Tello
I have the popular, low-cost Logitech F310 gamepad. I've not been too satisfied with the feeling of controlling a drone using a touchscreen, so I wanted to see if it was possible to use my gamepad by looking at some of the efforts in reverse engineering the Tello.
Tello-Python: DJI's official Python API for interacting with the Tello. Promising, but I found their sample apps glitchy.
TelloPy: This library is amazing. It appears to be a port of some of the reverse engineering work on the Tello conducted by the Gobot folks. The API supports everything offered in Tello-Python and much more. To top it off, I found the sample TelloPy apps far more reliable than their Tello-Python counterparts
The nice thing about TelloPy is its controller support using pygame. However, this is limited to the PS4, PS3, XBOne, and Taranis controllers in gamepad mode. My Logitech F310 wired controller wasn't supported, so I figured out the button mappings in pygame and added it to the source of the joystick_and_video.py sample app. I've created a pull request for the same too. To download my fork of TelloPy, clone it from GitHub here:
git clone shortstheory/TelloPy
After this, build and install tellopy. The one currently available on pip seems to be outdated .
cd TelloPy
python setup.py bdist_wheel
pip install dist/tellopy-*.dev*.whl --upgrade
Now switch on the Tello and connect your computer to its WiFi hotspot. The Tello can be controlled using the F310 joystick using:
python tellopy.examples.joystick_and_video.py
Press RB to takeoff and LB to land! The left stick is used for yaw and altitude control and the right stick handles roll and pitch.
Raspberry Pi Controller
It would be nice if this could work without the need of a laptop. I tested this by following the same installation steps on a Pi Zero W running Raspbian Lite and the setup works well. I added the script to the Pi's crontab so it would start on every boot of the Pi:
sudo crontab -e
Followed by adding:
@reboot python /home/pi/TelloPy/tellopy/examples/joystick_and_video.py
To make the Pi Zero W automatically connect to the Tello when switched on, add the following lines to your /etc/wpa_supplicant.conf on the Pi:
network={
ssid="TELLO-XXXXXX"
key_mgmt=NONE
}
The Pi Zero is small enough to be tucked in behind the controller, even with a small Li-ion battery for power. However, I imagine the range of the Pi Zero W's Wi-Fi connection would only make it suitable for indoor flight. Fortunately, this can always be fixed by using a USB Wi-Fi dongle.
Things to be done
While the TelloPy API supports the directional flip capability of the Tello, it doesn't map these controls to the joystick. I plan on dedicating the D-Pad for directional flips. I would also want the video streamed to the Tello to be saved directly to the Pi's internal storage. It would also be interesting to see if I could get the Pi to handle the image processing tasks and control the Tello remotely.
I have the popular, low-cost Logitech F310 gamepad. I've not been too satisfied with the feeling of controlling a drone using a touchscreen, so I wanted to see if it was possible to use my gamepad by looking at some of the efforts in reverse engineering the Tello.
Tello-Python: DJI's official Python API for interacting with the Tello. Promising, but I found their sample apps glitchy.
TelloPy: This library is amazing. It appears to be a port of some of the reverse engineering work on the Tello conducted by the Gobot folks. The API supports everything offered in Tello-Python and much more. To top it off, I found the sample TelloPy apps far more reliable than their Tello-Python counterparts
The nice thing about TelloPy is its controller support using pygame. However, this is limited to the PS4, PS3, XBOne, and Taranis controllers in gamepad mode. My Logitech F310 wired controller wasn't supported, so I figured out the button mappings in pygame and added it to the source of the joystick_and_video.py sample app. I've created a pull request for the same too. To download my fork of TelloPy, clone it from GitHub here:
git clone shortstheory/TelloPy
After this, build and install tellopy. The one currently available on pip seems to be outdated .
cd TelloPy
python setup.py bdist_wheel
pip install dist/tellopy-*.dev*.whl --upgrade
Now switch on the Tello and connect your computer to its WiFi hotspot. The Tello can be controlled using the F310 joystick using:
python tellopy.examples.joystick_and_video.py
Press RB to takeoff and LB to land! The left stick is used for yaw and altitude control and the right stick handles roll and pitch.
Raspberry Pi Controller

It would be nice if this could work without the need of a laptop. I tested this by following the same installation steps on a Pi Zero W running Raspbian Lite and the setup works well. I added the script to the Pi's crontab so it would start on every boot of the Pi:
sudo crontab -e
Followed by adding:
@reboot python /home/pi/TelloPy/tellopy/examples/joystick_and_video.py
To make the Pi Zero W automatically connect to the Tello when switched on, add the following lines to your /etc/wpa_supplicant.conf on the Pi:
network={
ssid="TELLO-XXXXXX"
key_mgmt=NONE
}
The Pi Zero is small enough to be tucked in behind the controller, even with a small Li-ion battery for power. However, I imagine the range of the Pi Zero W's Wi-Fi connection would only make it suitable for indoor flight. Fortunately, this can always be fixed by using a USB Wi-Fi dongle.
Things to be done
While the TelloPy API supports the directional flip capability of the Tello, it doesn't map these controls to the joystick. I plan on dedicating the D-Pad for directional flips. I would also want the video streamed to the Tello to be saved directly to the Pi's internal storage. It would also be interesting to see if I could get the Pi to handle the image processing tasks and control the Tello remotely.