Skip to the content
PCBKitNew board
2 layers98.5 × 53.5 mmSTM32FlightControllerV1, the printed circuit board in 3D

STM32FlightControllerV1

agg-85/flight-controller1

Custom STM32-based flight controller using KiCad.

Size
98.5 × 53.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
26
Nets
112
Pads
183
Tracks, vias
39, 4
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
16 Jul 2026
Updated
13 Sep 2026

Overview

STM32FlightControllerV1 is an open-source printed circuit board by agg-85, from the agg-85/flight-controller repository on GitHub, published under the MIT licence. It is a 2-layer board of 98.5 × 53.5 mm with 26 parts on 112 nets, routed with 39 tracks and 4 vias.

It is built around the MS5611-01BA03, ICM-42688-P and USBLC6-2SC6. Its parts include 14 capacitors, 6 resistors, 4 ICs and 1 connector. It belongs with the STM32 boards of this library.

Main components

3

README

README.md

STM32 Flight Controller Project

A custom STM32-based flight controller designed from the ground up for quadcopters. This project includes PCB design using KiCad and embedded firmware using Ardupilot.

Features

  • STM32 Microcontroller
  • 6-axis IMU
  • Barometer
  • USB-C
  • PWM
  • I2C and SPI

Hardware

ComponentPart
MCUSTM32F405, 168MHz, 1MB Flash
IMUICM-42688-P
BarometerMS5611

Status

  • Hardware

    • MCU Decoupling
    • IMU Wiring
    • Barometer Wiring
    • USB-C Connection
    • ESD Protection
    • SWD Headers
    • Power management
    • ESC Pads
    • Complete schematic
    • PCB layout
    • Design review
    • Order PCB
    • Assemble board
  • Firmware

    • Configure Ardupilot
    • Build Ardupilot
    • Flash firmware
  • Testing

    • Mission Planner
    • Flight test

PCB Progress - Schematic PCB Progress - Schematic

Design Decisions

STM32F405

The STM32F405 was selected because:

  • Sufficient processing power for flight control
  • Compatibility with ArduPilot
  • Used in most commercial FCs, providing abundant documentation and examples

Takeaways/Useful Facts

  • SPI facilitates DMA, which offloads data transfers from the main MCU. This prevents processor lag. SPI needs pull up resistors for CS since it sets CS low to select devices. Use GPIO for CS instead of built-in NSS so that ArduPilot can handle CS lines through software.
  • IMU enhances GPS reliability in tunnels or areas with EM interference.
  • Each principal axis (pitch, roll, yaw) translates to accelerometer, gyroscope, and magnetometer.
  • Place smallest decoupling capacitors closest to pin to minimize trace inductance. Smaller capacitors filter high frequency noise, and inductive impedance is proportial to frequency.
  • Vref serves as a precise baseline voltage for ADCs and DACs, isolating noise and maintaining consistent voltage.
  • ESD protection for USB connector as TVS array, where TVS diodes acts as an open circuit when operating voltage is normal. When a voltage spike occurs, it acts as a short circuit to sink high current and clamps D+/D-.
  • NRST puts chip in known state (setting registers to default), used to activate bootloader when flashing new program (ex: through SWD interface)
  • SWD bypasses bootloader and can reset and flash MCU directly
  • BOOT0 needs pull-down resistor to avoid floating. DFU mode is entered when BOOT0 is high, and BOOT1 can be permanently tied to ground.

Goals

The objective of this project is to design a flight controller from scratch while learning PCB design, embedded systems, and hardware debugging.

Parts

26
QtyValueFootprintReferences
8100nCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC4, C5, C6, C7, C8, C9, C10, C13
310kResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR1, R6, R7
25.1kResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR3, R4
10.1uCapacitor_SMD:C_0402_1005MetricC1
10.1uCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC14
110nCapacitor_SMD:C_0402_1005MetricC3
110uCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC11
11uCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC12
12.2uCapacitor_SMD:C_0402_1005MetricC2
147Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR5
1Conn_ARM_SWD_TagConnect_TC2030Connector:Tag-Connect_TC2030-IDC-FP_2x03_P1.27mm_VerticalJ3
1FerriteBeadFerrite_THT:LairdTech_28C0236-0JW-10FB1
1ICM-42688-PDroneFootprints:LGA14_2P5X3X0P91_TDKU1
1MS5611-01BAPackage_LGA:LGA-8_3x5mm_P1.25mmU2
1STM32F405VGTxPackage_QFP:LQFP-100_14x14mm_P0.5mmU3
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U5

Questions

How big is the STM32FlightControllerV1 PCB?

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

What parts does the STM32FlightControllerV1 use?

26 parts, built around the MS5611-01BA03, ICM-42688-P and USBLC6-2SC6. 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 STM32FlightControllerV1 KiCad files?

From the agg-85/flight-controller repository on GitHub, at the commit this page was made from: the board is STM32FlightControllerV1/STM32FlightControllerV1.kicad_pcb and its schematic STM32FlightControllerV1/STM32FlightControllerV1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the STM32FlightControllerV1 design in my own project?

Its repository publishes it under the MIT 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 layers37 × 37 mmFlight controller, the printed circuit board in 3D

    Flight controller

    AQUA-Warrior/fpv-drone

    Frame needs to be printed using nylon/nylon with carbon fiber only exclusions being ArmAbsorber1-4 and AntenaMount/GPSConnector.

    125 parts3CC-BY-SA-4.0
  • 4 layers66 × 47 mmRoyal Penguin, the printed circuit board in 3D

    Royal Penguin

    Aerokitties/Kitties-Hardware

    171 parts
  • 4 layers70 × 45 mmFlight computer, the printed circuit board in 3D

    Flight computer

    Ben-Blair/Rocket-Build

    Senior capstone project: demonstrate closed-loop lateral guidance of a high power rocket using forward canards, and handle the canard-wake-on-aft-fin interference problem correctly.

    85 parts
  • 4 layers50 × 100 mmFlight computer one, the printed circuit board in 3D

    Flight computer one

    liquid-rocketry-illinois/flight-computer-one-hw

    SAME51-based flight computer with active control capabilities

    105 partsCERN-OHL-S-2.0
  • 6 layers80 × 80 mmV2ultimateflightcomp, the printed circuit board in 3D

    V2ultimateflightcomp

    codinga593/IRIS

    A next generation model rocket focused on a precise propulsive landing on a tower.

    144 parts3
  • 4 layers100 × 100 mmNRC, the printed circuit board in 3D

    NRC

    advaitconty/national-robotics-challenge-submission

    a drone for NRC

    77 parts
  • 4 layers105.6 × 104.8 mmDrone PCB, the printed circuit board in 3D

    Drone PCB

    Eemac/droneSwarm

    Code and build log for a PCB quadcopter swarm.

    229 parts