HomePage/assetList/Microduino QuadCopter
Microduino QuadCopter
6480 0
Production process


Quadcopter is one kind of aircraft that is equipped with four propellers. Similar to the helicopter, it can finish the action of hover and flight. A traditional helicopter uses a main rotor to generate thrust and a tail rotor to offset the torque from the main rotor, namely, locking the tail. While the quadcopter adopts positive and negative propeller design and therefore, needs no extra structure to lock the tail. Four propellers distribute symmetrically in the shape of a cross. The No. 1 and No. 2 propellers rotate anticlockwise while the No.3 and No.4 rotate clockwise. When the four propellers generate the same thrust, the anti-torque imposed on the body by the two groups offset, balancing in the vertical direction and making sure flight stability.
According to the user-defined fore and aft direction of the aircraft, the quadcopter can be divided into the cross mode and X mode. The cross mode means that the fore and aft direction points to a certain propeller and the X mode refers to that the fore and aft direction points to the middle of two propellers.
For most aircraft adopting X mode, the X mode is harder to control but more flexible.


System Structure

As the picture shows, the Quadcopter consists of a remote controller, a flight controller and four motors. And for the flight controller includes a microcontroller, a remote control signal receiving module, a motor driving module and sensor modules (A gyroscope, an accelerator, an electronic compass and a GPS module).

Flying Principle

Vertical Motion

Vertical motion includes rising or falling vertically. As the text mentioned previously, the quadcopter can keep balance horizontally by four motors maintaining the same rotation rate. As you can see from picture 2.2.1, if the four motors increase to the same speed, the generated thrust will be large enough to overcome the quadcopter weight and rise, and vice versa. Under the condition of no surrounding interruption, the four motors can generate enough thrust to overcome the weight and therefore, the quadcopter can suspend in the air.
The quadcopter can fly steadily in the vertical direction as long as the four motors maintain the same speed.

Front & Lateral Motion

The motor 1 is the head of the aircraft and the motor 2 is the rear. How does the quadcopter move forward? Get a thrust in the horizontal direction: By increasing the speed of the motor 2 and the thrust increases in the rear. By decreasing the speed of the motor 1, the thrust will get reduced in the head. In this case, the aircraft will move forward. At the same time, by maintaining the speed of the motor 3 and 4 to keep the anti torque balance, the aircraft will fly forward steadily and vice versa.
Since the quadcopter is symmetrical in the middle, the action of controlling the quadcopter forward or laterally is similar. Just keep in mind, the control of the two groups of motors should be reversed while trying to fly the aircraft laterally. For example, by keeping the speed of the motor 1 and 2 the same, increasing the speed of the motor 4 and decreasing the speed of the motor 3,it will generate horizontal thrust to the left and the aircraft will move left.

Yawing Motion

The three kinds of motion mentioned above all happen in the directions of the three axes. Next, we’ll introduce the motion around the three axes.
Yawing motion is the rotation in the horizontal direction, namely rotation around the Z-axis.
During the rotation, it will form an anti-torque opposite to the rotation due to air resistance. Yawing rotation is realized by using the reverse torque. When the aircraft suspends, the speed of the four motors is the same, which can offset torque in both horizontal and vertical direction, and achieve balance. When the speed of the four motors is different, unbalanced anti-torque will cause horizontal rotation and the aircraft will deviate from the route. As the picture shows, by increasing the speed of the motor 1 and 2, and decreasing that of the motor 3 and 4, the clockwise anti-torque generated by the motor 1 and 2 will be larger than the counter clockwise anti-torque generated by the motor 3 and 4, causing clockwise rotation of the aircraft horizontally and generating no vertical displacement when there is no change in the thrust upside.

Pitch and Roll Motion

Pitch motion refers to the rotation in the Y-axis direction while the roll motion refers to the rotation in the X-axis direction.
As the picture shows, by increasing the speed of the motor 1 and decreasing that of the motor 2, and keeping the same of the variable quantity as well as the speed of the motor 3 and 4: The thrust of the head is larger than that of the rear. The unbalanced torque makes the body rise. Similarly, the roll motion is realized by reducing the speed of the motor 1 and increasing that of the motor 2, generating a torque forward.
The principle of the roll and pitch motion is the same due to symmetry in the middle. By keeping the speed of the motor 1 and 2 unchanged, and changing the speed of motor 3 and 4, it’ll generate unbalanced torque and make the aircraft rotate around the X-axis direction.

