Skip to the content
PCBKitNew board
4 layers57 × 57 mmFlightController, the printed circuit board in 3D

Multicopter Flight Control System

Size
57 × 57 mm
Copper layers
4
Thickness
1.59 mm
Parts
199
Nets
162
Pads
636
Tracks, vias
973, 392
Pours
64
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
16 Feb 2022
Updated
14 Feb 2023

Overview

FlightController is an open-source printed circuit board by Mathijsvb, from the Mathijsvb/MulticopterFCS repository on GitHub, published under the BSD-3-Clause licence. It is a 4-layer board of 57 × 57 mm with 199 parts on 162 nets, routed with 973 tracks and 392 vias.

It is built around the STM32H743VIT6, CH330N and BMP388, with the TF-01A, AMS1117-5V and FM24C64B-G among its other parts. Its parts include 62 resistors, 55 capacitors, 29 diodes, 12 connectors and 8 ICs. It belongs with the robots and motor control boards and the STM32 boards of this library.

Main components

12

README

README.md

About the project

MulticopterFCS is a flight controller build from the ground up. It is meant to be a development platform mainly focused on autonomous indoor flying of multi-rotor drones.

Warning The current version still contains design errors.

DiagramBoard
DrawIO block diagrams-Pagina-5 drawio (3)WhatsApp Image 2022-08-17 at 5 33 48 PM

Key features

On board:

  • High performance MCU (STM32H743 running up to 480 MHz)
  • Accelerometer and gyro (MPU6000)
  • Magnetometer (HMC5883L)
  • Pressure and temperature sensor (BMP388)
  • 64-Kbit of F-RAM (FM24C64B)
  • 2x RGB LED

Connectors:

quantitypurposeconnector typeComment
1SWD/JTAG1.27 mm pitch 10-pinFor programming and debugging
1SDIOMicro SD CardFor logging data during the flight
1I²CJST SH 4-pinExternal I²C connector
2UARTJST SH 4-pinExternal UART connector
1BatteryJST SH 2-pinUsed to measure battery voltage
1LEDJST SH 8-pinTo control external LEDs
1IBUS2.54 mm pitch headerIBUS used by external receivers to communicate remote control signals
6PWM2.54 mm pitch headerPWM is used to control external ESC's
1Buzzer2.54 mm pitch headerFor connecting a buzzer
1RPLiDAR2.50 mm MOLEX SPOX 7-pinThis connector will be used for the RPLiDAR
2USBUSB Mini BUSB1 goes directly to the MCU, USB2 gets converted to serial first

Roadmap:

  1. ✔️ Project orientation
  2. ✔️ Deciding on components
  3. ✔️ Creating schematic
  4. ✔️ Routing PCB
  5. ✔️ Manufacturing the PCB
  6. Testing
    1. ✔️ Programming MCU
    2. ❌ Gyro/Accelerometer
      1. ✔️ Find a the reason for to the Gyro/Accelerometer not working
      • The MPU-6000 seems to need the ability to toggle CS which the current board does not support. Board revision is needed.
      1. Pick new Gyro/Accelerometer
    3. ❌ Magnetometer
      • Can't be detected with an I2C scanner, probably dead.
    4. Barometric pressure sensor
      1. ✔️ Check if it can be found with the I2C scanner.
      2. Check is values are sensible.
    5. ❌ On board F-RAM
      • Wrong IC choice on my part.
    6. ESC control
    7. IBUS communication
    8. Buzzer
    9. ✔️ LEDs
  7. Writing drivers
    1. Gyro/Accelerometer
    2. Magnetometer
    3. Barometric pressure sensor
    4. On board F-RAM
    5. ESC control
    6. IBUS communication
    7. Buzzer and LEDs
    8. SD Card
    9. USB
  8. Signal processing
    1. Data conversion and correction
    2. Data filtering
    3. Extended Kalman filter implementation for sensor fusion
    4. PI(D) controller
  9. FSM controller
  10. Data logging on the SD Card

Future goals on the roadmap are likely to be Simultaneous Localization and Mapping using a LiDAR implementation. Based on this, autonomous indoor flight could be developed.

Licensing

This system is still a work in progress, use anything inside this repository at your own risk.

This an open source project released under the BSD 3-Clause License.

Parts

