Skip to the content
PCBKitNew board
4 layers59 × 59 mmFlight controller, the printed circuit board in 3D

Custom 4-layer flight controller PCB for an F450 quadcopter. STM32F405, LSM6DSO IMU, LPS22HB barometer, USB-C. Designed in KiCad.

Size
59 × 59 mm
Copper layers
4
Thickness
1.42 mm
Parts
65
Nets
81
Pads
281
Tracks, vias
677, 168
Pours
11
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
6 Sep 2026
Updated
18 Sep 2026

Overview

Flight controller is an open-source printed circuit board by bachaaymene, from the bachaaymene/stm32-flight-controller repository on GitHub. It is a 4-layer board of 59 × 59 mm with 65 parts on 81 nets, routed with 677 tracks and 168 vias.

It is built around the AP63205WU, LPS22HB and USBLC6-2SC6, with the AO3401A and B340 among its other parts. Its parts include 25 capacitors, 11 resistors, 9 connectors, 5 ICs and 3 diodes. It belongs with the robots and motor control boards and the STM32 boards of this library.

Main components

5

README

README.md

STM32F405 Flight Controller

A 4-layer flight controller board for an F450 quadcopter frame, based on the STM32F405RGT6. Designed in KiCad 10 by SparkLab DZ.

3D render

Features

BlockPartNotes
MCUSTM32F405RGT6 (LQFP64)Cortex-M4F, 168 MHz, 1 MB Flash
IMULSM6DSOSPI1, INT1 on PC4
BarometerLPS22HBI2C1, address 0x5C
Motor outputs4x ESCPC6 to PC9 on TIM3 (DShot capable)
5V regulatorAP63205WU-7Synchronous buck, 3S LiPo input, 4.7 uH inductor
3.3V regulatorTLV70233LDO from 5V
USBUSB Type-C 16PPA11 / PA12
Battery sense33k / 10k dividerPA0 (ADC)

Schematic

Schematic

Full schematic as PDF: post/flight_controller.pdf

PCB Layout

PCB layout

Stackup

LayerUse
L1Signal + components
L2Solid GND plane
L3Power
L4Signal

Pin Map

FunctionPin(s)
IMU SPI1 (CS / SCK / MISO / MOSI)PA4 / PA5 / PA6 / PA7
IMU interrupt (INT1)PC4
Baro I2C1 (SCL / SDA)PB6 / PB7
ESC 1 to 4PC6 / PC7 / PC8 / PC9
USB D- / D+PA11 / PA12
Battery voltagePA0

Pin configuration in STM32CubeIDE:

STM32CubeIDE pinout

Repository Structure

text
stm32-flight-controller/
├── datasheets/                      Component datasheets
├── libs/                            Project symbols, footprints and 3D models
├── post/                            Schematic PDF and images
├── flight_controller.kicad_pro      KiCad project
├── flight_controller.kicad_sch      Schematic
├── flight_controller.kicad_pcb      PCB layout
├── flight_controller.csv            Bill of materials
├── fabrication-toolkit-options.json Fabrication Toolkit plugin settings
├── sym-lib-table                    Project symbol library table
├── fp-lib-table                     Project footprint library table
├── .gitattributes                   Git LFS settings
└── .gitignore

Opening the Project

Requirements: KiCad 10.0 or newer. Older versions cannot open these files.

The repository uses Git LFS for large files, so install it before cloning:

bash
git lfs install
git clone https://github.com/bachaaymene/stm32-flight-controller.git

Then open flight_controller.kicad_pro in KiCad.

All symbols, footprints and 3D models are stored in libs/ with paths relative to the project (${KIPRJMOD}), so no external libraries are needed. If something appears missing, please open an issue.

Manufacturing

The BOM is in flight_controller.csv.

Production files (Gerber, drill, BOM and CPL) for JLCPCB can be generated with the Fabrication Toolkit plugin. Install it from the KiCad Plugin and Content Manager, then run it from the PCB editor. The settings used for this board are saved in fabrication-toolkit-options.json.

Status

  • Schematic
  • PCB layout
  • Prototype fabrication
  • Hardware bring-up
  • Firmware

License

This hardware design is released under the CERN-OHL-S-2.0 license.

Author

Aymene Bacha, SparkLab DZ

Parts