Control Procedure

The remote controller sends out control command, such as take-off or flying left. The control signal is received wirelessly.
  • A remote control signal receiving module receives a control signal, which is converted into PWM, PPM or other signals and then transmitted to the flight controller.
Micro controller uses the remote control signal and the sensor’s value (the current state of the aircraft, such as acceleration, direction and other information) to control the four motor and achieve the desired action through the PWM.
Since the four-motor combination control can only reach to six directions, which is an under actuated system. So here we must have a flight controller to control the whole system.
In the flight controllers, sensors such as gyroscope and accelerator are dispensable. Micro controller can calculate data from the two sensors, get the current aircraft’s attitude and then adjust the rotation rate with algorithms such PID to keep the stability. Sure you can add an electronic compass to get the direction or a GPS module to get the geographic location. Simply speaking, the quadcopter is system with two closed-loops to control—the large loop gets input volume from the remote receiving device and the small loop acquires input volume from the attitude sensor.
Generally speaking, the quadcopter kit includes an aircraft and a remote controller, the two of which controls instructions through the CoreRF transmission.
The quadcopter is composed of a frame, Microduino-CoreRF , Microduino-Motion and other modules. For Microduino-motion, it integrates a three-axis gyroscope + a three-axis accelerator(MPU6040), a magnetic field intensity sensor(HMC5883L) and a digital pressure sensor(BMP180), and have communication through IIC.
MPU6050 is the most important attitude sensor with a three-axis accelerator and a three-axis gyroscope integrated inside, which not only offsets adjustment errors for the combination of a three-axis accelerator and a three-axis gyroscope, and also has a built-in low pass filter.

Buildup and Debugging

Bill of Materials

  • Microduino Equipment
  • Other Equipment

  • Step 1:Install the four propellers as shown below:
  • Step 2:Put the battery into the right place on the bottom of the frame.

  • Step 3:Put the module base into the top of the frame and then insert the wires into the correspondinginterface.
  • Step 4:Connect the antenna to the CoreRF, and then stack them to the Microduino-Motion on the base plate.
  • Step 5:Connect the base module and the battery with wires.
  • Step 6:Paste the antenna on the CoreRF to the back of the frame. Congratulations! You just finished the
  • Quadcopter buildup.
Please be noted of the electrode of the two wires, which is “red wire connects to red wire” and “black to black”.
  • Make sure all wires are connected well in order to prevent accident while flying.

Program Download Debugging

  • Make sure you build Microduino IDE. If not, please refer to:Microduino Getting started
  • Code:MultiWii_for_Microduino
  • Stack Microduino-CoreRF and Microduino-USBTTL together, and connect them to the computer with a MicroUSB cable.
*Open Arduino IDE, click【File】->【File】, open the program 【MultiWii_RF】 of  MultiWii_CoreRF and select
Microduino-CoreRF from the Board under Tools.
  • Click “Tools”, select the board (Microduino-CoreRF), choose COM-XX and then upload the program. After that,
  • please click “√” on the top left and compile, then click and complete the programming of hardware.
The Microduino-USBTTL download module can only be used in program download, serial debugging and calibration of the Quadcopter, which needn’t be stacked at other times.

Quadcopter Adjustment


  • Stack the Microduino-CoreRF, Microduino-Motuion and Microduino-USBTTL, then connect them to the base plate.
  • Open the Quadcopter file and select “MultiWiiConf \application.windows32 \MultiWiiConf.exe” to adjust
  • parameters of the Quadcopter.
Note: The file needs to be opened under JAVA development environment or adopt
  • Microduino_Joypad_QuadCopter\java to install.