199
QtyValueFootprintReferences
34100nCapacitor_SMD:C_0402_1005MetricC2, C10, C11, C12, C13, C18, C19, C20, C21, C22, C23, C24, C25, C26, C27, C28 +18
2449Resistor_SMD:R_0402_1005MetricR17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32 +8
21LXES15AAA1-133Resistor_SMD:R_0402_1005MetricD10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25 +5
18TestPointTestPoint:TestPoint_Pad_D1.0mmTP3, TP4, TP13, TP14, TP15, TP18, TP19, TP20, TP21, TP22, TP24, TP25, TP26, TP28, TP29, TP30 +2
1110kResistor_SMD:R_0402_1005MetricR16, R48, R50, R53, R54, R55, R56, R57, R58, R59, R60
84k7Resistor_SMD:R_0402_1005MetricR42, R43, R44, R45, R46, R47, R49, R52
710nCapacitor_SMD:C_0402_1005MetricC3, C7, C14, C37, C44, C54, C55
6100@100MHzInductor_SMD:L_0603_1608MetricFB1, FB2, FB3, FB4, FB5, FB6
5220Resistor_SMD:R_0402_1005MetricR1, R5, R14, R15, R40
410Resistor_SMD:R_0402_1005MetricR3, R4, R7, R8
4MountingHoleMountingHole:MountingHole_3.2mm_M3_ISO14580_PadH1, H2, H3, H4
310uCapacitor_SMD:C_0603_1608MetricC17, C29, C31
3B5819W SLDiode_SMD:D_SOD-123D6, D7, D8
3JST SH1-4PConnector_JST:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_HorizontalJ7, J8, J9
3LED_SmallLED_SMD:LED_0603_1608MetricD3, D4, D5
210pCapacitor_SMD:C_0402_1005MetricC33, C34
21uCapacitor_SMD:C_0603_1608MetricC1, C38
222uCapacitor_SMD:C_0603_1608MetricC30, C32
22u2Capacitor_SMD:C_0402_1005MetricC15, C16
256kResistor_SMD:R_0402_1005MetricR12, R61
268Resistor_SMD:R_0603_1608MetricR2, R6
2MHT194CRGBCTflightController:0605D1, D2
2PMBT3904Package_TO_SOT_SMD:SOT-23Q1, Q2
2USB_B_MiniConnector_USB:USB_Mini-B_Wuerth_65100516121_HorizontalJ1, J2
1100kResistor_SMD:R_0402_1005MetricR62
110kResistor_SMD:R_0603_1608MetricR11
113kResistor_SMD:R_0402_1005MetricR13
116MhzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmHSE1
11kResistor_SMD:R_0603_1608MetricR10
11mm headerConnector_PinHeader_1.27mm:PinHeader_2x05_P1.27mm_Vertical_SMDJ6
12.54mm headerflightController:PinHeader_2x08_P2.54mm_Horizontal_lessSilkJ4
12.54mm headerflightController:PinHeader_1x08_P2.54mm_Vertical_lessSilkJ3
1220nCapacitor_SMD:C_0603_1608MetricC8
12n2Capacitor_SMD:C_0402_1005MetricC5
14u7Capacitor_SMD:C_0603_1608MetricC9
1560Resistor_SMD:R_0603_1608MetricR9
1560Resistor_SMD:R_0402_1005MetricR51
1AMS1117-5VPackage_TO_SOT_SMD:SOT-223-3_TabPin2U6
1BMP388flightController:PQFN50P200X200X80-10NU4
1CH330NPackage_SO:SOP-8_3.9x4.9mm_P1.27mmU10
1FM24C64BPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU3
1HMC5883LflightController:LGA-16_3x3mm_P0.5mm_Large_PadsU2
1JST SH1-2PConnector_JST:JST_SHL_SM02B-SHLS-TF_1x02-1MP_P1.00mm_HorizontalJ10
1JST SH1-8PConnector_JST:JST_SH_SM08B-SRSS-TB_1x08-1MP_P1.00mm_HorizontalJ12
1MOLEX 5268-7PConnector_Molex:Molex_SPOX_5268-07A_1x07_P2.50mm_HorizontalJ11
1MPU-6000Sensor_Motion:InvenSense_QFN-24_4x4mm_P0.5mmU1
1SPX3819M5-L-3-3/TRPackage_TO_SOT_SMD:SOT-23-5U7
1STM32H743VIT6Package_QFP:LQFP-100_14x14mm_P0.5mmU5
1SW_PushButton_Switch_SMD:SW_SPST_FSMSMSW2
1SW_SPDTButton_Switch_SMD:SW_SPDT_PCM12SW1
1TF-01AflightController:TF-01AJ5

Questions

How big is the FlightController PCB?

It measures 57 × 57 mm and has 4 copper layers, 1.59 mm thick.

What parts does the FlightController use?

199 parts, built around the STM32H743VIT6, CH330N, BMP388 and TF-01A. 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 FlightController KiCad files?

From the Mathijsvb/MulticopterFCS repository on GitHub, at the commit this page was made from: the board is Hardware/KiCad/flightController.kicad_pcb and its schematic Hardware/KiCad/Connectors.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the FlightController design in my own project?

Its repository publishes it under the BSD-3-Clause 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

  • 4 layers64.2 × 51.3 mmMiSTeX Pmod, the printed circuit board in 3D

    MiSTeX Pmod

    MiSTeX-devel/MiSTeX-hardware

    Hardware for MiSTeX

    30 parts73
  • 4 layers50.5 × 36 mmFMU v171-imported, the printed circuit board in 3D

    FMU v171-imported

    yagamy4680/drone-study

    AUAV-OpenSource/FMUv4-PixRacer is the open hardware design of PixHawk FMUv4. It uses STM32F427 and MPU6000. (github)

    118 parts
  • 6 layers60 × 60 mmAutopilot H743 V2, the printed circuit board in 3D

    Autopilot H743 V2

    JosephStew-art/autopilot-h743

    STM32H743 autopilot board design

    231 parts
  • 2 layers100 × 100 mmJBT01, the printed circuit board in 3D

    JBT01

    jbteja/tj01-ms51-heater-controller

    A heater control system featuring deterministic operation, safety auto-cutoff, predefined timer modes, and temperature measurement using a K-type thermocouple.

    79 parts1
  • 4 layers90.5 × 68.3 mmMt7628v1, the printed circuit board in 3D

    Mt7628v1

    findasifrahman/mt76--

    201 parts
  • 4 layers68.8 × 53.6 mmEasyduino Atmega, the printed circuit board in 3D

    Easyduino Atmega

    Hanqaqa/Easyduino

    Easily dive into different PCB KiCad designs of the most popular microcontroller devboards

    38 parts755CERN-OHL-P-2.0