RC Quadrotor Helicopter

 by frank26080115
Contest WinnerFeatured
This project is a RC quadrotor helicopter (quadrocopter, quadcopter, quadricopter, etc). It's a RC helicopter that uses 4 rotors.




Watch it in 720p

You need some pre-requisite skills:
  • How to use Arduino, enough to get started
  • Soldering, wiring, basic electronic skills
  • Basic hand tool operation
A quadrotor helicopter flies with 4 spinning propellers on a + shaped frame.

When one rotor spins faster than the rotor on the opposing side, the faster side will have more lift, and thus the helicopter will tilt. When the helicopter is tilted, the air is being blown slightly sideways instead of directly down, and the helicopter will move.

The propellers also need to be in counter-rotating pairs, two spin clockwise and two spin counter-clockwise. This way, the helicopter does not spin on the vertical axis since the rotational enertia is cancelled out. But when the pair that's spinning in one direction is faster than the other pair, the helicopter will spin on the vertical axis. This is how the helicopter controls its direction.

We will be building a flight controller circuit that contains an accelerometer and gyroscope sensor so that a microcontroller can detect undesired changes in the helicopter's angle, and adjust each rotor's speed accordingly to counter the variation. This microcontroller will do this hundreds of times per second, keeping the helicopter stable in the air.

The flight controller is a completely open source circuit. The circuit schematic and PCB files are provided. The flight controller is completely Arduino compatible. The source code is a modified version of AeroQuad (open source Arduino based quadrocopter control code). The flight characteristics can be adjusted using AeroQuad's configurator utility.

Attached is a diagram that shows you the direction of spin for each motor, remember this diagram! You won't be able to fly if your setup does not follow this diagram.

This microcontroller will also take input from a RC radio receiver, so you can control the helicopter from the ground using a RC radio transmitter.

This helicopter will use four brushless motors. Each motor will be controlled by an ESC (Electronic Speed Controller). The ESCs will be controlled by the microcontroller.

A lithium polymer battery will power the entire contraption.

Summary of Downloads:
  • Over 100 pictures in all the steps
  • Step 9 contains flight controller circuit and PCB files
  • Step 10 contains bootloader and core for microcontroller
  • Step 12, 13, 14 contains demo Arduino sketches
  • Step 26 contains the flight control software
 
Remove these adsRemove these ads by Signing Up

Step 1: Parts

shopping_cart_racing.png
RC radio transmitter and receiver
You need 4 channels minimum but I am begging you to get one with 6 channels. Also get one that uses 2.4 GHz technology if you can. Turnigy has a 9 channel model that is actually very inexpensive, and it runs on an AVR microcontroller that you can put custom firmware on. Personally, I have a old $25 radio that uses 75 MHz FM but I've converted it into a 2.4 GHz radio using a conversion kit.

