
Flight Controller
rishikesh2715/STM32F7_FC
STM32F722RET6 Based Flight Controller with ICM-42688-P IMU, BMP388 Barometer, and much more!

STM32H743 controller: regulated power, signal-only ESC, neutral ArduPilot firmware, manufacturing data and engineering history.
Flight Controller is an open-source printed circuit board by desanv01, from the desanv01/Flight-Controller-V2 repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 6-layer board of 40.6 × 40.5 mm with 169 parts on 155 nets, routed with 1,440 tracks and 361 vias.
It is built around the AT7456E, SN65HVD230D and AP63205WU, with the BMP388, W25Q128JVSIQ and AP2112K-3.3 among its other parts. Its parts include 49 capacitors, 30 resistors, 12 ICs, 11 connectors and 8 diodes. It belongs with the robots and motor control boards and the STM32 boards of this library.
STM32H743 hardware adaptation and ArduPilot integration
STM32H743VIT6 controller adapted from an open-hardware reference design for externally regulated power, a signal-only OpenESC interface, exact Nano-Fit integration and a pinned ArduPilot target. The repository preserves the hardware adaptation, firmware work and vendor engineering packages.
Project contributor: Desan Vasu. Project engineering activities were performed by Desan; physical fabrication was external. Documented development: 26 August–6 October 2026. These are evidence dates, not employment dates.
Current status: Engineering prototype. Manufacturer data, a pinned firmware target and freshly built FCV2 bootloader/BIN/APJ are available; powered-board, sensor and flight qualification remain pending.
Quick links: KiCad project · Schematic PDF · Manufacturing · Development history · Verification · Releases
V2 is derived from upstream hardware, archived commit 0a60da1767061623549253d3cef8649f93ea052c. Its original hardware design and contributors are credited below.
| Parameter | Value |
|---|---|
| MCU | STM32H743VIT6, LQFP100 |
| PCB | 6 copper layers, 1.60 mm nominal |
| Design tool | KiCad 10.0.6 |
| Primary IMU | ICM-42688-P |
| Secondary IMU | BMI270 |
| Barometer | BMP388 |
| Power | External regulated input; exact boundary in power-and-interfaces documentation |
| USB | Data/debug; external controller power required |
| Motor signals | 4 controlled outputs |
| CAN | Retained CAN hardware; runtime qualification pending |
| Storage | W25Q128 flash |
| Board body | 40.5 × 40.5 mm main body |
| Mounting | 30.5 × 30.5 mm M3 |
| Overall envelope | About 40.575 × 50.500 mm including connector tab (vendor record) |
| Clock | 8 MHz active oscillator; HSE bypass |
| Fabrication status | Engineering data available; vendor/physical qualification outstanding |
Specifications describe the design intent and source. Runtime capabilities require physical qualification; see validation status.
flowchart LR
POWER[External regulated supply] --> FC[STM32H743 flight controller]
IMU[ICM42688P, BMI270 and BMP388] --> FC
RC[CRSF receiver] --> FC
GPS[External GNSS and compass] --> FC
FC -->|Motor signals and ground| ESC[OpenESC]
BAT[Battery and power distribution] --> ESC
COMP[Separately powered companion] <-->|Advisory data interface| FC
USB[USB data and debug] <--> FCThe controller owns stabilization, motor waveforms, arming and failsafe. Companion perception/navigation is advisory and separately powered. Architecture and boundaries.
Controlled J6 motor outputs map to PE14, PE13, PE11 and PE9 / TIM1. ICM42688P uses SPI6; BMI270 uses SPI3; BMP388 uses I2C2. Resource matrix.
The connector pin tables are generated from the exact public netlist. Do not infer connector numbering from another version or from an unlabelled photograph.
CAD renders above represent the published source, not photographs of tested hardware. PCB layer and assembly exports · Power and interfaces · Bring-up procedure.
The timeline follows requirements, resource freeze, schematic capture, correction, placement, routing and manufacturing stages. Each milestone links its evidence and tag. Publication commits use their actual import date; historical dates remain in the records.
The development archive preserves unique CAD experiments and engineering scripts, including failed approaches. Source fragments are labelled as fragments; no missing historical source state is fabricated.
| Material | Location |
|---|---|
| Editable current KiCad source | hardware/ |
| Browser-readable schematic and PCB drawings | docs/exports/ |
| JLCPCB engineering source and assembly data | fabrication/jlcpcb/ |
| PCBWay engineering source and assembly data | fabrication/pcbway/ |
| Downloadable source-associated bundles | Engineering releases |
| Historical sources and experiments | Archive index |
Choose one version and vendor package as a complete set. Do not mix source, Gerbers, BOM or placement files across packages. New public manifests replace original private-package hashes after neutral naming and metadata changes.
Build/flash guidance for the neutral FCV2 target is in firmware/README.md. Keep initial runtime defaults and the unreserved board-ID limitation visible.
ArduPilot Copter 4.7.1 source is pinned to dbe792162d06cab66c3475fd5556bf7a120f119e. The firmware directory contains FCV2 target/defaults, reproducible build instructions, and the successful build logs, binary hashes and downloadable bootloader/BIN/APJ. Legacy upstream targets are historical; final EVT1 compatibility is not asserted.
Fresh source checks: 14 October 2026, KiCad 10.0.6.
| Check | Result |
|---|---|
| ERC errors / warnings | 0 / 40 |
| DRC rule errors / warnings | 0 / 0 |
| Raw unconnected entries | 0 |
| Schematic parity issues | 0 |
| Physical qualification | Pending |
Publication metadata reconciliation removed the original 119 schematic/PCB parity warnings without changing pad, routing, placement, zone or outline geometry.
Ignored checker categories and warning dispositions are recorded in validation status. EDA checks and a firmware build do not establish physical reliability or flight qualification.
hardware/ Current coherent KiCad source and libraries
firmware/ Target availability, configuration and build provenance
fabrication/ Vendor-specific source, assembly data and export instructions
docs/ Architecture, pinouts, development history and portfolio case study
media/ Exact-source CAD renders and layer views
verification/ Fresh native reports, corrections and exception evidence
tools/ Portable checking/export utilities
archive/ Recovered source states and indexed development experimentsInherited upstream hardware source remains under CERN-OHL-S-2.0. KiCad-derived libraries, ArduPilot and other third-party content retain their own notices. Third-party notices.
Desan Vasu performed the project engineering activities; fabrication was external. Contribution statement · Portfolio case study.
Reference projects: ArduPilot, KiCad, and the OpenESC/OpenRX ecosystem identified in the source records.
Related project: Flight Controller V1.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 20 | 0.1uF | Capacitor_SMD:C_0402_1005Metric | C2, C5, C24, C25, C26, C28, C29, C31, C32, C36, C37, C43, C44, C46, C50, C51 +4 |
| 14 | power | Solderpoint:Solderpad | TP1, TP4, TP6, TP10, TP12, TP17, TP18, TP21, TP22, TP25, TP26, TP27, TP43, TP45 |
| 11 | sensors | Solderpoint:Solderpad | TP28, TP33, TP34, TP35, TP36, TP37, TP38, TP39, TP40, TP41, TP42 |
| 6 | 22uF | Capacitor_SMD:C_0603_1608Metric | C6, C7, C15, C16, C48, C49 |
| 5 | 10k | Resistor_SMD:R_0402_1005Metric | R15, R16, R20, R21, R22 |
| 5 | 1uF | Capacitor_SMD:C_0603_1608Metric | C17, C18, C20, C23, C27 |
| 4 | 330 | Resistor_SMD:R_0402_1005Metric | R13, R14, R17, R18 |
| 4 | 4.7k | Resistor_SMD:R_0402_1005Metric | R23, R24, R31, R32 |
| 4 | GND | Solderpoint:Solderpad | TP3, TP7, TP9, TP32 |
| 4 | LED | LED_SMD:LED_0805_2012Metric | D4, D5, D6, D7 |
| 4 | LOGO | LOGO | G***, G***, G***, G*** |
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3_Pad_Via | H1, H2, H3, H4 |
| 4 | servos | Solderpoint:Solderpad | TP13, TP16, TP20, TP24 |
| 3 | 0 | Resistor_SMD:R_0402_1005Metric | R8, R19, R27 |
| 3 | 10uF | Capacitor_SMD:C_0603_1608Metric | C1, C3, C10 |
| 3 | 2.2uF | Capacitor_SMD:C_0603_1608Metric | C34, C35, C38 |
| 2 | 0.1uF | Capacitor_SMD:C_0603_1608Metric | C14, C33 |
| 2 | 100k | Resistor_SMD:R_0402_1005Metric | R3, R5 |
| 2 | 10nF | Capacitor_SMD:C_0402_1005Metric | C30, C39 |
| 2 | 30pF | Capacitor_SMD:C_0402_1005Metric | C45, C47 |
| 2 | 5.1k | Resistor_SMD:R_0402_1005Metric | R1, R2 |
| 2 | 7.5k | Resistor_SMD:R_0402_1005Metric | R29, R30 |
| 2 | 75 | Resistor_SMD:R_0402_1005Metric | R25, R26 |
| 2 | CAN BUS | memo:CONN-SMD_4P-P1.00_SM04B-SRSS-TB-LF-SN | J10, J11 |
| 2 | power | Solderpoint:BAT pad | TP14, TP23 |
| 1 | 10nF | Capacitor_SMD:C_0603_1608Metric | C21 |
| 1 | 120 | Resistor_SMD:R_0402_1005Metric | R28 |
| 1 | 15uH | memo:IND-SMD_L5.4-W5.2 | L1 |
| 1 | 1k@100Mhz | Inductor_SMD:L_0603_1608Metric | FB1 |
| 1 | 20k | Resistor_SMD:R_0402_1005Metric | R7 |
| 1 | 22uF | Capacitor_SMD:C_0805_2012Metric | C4 |
| 1 | 27Mhz 20pF | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y2 |
| 1 | 4,7uF | Capacitor_SMD:C_0603_1608Metric | C19 |
| 1 | 4.42k | Resistor_SMD:R_0402_1005Metric | R6 |
| 1 | 4.7uF | Capacitor_SMD:C_0603_1608Metric | C22 |
| 1 | 4.7uF | Capacitor_SMD:C_0402_1005Metric | C9 |
| 1 | 4.7uH | memo:IND-SMD_L4.4-W4.2 | L2 |
| 1 | 49.9 | Resistor_SMD:R_0402_1005Metric | R4 |
| 1 | 4in1 ESC | Connector_JST:JST_SH_SM08B-SRSS-TB_1x08-1MP_P1.00mm_Horizontal | J6 |
| 1 | 5.23k | Resistor_SMD:R_0402_1005Metric | R5C1 |
| 1 | 5V | Solderpoint:Solderpad | TP31 |
| 1 | 7.15K | Resistor_SMD:R_0402_1005Metric | R5B1 |
| 1 | 75pF | Capacitor_SMD:C_0402_1005Metric | C8 |
| 1 | 9V/12V | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm_NumberLabels | JP1 |
| 1 | AO3407A | memo:AO3407A | Q1 |
| 1 | AP2112K-3.3 | Package_TO_SOT_SMD:SOT-23-5 | U5 |
| 1 | AP63205WU | Package_TO_SOT_SMD:TSOT-23-6 | U4 |
| 1 | AP7343-33W5-7 | memo:(AP7343 )SOT-25_L3.0-W1.6-P0.95-LS2.8-BL | U6 |
| 1 | ASE-8.000MHZ-LC-T | Oscillator:Oscillator_SMD_Abracon_ASE-4Pin_3.2x2.5mm | Y1 |
| 1 | AT7456E | memo:AT7456E | U13 |
| 1 | Airspeed sensor | memo:CONN-SMD_4P-P1.00_SM04B-SRSS-TB-LF-SN | J5 |
| 1 | BMI270 | memo:XDCR_BMI270 | U10 |
| 1 | BMP388 | memo:PQFN50P200X200X80-10N | U12 |
| 1 | BZT52C12-13-F | memo:(zener)SOD-123F_L2.8-W1.8-LS3.7-RD | D2 |
| 1 | DJI | Connector_JST:JST_SH_SM06B-SRSS-TB_1x06-1MP_P1.00mm_Horizontal | J9 |
| 1 | FPV | memo:CONN-SMD_4P-P1.00_SM04B-SRSS-TB-LF-SN | J2 |
| 1 | GPS | Connector_JST:JST_SH_SM06B-SRSS-TB_1x06-1MP_P1.00mm_Horizontal | J4 |
| 1 | ICM-42688-P | memo:PQFN50P300X250X97-14N | U8 |
| 1 | M3 | Solderpoint:Solderpad | TP8 |
| 1 | M4 | Solderpoint:Solderpad | TP15 |
| 1 | MCU_BOOT | Button_Switch_SMD:SW_Push_SPST_NO_Alps_SKRK | SW2 |
| 1 | Motor 1 | Solderpoint:Solderpad | TP2 |
| 1 | Motor 2 | Solderpoint:Solderpad | TP5 |
| 1 | PMEG2010EH | Diode_SMD:D_SOD-123F | D3 |
| 1 | RC Receiver | memo:CONN-SMD_4P-P1.00_SM04B-SRSS-TB-LF-SN | J7 |
| 1 | SM712_SOT23 | Package_TO_SOT_SMD:SOT-23 | D8 |
| 1 | SMF26A | Diode_SMD:D_SMF | D1 |
| 1 | SN65HVD230 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U14 |
| 1 | STM32H743VITx | Package_QFP:LQFP-100_14x14mm_P0.5mm | U7 |
| 1 | ST_LINK | memo:CONN-SMD_4P-P1.00_SM04B-SRSS-TB-LF-SN | J3 |
| 1 | TELEMETRY_RX | Solderpoint:Solderpad | TP29 |
| 1 | TELEMETRY_TX | Solderpoint:Solderpad | TP30 |
| 1 | TPS54302 | Package_TO_SOT_SMD:SOT-23-6 | U1 |
| 1 | USB4110GFA | memo:GCT_USB4110GFA | J1 |
| 1 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6 | U2 |
| 1 | VTX | memo:CONN-SMD_4P-P1.00_SM04B-SRSS-TB-LF-SN | J8 |
| 1 | W25Q128JVSIQ | memo:W25Q128JVSIQ | U9 |
| 1 | reset | Button_Switch_SMD:SW_Push_SPST_NO_Alps_SKRK | SW1 |

