Picture of quadrotor
This summer's Edgerton Center Engineering Design class produced four awesome projects in four weeks. One of the projects was a functional RC quadrotor built with commonly-available RC equipment and an Arduino microcontroller board. Here is the instructions on how to make the quadrotor. The video of the four projects can be found here.

Parts List:

- 1/32” aluminum sheet
- 2 of 8 x 3.8 slow flyer propeller
- 2 of 8 x 3.8 slow flyer pusher propeller
- 4 of Turnigy C2028 Micro brushless outrunner 1400kV motor
- 4 of Turnigy Plush 18 amp speed controller
- Turnigy nano-tech 1800mah 4S 35-70C Lipo Pack
- 1/2” 4-40 plastic machine screws
- 4-40 plastic nuts
- 1/2” 4-40 aluminum machine screws
- 5/8” 4-40 aluminum machine screws
- 3/8” 4-40 aluminum machine screws
- 2” threaded 4-40 plastic spacers
- Accelerometer + Gyros chip: Sparkfun 6DOF razor IMU
- Microcontroller: arduino mini
- Hobbyking 2.4 GHz transmitter and receiver + Controller
- 1.5” hex threaded 4-40 aluminum spacers
- 2 of Carbon Fiber square tube .25” x .25” (.180 ID) x 48”
- Strings
- Zip-ties
- Super glue
- Velcro
- Protoboard
- Female header pins
- 3.3 volt regulator
- Jumper Wires

Where to get parts:


Carbon Fiber square tube -
Remove these adsRemove these ads by Signing Up

Step 1:

Picture of
Cut 2 of 14”, 4 of 6.125”, 4 of 8” carbon fiber square tubes

Drill 7/64” holes 3/8” away from each ends of the cut carbon fiber tubes.

Drill 7/64” holes 1 and 5/8” from both ends of 14” long carbon fiber tubes. Drill 7/64” holes 1 and 5/8” from only one end of 6.125” and 8” long carbon fiber tubes.

When drilling through the carbon fiber tubes, drill very slowly with caution. Carbon fiber tubes can split if you don't pay attention. Also use a drill press instead of a hand drill.
1-40 of 72Next »

can you please share the code with me...please

my email id is

pjkim4 years ago
Great job but I am having a hard time understanding the interface between the radio receiver and the Arduino. The individual channel outputs from the receiver are pulse width modulated-- usually about 1us for low, 1.5 us for neutral, 2 us for high. Yet you read in the channels using analogRead() so I take it that the Arduino is reading in the analog value of a pulse width modulated signal. I would have thought that would be a very inaccurate way of reading in the channels but you appear to have made it work. Is this by design, chance, or ?

Could this be contributing to the instability at takeoff since changing signal values might take more time to register through the pulse width to analog transition?
feet1515 pjkim4 years ago
The analogReads are only used to read in the values from the accelerometers and gyros which are voltages.

The inputs from the radio receiver are read by the pulseIn commands a few lines of code below.

sir i m using arduinouno r3 for quadcopter and i have 10 dof plz tell me which pins should be connected between arduino and 10 dof. and tell me if there is a some need to modify above code. thank you

sir i m making quad copter by using arduino uno r3, and i have 10 dof, i doesnt have idea how to connect them plz told me. and also tell me what is which i should use is the above code is useful for me? my email id is

Phoenix174 years ago
I'm buying an Arduino Uno. I'm not sure if you know, but would you connect the same pins on the uno? Or do they have numbers and voltage correlations?
The Arduino Uno has a lightly different layout then the Pro Mini being used here. One plus is that you can skip that 3.3v regulator because there is one on the board already. You'll notice that there is a pin labelled "3.3v" to which you can connect the corresponding 3.3v port on your sensor board.

So the pins for the sensor board the line up as such;
3.3v = 3.3v
Gx4 Y = Analogue5
Gx4 X = Analogue4
Gx4 Z = Analogue3
A Z = Analogue2
A Y = Analogue1
A X = Analogue0

The rest of the pins should correspond plainly to the ones on your UNO
Digital pins 6,7,8,9 to the control pin on your ESCs. Human controls are on pins 2,3,4,5 to your receiver. Personally I am using an Xbee module instead so I will not be using that last set.

I am also using xbee...can you please share the code with me...please

my email id is

Hi, I came across your project and I am doing almost the same. However, I am using and arduino UNO and an MPU6050. The Pin alignment that you mentioned above; I am a little confuse about it.

I can not find the Gx4 Y, Gx4 X, Gx4 Z or the A Z - X pins on my MPU6050 board. THe only way I connect it to it is by connecting SCL - Analog 5 and SDA - Analog 4. So can you please explain how can I implement it?

What is a good way to get started with learning the Arduino?
Getting your hands dirty. Personally, I got myself the starter kit from Adafruit; and they also have an excellent set of tutorials .

I had some programing experience at the time already, so for me it was an exercise in learning how to bring code into the physical realm. The Adafruit tutorial were good for me to shore up on the electronics side of things.

Did you have a project in mind already? I find that having a specific goal when learning something new greatly increases your chances of success and I'm more than happy to take a stab at it if you have any specific questions.
Thank you. That's very useful. The project I want to build is a semi-autonomous ground rover with a remotely fired paintball gun.
asweed3 months ago
Hello i want to ask you dose your code move the quad forward ,backward ,right and left where in the code dose it do this moving ??
And if it dose not how could i move it ??
ThaCodKilla4 months ago

Is this all of the code necessary to create a working quadrotor?

kidpad1 year ago

thanks this is a very good post! I just have a question: you said

"To find the current amounts of tilt on the X and Y axis from
accelerometer and gyro data, we used an algorithm that would average
previous accelerometer data and combine it with gyro data to reach an
angle measurement that was fairly resilient to linear acceleration."

