Build Arduino Quadcopter with Complete Source Code and Circuit Diagram

Ever wanted to design something of your own from scratch but never knew where to start. Well, you made it to the right spot. In this article, we will teach how you can make your own Arduino Quadcopter Drone step by step. If you feel your programming skills are lacking then you can always get a pre-built Quadcopter kit, but you will miss out the thrill of building something from the ground up. So without further ado, why not start from the basics.   

What is a ‘Quad’ copter?

A Quadcopter is essentially a flying device with 4 electric motors and propellers to power it. These devices are perfect for surveillance and filming applications and come in a number of sizes according to your need. The four rotors are used to generate the uplifting thrust which carries this device. The weight is divided among the four rotors. The Quadcopter is also controlled by using these motors by changing the amount of power each motor is producing.

The motors are arranged almost as if they lie along the corners of an imaginary square. Two of them rotate clockwise while the other two on the other diagonal rotate anti-clockwise. The drone remains leveled by adjusting the power each motor is provided with. Typically the Arduino board is used for these adjustments autonomously. The thrust each rotor produces allows the Quadcopter to perform four types of movements: Altitude, Roll, Yaw, and Pitch. You can also add different sensors to your Arduino to make your Quadcopter more self-controlling for example, barometer, GPS, sonar etc.

Components Required:

Here we will enlist the components required then discuss them one by one.

  • Frame
  • Motors
  • Electric Speed Controllers
  • Propellers
  • Battery
  • Arduino Board
  • IMU (Inertial Measurement Unit)
  • RC Controller

1: Frame: The frame should be strong and flexible to accommodate vibrations produced. It should have a center holding plate for mounting the electronics, four arms, and four motor brackets to connect each motor to each arm end. The material used can be aluminum, carbon fiber or wood. Aluminum is mostly used since it is light, rigid and cheap. But they do not accommodate vibrations as well as carbon fibers.

But carbon fibers are more expensive. Wood also absorbs vibrations well but can easily break. You can also get pre-built frame kits.

2: Motors: These motors are identical to traditional DC motors, however; they do not have any brushes. Make sure to check the RPMs (revolution per minutes) the motors can generate through the ‘Kv-rating’ (RPM constant of a motor). As mentioned before the motors should rotate anti-clockwise to counteract the torque of the propeller.

3: Propellers: Propellers will generate the necessary thrust for your Quadcopter. Make sure to buy the corresponding clockwise and anticlockwise rotating pairs of propellers. You will have to choose the pitch and diameter according to the thrust required and the required application of your Quadcopter. If you require more thrust, for example for lifting more weight, then use a large diameter and pitched propeller. But if you want more RPM to use smaller or mid-sized propellers. Similarly, if you want more stability for a Quadcopter which will lift weights then you will use a less RPM motor with more torque and higher pitched propellers. Standardized propellers include:

  • 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- Large quads

4: Electronic Speed Controller: This device will control the speed of the motors. It has a battery input and a motor output with three phases. You will require four for each motor. Keep in mind the maximum level of current the source will provide while buying the ESC. Also, see if the ESC is programmable to your needs for example if you want to change the signal frequency range.

5: Battery: We recommend you use the LiPo (Lithium Polymer) battery, it provides the current that is ideal to this application and is not heavy. NiMH is cheaper but heavier. LiPo batteries come in single 3.7V cells or up to 37V 10 celled. The most popular version is the 3SP1 battery which is 11.1V and 3 celled.

How to safely charge and store | A Better Guide For Drone lithium Batteries

6: Inertial Measurement Unit (IMU): This board will measure the quads orientation, velocity, gravity force etc. and level your Quadcopter. This unit consists of a 3-axis gyroscope (to read angular velocity) and accelerometer (to measure acceleration and force). This type of combination is known 6DOF IMU. In this way, it senses the orientation of the quad.

7: Flight Controller: You can use a normal controller board or an Arduino UNO. With Arduino, you can select the parts you wish to install and assemble the controller yourself.

It includes:

  • 14 digital input/output pins
  • 6 analog inputs
  • a 16 MHz quartz crystal
  • a USB connector
  • a power jack
  • an ICSP header
  • a reset button

You can use a USB cable to connect it to a computer, battery, or an AC/DC adapter. You can program the Arduino with the Arduino Software.

