Skip to the content
2 layers59 × 59 mmFlight Controller, the printed circuit board in 3D

Open-source STM32 flight controller designed in KiCad for PX4 and ArduPilot-based UAV platforms.

Size
59 × 59 mm
Copper layers
2
Thickness
1.6 mm
Parts
72
Nets
79
Pads
291
Tracks, vias
2,700, 297
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
30 May 2026
Updated
30 May 2026

Overview

Flight Controller is an open-source printed circuit board by ShameemaCP2003, from the ShameemaCP2003/Custom-Flight-Controller-PCB repository on GitHub. It is a 2-layer board of 59 × 59 mm with 72 parts on 79 nets, routed with 2,700 tracks and 297 vias.

It is built around the BMP390, B120-E3 and ICM-42670-P. Its parts include 25 capacitors, 20 connectors, 11 resistors, 3 ICs and 3 diodes. It belongs with the robots and motor control boards and the STM32 boards of this library.

Main components

3

README

README.md

Custom Flight Controller PCB

Open-source STM32-based flight controller designed in KiCad for PX4 and ArduPilot-compatible UAV platforms.


Overview

This project is a custom flight controller developed from scratch as a learning and engineering exercise in embedded hardware design, sensor integration, power management, and PCB development.

The design is inspired by modern flight controller architectures and incorporates a high-performance STM32 microcontroller, onboard inertial sensors, environmental sensing, multiple communication interfaces, and PWM outputs for UAV control applications.


Features

  • STM32F446RET6 ARM Cortex-M4 MCU
  • ICM-42670-P 6-Axis IMU
  • BMP390 Barometric Pressure Sensor
  • USB Type-C Interface
  • CAN Bus Support
  • Multiple UART Interfaces
  • Dual SPI Interfaces
  • ADC Inputs
  • GPIO Expansion
  • 6 Servo/PWM Outputs
  • SWD Programming Interface
  • Onboard 3.3V Regulation
  • Power Protection Circuitry

Hardware Specifications

ComponentPart Number
MCUSTM32F446RET6
IMUICM-42670-P
BarometerBMP390
Voltage RegulatorSPX3819
Crystal3.2mm × 2.5mm
USB InterfaceUSB Type-C

Communication Interfaces

InterfaceQuantity
CAN Bus1
UART3
SPI2
ADC2
GPIO Input1
GPIO Output2

PWM Outputs

Output
Servo 1
Servo 2
Servo 3
Servo 4
Servo 5
Servo 6

PCB Statistics

ParameterValue
Layers2
Nets79
Pads291
Vias297
Unrouted Nets0
ERC StatusPassed
DRC StatusPassed

Design Workflow

  1. Requirements Definition
  2. Component Selection
  3. Schematic Design
  4. ERC Validation
  5. PCB Placement
  6. PCB Routing
  7. Ground Plane Implementation
  8. DRC Verification
  9. Prototype Preparation

Current Status

  • ✅ Schematic Complete
  • ✅ PCB Layout Complete
  • ✅ ERC Passed
  • ✅ DRC Passed
  • ⏳ Prototype Manufacturing Pending
  • ⏳ Hardware Bring-Up Pending
  • ⏳ PX4 Integration Pending

Future Improvements

Planned future revisions include:

  • Dual redundant IMU architecture
  • SD card logging
  • Additional CAN interfaces
  • GPS connector
  • Battery management system
  • Power monitoring enhancements
  • 4-layer PCB revision
  • PX4 board support package
  • ArduPilot board support package

Repository Structure

hardware/ ├── schematic/ └── pcb/

docs/ └── images/

firmware/


Acknowledgements

This project was created as a learning and engineering exercise in custom flight controller design.

The development process was heavily influenced by the open-source embedded systems community, including the educational content and flight controller development resources shared by Timothy Kowalski.

References

This project was developed with the help of open-source resources and educational content.

Timothy Kowalski

Special thanks to Timothy Kowalski for sharing detailed flight controller development content and open-source hardware resources.

Reference Project:

Parts

