Drone Phone

A mobile app that you can use to seemlessly control your drone.


Create a phone application that allows the user to control their drone using the movement of their phone.

The phone application should be accessible and easy to use even for those with limited knowledge of flying drones.

Being able to control and fly a drone using your phone opens up more possibilities in the world of drone control, automation, and safety.


The Team

Patrick Myron, Michael Thompson, Jared Rodgers, Brandon Hansen


Control Scheme: This is the pattern of phone to drone interaction that the system adheres to.

Device Interaction: These are the communication schemes that take place between the drone, phone, and ground station.

Drone: The Iris 3dr. The drone is controlled by the phones commands.

DroneKit Python: Python library that allows programmers to create powerful applications for UAVs

Firebase: The database used to store coordinates and work with the ground control station to control the drone.

GPS (Global Positioning System): Used by the drone and our software for tracking position and movement.

Ground Station: This is the computer that mediates the commands of the phone and the movements of the drone.

Phone: The phone is used to control the movement of the drone. For the purposes of this app we will be using an android phone

Zone: This is the area limitation (geofence) placed on the drone for safety precautions.



We used Jira to organize sprints and keep up to date on the status of our project.

Sprint 1: Consisted of getting the basics of the project working inluding: bluetooth, gyro data, and basic drone commands.

Early software issues caused us to leave some tasks in the backlog and prioritize new tasks.

Sprint 2: We reevaluated the direction of our project and focused on switching from bluetooth to firebase and making the final connections and computations to get the drone moving.


We used the Iris 3DR Drone for our testing and final demonstration.

The drone is a classic quad copter equipped with 4 propellers.

It comes with a detachable and rechargeable battery, controller as well as many other accessories.

In addition we used an android phone as our new controller and a laptop as our ground station to move the drone.




The backend was built using python and some libraries to talk between the drone and the ground control station.

Ground control connects to the Firebase database which stores all the data from the mobile app.

The data is stored in real time from the mobile app for the python code to access and interpret into commands for the drone.

The App

The app was built for Android using android studio.

The app displays the current values of gravity for each of the three directions.

Under the hood these values are being sent to the being sent to a database that stores them for future use.

We made the app responsive by taking new readings from the sensors frequently and lightweight by saving additional computations for the ground control station to make.


The Zone


The Zone, also known as the Drone Phone Zone is our built in saftey feature for the project.

In order to safely limit where the drone can go, we created a geofence that prevents the drone from leaving a square area.

For testing purposes this was limited to the flying field, however the parameters can easily be changed to reflect the location of the user.

The idea is to maximize safety so that even those with little to no flight experience could control the drone easily and safely.

Future Plans

We would like to get bluetooth to work in order to have a more reliable and quick connection.

In addition, edits to the directional movement to make it more efficient. (such as a consistent heading so changing direction is faster)

Github Repo