If you love the idea of building your own quadcopter but haven’t got a clue how and where to start, you are definitely on the right page. We know how difficult and frustrating the research can be, so we decided to make a tutorial for building your own quadcopter using an Arduino board. We hope that you will find it useful.
And, to get you even more excited about your upcoming project, here is an Arduino quadcopter in action:
Building your own quadcopter from the ground up includes plenty of hours and hard work. Therefore, if patience isn’t your stronger side, and if you don’t possess the necessary programming skills, you can choose a quadcopter kit that is pre-built. Which, doesn’t actually involve serious building, and is more of a put all the parts together following the instructions, project. It is usually done in an hour or two, and right after, you are ready to hit the skies.
But, with those quadcopters, you will miss out on the long hours and sweat invested in building, and getting to understand the essence of your bird and how it ticks. And, you also miss out on the overwhelming feeling when you take off with your handmade quad for the first time.
Exactly the entire process of building the quad is what hobbyists love. You simply get hooked by the feeling of being involved in the entire process, from the choosing of the parts, the designing of the circuits, to the programming of your Arduino flight controller board. But, let’s start from the beginning.
General “Quad Science”
As the name suggests, it is basically a flying vehicle with four electric motors and four propellers. When compared to other RC flying vehicles, the quad, as well as other multi-rotors, comes with the most stable platform, all thanks to its different design, and the direction and the difference between the four of the thrust it generates. This is why they are perfect for aerial surveillance and filming. They come in all shapes and sizes. From the small ones that can fit in the palm of your hand, to the big ones that are capable of lifting serious filming equipment and gimbals.
Now, unlike the traditional helicopter, quad relies on its four rotors to generate uplifting thrust by working together. Every single rotor lifts around a quarter of the overall weight, which allows us to use smaller and less expensive motors. You basically control the movement of the quad by changing the amount of power each motor delivers to propellers.
They are positioned in every corner of an imaginary square. On one diagonal, you have two motors that rotate in a clockwise direction, while the remaining two, on the opposite diagonal, rotate counterclockwise. If this wasn’t the case, the quad would only spin around like the traditional helicopter when the tail rotor dies.
In order for the balance to be maintained, the quad relies on the data it gathers from internal sensors, and adjust the power it sends to each motor so that the entire drone is leveled. To keep the balance all the time, the quad uses an advanced control system, which usually makes the adjustments autonomously, and this is where your Arduino board and the programming come into play.
Usually, each quad comes capable of performing four types of movement: Altitude, Roll, Yaw, and Pitch. Each of these movements is controlled by the amount of thrust each rotor produces. This is why you will need to program your controller so that it knows how much power to give and to which rotor to give it.
Every quadcopter comes with a microcontroller board with sensors on it, in your case – the Arduino board. This board, together with the components you choose, controls the motors. It is up to you to choose how self-controlling you want your quad to be, and you can use only the basic ones such as the gyro, or a bunch of other, more advanced sensors such as barometer, or a GPS, or even a sonar so that your quad can be able to detect and avoid obstacles that are in its way.
Components You Will Need For Your Quad
Every quad will have to include the elements listed below in order to fly:
- Frame– The “backbone” of the quadcopter. The frame is what keeps all the parts of the helicopter together. It has to be sturdy, but on the other hand, it also has to be light so that the motors and the batteries don’t struggle to keep it in the air.
- Motors– The thrust that allows the Quadcopter to get airborne is provided by Brushless DC motors and each of them is separately controlled by an electronic speed controller or ESC.
- ESCs – Electronic Speed Controller is like a nerve that delivers the movement information from the brain (flight controller) to the arm or leg muscles (motors). It regulates how much power the motors get, which determines the speed and direction changes of the quad.
- Propellers – Depending on the type of a quad, you can use 9 to 10 or 11-inch props (for stable, aerial photography flights), or 5-inch racing props for less thrust but more speed.
- Battery – Depending on your setup maximum voltage level, you can choose from 2S, 3S, 4S, or even 5S batteries. But, the standard for a quad that is planned to be used for aerial filming (just an example), you will need a 11.4 V 3S battery. You could go with the 22.8 V 4S if you are building a racing quad and you want the motors to spin a lot faster.
- Arduino board –The choice of the specific model depends on the type of the quadcopter you want to build (for aerial photography, racing, freestyle), and, we will talk about the right choice further down the article.
- IMU – A board that is basically (depending on your choice) a sum of various sensors that help your quad know where it is and how to level itself.
- RC Controller – The choice of the transmitter depends on the choice of the protocol you are going to use and the signal receiver that is onboard the drone.
Part #1 – Frame
The Frame of your quadcopter has to possess strength, but it also has to be flexible enough to compensate the vibrations the motors produce. It needs to have the following parts:
- Center Holding Plate – for mounting the electronics.
- Arms – you need four.
- Motor Brackets – you need four of them so that you can connect the motors on each arms end.
The frame can be made of aluminum, carbon fiber or wood but the material that is mostly used for the arms is aluminum. More precisely, the square hollow rails are made of aluminum. They are relatively lightweight, rigid and cheap. But, since they are not known as great compensators for the motor vibrations like carbon fiber ones are, they can confuse the sensors.
Carbon fiber offers much better absorption of the motor vibrations and is the most rigid one. But, it is the most expensive one.
Wood boards are also better for motor vibration absorbent, but are quite fragile and can break easily in the event of a crash. You can also opt for a frame that is pre-made and only needs assembling, and you can find out more about those in our article about frame kits.
Check out our suggestions for the best-premade frames which you can use as a base for your project:
- LHI 220-RX FPV Quadcopter Frame (Carbon Fiber)
- Readytosky FPV Drone Frame (Carbon Fiber)
- iFlight XL5 V3 240mm FPV Frame Carbon Fiber
- Mallofusa 4-Axis HJ450 F450 RC QuadCopter Multirotor Airframe
- Usmile X style Carbon Fiber Drone Frame
- Readytosky S500 Quadcopter Frame with Carbon Fiber Landing Gear
Part #2 – Brushless Motors
These motors are almost the same thing as traditional DC motors, but the shaft on them doesn’t come with a brush, which is there to change the direction of the power that goes through the coils. When buying these motors, you need to check their technical data.
The most important ones are the “Kv-rating“, which tells you the number of RPMs the motor is capable of generating a certain amount of electric power.
Also, you will need motors that rotate counter-wise, so that they counteract the props torque effect. For a better understanding of this topic, we suggest checking out our article about drone motors.
For the motors (or rotors), we would suggest these models:
- Emax RS2205 2600KV Brushless Motors
- Readytosky GT2205 2205 2300KV Brushless Motor
- HOBBYMATE 2204 QuadCopter Rotors Combo
- AOKFLY 4PCS RV1104 4200KV FPV Brushless Motor
Part #3 – Propellers
Propellers generate thrust, and each motor needs one in order for the quad to fly. Make sure that you buy the proper rotating pairs of propellers for clockwise and counterclockwise rotation. They can be bought in various pitches and diameters.
You have to choose them according to the size of your frame, and once you have decided which propellers you will use, only then you can choose your motors. Propellers are standardized, and here are the most used ones for quads:
- 5 pitch, 8 diameter – Small quads
- 8 pitch, 9 diameter – Small quads
- 5 pitch, 10 diameter – Medium-sized quads
- 7 pitch, 10 diameter – Medium-sized quads
- 5 pitch, 12 diameter– Provide plenty of thrusts and are great for quads that are larger
Since aerodynamics is just more than confusing and difficult to understand if you are not an Engineer in Aerodynamics, we will explain a few important terms in a few words.
First, the larger the diameter and pitch are, the more thrust will the propeller produce. It will need more power, but the quadcopter will be capable of lifting more weight. For high RPM motors, you need smaller or mid-sized propellers. For low RPM motors, you need the larger propellers so that they can keep the quad in the air at lower speed.
Second, to achieve the perfect balance between the motors and propellers, you first need to decide what you will use the quad for. For example, if you want to build a stable and powerful enough to lift a filming equipment quad, you should use a motor with less RPM’s and more torque, and longer or higher pitched propellers.
If you want good performance propellers we recommend you to get any of these:
- BTG Quick Release Carbon Fiber Reinforced Propellers
- Myshine 9450 Self-tightening Propeller Props
- Performance 1245 Black Propellers MR Series
- USAQ Carbon Fiber Propellers (2) Pair
- Helistar Propellers 6 Pairs 4730F Colored Quick Release Folding Blades
Part #4 – ESC (Electronic Speed Controller)
The device that is in charge of controlling the speed of the motors is a cheap controller board, used only for motors. It comes with an input for a battery, and has a motor output with three phases, so you will need four of them for each motor.
When buying the proper ESC, you need to pay attention is the max level of the current that comes from the source. Choose a controller with 10A or higher.
Also, you need to check how programmable it is, meaning that you need to buy an ESC that will allow you to change the signal frequency range to the value you want.
When it comes to ESCs (Electronic Speed Controllers), we would suggest these models, which are great and stable:
- AKK 30A 4 IN 1 2-6S Brushless ESC BLHeli_S Electronic Speed Controller DShot150/300/600 Capable for Micro Racing Drones
- Original Airbot Omnibus F4 Nano Flight Controller
Part #5 – Battery
The most recommendable power source for your quadcopter is the LiPo. It’s not heavy, and the current levels are ideal for what you need. NiMH is cheaper but heavier and it is also an option.
LiPo batteries come as a single 3.7V cell or packed together as one (up to 10 cells which provide 37V).
The most popular version among the drone hobbyists is known as the 3SP1 battery, which comes with three cells and provides 11.1V.
Here’s a good one: Zippy Flightmax 5000mAh 3S1P 20C
Part #6 – IMU (Inertial Measurement Unit)
This unit is in charge of measuring the quad’s orientation, velocity, and the force of gravity. This allows the electronics that control the amount of power sent to motors, to adjust the motors’ speeds. The unit comes equipped with a 3-axis gyroscope, and a 3-axis accelerometer. This combination is known as the 6DOF IMU.
Here’s a good option: KNACRO 6508 IMU MPU6050 MPU-6050 6DOF
The gyroscope is there to read the values of angular velocity, while the accelerometer is in charge of measuring acceleration and force, meaning that it can feel the downwards gravity. Since it comes with three-axis sensors, it can sense the orientation of the quad.
Part #7 – Flight Controller
You can either choose to use a controller board that has only one purpose and that is to control a quadcopter, or you can choose an Arduino UNO. This is a general purpose microcontroller that allows you to build your own flight controller by buying the parts you want to install, and assembling the controller on your own.
If you are interested in getting started with electronics and coding, the Arduino UNO is the best possible board you can use. It is the most reliable and robust platform, and it allows you to literally play with it any way you want.
It comes with:
- 14 digital input/output pins (6 of them can be used as outputs for PWM)
- 6 analog inputs
- a 16 MHz quartz crystal
- a USB connector
- a power jack
- an ICSP header
- a reset button
You can use the USB cable to connect it to a computer, a battery, or an AC/DC adapter to power it up.
The best thing about this board is that it allows you to mess with it and not worry about destroying it. The worst thing you can do is frying the chip, which can be replaced with only a couple of dollars.
You can program the “UNO” with the Arduino Software. To get the details which will help you get started with your Arduino UNO Flight Controller, please go to the last section of the post.
Part #8 – RC Transmitter
The most common way of programming and controlling a quadcopter is by an RC transmitter. You can usually choose between two modes, Acrobatic or Stable.
For controlling the quad in Acrobatic mode, the Gyroscope is the only one who sends the values to processing. In this case, the controlling sticks are there only for controlling and setting the speed of rotation for the three axes, and if you let go of them, the values are not re-balanced automatically.
This comes in handy for those who want to perform aerial stunts, because tilting the drone a bit is possible, and after the release of the sticks, the quad keeps the position. It’s not a good mode for beginners because it is quite difficult to control your quad in this mode.
In the beginning, use the second mode because for determining the drone’s orientation, every single sensor works in this mode. The motor speeds will be controlled automatically, and the drone will be balanced on its own.
There are various available RC control systems nowadays, like Futaba, Spektrum, Turnigy, FlySky, and so on:
- Futaba 10JH 10-Channel Heli T-FHSS Computer Radio System
- Spektrum DX8 Radio Transmitter
- Turnigy 9X 9Ch Transmitter w/ Module
- Flysky FS-i6X 10CH 2.4GHz AFHDS RC Transmitter w/ FS-iA6B Receiver
Wiring, Soldering, and Programming
This is the most complicated part of the entire building process. For this, you will need the following:
- Arduino UNO
- MPU-6050 Module
- Prototype Board
- Female and Male Headers
- 330-ohm Resistor and an LED
- Thin Gauge Wires
- HC-05 Bluetooth Module
Buy the Bluetooth module only if you want to be able to have an insight into the parameters and tune the quad through an app instead of taking the laptop with you out on the field when testing.
This is the main blueprint of your operation:
How to connect the ESCs:
- Signal Pin ESC 1 – D3
- Signal Pin ESC 3 – D9
- Signal Pin ESC 2 – D10
- Signal Pin ESC 4 – D11
How to connect the Bluetooth module:
- Tx – Rx
- Rx – Tx
How to connect the MPU-6050:
- SDA – A4
- SCL – A5
How to connect the LED indicator:
- LED Anode Leg – D8
How to connect the receiver:
- Throttle – 2
- Elerons – D4
- Ailerons – D5
- Rudder – D6
- AUX 1 – D7
You need the MPU-6050, the Bluetooth module, the receiver, and the ESCs, to be grounded. And, to do that, you need to connect the all GND pins to the Arduino GND Pin.
How to Solder Everything Together
The first thing you need to do is to take the female headers and solder them to the prototype board. This will house your Arduino board.
Solder them right in the center so that there’s room for the rest of the headers for the MPU, Bluetooth module, Receiver, and the ESCs, and leave some space for some additional sensors you may decide to add in the future.
The next step is soldering the Receiver and ESCs male headers right from the Arduino female headers. How many male ESC header rows you will have, depends on how many motors your drone will have.
In our case, we are building a quadcopter, meaning there will be 4 rotors, and an ESC for each. That further means 4 rows with each having 3 male headers.
The first header in the first row, will be used for the Signal PID, the second for the 5V (though, this depends on your ESCs having a 5V pin or not, if not, you will leave these headers empty), and the third header will be for the GND.
When the ESCs soldering part is over, you can move on to the Receiver headers soldering part. In most cases, a quad has 4 channels. These are Throttle, Pitch, Yaw, and Roll. The remaining free channel (the fifth one), is used for Flight mode changes (the Auxillary channel). This means that you will need to solder male Headers in 5 rows. And, each but one will have one header, while just one of those rows needs 3 headers in a row.
How to Wire Everything
And, as you can see on the picture, what we were just talking about is positioned left (The MPU soldered central) on the board, while the left (two female headers soldered bottom) on the board, is how we soldered and wired the Bluetooth module.
In our case, all the grounds were connected with the Arduino grounds. That includes all ESC grounds, Receiver ground (Throttle signal header completely on the right), and the Bluetooth module and MPU grounds.
Then, you need to follow the schematics and the connections we explained above. For example, the MPU ( SDA – A4, and SCL – A5), and for Bluetooth (TX – TX and RX – RX) of Arduino.
After that, just follow the connections as we wrote them: Signal pins of ESC1, ESC2… to D3, D10… of Arduino. Then the Receiver signal pins Pitch – D2, Roll – D4… and so on.
Furthermore, you need to connect the Long Lead of the LED (positive Terminal) to the Arduino D8 Pin, as well as add the 330-ohm resistor in between the Ground of Arduino and the LED Short lead (negative terminal).
The last thing to do is to provide a 5V power source connection. And, for that, you need to parallel connect the Black wire (ground of the battery) to the ground of all your components, and the Red wire to Arduino, MPU, and Bluetooth Module, 5V pins.
Now, the MPU 6050 needs to be soldered to male headers to the ones you plan on using. After that, turn the board 180 degrees and connect all your components to the respective headers on the prototype board.
Here is how it should look when all the soldering and wiring is finished:
Power it up and your Arduino is ready for adding codes through a computer!
How to Program Your Arduino Flight Controller
First, you need to download the MultiWii 2.4. Then, when you extract it, you will get this:
Enter the MultiWii folder, and look for MultiWii icon and run it:
Use the Arduino IDE to find the “Arduino File” or Multiwii file with “.ino”. Any “CPP file” or “H file” are the support files for our Multiwii Code so don’t open those. Just use the Multiwii.ino file.
When you open the file, you will find many tabs Alarms.cpp, Alarms.h, EEPROM.cpp, EEPROM.h and many more. Find the “config.h”
Scroll down till you find ‘The type of multi-copter” and then by deleting the “//” you mark is as defined and running. Quad X because we are assuming that you are using the “X” rotor configuration on your quad.
Now scroll down and look for “Combined IMU Boards” and activate the type of the Gyro+Acc Board you are uusing. In our case, we used the GY-521 so we activated that option.
If you decide to add other sensors such as a barometer or an Ultrasonic sensor, all you have to do is to “activate” them here and they will be running.
Next is the “Buzzer pin”:
There, you need to activate the Flight indicator options (the first 3 ones):
Now, you need to flash the code to your Arduino.
Unplug the Arduino board from the Flight controller and then connect it to your computer using USB. Once out of the FC and connected to your computer, you will find TOOLS and select the type of your Arduino board (in our case Arduino Nano).
Now find “Serial Port” and activate the COM Port the Arduino Nano is connected to (our case, COM3).
Finally, click on the arrow and upload the code, and wait for the code to be transferred.
When the upload is finished, unhook the Arduino from USB, insert it back to its place in the FC board, and connect a 5V battery so that the entire FC is powered up, and then wait till the LED on the Arduino is red. That means it has finished booting and that you can connect it to your computer again.
Now, find the Multiwii 2.4folder, then the MultiwiiConfig, and locate the folder that is compatible with your OS. In our case, it is the “application.windows64”.
Now start the MultiwiiConf application:
Once the user interface opens, you need to choose your Arduino’s COM port and click on Start like shown in the image below.
And, that’s it! You will immediately notice how you move the FC, the values for the Accelerometer and Gyroscope data on the screen.The orientation of your FC is shown at the bottom.
In this interface, you can change the PID values and fine-tune your quad to match your personal preferences. And, you can also assign the flight modes to certain Auxillary switch positions in this interface.
All you have to do now is find a place for your Arduino FC on the frame and it is ready to hit the skies.
We are hoping that this article helped you and gave you a better insight to what each part of the quadcopter does. Now you should know how to select the right parts for your quadcopter. If you manage to build your own quadcopter and everything goes well, you can check out our other article about how to fly a quad to get more tips.
As a gift to you, in hopes that you will enter the world of drone hobby and stay here, here is a video series that shows how to put all the parts together and build an Arduino Quadcopter from scratch:
YMFC-3D Part 1 - Hardware
YMFC-3D Part 2 - Connect RC Transmitter and Receiver
YMFC-3D Part 3 - How to Connect a Gyro
YMFC-3D Part 4 - Electronic Speed Controller (ESC)
YMFC-3D Part 5 – Quadcopter PID Controller and PID Tuning
YMFC-3D Part 6 - Flight Controller With Source Code
Feel free to leave a comment or give us some feedback on this post. Happy building!