72
QtyValueFootprintReferences
15100nCapacitor_SMD:C_0402_1005MetricC2, C3, C4, C5, C7, C8, C10, C11, C12, C15, C17, C18, C26, C28, C31
64K7Resistor_SMD:R_0402_1005MetricR1, R6, R7, R11, R12, R13
4MountingHoleMountingHole:MountingHole_2.2mm_M2H1, H2, H3, H4
32u2Capacitor_SMD:C_0603_1608MetricC16, C27, C30
2100Resistor_SMD:R_0402_1005MetricR2, R3
210KResistor_SMD:R_0402_1005MetricR4, R5
210nCapacitor_SMD:C_0402_1005MetricC19, C29
2B120-E3Diode_SMD:D_0603_1608MetricD7, D8
1100KResistor_SMD:R_0402_1005MetricR9
110uCapacitor_SMD:C_0603_1608MetricC1
11uCapacitor_SMD:C_0402_1005MetricC9
135PCapacitor_SMD:C_0402_1005MetricC13
135pCapacitor_SMD:C_0402_1005MetricC14
13V3Package_TO_SOT_SMD:SOT-23-5U4
14u7Capacitor_SMD:C_0603_1608MetricC6
1600R FerriteBeadInductor_SMD:L_0603_1608MetricFB1
1ADCConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ3
1B1_INConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ21
1B2_INConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ22
1BMP390Package_LGA:ST_HLGA-10_2x2mm_P0.5mm_LayoutBorder3x2yU6
1CAN2Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ7
1Crystal_GND24Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
1FuseFuse:Fuse_1206_3216MetricF3
1GPIOINConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ6
1GPIOOUT_1Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ5
1GPIOOUT_2Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ4
1GRNLED_SMD:LED_0603_1608MetricD1
1ICM-42670-PPackage_LGA:LGA-14_3x2.5mm_P0.5mm_LayoutBorder3x4yMT1
1SERVO_1Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ12
1SERVO_2Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ13
1SERVO_3Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ14
1SERVO_4Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ15
1SERVO_5Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ16
1SERVO_6Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ17
1SPI1Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ8
1SPI3Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ2
1STM32F446RETxPackage_QFP:LQFP-64_10x10mm_P0.5mmU1
1SWDConnector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ1
1SW_PushButton_Switch_SMD:SW_SPST_TL3342SW3
1SW_SPDTButton_Switch_SMD:SW_SPDT_PCM12SW1
1USART_1Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ9
1USART_2Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ10
1USART_6Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ11
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_XKB_U262-16XN-4BVC11J18

Similar boards

  • 4 layers53 × 57.5 mmAflight 2Wings, the printed circuit board in 3D

    Aflight 2Wings

    Afligh8/FlightController

    A simple Plug and Play FLight Controller for Wings. Supports two motors with ESC, 6 PWM pins, SPI, I2C and Serials. Also 6 ports for servos and extra GPIO pins for debug and freelance.

    72 parts1
  • 2 layersFlight control uav, the printed circuit board in 3D

    Flight control uav

    vaishnav-ece/STM32-FixedWing-FlightController

    Custom STM32-based flight controller PCB for fixed-wing UAVs featuring IMU and barometer integration, PWM servo outputs, UART/SPI/I2C/CAN interfaces, USB-C debugging, low-noise power design, PID stabilization…

    72 partsMIT
  • 4 layers38.5 × 38.5 mmFCV3 project, the printed circuit board in 3D

    FCV3 project

    iamneerajverma001/FLIGHT-CONTROLLER-PUSHPAK--2026

    Download PCB ZIP · One-click download Open Portfolio App · One-click interactive project summary

    78 parts1MIT
  • 2 layers38.1 × 101.6 mmTVC, the printed circuit board in 3D

    TVC

    awetzelkern/TVC-PCB

    45 parts
  • 2 layers65 × 56.5 mmP1p2 pi hat, the printed circuit board in 3D

    P1p2 pi hat

    siro20/P1P2_HBS_USBCdc_Modem

    Daikin P1/P2 Raspberry Pi hat

    72 parts14
  • 2 layers88.9 × 50.8 mmBlinkencard, the printed circuit board in 3D

    Blinkencard

    al177/blinkencard

    FPGA based blinky computer emulator

    105 parts9MIT
  • 4 layers200.5 × 70.9 mmALL, the printed circuit board in 3D

    ALL

    eddyem/IR-controller

    Clone of same project from sourceforge

    138 parts6GPL-3.0
  • 2 layers99 × 56.3 mmReflowOven controller, the printed circuit board in 3D

    ReflowOven controller

    TilenTinta/ReflowOven_controller

    An open source controller for converting kitchen toaster oven to reflow oven

    122 parts5MIT

Questions

How big is the Flight Controller PCB?

It measures 59 × 59 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Flight Controller use?

72 parts, built around the BMP390, B120-E3 and ICM-42670-P. 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 Flight Controller KiCad files?

From the ShameemaCP2003/Custom-Flight-Controller-PCB repository on GitHub, at the commit this page was made from: the board is hardware/Flight Controller.kicad_pcb and its schematic hardware/BMP_BMI.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Flight Controller design in my own project?

Its repository states no licence, so its author keeps all rights: ask ShameemaCP2003 before reusing the design.