Arduino Stabilized Quadcopter - PID & Servo Library?


I have an Arduino based IMU working and reading in Pitch and Roll angles. I would like to take this data and create a stabilization program to control an RC quadcopter. I think I may be able to use the PID and Servo libraries to create a control program and output PPM commands to four brushless motor ESCs. However, I would like the Arduino to only do the stabilizaiton and I would like to use my RC transmitter and receiver to provide the pilot input (Power, Left/Right, Forward/Reverse, and Turn about Z).

My two questions are:

  1. Does anybody have a starting point/sample code resource for implementing such a control system?

  2. Can anybody provide some insight into how to provide RC pilot input and have an Arduino IMU stabilization? Do I need to connect Y-splitters on the 4 channels controlling the motor so that they have input from both the RC transmitter and the Arduino?

Thank you in advance for any help you can give. I have a mechanical engineering background with some RC experience but programming and electronics are not my strong point.


Hi Stefan, Have you looked at They have an advanced Arduino based system and I think you can get the code easily...

Fine to DIY, just look at what's been done.

My friend Dr. Pricer at IBM, who had over 100 patents, used to say, "It's dumb not to use a good idea... just because it wasn't YOURS"!

Hi Terry,

I agree, I would like to use existing code as I am not very programmer savvy. I have looked at the AeroQuad code at DIY Drones but I am using a basic Arduino Uno setup and only care about roll and pitch at this point. The Aeroquad is setup to be used on Arduino Pro and Mega’s so that Yaw as well as other sensors can be implemented. I am hoping to find a more basic program to follow.