65
QtyValueFootprintReferences
13100nFflight_controller:C_0402_1005MetricC1, C2, C3, C4, C5, C7, C11, C15, C21, C22, C23, C24, C25
5Conn_01x03_Pinflight_controller:PinHeader_1x03_P2.54mm_VerticalJ1, J4, J5, J6, J7
4MountingHoleflight_controller:MountingHole_3.7mm_Pad_ViaH1, H2, H3, H4
310kRflight_controller:R_0402_1005MetricR1, R4, R7
31uFflight_controller:C_0603_1608MetricC8, C18, C19
210uFflight_controller:C_0805_2012MetricC6, C14
212pFflight_controller:C_0402_1005MetricC12, C13
21kRflight_controller:R_0402_1005MetricR10, R11
22.2uFflight_controller:C_0805_2012MetricC9, C10
222uFflight_controller:C_1206_3216MetricC16, C17
24.7kRflight_controller:R_0402_1005MetricR5, R6
25.1kRflight_controller:R_0402_1005MetricR2, R3
10Rflight_controller:R_0402_1005MetricR9
12.7kRflight_controller:R_0402_1005MetricR8
13V3flight_controller:TestPoint_Pad_D1.0mm3V3
14.7uFflight_controller:C_0805_2012MetricC20
14.7uHflight_controller:L_Sunlord_MWSA0503SL1
15Vflight_controller:TestPoint_Pad_D1.0mm5V
1600R@100MHzflight_controller:L_0805_2012MetricFB1
18MHz Crystal_GND24flight_controller:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
1AO3401Aflight_controller:SOT-23Q1
1AP63205WUflight_controller:TSOT-23-6U2
1B340flight_controller:D_SMCD1
1Conn_01x02_Socketflight_controller:PinSocket_1x02_P2.54mm_VerticalJ2
1Conn_01x04_Socketflight_controller:PinSocket_1x04_P2.54mm_VerticalJ9
1Conn_01x05_Socketflight_controller:PinSocket_1x05_P2.54mm_VerticalJ8
1GNDflight_controller:TestPoint_Pad_D1.0mmGND
1GREEN LEDflight_controller:LED_0805_2012MetricD2
1LPS22HBflight_controller:ST_HLGA-10_2x2mm_P0.5mm_LayoutBorder3x2yU5
1LSM6DSOTRflight_controller:LGA-14_3x2.5mm_P0.5mm_LayoutBorder3x4yAC1
1RED LEDflight_controller:LED_0805_2012MetricD3
1STM32F405RGTxflight_controller:LQFP-64_10x10mm_P0.5mmU1
1TLV70233_SOT23-5flight_controller:SOT-23-5U3
1USBLC6-2SC6flight_controller:SOT-23-6U4
1USB_C_Receptacle_USB2.0_16Pflight_controller:USB_C_Receptacle_HRO_TYPE-C-31-M-12J3

Questions

How big is the Flight controller PCB?

It measures 59 × 59 mm and has 4 copper layers, 1.42 mm thick.

What parts does the Flight controller use?

65 parts, built around the AP63205WU, LPS22HB, USBLC6-2SC6 and AO3401A. 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 bachaaymene/stm32-flight-controller repository on GitHub, at the commit this page was made from: the board is flight_controller.kicad_pcb and its schematic flight_controller.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 bachaaymene before reusing the design.

Similar boards

  • 4 layers55.9 × 83.8 mmStm32g474board, the printed circuit board in 3D

    Stm32g474board

    halherta/stm32g474board

    EmbLynx Development board for the stm32G474RE microcontroller

    70 partsMIT
  • 4 layers50 × 100 mmCRVFCU, the printed circuit board in 3D

    CRVFCU

    Kev1n8088/CRVFCU

    161 parts
  • 2 layers102.9 × 103.7 mmDrone ESP32, the printed circuit board in 3D

    Drone ESP32

    Asaf66/Drone_ESP32

    Rev 2 fixes the issues found while assembling the first board:

    80 parts
  • 2 layers100 × 35 mmControl board, the printed circuit board in 3D

    Control board

    Quard/MLight

    MLight is a compact, all-in-one control board designed to manage auxiliary tools for soldering equipment

    63 parts1MIT
  • 4 layers55 × 100.5 mmOSS Radio Hardware Design, the printed circuit board in 3D

    OSS Radio Hardware Design

    Arkos-Engineering/HT-15_hardware

    We can split this out into separate repos later, right now its very convenient to have everything here.

    256 parts72
  • 2 layers65 × 30 mmPi zero serial hat, the printed circuit board in 3D

    Pi zero serial hat

    aqualinkd/aqualinkd-zero-hat

    Raspberry HAT to provide RS485 I/O and Power from Jandy RS485 control panel.

    45 parts6
  • 4 layers150.6 × 89.9 mmAdvDash 5 inch, the printed circuit board in 3D

    AdvDash 5 inch

    ADVecu/ADV.dash

    ADV.dash is a dashboard project built with LVGL and ESP32-S3. It is prepared to receive CAN bus data from rusEFI and, in the future, other programmable ECUs.

    190 parts