Hacking the AR.Drone 2.0

The AR.Drone 2.0 is, at the time of this post, an older quad-copter…  With Brushed motors and minimal controller options, it doesn’t hold a candle to today’s modern devices.  However, it was my first real quad, parts are now readily available and fairly cheap, and I’ve put days (weeks, months?) into customizing this toy.  This is my story of hacking the AR.Drone 2.0 into submission.

Background

I received my AR.Drone as a gift in 2013; my first indoor flight was a success, and I was fascinated by the software and hardware that made this machine work.  When I got the quad back to my house, at 10k ft., I quickly realized physics was not on my side.  At elevation, where the air is thinner, it takes more power to get objects off the ground; the AR.Drone did not have this power, and my determination to get it working lead me down quite the hobby path.

Hardware

My first task was to strip the drone of all unnecessary weight.  Obviously the indoor hull had to go, but that still wasn’t enough. The outdoor hull was still too heavy, so my next effort was to strip the quad down to the board and print a new body.  I’m simplifying this effort but after weeks of design and testing I finally had my first working model.  It wasn’t pretty, it wasn’t weather proof, but I could finally fly my AR.Drone at 10k+ ft above sea level.

STL Files:
AR Drone Body
AR Drone Landing Bumper
Remixed with: AR Drone 2.0 Camera Swivel

This design eventually progressed into a slightly more mature form:

STL File:
AR Drone 3.0

Software

Cool! Hardware done!  Now on to the software… The AR.Drone 2.0, out of the box, can only be controlled with a phone.  The quad only has on-board wifi for communication, so I ventured down the path of custom software to control the drone.  Here is a sampling of what I tried and my results:

AR Drone 2.0 Control Methods

ProjectLinkDescriptionResults
artoo.iohttp://artoo.io/documentation/platforms/ardrone/Ruby library to control the AR.DroneWorks alright. Some lag and not completely reliable.
ardrone-wpa2https://github.com/bg-wa/ardrone-wpa2Allows The AR.Drone to connect to a remote AP. Works well. Increases control distance.
AR.Drone Webflighthttps://github.com/eschnou/ardrone-webflightBrowser-based control of the AR.DroneWorks well for flying the drone from a laptop keyboard.
QGRoundControlhttp://qgroundcontrol.com/Automated Flight ControlThe AR.Drone only works with one really old version of QGroundControl. While it works well for newer flight boards, I can't recommend this option for the AR.Drone
UgCShttps://www.ugcs.com/enDesktop Flight ControlThis works fairly well for controlling the AR.Drone from a laptop, but setup was somewhat confusing.
Nvidia Shieldhttps://www.drone-forum.com/forum/viewtopic.php?f=75&t=8262&p=81189#p81188This software was never released, as it was designed to work with a hardware controller that was also never released...This works great inconjunction with a generic bluetooth controller!
Conclusion

While I spent a lot of time trying different options and writing my own software, in the end, I liked the feel of the unreleased Nvidia Shield software for flying the AR.Drone.  While its only available for Android, I was able to fly the AR.Drone comfortably and reliably with a generic bluetooth game controller.

Leave a Reply