rishikesh2715/STM32F7_FC
STM32F722RET6 Based Flight Controller with ICM-42688-P IMU, BMP388 Barometer, and much more!


bassammorsy/stm32-flight-controller
Custom 4-layer STM32F405RGTx quadcopter flight controller PCB designed in KiCad. Betaflight compatible, 4S–6S LiPo input, SMT assembled by JLCPCB.

ara-mkr/f405-flight-controller
This is a flight controller I designed as a side project. It was fun and pretty challenging, and I'm planning to build a drone with it at some point!

ishantmahatopro/Vayu-F722
Custom 42x42mm 4-layer STM32F722 FPV flight controller for 5in and 7in cinematic and telemetry quads.

Caped-Crussader/VENDETTAFC
A fully open-source, custom-designed 4-in-1 ESC and F7 Flight Controller stack for FPV multirotors, designed from scratch in KiCad.


MatthiasGeorgImhof/STMF405_Flight_Controller
A flight controller inspired by Speedybee F405 v3 but with CAN and flash memory instead of flash card.
It measures 40.6 × 40.5 mm and has 6 copper layers, 1.6 mm thick.
169 parts, built around the AT7456E, SN65HVD230D, AP63205WU and BMP388. 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.
From the desanv01/Flight-Controller-V2 repository on GitHub, at the commit this page was made from: the board is archive/upstream-baseline/Hardware/Flight Controller.kicad_pcb and its schematic archive/stage06-schematic/FC_REV_A.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the CERN-OHL-S-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).