Sensor Calibration

  • Put the Quadcopter on the desk, click RECONNECT, you’ll the curve of the sensor data; Click CALIB_ACC and keep stable of the Quadcopter for 5s, the accelerator will be calibrated; Click WRITE and write the values into the Quadcopter.
  • Click CALIB_MAG and take the Quadcopter to rotate around the modules to calibrate the electronic compass. After that, please put the Quadcopter on a smooth place and click WRITE to write values into the Quadcopter after the compass being balanced.

PID Parameter Setting

Click LOAD to load setting files and select pku.mwi to input, as shown below:

Flying Mode Setting

Click SELECT SETTING on the right side of the PID, we can see various flight patterns and a two-dimensional table corresponding to the auxiliary switch. A combination of a switch or multiple switches can be specified as a flight mode. We recommend that players follow the following chart to set the flight mode.
The setting method is to click the left mouse button in the square. The gray square will become white, such as the figure below by clicking three white squares (this should be gray).
This specifies the corresponding flight mode in such a switch position. ANGLE is a steady mode, which helps us to fly the Quadcopter. You can click WRITE to set up the numerical control writing.
Close the MultiWiiConf serial port after setting up the flight mode, you can take down the Microduino-USBTTL module, completing the assembly and debugging of the whole flight controller.

Troubleshooting with Sensor Values

This method can help to eliminate the problem of aircraft in direction. It can be used to display the correct direction of the control board installation or if there is no proper control board type in “config.h”.
  • Tilt to the right side of the fuselage:
  • MAG_ROLL, ACC_ROLL and GYRO_ROLL values increase
  • MAG_Z and ACC_Z values reduce
  • Move the fuselage forward (rear up):
  • MAG_PITCH, ACC_PITCH and GYRO_PITCH values increase
  • MAG_Z and ACC_Z values reduce
  • Turn the fuselage in a clockwise direction (yaw):
  • CYRO_YAW numerical value
  • body level:
MAG_Z and ACC_Z values are positive

Remote Controller(Microduino-Joypad)Buildup & Debugging

As it mentioned previously, the remote controller is composed of the control board (Microduino-Joypad), the microcontroller (Microduino-CoreRF), thedisplay module (Microduino-TFT) as well as download and debugging module (Microduino-USBTTL).
  • Microduino Modules
  • Other Equipment

Joypad Buildup &Debugging

Joypad Buildup

  • Step 1: Download program for the Microduino-CorRF of Joypad.
* open the Joypad_RC program in the MultiWii_CoreRF, select the right board and port for program download after the compiler is finished.
  • Step 2: Put the Microduino-TFT on the back of the Microduino-Joypad panel and fixate it with nylon screws, pay attention to the installation direction of Microduino-TFT.
  • Step 3:As it is shown in the picture, you can fixate the Joypad with nylon nuts and screws. Insert the 2.4G
  • antenna into Microduino-CoreRF and connect them to the base plate of Microduino-Joypad.
  • Step 4:Connect Microduino-TFT and Microduino-Joypad with cables.
  • Step 5:Put the switch on the battery to the side of “Dry bat(1.5V)”, install the battery (AAA battery) to the battery box; Open the switch on the right side of the Joypad to see if it is powered. If not, please use the USB data cable to connect to the left of the MicroUSB interface to activate the system.
