Unlocking Drones With Go

Looking for a first project in a relatively new language that’ll stretch your abilities? [Ron] was, so he hacked a commercially available drone and opened up a lot of its functionality, while writing the client software in Go.

The drone is a DJI Tello, which has some impressive hardware like a 14-core Intel processor and excellent video processing abilities. There’s also a vibrant community and a lot of support, making it the ideal platform for a project like this. It communicates to a base station via WiFi, and using some tools like the Wireshark [Rob] was able to decipher a lot of the communications and create a whole new driver for the drone. While the drone can be controlled in the traditional way, users can also write programs to control the drone as well.

The project is both an impressive feat in reverse engineering an inexpensive drone, and a fun example of programming in the Go language. Because of the fun and excitement of drones, they have become a popular platform on which to hack, from increasing their range to becoming a platform for developing AI.

14 thoughts on “Unlocking Drones With Go

  1. Sorry if reposting the comment. I just wanted to mention a very similar project I have worked on, which enables to control a JJRC Elfie quadcopter from a computer. Basically, I found out how the small control UDP packets are formatted and how to read the video stream.

    https://hackaday.io/project/19680-controlling-a-jjrc-h37-elfie-quad-from-a-pc

    This one uses TCP for the video, I imagine that undermines the latency of the video among other things.

    1. Neat project, glad you posted. Seems articles tend to reference other articles and not projects as much unless featured as the article. I’ll try to read into more.

      I was recently wondering how to control and view the the GoPro Hero Session 4 without the specific remote control or Android/Istuff systems and if anyone already sniffed the streams out. At least these systems aren’t cloud or web based which is usually more a pain and time consuming to work around. Found the KonradIT github resource and still need to try out and see what potential there is as reads like there still is potential for improvements if not only converting to a faster running language: https://github.com/KonradIT/goprowifihack/blob/master/HERO4/README.md

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.