Skip to the content
PCBKitNew board
4 layers32 × 44 mmQuadcopter flight controler, the printed circuit board in 3D

Quadcopter flight controler

KNEAGHUST/quadcopter1

Quadcopter design made from scratch

Size
32 × 44 mm
Copper layers
4
Thickness
1.6 mm
Parts
79
Nets
82
Pads
264
Tracks, vias
525, 77
Pours
7
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
7 Oct 2023
Updated
4 Aug 2024

Overview

Quadcopter flight controler is an open-source printed circuit board by KNEAGHUST, from the KNEAGHUST/quadcopter repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 32 × 44 mm with 79 parts on 82 nets, routed with 525 tracks and 77 vias.

It is built around the NRF24L01, BMP280 and MPU-6050, with the USBLC6-4, DMN2056U and BC817 among its other parts. Its parts include 20 connectors, 19 resistors, 18 capacitors, 6 diodes and 6 transistors. It belongs with the robots and motor control and sensors and measurement boards and the STM32 boards of this library.

Main components

6

README

README.md

Quadcopter design made from scratch

The goal of the project is to create a working model of a quadcopter UAV, which can be controlled with a Xbox controller. The project utilises the MPU6050 inertial measurement unit, which combines MEMS accelerometer and gyroscope into a single IC. The combination of sensor readings from the IMU combined with an adequate mathematical model and a regulating system allows to make a quadcopter with a stable control system.

Quadcopter project implementation

The MCU used in the project implementation is STM32F103C6T6, an ARM Cortex-M3 mi- crocontroller, containing 32Kbytes of ROM. F1303 has built-in hardware support for I2C and SPI busses used for data transmission between on-board peripherals. The MPU6050 has been used as a sensor. It is an inertial measurement unit (IMU), a MEMS integrated circuit combining in itself an accelerometer and a gyroscope. For easy and intuitive reading of the sensor data at the code level, a library for initialising and handling the MPU has been written. It uses the built-in I2C bus which is used to exchange data between the IMU and MCU. The transmission is made in 400kHz mode. In order to save MCU execution time, a DMA controller has been used, allowing for sending data from RAM to the peripheral. Similarly, a library for nRF24L01 radio module has been written. nRF is being used for digital radio transmission between the UAV and a PC. It is connected to the MCU by the SPI bus and also uses the DMA mechanism. Another nRF connected to the PC is used to communicate with the quadcopter. The transceivers are used in order to read telemetry data and for piloting the UAV using an Xbox controller connected to the PC.

To keep the UAV stable it is essential to keep it at a set (stable) angle during movement. For instance, when we want the drone to fly up vertically, the roll and pitch angle have to be set to 0 degrees. The IMU supplies the data about displacement and angular velocity and a suitable mathematical model processes the data in order to estimate the angles. Finally the integration of data from both sensors with the help of filtration algorithms, such as complementary filter or Kalman filter allows us to gain precise information about the angles and for effective stabilisation of the quadcopter during flight. In our project we used the Kalman filter. It is an aimed at estimating the actual state of the system based on the observer measurements with Gaussian noise. The algorithm works in two main steps: estimation of the state of the system based on previous state and correcting it during the next measurement. Kalman filter uses the mathematical model and data about Gaussian noise in order to minimalise the estimates and measurement unceirtanties. The angle estimates and yaw angular velocity is fed into the regulation system consisitng of three PID regulators for every quantity. The PID regulator works by minimising the difference between the actual state of the system and a desirable reference state. It contains three components: proportional (P), which reacts proportionally to current deviateion, integral (I), which accumulates the deviation as time passes and differential (D), which takes into account the rate of change of the difference. The output of the PIDs is a duty cycle fed into a signal mixer, which sets the duty cycle for each of the motors.

More detailed documentation has been placed in the project repository.

Part list

Parts

