This spring in my robotics class, we have the freedom to build whatever robot our hearts desire. I always wanted to build a quadcopter. I love things that can defy gravity. This is my chance.

I started with leftover parts from another project a couple of years ago. A group of students tried to complete a similar project but didn’t succeed. Thanks for their parts, getting started was a breeze.

Thanks to Will U. ’16 who first attempted to build a quadcopter using these materials. Mr. Bakker was very kind to give those materials to me.

Getting Started

The mainframe was quickly assembled. It looks just like a drone. However, the hard part is programming this thing so I can control it with an RC remote.

The Software

In order to make sure the aircraft is always stable in the air, I need to implement an algorithm that will correct the quadcopter when disturbance is introduced into the controlled system.

A great way to accomplish this is using a PID controller (proportional integral derivative). The algorithm looks for the error in the system by reading the gyroscope data, then makes adjustments to the speed of the motors accordingly.

This entire apparatus is designed to test the PID controller on it’s most basic level.

Once the PID is kinda working, I began testing the software on a much larger apparatus with more freedom.


New hardware

After a terrible incident, the frame above is demolished. Thanks to Dr. Hills, I begin using the frame below. The frame is made out of aluminum and a small amount of carbon fiber. The four brushless motors are much better with less vibration.


This is what the final product looks like. Now, it can defy gravity.


The flight controller software is on Github. Please let me know if you have any comments, questions or concerns. You can reach me at

Special Thanks to

Mr. Bakker for your help all aspects of this project.

Dr. Hills for your guidance and a great frame.

Ms. Jiminez for your help in this project and our robotics class.

And friends, family, teachers who supported me.

Posted by:NeilNie

Student at Columbia University, School of Engineering and Applied Sciences. Prev. software engineer intern at Apple. More than six years of experience developing iOS and macOS applications. Experienced in electrical engineering/microcontrollers. From publishing several apps to presented a TEDx talk in machine learning. Striving to use my knowledge, skills, and passion to positively impact the world.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

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