Would it be possible to know where we can find this code?

Hi, thanks so much for your post! I have a quick question. Do I need the transmitter and receiver? Is there anyway I can make it work without it? I'm a physics student getting ready for a final project- I have everything but those parts. So a quick reply would be ideal, thank you SO much!

spdon981 year ago

i dont have motor, can it made by two different pair of motor

xianyanlin1 year ago

too little comments in your code such that it is difficult for me to understand your code. can you please explain me what does variables "GYRO_CON ACCEL_CON TIME_CON SEN_CON zhuman xaverage yaverage blah" mean? and how did you get the formulas like "xaverage= SEN_CON *( xaverage + TIME_CON * pitch) + ( 1 - SEN_CON ) * xin;" or "speeds[0] = zhuman - p*(xaverage - pitchin) - p*(yawin) - d*pitch;" ? Many thanks if you can explain me in detail!

I'm missing something;two questions
1. is this in inches?
2. is it 2" each side of the center line?
3. mark at points (.875,2.125), (1.375,.875), (2.125,.875), (2.125,0), (1.5, 1.5) from the origin or the point where the center lines intersect.
what is the two measurements?from center line i.e .875 from cl and 2.125 from cl?measured from which axis?
can i replace sparkfun mpu -6050 by inven sense mpu-6050? it costs less than sparkfun....
Hi, you can use whatever you like with MPU 6050. Sparkfun uses the MPU6050 IC manufactured from Inven Sense. From Inven Sense you can buy just the IC. From Sparkfun you can buy the chip soldered on a board and ready-to-use. The choice is yours :)
nrgful1 year ago
Hello, I was wondering how motor speed from the speeds[] array corresponds to the motors of the construction. Which equation is for the front, back, left and right motor.
Thank You in advance
i want all the details of this quadrotor plzzzzz help me
mahdi dasl1 year ago
hi,i wanna build one,how can i estimate it's weight?
any one help?
jzambrano32 years ago
hello nice work. i have the data of the gyro x, gyro y and gyro z, and the inclination of pitch and roll too but i only want to make it stable in the air without using a remote control. ongly vertical takeoff and landing wo what do i have to change in the code?
the matter that u posted inspired me to make own quad rotor ,
i am bech final year student of SKU , i am doing project on quad rotor and i want to make quad rotor integrated with camera to send a signal to laptop...
can u pls help me with some guide lines...
thank you sir..
w0w0s0w2 years ago

could i also use instead of the IMU 6DOF Razor the IMU Digital Combo Board - 6 Degrees of Freedom ITG3200/ADXL345?
mooon2 years ago
hello friends
someone please tell me about motors rpm and weight used in quadrotor
ashakya13 years ago
how much money need to make this project?
ProoN ashakya12 years ago
I did a rough look-around at prices (considering building one myself) and not included below are the screws, zip ties, etc. The stuff listed below is the main components. I personally have tons of screws, zip ties, spacers, etc laying around so I didn't factor that stuff in.

C2028 Motors - $11.34 x 4 = $45.34
8 x 3.8 slow flyer propeller - $1.95 x 2 = $3.90
8 x 3.8 slow flyer push propeller - $2.90 x 2 = $5.80
Turnigy Plush 18amp Speed Controller - $11.90 x 4 = $47.60
Nano-tech 1800mah 4S 35-70C Lipo Pack (Battery) = $17.84
Sparkfun 6DOF razor IMU (retired, see ITG3200/ADXL345 = $64.95
Arduino Mini = $33.95
HobbyKing 2.4Ghz 4ch Tx & Rx V2 - $22.99
Carbon Fiber square tube .25” x .25” (.180 ID) x 48” - $9.75 x 2 = $19.50

Ultimately comes out to $261.87. So, that + shipping prices + misc. items not listed would probably be in the neighborhood of $300 USD.
In your averaging code where complimentary filter is implemented, you directly put up the accelero readings in it i.e xin and yin.

Don't you think accelero reading is in 'g'. You have to extract angle of tilt from it. Then only resulting xaverage and yavearge comes out to be in deg. That is providing resulting tilt from its reference position.
May be you have tuned it accordingly.

But like to know your comments on this.

Anyways, good work.

can you please tell me the relation between RPM of moters,thrust produced by moters,blade area,and for how much weight we require how many RPM of moter.
farmboy1773 years ago
Try for awesome prices on props.
CamWarder3 years ago
i dont understand what the "protoboard" is. is it just the arduino, or is it something else. i dont see a part number or name so i really would appreciate any feedback. also, would it be possible to put the aeroquad firmware on this instead of the firmware supplied in this tutorial.
monty3243 years ago
i like this because i have a realy nice syma heli but i am afraid to use it because everytime i use it i break the blades but on this it has a thing all the way round all the blades so if it hits somthing then the blades dont snap
the 1400kv motors is out of stock , so i was wondering if i can use a different motor for example Turnigy 1400 Brushless Indoor Motor 4500kv , especially i need to put a heavy payload , and what ESC can be used if i used another motor ??
thank you.
PICHIRS3 years ago
Hello sir.i'm Prasant.i'm making a first i'm try to make it through i have buy 28000RPM motor and prop 9*5.connect wires to battery as parrel but there is problem that it doesn't fly & itz geeting downward on one side.can u suggest me whats the problem is there that i will thankfull to u..........
kishore19973 years ago
This was the only guide to building a quadrotor with good code explanation , could you plz explain the whole code to me and how the direction input from the transmitter is decoded and what actions are taken to follow the direction of the joystick.

Thanks Could i pls get a quick response.
1-40 of 72Next »