79
QtyValueFootprintReferences
7100nCapacitor_SMD:C_0805_2012MetricC2, C3, C4, C5, C17, C18, C19
5100kResistor_SMD:R_0805_2012MetricR5, R10, R12, R14, R16
5DMN2056UPackage_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4, Q5
401x02_PinConnector_PinSocket_1.27mm:PinSocket_1x02_P1.27mm_VerticalJ1, J5, J6, J7
4330Resistor_SMD:R_0805_2012MetricR11, R13, R15, R17
4D_SchottkyDiode_SMD:D_SOD-123FD2, D3, D4, D5
310kResistor_SMD:R_0805_2012MetricR3, R8, R9
3SolderJumpJumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mmJP1, JP3, JP4
210nCapacitor_SMD:C_0805_2012MetricC6, C14
218pCapacitor_SMD:C_0201_0603MetricC10, C11
22k2Resistor_SMD:R_0805_2012MetricR7, R18
24k7Resistor_SMD:R_0805_2012MetricR1, R4
2LEDLED_SMD:LED_0805_2012MetricD1, D6
10.1uCapacitor_SMD:C_0805_2012MetricC15
11.5kResistor_SMD:R_0805_2012MetricR2
110uCapacitor_SMD:C_0805_2012MetricC13
11kResistor_SMD:R_0805_2012MetricR19
11uCapacitor_SMD:C_0805_2012MetricC7
11x2Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ3
12.2uInductor_SMD:L_Coilcraft_XxL4040L1
12n2Capacitor_SMD:C_0201_0603MetricC16
14.7uCapacitor_SMD:C_1206_3216MetricC8
1450kResistor_SMD:R_0805_2012MetricR6
14u7Capacitor_SMD:C_0805_2012MetricC12
16p8Capacitor_SMD:C_0805_2012MetricC1
18MHzQT532S-8.000MAAJ-T:XTAL_QT532S-8.000MAAJ-TY1
1BC817Package_TO_SOT_SMD:SOT-23Q6
1BMP280Package_LGA:Bosch_LGA-8_2x2.5mm_P0.65mm_ClockwisePinNumberingU6
1CSTestPoint:TestPoint_Pad_D1.0mmJ19
1Conn_01x03_PinConnector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_VerticalJ20
1GNDTestPoint:TestPoint_Pad_D1.0mmJ12
1MISOTestPoint:TestPoint_Pad_D1.0mmJ14
1MOSITestPoint:TestPoint_Pad_D1.0mmJ13
1MPU-6050Sensor_Motion:InvenSense_QFN-24_4x4mm_P0.5mmU5
1RXTestPoint:TestPoint_Pad_D1.0mmJ18
1SCKTestPoint:TestPoint_Pad_D1.0mmJ15
1SCLTestPoint:TestPoint_Pad_D1.0mmJ11
1SDATestPoint:TestPoint_Pad_D1.0mmJ10
1STM32F103C6TxPackage_QFP:LQFP-48_7x7mm_P0.5mmU2
1SWDswd_conn:Pin_2x03_P2.54mmJ4
1TLV62569DDCPackage_TO_SOT_SMD:SOT-23-6U1
1TXTestPoint:TestPoint_Pad_D1.0mmJ17
1USB10118193-0001LF:AMPHENOL_10118193-0001LFJ2
1USBLC6Package_TO_SOT_SMD:SOT-23-6U3
1VDDTestPoint:TestPoint_Pad_D1.0mmJ16
1buzzConnector_PinSocket_1.27mm:PinSocket_1x02_P1.27mm_VerticalJ9
1nrf24l01Connector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ8

Questions

How big is the Quadcopter flight controler PCB?

It measures 32 × 44 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Quadcopter flight controler use?

79 parts, built around the NRF24L01, BMP280, MPU-6050 and USBLC6-4. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Quadcopter flight controler KiCad files?

From the KNEAGHUST/quadcopter repository on GitHub, at the commit this page was made from: the board is hardware/quadcopter-flight-controller-v0.2/quadcopter-flight-controler.kicad_pcb and its schematic hardware/quadcopter-flight-controller-v0.2/flight-controller-simulation.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Quadcopter flight controler design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers92.5 × 82.8 mmRifle and sensors, the printed circuit board in 3D

    Rifle and sensors

    DAlexis/caustic-lasertag-system

    Caustic project is a full-featured indoor and outdoor lasertag system

    268 parts16
  • 2 layers144.1 × 108.1 mmK9AY switch, the printed circuit board in 3D

    K9AY switch

    ra0sms/K9AY_with_wifi

    Receive antenna K9AY with WI-FI control interface

    144 parts2MIT
  • 2 layers100 × 70 mmWired console k9ay, the printed circuit board in 3D

    Wired console k9ay

    ra0sms/universal_control_console

    Control console for any types of antenna's switches

    115 partsMIT
  • 4 layers106 × 50 mmTemperature logger, the printed circuit board in 3D

    Temperature logger

    kitspace-test-repos/kicad6-file-collection

    157 partsMIT
  • 4 layers95.6 × 59.9 mmFlight computer rocketry, the printed circuit board in 3D

    Flight computer rocketry

    Himanshukohale22/Flight_control_controller_V1.2

    Hardware files for universal flight controller for small UAV's.

    145 parts1MIT
  • 2 layers66 × 61 mmDeja, the printed circuit board in 3D

    Deja

    AlexApps99/deja

    Drone (lawnmower II deja vu)

    16 parts
  • 4 layers60 × 96 mmDMM Module, the printed circuit board in 3D

    DMM Module

    AryeIs/DMM_Module

    123 parts1
  • 2 layers75.6 × 65.2 mmRoProp, the printed circuit board in 3D

    RoProp

    Biswajitpattanaik07/6_Axis_Robot_Controller

    Axion is an open-source controller board for a 6-axis articulated robot arm. It is built around an STM32F103C8T6 and combines six servo outputs, six per-joint IMU inputs, and three ways to talk to the outside world…

    92 parts1