

FlightController
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
12STM32H743VIT6
LQFP-100(14x14)-40℃~+85℃ 1.71V~3.6V 12bit 16bit 1MB 2MB 32 Bit 480MHz 82 ARM Cortex-M7 Built-in FLASH LQFP-100(14x14) Microcontrollers (MCU/MPU/SOC) ROHSSTMicroelectronicsMicrocontrollers (MCU/MPU/SOC)CH330N
SOP-8-20℃~+70℃ 15mA 2Mbps 3.3V、5V Transceiver SOP-8 USB Converters ROHSWCH (Nanjing Qinheng Microelectronics)USB ConvertersBMP388
LGA-10(2x2)-40℃~+85℃ 1.65V~3.6V 1pa/K 2uA 30Kpa~1.25bar 50pa 8pa I2C、SPI LGA-10(2x2) Pressure Sensors ROHSBosch SensortecPressure SensorsTF-01A
SMD1.85mm Connector and Ejector MicroSD Card (TF Card) Push-Push With Locating Pins SMD SD Card / Memory Card Connector ROHSHRO ElectronicsSD Card / Memory Card ConnectorAMS1117-5V
SOT-223SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTDDUncategorisedFM24C64B-G
-SOIC-8 FRAM ROHSInfineon TechnologiesFRAMHMC5883L
LGA-16_L3.0-W3.0-P0.50LPCC-16(3x3) New Arrivals ROHSHoneywellUncategorisedMPU-6000
QFN-24-EP(4x4)-40℃~+85℃ 16bit 1KB 2.375V~3.46V 5uA IMU (accelerometer + gyroscope) SPI、I2C X,Y,Z X,Y,Z ±16g ±2000dps 运动事件检测、同步与时间戳、过量程保护功能 QFN-24-EP(4x4) Accelerometers ROHSTDK InvenSenseAccelerometersSPX3819M5-L-3-3/TR
SOT-23-5-40℃~+125℃ 1 16V 3.3V 340mV@(500mA) 40uVrms 500mA 70dB 90uA Fixed Over Current Protection、Over Temperature Protection、Enable Positive SOT-23-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSMaxLinearVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsLXES15AAA1-133
0402-40℃~+85℃ 0.05pF 15V Bidirectional ESD IEC 61000-4-2 Single-channel 0402 ESD and Surge Protection (TVS/ESD) ROHSMurataESD And Surge Protection (TVS/ESD)MHT194CRGBCT
SMD-4P,1.6x1.6mm-40℃~+85℃ 0.6mm 1.5mm 1.6mm 130° Common Anode G:2.7V~3.3V、B:2.7V~3.3V、R:1.7V~2.4V G:520nm~530nm、R:623nm、B:465nm~475nm R:112mcd~285mcd、B:112mcd~285mcd、G:450mcd~1120mcd R:20mA、G:20mA、B:20mA R:60mW、G:95mW、B:95mW R:632nm、B:470nm、G:528nm Water Clear SMD-4P,1.6x1.6mm RGB LEDs ROHSMEIHUARGB LEDsPMBT3904
SOT-231 NPN 100nA 200mA 200mW 300 300MHz 300mV 60V 6V NPN SOT-23 Bipolar (BJT) ROHSPAKERBipolar (BJT)
README
README.mdAbout 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.
| Diagram | Board |
|---|---|
![]() | ![]() |
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:
| quantity | purpose | connector type | Comment |
|---|---|---|---|
| 1 | SWD/JTAG | 1.27 mm pitch 10-pin | For programming and debugging |
| 1 | SDIO | Micro SD Card | For logging data during the flight |
| 1 | I²C | JST SH 4-pin | External I²C connector |
| 2 | UART | JST SH 4-pin | External UART connector |
| 1 | Battery | JST SH 2-pin | Used to measure battery voltage |
| 1 | LED | JST SH 8-pin | To control external LEDs |
| 1 | IBUS | 2.54 mm pitch header | IBUS used by external receivers to communicate remote control signals |
| 6 | PWM | 2.54 mm pitch header | PWM is used to control external ESC's |
| 1 | Buzzer | 2.54 mm pitch header | For connecting a buzzer |
| 1 | RPLiDAR | 2.50 mm MOLEX SPOX 7-pin | This connector will be used for the RPLiDAR |
| 2 | USB | USB Mini B | USB1 goes directly to the MCU, USB2 gets converted to serial first |
Roadmap:
- ✔️ Project orientation
- ✔️ Deciding on components
- ✔️ Creating schematic
- ✔️ Routing PCB
- ✔️ Manufacturing the PCB
- Testing
- ✔️ Programming MCU
- ❌ Gyro/Accelerometer
- ✔️ 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.
- Pick new Gyro/Accelerometer
- ❌ Magnetometer
- Can't be detected with an I2C scanner, probably dead.
- Barometric pressure sensor
- ✔️ Check if it can be found with the I2C scanner.
- Check is values are sensible.
- ❌ On board F-RAM
- Wrong IC choice on my part.
- ESC control
- IBUS communication
- Buzzer
- ✔️ LEDs
- Writing drivers
- Gyro/Accelerometer
- Magnetometer
- Barometric pressure sensor
- On board F-RAM
- ESC control
- IBUS communication
- Buzzer and LEDs
- SD Card
- USB
- Signal processing
- Data conversion and correction
- Data filtering
- Extended Kalman filter implementation for sensor fusion
- PI(D) controller
- FSM controller
- 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| Qty | Value | Footprint | References |
|---|---|---|---|
| 34 | 100n | Capacitor_SMD:C_0402_1005Metric | C2, C10, C11, C12, C13, C18, C19, C20, C21, C22, C23, C24, C25, C26, C27, C28 +18 |
| 24 | 49 | Resistor_SMD:R_0402_1005Metric | R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32 +8 |
| 21 | LXES15AAA1-133 | Resistor_SMD:R_0402_1005Metric | D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25 +5 |
| 18 | TestPoint | TestPoint:TestPoint_Pad_D1.0mm | TP3, TP4, TP13, TP14, TP15, TP18, TP19, TP20, TP21, TP22, TP24, TP25, TP26, TP28, TP29, TP30 +2 |
| 11 | 10k | Resistor_SMD:R_0402_1005Metric | R16, R48, R50, R53, R54, R55, R56, R57, R58, R59, R60 |
| 8 | 4k7 | Resistor_SMD:R_0402_1005Metric | R42, R43, R44, R45, R46, R47, R49, R52 |
| 7 | 10n | Capacitor_SMD:C_0402_1005Metric | C3, C7, C14, C37, C44, C54, C55 |
| 6 | 100@100MHz | Inductor_SMD:L_0603_1608Metric | FB1, FB2, FB3, FB4, FB5, FB6 |
| 5 | 220 | Resistor_SMD:R_0402_1005Metric | R1, R5, R14, R15, R40 |
| 4 | 10 | Resistor_SMD:R_0402_1005Metric | R3, R4, R7, R8 |
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3_ISO14580_Pad | H1, H2, H3, H4 |
| 3 | 10u | Capacitor_SMD:C_0603_1608Metric | C17, C29, C31 |
| 3 | B5819W SL | Diode_SMD:D_SOD-123 | D6, D7, D8 |
| 3 | JST SH1-4P | Connector_JST:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal | J7, J8, J9 |
| 3 | LED_Small | LED_SMD:LED_0603_1608Metric | D3, D4, D5 |
| 2 | 10p | Capacitor_SMD:C_0402_1005Metric | C33, C34 |
| 2 | 1u | Capacitor_SMD:C_0603_1608Metric | C1, C38 |
| 2 | 22u | Capacitor_SMD:C_0603_1608Metric | C30, C32 |
| 2 | 2u2 | Capacitor_SMD:C_0402_1005Metric | C15, C16 |
| 2 | 56k | Resistor_SMD:R_0402_1005Metric | R12, R61 |
| 2 | 68 | Resistor_SMD:R_0603_1608Metric | R2, R6 |
| 2 | MHT194CRGBCT | flightController:0605 | D1, D2 |
| 2 | PMBT3904 | Package_TO_SOT_SMD:SOT-23 | Q1, Q2 |
| 2 | USB_B_Mini | Connector_USB:USB_Mini-B_Wuerth_65100516121_Horizontal | J1, J2 |
| 1 | 100k | Resistor_SMD:R_0402_1005Metric | R62 |
| 1 | 10k | Resistor_SMD:R_0603_1608Metric | R11 |
| 1 | 13k | Resistor_SMD:R_0402_1005Metric | R13 |
| 1 | 16Mhz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | HSE1 |
| 1 | 1k | Resistor_SMD:R_0603_1608Metric | R10 |
| 1 | 1mm header | Connector_PinHeader_1.27mm:PinHeader_2x05_P1.27mm_Vertical_SMD | J6 |
| 1 | 2.54mm header | flightController:PinHeader_2x08_P2.54mm_Horizontal_lessSilk | J4 |
| 1 | 2.54mm header | flightController:PinHeader_1x08_P2.54mm_Vertical_lessSilk | J3 |
| 1 | 220n | Capacitor_SMD:C_0603_1608Metric | C8 |
| 1 | 2n2 | Capacitor_SMD:C_0402_1005Metric | C5 |
| 1 | 4u7 | Capacitor_SMD:C_0603_1608Metric | C9 |
| 1 | 560 | Resistor_SMD:R_0603_1608Metric | R9 |
| 1 | 560 | Resistor_SMD:R_0402_1005Metric | R51 |
| 1 | AMS1117-5V | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U6 |
| 1 | BMP388 | flightController:PQFN50P200X200X80-10N | U4 |
| 1 | CH330N | Package_SO:SOP-8_3.9x4.9mm_P1.27mm | U10 |
| 1 | FM24C64B | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U3 |
| 1 | HMC5883L | flightController:LGA-16_3x3mm_P0.5mm_Large_Pads | U2 |
| 1 | JST SH1-2P | Connector_JST:JST_SHL_SM02B-SHLS-TF_1x02-1MP_P1.00mm_Horizontal | J10 |
| 1 | JST SH1-8P | Connector_JST:JST_SH_SM08B-SRSS-TB_1x08-1MP_P1.00mm_Horizontal | J12 |
| 1 | MOLEX 5268-7P | Connector_Molex:Molex_SPOX_5268-07A_1x07_P2.50mm_Horizontal | J11 |
| 1 | MPU-6000 | Sensor_Motion:InvenSense_QFN-24_4x4mm_P0.5mm | U1 |
| 1 | SPX3819M5-L-3-3/TR | Package_TO_SOT_SMD:SOT-23-5 | U7 |
| 1 | STM32H743VIT6 | Package_QFP:LQFP-100_14x14mm_P0.5mm | U5 |
| 1 | SW_Push | Button_Switch_SMD:SW_SPST_FSMSM | SW2 |
| 1 | SW_SPDT | Button_Switch_SMD:SW_SPDT_PCM12 | SW1 |
| 1 | TF-01A | flightController:TF-01A | J5 |
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 mm

- 4 layers50.5 × 36 mm

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 mm

- 2 layers144 × 0.1 mm

- 2 layers100 × 100 mm

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 mm

- 2 layers231 × 175.3 mm

- 4 layers68.8 × 53.6 mm

Easyduino Atmega
Hanqaqa/Easyduino
Easily dive into different PCB KiCad designs of the most popular microcontroller devboards
38 parts755CERN-OHL-P-2.0

