DIY : DJI/Ryze Tello Drone Gets Reverse-Engineered – Sander Walters – Medium
On January 2018, DJI and Ryze changed the market for inexpensive quadcopters forever with the release of the Tello, a low cost micro drone which has some impressive hardware like an Intel Movidus Myriad a 12 programmable video accelerator core and 2 general purpose core VPU.
DJI surprised the market by presenting a cheap drone with Intel technology and advanced sensors at toy price. Downward IR & Optical Flow are a first for a drone under $100. It’s actually the first for a drone under $300. The closest thing is the sonar on the bottom of the Parrot Mambo. The IR sensors on the Tello help with smooth takeoff and landing as well as palm launch and downward obstacle avoidance, while Optical Flow keep the drone super stable without GPS as long as the wind is minimal and the drone is relatively close to the ground.
It did not take long before a hacking community of this drone dedicated to reverse engineer its secrets was created thanks to the many contributions and investigation of the awesome community on the unofficial Tello forum.
They started by first analyzing the hardware as well as the firmware.
Despite all this cool hardware, the official Tello SDK only offers a very limited set of the drone’s overall capabilities. Luckily, there is a much better API hiding under the surface for those who know how to look. This undocumented API is the one used by the official Tello Android and iOS applications.
The focus of the research was then centered on hacking the ground station and video protocols used by the Tello. Thanks to tools like Wireshark, and the generous nature of open source, they collectively deciphered much of the protocol used by the Tello.
Hackers have used this knowledge to create a new driver for Gobot that lets you explore the drone’s functionality, and combine it with the other capabilities of the Gobot framework, such as controlling the Tello drone with a Playstation Dualshock3 joystick. 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 drone developing.