Four brushless outrunner motors are needed. I used hexTronics 20-22L (this number represents the diameter and coil winding configuration of the motor, there's also a kv value that relates speed and power, higher kv = more powerful faster motor (thanks to the correction from slick8086, I was incorrect to relate power to Kv, it's the RPM that's faster if Kv is higher), 800 to 1200 is acceptable motors. They come with a ton of parts (the bullet connectors, heatshrink, propeller adapter, the screws you need, mounting plate, spare shaft and spare C-clip, all included). Get extras just in case one gets damaged in a crash.

Four brushless motor electronic speed controllers (ESC) are needed. One that is rated for 18 amps is enough. I have heard good things about the Turnigy Plush ESCs because they support high update frequencies (more frequent adjustments means more stable flight). I got the HobbyKing brand clones of the Turnigy Plush ESCs because they are cheaper.

Some ESCs are "card programmable", meaning you can change their configuration using a cheap ($6) programming card, which is really convenient. Buy the programming card that is compatible with the ESCs you've chosen. I got the Turnigy ESC programming card because they are compatible with my ESCs.

You'll obviously need a battery. You will use a 3S1P lithium polymer battery that is rated at least 20C (this is the discharge rating). 3S means 3 cells in series, 1P means one set in parallel. This will give you a combined 11.1 volts. I suggest a 2500 mAH capacity battery (or more). A general rule of thumb is doubling the capacity of the battery means 50% increase in flight time (due to the extra weight).
More info on batteries here: http://www.rcgroups.com/forums/showpost.php?p=1315199&postcount=1

Make sure you pay attention to the type of connector that comes attached to your battery. You're going to need to get the matching connector. I've personally built my entire helicopter using bullet connectors. 4.0mm bullet connectors for the battery and 3.5mm bullet connectors for everything else (the motors come with 3.5mm bullet connectors). (You can get other connectors such as XT-60 connectors, just watch your polarities, also note that all my pictures show bullet connectors)

You need a lot of heat-shrink tubing to act as insulation when using the 3.5mm bullet connectors. Get different colours so you can tell which wire is which.

You need 12 gauge stranded core wire. It must be 12 gauge or thicker to handle the current. It must be stranded core so that it is flexible. Get different colours so you know which wire is which polarity. The best wire is fine stranded copper wire with silicon insulation, but this is expensive.

Get a good battery charger, it must be able to balance and charge multi-cell lithium polymer batteries. I have one of these Turnigy chargers that have many settings, a LCD, and cooling fan, very nice. I also use a laptop power brick to power the charger since an ordinary wall adapter won't be able to handle the current required.

Get a battery monitor so you know when your battery is low. A lithium battery will become permanently damaged if you drain it below a certain threshold. Having a monitor will prevent you from damaging your battery. I have one of these that reports the status of each cell.

The quadcopter's frame I use is this one from HobbyKing. For $15, you get every part you need, plus every screw and nut you need. In comparison, a stick of aluminum would cost me $10 from Home Depot, which is not economical in comparison. I suggest you buy several frames so you have plenty of spare "arms" if you crash (plus plenty of spare screws and nuts).

The propellers must be in counter-rotating pairs (a "pusher" and a "puller"). I use 10x4.7 APC slow-fly propellers. 10 indicates diameter in inches and 4.7 indicates pitch. Larger diameter means more lift but requires more powerful motors. 10 inches is about right for the frame size I am using.

You'll need a entire flight controller circuit (meaning another entire bill of material), I will talk about this in detail later. Meanwhile, you'll need a USB-to-serial cable (FTDI cable) and an AVR programmer.

Plenty of servo cables are required to connect stuff. A minimum of 6 female-to-female cables is required for the 6 channels from the RC radio receiver to the flight controller.

Velcro tape and double sided velcro strapping will be useful as a lightweight way of mounting things and strapping in the battery.

Get a bubble/spirite level (like this one) to help with sensor calibration.

Make sure you get plenty of extras, stock pile on wire, cables, connectors, heat-shrink tubing, electrical tape, glue, screws, etc.
1-40 of 198Next »
arutlaavinash9090 says: Apr 27, 2013. 1:31 AM
i want to download this file but it is asking to create a pro account.my parents will not allow to do this.if it is free i am happy .I am requesting all members of instructables.com
stuffdone says: Apr 25, 2013. 8:58 AM
Great looking project. I was wondering if anyone has tried this basic design using shrouded or ducted fans in place of open propellers?
nikhil p says: Mar 31, 2013. 9:13 PM
I have a Multiwii Microwii flight controller and I am able to arm the motors but not disarm them.

Thanks for the quick response,
Nikhil
nikhil p says: Mar 31, 2013. 4:48 PM
Hey Frank,

I finally finished making the quadrotor but I was wondering how to turn it off.
It's kind of a stupid question but are you just supposed to unplug the battery or is it necessary to install a switch
frank26080115 (author) in reply to nikhil pMar 31, 2013. 8:51 PM
Safety the quadcopter (it's a stick command). There is a LED that indicates safety. Once it's safe, unplug the battery.

A true kill switch that can handle that much current is not feasible
eromero5 says: Mar 30, 2013. 9:01 AM
where do u put the 12 gauge sandard cord wire
theargha says: Mar 10, 2013. 5:27 AM
How do you use the battery monitor and battery charger ?
namdari90 says: Dec 2, 2012. 7:04 AM
hi
i cant use avrdude is there any other program to use the bootloader and please if you can explain how to use avrdude and plz plz upload the docs in any site other than google code because i cant use google code if you can please email it to me
nikhil p says: Aug 3, 2012. 9:36 PM
Frank
could i use Arduino mini for my flight controller instead of designing my own cause I dont understand how to design it at all

Thank you
Please Reply

frank26080115 (author) in reply to nikhil pAug 3, 2012. 10:22 PM
Yea, just look at AeroQuad Mini, or MultiWiiCopter, both of them actually use the Arduino Mini
nikhil p in reply to frank26080115Aug 4, 2012. 1:20 AM
so just to be sure instead of doing step 9 I would just substitute your microcontroller with Arduino mini and still follow the rest of the steps

Oh and can you give a link of the Arduino mini to buy because I'm really confused

Thank you
nikhil p in reply to nikhil pSep 21, 2012. 9:30 PM
Frank
My previous comment has been there for a long time and you still havent responded
Please reply
jerbs in reply to nikhil pNov 17, 2012. 2:01 PM
He replied right above you,

Aug 3, 2012. 10:22 PM
Yea, just look at AeroQuad Mini, or MultiWiiCopter, both of them actually use the Arduino Mini
Mirror99 says: Nov 3, 2012. 10:50 AM
Frank

Your Quadcopter is an excellent one. I was just wishing that if you would kindly tell me , from where did you order the frame kit, fans and the motors.

If you would be kind, can i have your email address.

Thanks.
frank26080115 (author) in reply to Mirror99Nov 3, 2012. 8:52 PM
I like the store Hobby King, that's where I buy everything

My email is on my website, in the title as an image so spam bots can't detect it.
Brensriffer says: Aug 31, 2012. 7:21 AM
Hi Frank,

Amazing instructable you've created! I'm currently nearing the final stages and am about to program but was just wondering about a couple of things as I'm new to all this and completing this for a school project.

Just wondering with the solder jumpers, if the solder jumps across the whole thing (3v3 and 5v as well as ser0 and ser1) or if you choose which to use, and whether all 4 LED's should be lit when it is plugged in for programming, as currently only LED-PWR and LED1 are lit

Thanks!

MajGreen says: Aug 28, 2012. 9:03 AM
I was extremely impressed by this project and I've decided to try to make one myself. I was hoping that you still have at least one leftover blank PCB because it would save me the trouble of having them shipped from elsewhere. I live in Ontario as well so you shipping to me would be far easier than shipping from the U.S most likely.

I plan to start building this in my school’s manufacturing shop so I would like to get my hands on a PCB sooner than later. I would earnestly appreciate a quick reply.

Sincerely, Alexander
rkrahul86 says: Aug 18, 2012. 3:08 AM
which is the price of this project completely and can you send me some information on my email id - er.rahulpushkar@gmail.com
msaad4 says: Jul 26, 2012. 11:36 PM
Can i pick this Project for my Engineering Final Year Project ?? Plzz reply fast
frank26080115 (author) in reply to msaad4Jul 27, 2012. 9:17 AM
I don't think this is something you can ask me, ask your professor instead.
lil tinkerer says: Jun 7, 2012. 10:33 AM
Hello, i am new and i have a query;

what would happen if you have all of the props spinning in the same direction??
drums2112 in reply to lil tinkererJul 24, 2012. 5:42 PM
the whole quadcopter would spin rapidly. the alternating spins (see picture) are what keep the copter stable, and in the air. . for example if one rotor spun oposite than the rotor diagnal to it, the quad would start going diagnaly.
frank26080115 (author) in reply to lil tinkererJun 7, 2012. 11:19 AM
the entire helicopter would spin on the yaw axis forever
lil tinkerer in reply to frank26080115Jun 7, 2012. 12:00 PM
Oh dear!

I am currently making a quadrotor and i am waiting for the rc parts(including the props!!!!) the props i am getting is fine for my motor, but they are 4 of the same!!!!! the shipping costs a lot and i don't really want to spend 8 quid for something that costs only 2 quid!!!! is there any way to salvage this??

thanks
lil tinkerer ;)
frank26080115 (author) in reply to lil tinkererJun 7, 2012. 12:12 PM
not without buying more stuff, so just buy more propellers, they'll break fast anyways if you crash a lot
lil tinkerer in reply to frank26080115Jun 7, 2012. 12:21 PM
Could I reverse the polarity???
Or could I mount 2 of them on the underside of the quadrotor so that they will be opposite to the other 2 so it won't spin on its yaw axis??
jacob1112 says: Jun 30, 2012. 8:04 PM
How did you adapt the receiver to the arduino?
sharad shah says: Jun 14, 2012. 8:52 AM
hey frank
can u plz tell me that which 1 is the best brushless dc motor for this project wih low cost also.......
and what is the cost of 1 dc motor???
mnoor.rahim says: Jun 2, 2012. 4:02 PM
Hello Frank. Your willingness to share the knowledge at this details are so great. TQVM.
evantkaufman says: Jun 1, 2012. 3:25 PM
When I try to used AVRDUDE in the Microsoft command window, I'm getting the response that "The filename, directory name, or volume label syntax is incorrect." When I copied and pasted your command above, I chose programmer_name to be stk500 and the bootloader_filename.hex to be Ro4Copter_Boot_arduino.hex. Is this incorrect? Any help would be greatly appreciated.
frank26080115 (author) in reply to evantkaufmanJun 2, 2012. 2:36 AM
try splitting the command up into several parts, and figuring out which part of the command is causing the error
vinothwin86 says: May 12, 2012. 7:09 PM
in the arduino022 there is an option for boot loading..........u r using this one or the avrdude............
vinothwin86 says: May 12, 2012. 6:57 PM
hi frank, i need u r help to flash the boot loader file in to the atmega644p with the help of avrdude.i am having my own avr programmer with rs232 port only ,it s not having the isp header.is it possible to program the boot loader file with my programmer.i need any video tutorial for the boot loading.........
enesmentese says: Dec 10, 2011. 6:21 PM
hey Frank
thanks for posting your designs.
I've started building my own quadrocopter following your instructable.
I'm currently building the microcontroller and i was wondering if the SJ1-18 were switches? I am assuming they are but just wanted to get some more info about that from you. Also there were no surface mount switches included in your BOM.
Maybe you were intending readers to just solder a piece of striped wire? that would be more permanent but it would also eliminate the danger or switching between 3.3v and 5v accidentally. Thanks for you help
frank26080115 (author) in reply to enesmenteseDec 10, 2011. 7:10 PM
SJ stands for Solder Jumper, you put a lot of solder on two of the exposed pads, and short them out using even more solder.

A piece of wire would also work, or 0-ohm resistors, but the cheapest way is to just use a lot of solder.
enesmentese in reply to frank26080115Dec 18, 2011. 4:52 PM
Thanks.

So I got my micro controller ready go but I am not too familiar with flashing the boodloader. I also do not have an AVR programmer, do I even need one?

If you could give me some more info about this step or direct me to somewhere where i can get the info i would be grateful
frank26080115 (author) in reply to enesmenteseDec 19, 2011. 3:46 AM
yes you do need a AVR programmer

all you do is hook up the programmer to the ISP header, and run the AVRDUDE command to burn the bootloader .hex file, look up how to use AVRDUDE to learn more
vinothwin86 in reply to frank26080115May 10, 2012. 8:46 PM
hi frank, i need u r help to flash the boot loader file in to the atmega644p with the help of avrdude.i am having my own avr programmer with rs232 port only ,it s not having the isp header.is it possible to program the boot loader file with my programmer.i need any video tutorial for the boot loading.........
evantkaufman says: Apr 20, 2012. 10:52 PM
When you flash the bootloader for the first time, does the circuit require power or is power provided through the AVR programmer?
frank26080115 (author) in reply to evantkaufmanApr 20, 2012. 11:43 PM
Both methods would work
1-40 of 198Next »
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!