You can also not use the battery. The power supply can also be achieved through a USB cable.
  • Step 6:Use nylon screws to fix the bottom plate and the panel. The remote sensing cap is installed on the rocker, and the button cap is installed on the button. (If the key is not connected well with the upper plate of the key, you can insert the key into the key interface, and then connect with the bottom button.
  • Step 7:You can open the power switch and see if is the power supply is normal.

Joypad Buildup Debugging

  • Key
Press the Key 1 in 4s after opening the Joypad and enter (Config) mode.
  • Enter setting mode
Key1 to Key 4 from the left to the right as shown below:
Note: Make sure setting before entering the OS interface.
  • Joystick calibration
Press Key3 and Key4 to move the cursor. The Key 1 refers to “Return” and the Key 2 refers to “Confirm”. Select the first item Joystick Config to enter the setting mode and the Joystick Correct to enter the calibration mode. After that, you’ll see interface shown in the third picture. At this time, you can swing the rocker to the upmost and watch the results.
  • Select control mode
Press Key1 to return to the main interface and select Protocol Config to enter mode selection. Choose Mode and then Quadcopter mode, press Key 2 to confirm and return.
  • Set communication channel
Return to the secondary menu, choose Quadcopter Channel and press Key 2 to confirm. Select 12, which corresponds to the setting of “#define RF_Channel 12” under MultiWii.
At this point, the flight controller and remote control has been assembled and the next is to combine the two and begin to test flying. Not only to practice using the joystick, but also to observe the actual flight of the aircraft to further optimize the parameters of PID.

Overall Debugging

  • Step 1:Open the switch on the Microduino-QuadCopter, put it in a stable place and press the reset button, the system will calibrate the sensor, the LED light will flash on the unfinished board and go out after the calibration. At this time, please wait to unlock. If the LED lamp has been flashing, meaning the four axis is not calibrated well, please re-calibrate.
  • Unlock the Quadcopter
  • Please dial the Joypad remote control switch to the left side (Close the throttle) to prevent the accident caused by Quadcopter speeding up after unlocking. The switch on the right is allocated to the top (Unlock until reaching the maximum value11).
  • Pull the throttle rocker to the lowest level and wait around 2s, and the brightness of the blue LED means successful unlocking. So you can be ready to fly the aircraft, or put the throttle rocker in the middle and operate again. If you try to unlock for many times and still fail, the n please reset the core module, calibrate the sensor and try to unlock again.
And then put the throttle rocker to the bottom and the left upper switch the top (open the throttle switch), For the first use, it is suggested to dial the switch downside and make sure a stable flying.
  • You only need to gently push the throttle to see the beginning of the four propellers. Keeping speeding up make sure it’s flying. A little higher will be OK, just do not close to the ground, and then keep balance through the joystick.
  • In the upper left is the throttle control switch, you can open (dial above) it to control, you can shake the joystick to observe the change of the screen.
  • The right switch is a precision adjustment switch.
  • The Joystick in the left controls speeding up in the vertical direction.
  • The Joystick in the right controls flying in the vertical direction, which controls left and right flying in the horizontal direction.

Phone Bluetooth Control

  • Get prepared.
  • Make sure the serial port of the BT and the Serial0 (D0,D1) of the Quadcopter as well as the baud rate (115200).
Download APP.
  • Debug.
Connect the BT module onto the calibrated Quadcopter, then put them on a smooth place and wait for Bluetooth connection.
Open the phone Bluetooth and the Quadcopter control APP, you’ll see Microduino Bluetooth device.
Click Microduino, connect the Bluetooth and enter the control interface. After the connection, it’ll show “Ready” to remind you to unlock the Quadcopter.
Unlock the Quadcopter: If the Bluetooth indicator on the bottom of the Quadcopter goes on, it means unlocked successfully. If you see “Unlocked” on the screen, please try to unlock again. After unlocking, the middle rod can push up to speed up and the Quadcopter can fly.

Joypad Program & Description

- See Code Session


  • For installation
  • The four propellers must be installed in order.
  • Electrode for the Lithium battery:Please be noted that the red wire points to the positive pole and the black wire points to the negative pole.
  • For parameter adjustment
  • Please refer to the fourth section of the content to adjust the aircraft PID parameters and flight mode, which can be modified according to the recommended configurations. If you want to change PID parameters manually, please choose to change one parameter each time.
  • About debugging
  • Please adjust the Microduino-Joypad and the Quadcopter before flying.
  • About flying control
  • Make sure flying in an empty place.
  • Please turn the switch(on the top left) downside before unlocking the remote controller(Shut off the throttle) and set the throttle to the lowest before flying for fear of the take-off accident.
Please cut off the power supply of the Quadcopter firstly and the remote controller in order or it’ll make the Quadcopter out of control.

Required hardware
Code show

1. Joypad_RC.ino

Programing language: C/C++(Arduino)

SoftwareArduino IDE 1.8.4

Attachment download
Asset info

Creation time:11/08/2018

Course recommendation
Master, don't look at it silently. Please login to help me comment.

Register now