BLOG

How to Make An Arduino Quadcopter Drone: Step-by-Step DIY Project

Arduino Quadcopter DIY
Jack Brown
Written by Jack Brown

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 strong suit, and if you don’t possess the necessary programming skills, you can choose a quadcopter kit that contains the necessary parts and comes with instruction. This project doesn’t actually involve serious building, and is more of a “put all the parts together following the instructions” type of project. It is usually done in an hour or two, and right after, you are ready to hit the skies!

However, with those quadcopter kits, 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. Also, you will miss out on the overwhelming feeling of satisfaction when you take off with your handmade quad for the first time.

The entire process of building the quad is what hardcore drone 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, we’re getting ahead of ourselves here, so let’s start from the beginning.

General “Quad Science”

As the name suggests, a quad drone 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 thrusts that it generates. This stability is why quads 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. You would be surprised by just how much weight the bigger drones can carry!

Now, unlike the traditional helicopter, the 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 its propellers.

The motors 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 a traditional helicopter when the tail rotor dies.

Quadcopter prop rotation diagram

In order for the balance to be maintained, the quad relies on the data it gathers from internal sensors, and adjusts the power it sends to each motor so that the entire drone is leveled. To keep balanced all of the time, the quad uses an advanced control system, which usually makes the adjustments autonomously, and this is where your Arduino board and your programming come into play. This type of self-stabilization will make your drone quite accessible to fly, as you won’t have to constantly worry about losing control and damaging your quad.

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 remote control 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. You can use only the basic ones such as the gyro, or a bunch of other, more advanced sensors such as a 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.

Quads, as with all drones, are highly customizable, and you can truly build one that represents your interests. This is a major appeal of the DIY process to many enthusiasts. Whether you are interested in photography, video, drone racing, or just flying for fun, you’ll find that a quadcopter can offer something for you. Unmanned aerial vehicles are very adaptable and customizable, and we think you’ll enjoy customizing one that suits your preferences.

Components You Will Need For Your Quad

Every quad will have to include the elements listed below in order to fly. Here is a short summation of each of the various parts of a quad, and we will cover these in more detail as the article goes on:

  • 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 build, 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, for a standard for a quad that is planned to be used for aerial filming or photography (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. Whether you are building for aerial photography, racing, freestyle, or more. We will talk about the right choice of board 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.

These are the basic components of a drone. Read on for a more detailed description of each component:

Part #1 – Frame

Although it might be tempting to buy a preassembled frame kit, building the frame on your own can help you kick start your true DIY process. The Frame of your quadcopter has to possess strength, but it also has to be flexible enough to compensate for the vibrations the motors produce. It needs to have the following parts:

  • Center Holding Plate – for mounting the electronics.
  • Arms – there are four arms on a quad.
  • 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 of the arms 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.

Frame for your quad

Carbon fiber offers much better absorption of the motor vibrations and is the most rigid one. But, it is also the most expensive one. Carbon fiber is the superior choice, but this very much depends on your personal budget. 

Wood boards are also better for motor vibration absorbtion, 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:

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.

Brushless motors

The most important ones are the “Kv-rating“, which tells you the number of RPMs the motor is capable of generating with a certain amount of electric power.

Also, you will need motors that rotate counter-clockwise, 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:

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 the propellers 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.

Propellers

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 quad to lift filming and photography equipment, 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:

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.

Mounting Speed Controller

When buying the proper ESC, you need to pay attention to 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:

Part #5 – Battery

The most recommended power source for your quadcopter is the LiPo. It’s not heavy, and the current levels are ideal for what you need. NiMH is a cheaper, but also heavier, option.

Batteries

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 to control the amount of power sent to motors, in order 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 for building a quad: 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’s only purpose 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.

Arduino UNO

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 to it is fry the chip, which luckily 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 which 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.

The RC Transmitter

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. Basically, the more skill you have at controlling the drone, the less help you will likely want with stability. 

So when you’re a beginner drone user, use the second mode of control, 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. Here are a few of our favorites:

Wiring, Soldering, and Programming

This is the most complicated part of the entire building process. Soldering is a very specific technique, so be sure to do this process carefully. Make sure you know exactly what you need to do before you start each step. For this, you will need the following:

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, as opposed to taking the laptop with you out on the field when testing.

Schematics

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

Here’s the order which you should solder all your pieces 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 there will be 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 are finished being soldered, 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. All but one will have one header, while just one of those rows needs 3 headers in a row.

How to Wire Everything

You can see an example of the correct wiring below. As you can see in 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.

Next, 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 and 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

An Arduino flight controller also requires some computer programming to get working. Now that we are done the building and the soldering, we can get into the coding aspect. This section contains a step-by-step guide of what you need to do to get your Arduino flight controller started.

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 such as Alarms.cpp, Alarms.h, EEPROM.cpp, EEPROM.h and many more. Find the “config.h”

Scroll down until you find ‘The type of multi-copter” and then by deleting the “//” you mark this 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 Gyro+Acc Board you are using. 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 that the Arduino Nano is connected to (in 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 until 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 are shown 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. 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.

Wrap Up

Building a drone all on your own can be a complicated and arduous process. However, it is also guaranteed to come with its own sets of rewards and satisfactions. It is very easy to go to the store and buy a drone that is ready to fly, but people who build drones from scratch don’t do it for this reason. It is the feeling you get the very first time you fly a drone that is entirely of your creation. These aerial vehicles are quite a bit of fun to fly, but there’s a chance you might have even more fun before the flying even begins!

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.

Additionally, here is a video series that shows how to put all the parts together and build an Arduino Quadcopter from scratch. If you are a visual learner, this should be a nice supplement to this article that you can reference if you are ever stuck in any stage of building your quadcopter:

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!

About the author

Jack Brown

Jack Brown

Jack is the Chief Pilot at MyDroneLab.com bringing experience, expertise and knowledge in this quite new industry. He is a graduate of the Drone/UAV Pilot Training Certificate program and member of the Association for Unmanned Vehicle Systems International. Besides having all the necessary technical knowledge when it comes to drones, Jack and his team love to spend the time outside by the ocean, working on new features and teaching others how to pilot these amazing and exciting new robots.