8: RC Transmitter: You can program and control your Quadcopter by an RC transmitter. You can choose two modes, Acrobatic or Stable. As a beginner you should stick to Stable mode, the motor speeds will be controlled automatically and the drone will remain balanced. In an Acrobatic mode, the gyroscope is the only one processing values. The controlling sticks will help you control the quad and it is not re-balanced automatically.  This mode is useful while performing aerial stunts, but is difficult to control. Some RC control systems include Futaba, Spektrum, Turnigy, and FlySky.

Futaba R617FS receiver


Soldering, Wiring & Programming

Now comes the part where you actually build your Quadcopter. You will need

  • Futaba R617FS receiver
  • 1 x 450 size frame with the integrated power distribution board
  • 4 x 1000kV motor / 10×4.5 props / ESC combo
  • 1 x 3S / 2200mAh / 30C lipo
  • 1 x Arduino Uno or Funduino Uno
  • 1 x MPU-6050 gyro / accelerometer
  • 1 x Flysky FS-T6 6-CH TX Transmitter
  • 1 x 2S/3S lipo battery charger

Schematics and Connections:

According to the provided blueprint of your operation, make the following connections,

1: ESCs: Connect Signal Pin ESC 1 to D4, Signal Pin ESC 2 to D5, Signal Pin ESC 3 to D6 and Signal Pin ESC 4 to D7.

2: Lipo Battery Level indicator: Connect the R3 and R2 junction point to Arduino Analog Pin A0

3: MPU-6050: Connect the SDA to A4 of Arduino and SCL to A5.

4: LED indicator: Connect the LED Anode Leg to D12.

5: Receiver: Connect Channel 1 to D8, Channel 2 to D9, Channel 3 to D10 and Channel 4 to D11

In the end remember to ground the MPU-360, the Bluetooth module, the receiver, and the ESCs. For this connect the GND pins to GND pin of Arduino.


First, solder the female header to the center of the prototype board. This will house the Arduino board. Leave space for the rest of the components. Next solder the receiver and ESCs male headers from the Arduino female headers. Since we are using 4 rotors and an ESC for each rotor so we will have 4 rows of male ESC headers, each having 3 male headers.

The first header in the first row will be used for Signal PID, second for the 5V pin, third for the GND. Once you have soldered the ESCs move on to the receiver headers. The quad has four channels, throttle, pitch, yaw, and roll. The fifth one is used for Flight more change, so you will solder the male headers in 5 rows. Each row will have one header except one, while one of the rows will have 3 headers in a row.


For the wiring simply follow the schematics and connections we explained for the MPU, ESC, receiver pins and so on. While connecting the LED to Arduino add the 330-ohm resistor in between the ground of Arduino and the LED negative terminal. Next, add the 5V power source connection. For this parallel connect the Black wire (ground for battery) to the ground of all the components, and the red wire to Arduino, MPU, Bluetooth Module, and 5V pins. Next solder the MPU to the male headers. Connect all the components to the respective headers on the prototype board. And the Arduino is ready for programming.

Connect RC Transmitter and Receiver

How to Connect a Gyro

Electronic Speed Controller (ESC)

Quadcopter PID Controller and PID Tuning

Programming the Arduino Flight Controller:

 Click Here To Download Source Code Complete Package 

Congratulations you have completed your design. All that’s left is to test your Quadcopter in the skies.

Project Courtsey Brokking ©

Related posts

Arduino Opta PLC Pros & Cons

Breakthrough of Ardino-Pro Opta: Micro-PLC with industrial IoT proficiency

Top Arduino sensors – the ultimate list 2021


Harshal hajare May 18, 2019 - 11:03 am

Can we creat a quadcopter at autopilot mode, or we can say can we control it automatically?

dave owen May 7, 2020 - 12:02 pm

Will a GY-521 work in this build

Ralph 2.0 August 27, 2020 - 4:29 am

All the work have been done by Joop Brokking. You can find all the description and not only a copy of some datas on his site You wil see that his revision of this quadcopter has been made with a MPU6050 GY-521.

Prajwal.R October 18, 2022 - 11:56 am

No valid receiver signals found!!! (ERROR 1)
Sir its showing like this sir what i want to do sir

Prajwal.R October 18, 2022 - 11:58 am

Plzz help me sir

Bret November 20, 2022 - 7:07 pm

Although a carbon fiber frame would be about the neatest and most modern high tech material. Plastics as in a 3D printed frame just doesn’t do it for me and I’m of the opinion it is not strong enough for many things. Aluminum was mentioned and it was also mentioned it was not the best for vibration issues. This may be so but if the frame were designed with vibration isolators, I think it would be fine for keeping costs down.

Add Comment