Ground Unit

In addition to the device attached to the drone, there is a device on the ground that relays GPS data to the drone. The device on the ground serves as the object being tracked by the drone, providing information to where the drone should move.  The drone will follow the ground device by interpreting the data and determining which movements are necessary to follow the ground unit.

The ground unit is made of an Arduino UNO, a GPS sensor, and an Xbee module. The data will be periodically broadcast by the ground unit. The data will be the GPS sensor data, and it will be received by the device on the drone. The Xbee sensor has a range of about three hundred feet. The ground unit must be able to have a clear line of sight of the drone because the Xbee stops receiving data when there isn’t a clear line of sight too the transmitting device.




Posted in Uncategorized | Leave a comment

The New System

With Dirk Herrendoerfer’s code found, we had to redo the hardware setup to allow us to use it. The most difficult part was hard-wiring the arduino into the drone. We followed the instructions of a very common ARDrone mod called MiruMod which allows the use of an Arduino and radio controller. Obviously, we just ignored the radio controller part. The instructions can be found here.

As per this diagram, we connected the serial pins (TX and RX) on the Arduino board (we used the Arduino Uno, not the Nano) to the serial pins on the drone through a voltage level converter since the board is in 5V and the drone is in 3.3V. Naturally connecting to this serial port voids the drone warranty. The drone powers the Arduino via its 12V output in the board connector. Right now the board is connected purely by loose wires, but we will make a solid board once we get everything working.

With the board connected, we then must load a control application onto the drone that will receive the commands we send from the Arduino and parse them as flight instructions for the drone. This is done by a software called ARPilot, which is loaded onto the drone by the Arduino board each time the drone starts up, and is deleted every reset, allowing us to control the drone without doing surgery on its file system. The software is loaded from a USB Flash Drive connected to the Arduino.

Once we get the ARPilot control application working, we will be able to send over custom flight commands from the Arduino.

Posted in Uncategorized | Leave a comment

Frying Things

Yesterday, we were finally able to break our drone. However, it was not in the way we thought it would happen. Instead of it breaking in two by crashing into something, we fried the main board by accidentally turning on the drone while two wires were touching that shouldn’t have been. The wires were loose because we unplugged the Arduino from the drone. Now the drone’s lights will blink red once and then turn off. We have tried unplugging everything and pressing the reset button, but nothing has worked.

To fix the drone, we have ordered a new main board and hope that it will work if we just replace it. In the future, we have to be extra careful when there are loose wires. Before turning anything on, we must make sure that everything is in its right spot and nothing will damage the hardware. Also, eggers needs to stop frying things.


Posted in Uncategorized | Leave a comment

Iphone App

Due to problems with the PcDuino, we started to explore alternate approaches to the project. One of which was to use the AR drone sdk with either android or iphone. Because two of our member already had iphones, we decided to go with the iphone application option for the drone control. We planned to make an app which would control the drone over wifi. We could use the phone’s cellular connection to communicate between the two phones, one of which would serve as the device being tracked by the drone.


The problems started with the compiler. The open source app provided by the AR Drone sdk was built on an older compiler which the current version of Xcode did not support. Rather than rewrite the app, we decided to abandon this approach because we were already running out of time.


Posted in Uncategorized | Leave a comment

Scrapping it all and Starting Over

While writing my computer science end-of-quarter evaluation late on a Sunday night, I had a bit of a revelation. Inspired by sleep deprivation and delirium, I thought, “Since the PCDuino thing isn’t working, why don’t we just try something totally different?”

I proposed the idea of instead using a normal Arduino board, which wouldn’t have any software compatibility issues since we would be writing all the code on the official Arduino IDE on our own computers. We would either hard wire the board into the drone or connect using WiFi via the WiFi Shield made by Arduino. It would also be able to easily connect to the GPS sensor and retrieve data, since the sensor was built with Arduino in mind. The only difficult part would be finding a software library to communicate with the drone, or to build our own.

After researching the idea further, I found a few Arduino libraries for AR.Drones, but most were outdated and designed around the AR.Drone V1, not the V2 that we have. Then, with a YouTube search, I found our savior, Dirk Herrendoerfer. The German YouTuber has videos showing testing of his system which navigates an AR.Drone V2 to preset GPS waypoints using an Arduino hard wired into the drone and a GPS sensor very similar to ours. In addition, he has uploaded his code to GitHub for anyone to use.

We purchased an Arduino Uno board, and I downloaded the code and began looking through it. Though I still haven’t figured out exactly how it works and how the different files interact, I found the section that handles GPS input and slightly modified it to work with our module (I changed the baud rate that it was reading at and I changed the input pin). I also added a line that printed GPS coordinates over the board’s Serial communications, meaning that it would get sent to the computer for me to read.

I compiled and uploaded the code to the Arduino board with no problems, connected the GPS sensor, and went outside. The computer began showing empty GPS coordinates, which meant that the sensor was working and communicating with the Arduino succesfully, but it hadn’t acquired a satellite lock. Finally, the sensor locked on, and the Serial monitor on my computer began printing out flight commands for the drone. This was because the code talks to the drone over Serial communications, but the computer was reading them since it was connected by USB to the board.

So already, we’re way further than we ever were with the PCDuino, and once we get the hardware needed to connect the Arduino to the drone, we can begin testing Dirk’s flying code. Of course, his code isn’t exactly what we want, so we will likely be using it as a model or template to create our own.

The other important part is the tracking beacon, which will consist of another Arduino with a GPS sensor, and an XBee RF module that will communicate with an identical module on the drone’s Arduino.

It feels a bit wasteful to be completely starting over and buying a whole new set of electronics, but it feels great to finally be making progress once again.


Posted in Uncategorized | Leave a comment

Outdoor Flight

For the first time, we tested the flying ability of the drone outside in strong winds. It was able to fly well when the wind died down a little, but it struggled when the wind picked up. When we just had the drone hover, it was able to maintain its position by tilting into the wind. As we flew it into the wind, it would fly well until we told it to stop. It would not correct for the wind and would sometimes fly back a little ways until it regained control.

At one point, we tried to fly it into the 20+ mph wind and it was unable to move forward. It then turned suddenly and crashed into the fine arts building on campus. Once it slid off the roof and landed gracefully on the concrete, we discovered that it was just fine, but decided that was enough testing for the day. From now on, we will only fly it outside in calm winds to be safe.


Posted in Uncategorized | Leave a comment


One of our requirements for this project was to write and present a paper at the Global Conference of Educational Robotics (GCER). The paper will be presented in front of other teachers, and other students interested in robotics. We will cover planning and  preparation for the project, as well as problems that we encountered and how we solved them. The presentation will also include our thoughts and suggestions for people who are intending to do a project similar to ours so that they may also learn from our mistakes. In addition to the problems which we encountered, we will talk about how we organized our team as well documentation tools such as our blog.


Posted in Uncategorized | Leave a comment