
Power board
ErdemA33/stm32f405-flight-controller
Open-source ArduPilot-compatible flight controller for fixed-wing UAVs. STM32F405, 4-layer KiCad design, built in 5 modular stages.

Open-source ArduPilot-compatible flight controller for fixed-wing UAVs. STM32F405, 4-layer KiCad design, built in 5 modular stages.
Entegre fc is an open-source printed circuit board by ErdemA33, from the ErdemA33/stm32f405-flight-controller repository on GitHub. It is a 4-layer board of 102.8 × 67 mm with 129 parts on 103 nets, routed with 933 tracks and 204 vias.
It is built around the DPS310XTSA1, INA286AID and LM61460AANRJRR, with the LMR33630ADDA, W25Q128JVSIQ and AMS1117-3.3 among its other parts. Its parts include 52 capacitors, 33 resistors, 23 connectors, 8 ICs and 6 diodes. It belongs with the robots and motor control boards and the STM32 boards of this library.
An open-source, ArduPilot-compatible flight controller for fixed-wing UAVs. STM32F405-based, 4-layer, designed in KiCad.
Status: Design complete. The board has not been manufactured or tested yet. Verify independently before use.
| MCU | STM32F405RGT6, LQFP-64, 168 MHz |
| IMU | ICM-42688-P (SPI1) |
| Barometer | DPS310 (SPI1) |
| Flash | W25Q128JV, 16 MB for logging (SPI1) |
| Input | 3S–6S LiPo (9–25.2 V), XT60PW |
| Logic rail | 5 V / 2 A — LMR33630 |
| Servo rail | 5 V / 6 A — LM61460 |
| 3.3 V | LDO with diode-OR (USB or battery) |
| Current sensing | INA286, dual parallel 0.5 mΩ shunts, 80 A |
| Voltage sensing | 91k/10k divider with RC filter |
| Servo outputs | 8 channels |
| UART | 4× JST-GH 6-pin |
| I2C | 2× JST-GH 4-pin |
| Other | USB-C, SWD, buzzer, WS2812 LED, safety switch |
| PCB | 4 layers, 2 oz outer copper |
Rather than jumping straight to the integrated board, the design was built in five stages. Each stage was laid out and verified as a separate PCB, which kept errors isolated to small boards.
| Directory | Stage | Contents |
|---|---|---|
MCU/ | 1 | STM32F405 breakout — MCU, crystal, USB, SWD |
sensor_board/ | 2 | IMU, barometer, flash — SPI bus verification |
power_board/ | 3 | Power input, protection, dual buck, current/voltage sensing |
Input_Output/ | 4 | Servo outputs, UART/I2C connectors, buzzer, LED |
entegre_fc/ | 5 | Everything combined on a single PCB |
external_components/ | — | Third-party symbol and footprint libraries |
Pins were grouped by package edge to simplify PCB routing.
| Channel | Pin | Timer | Default function |
|---|---|---|---|
| 1 | PB14 | TIM12_CH1 | Flaperon left |
| 2 | PB15 | TIM12_CH2 | Flaperon right |
| 3 | PC6 | TIM8_CH1 | Elevator |
| 4 | PC7 | TIM8_CH2 | Rudder |
| 5 | PC8 | TIM8_CH3 | Payload servo 1 |
| 6 | PC9 | TIM8_CH4 | Payload servo 2 |
| 7 | PA8 | TIM1_CH1 | Throttle (ESC) |
| 8 | PA15 | TIM2_CH1 | Spare |
Flaperons share a timer group so both surfaces are driven at the same PWM rate. The ESC channel sits on its own timer so DShot can be enabled later without affecting the servo outputs.
| Function | Pin |
|---|---|
| SCK / MISO / MOSI | PA5 / PA6 / PA7 |
| CS_IMU | PA4 |
| CS_BARO | PC4 |
| CS_FLASH | PC5 |
| IMU_INT | PB2 |
| Interface | Pins |
|---|---|
| UART1 | PC10 / PC11 |
| UART2 | PC12 / PD2 |
| UART3 | PB6 / PB7 |
| UART4 | PA0 / PA1 |
| I2C1 | PB8 / PB9 |
| I2C2 | PB10 / PB11 |
| Function | Pin |
|---|---|
| V_SENSE | PC0 |
| I_SENSE | PC1 |
| USB VBUS detect | PC2 |
| USB DM / DP | PA11 / PA12 |
| SWDIO / SWCLK | PA13 / PA14 |
| Buzzer | PC13 |
| Safety switch | PC14 |
| Safety LED | PC15 |
| WS2812 LED | PB4 |
Unused pins: PA2, PA3, PA9, PA10, PB0, PB1, PB3, PB5, PB12, PB13, PC3
| Layer | Contents |
|---|---|
| L1 (F.Cu) | Components, high-current polygons, short signals |
| L2 (In1) | Uninterrupted ground plane |
| L3 (In2) | Power regions: VIN, +5V_LOGIC, +5V_SERVO, +3V3 |
| L4 (B.Cu) | Long signal runs, ground pour |
The sensor block sits diagonally opposite the switching regulators. Sensitive analog traces (V_SENSE, I_SENSE) are routed on the opposite side of the ground plane from the switching nodes.
| Parameter | Value | Notes |
|---|---|---|
BATT_VOLT_MULT | 10.1 | 91kΩ/10kΩ divider |
BATT_AMP_PERVLT | 40 | INA286 at 100 V/V, dual 0.5 mΩ shunts |
BATT_AMP_OFFSET | 0 |
Calibrate against a multimeter after assembly.
The ESC header's power pin is intentionally left floating. This prevents the ESC's internal BEC from fighting the on-board servo rail. Cube Orange uses the same approach.
No RTC crystal. ArduPilot gets time from GPS, so the 32.768 kHz oscillator was omitted, freeing two GPIO pins.
SWD is preserved. PA13/PA14 could have been repurposed under pin pressure, but keeping debug access on a first-revision board was judged more valuable.
Kelvin connections for current sensing. Sense traces tap the inner edges of the shunt pads symmetrically, so copper resistance doesn't corrupt the measurement.
external_components/ must be added to the projectTargeted at JLCPCB. 4 layers, 2 oz outer copper.
Before exporting Gerbers, inspect the inner layers visually — particularly the L3 power regions. DRC does not always catch inner-layer zone geometry issues.
CERN-OHL-S v2
hwdef.dat| Qty | Value | Footprint | References |
|---|---|---|---|
| 14 | 100nF | Capacitor_SMD:C_0603_1608Metric | C4, C5, C6, C7, C8, C10, C15, C25, C29, C30, C38, C40, C52, C53 |
| 10 | Conn_01x03_Pin | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J12, J13, J14, J15, J16, J17, J18, J19, J29, J30 |
| 7 | 22µF | Capacitor_SMD:C_1210_3225Metric | C12, C14, C28, C33, C35, C37, C39 |
| 6 | 100k | Resistor_SMD:R_0603_1608Metric | R8, R9, R11, R20, R22, R29 |
| 6 | 100nF | Capacitor_SMD:C_0402_1005Metric | C26, C27, C45, C48, C49, C50 |
| 5 | 10µF | Capacitor_SMD:C_1210_3225Metric | C11, C13, C34, C36, C42 |
| 4 | 1µF | Capacitor_SMD:C_0603_1608Metric | C9, C17, C32, C43 |
| 4 | 4.7k | Resistor_SMD:R_0603_1608Metric | R26, R27, R36, R37 |
| 4 | Conn_01x06_Pin | Connector_JST:JST_GH_SM06B-GHS-TB_1x06-1MP_P1.25mm_Horizontal | J22, J23, J24, J25 |
| 3 | 10k | Resistor_SMD:R_0402_1005Metric | R23, R24, R25 |
| 2 | 0.0005 | Resistor_SMD:R_2512_6332Metric | R14, R15 |
| 2 | 10 | Resistor_SMD:R_0402_1005Metric | R12, R13 |
| 2 | 100nF | Capacitor_SMD:C_0805_2012Metric | C55, C57 |
| 2 | 10k | Resistor_SMD:R_0603_1608Metric | R2, R19 |
| 2 | 10µF | Capacitor_SMD:C_0805_2012Metric | C47, C54 |
| 2 | 2.2µF | Capacitor_SMD:C_0805_2012Metric | C19, C20 |
| 2 | 20pF | Capacitor_SMD:C_0603_1608Metric | C21, C22 |
| 2 | 22Ω | Resistor_SMD:R_0603_1608Metric | R3, R4 |
| 2 | 24.9k | Resistor_SMD:R_0603_1608Metric | R10, R21 |
| 2 | 330Ω | Resistor_SMD:R_0603_1608Metric | R30, R31 |
| 2 | 5.1k | Resistor_SMD:R_0805_2012Metric | R33, R34 |
| 2 | Conn_01x02_Pin | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J21, J26 |
| 2 | Conn_01x04_Pin | Connector_JST:JST_GH_SM04B-GHS-TB_1x04-1MP_P1.25mm_Horizontal | J27, J28 |
| 2 | SS14 | Diode_SMD:D_SMA | D6, D8 |
| 1 | 0 | Resistor_SMD:R_0603_1608Metric | R16 |
| 1 | 100Ω | Resistor_SMD:R_0603_1608Metric | R28 |
| 1 | 10K | Resistor_SMD:R_0603_1608Metric | R32 |
| 1 | 10nF | Capacitor_SMD:C_0402_1005Metric | C44 |
| 1 | 10nF | Capacitor_SMD:C_0603_1608Metric | C18 |
| 1 | 10µH | Inductor_SMD:L_Bourns_SRP7028A_7.3x6.6mm | L1 |
| 1 | 1N4148W | Diode_SMD:D_SOD-123 | D5 |
| 1 | 1k | Resistor_SMD:R_0805_2012Metric | R35 |
| 1 | 2.2µF | Capacitor_SMD:C_0603_1608Metric | C46 |
| 1 | 22µF | Capacitor_SMD:C_0805_2012Metric | C56 |
| 1 | 2N7002 | Package_TO_SOT_SMD:SOT-23 | Q2 |
| 1 | 33.2k | Resistor_SMD:R_0603_1608Metric | R17 |
| 1 | 4.7µF | Capacitor_SMD:C_0805_2012Metric | C16 |
| 1 | 470µF | Capacitor_SMD:CP_Elec_8x10.5 | C41 |
| 1 | 470µF/10V | Capacitor_SMD:CP_Elec_8x10 | C51 |
| 1 | 6.8µH | Inductor_SMD:L_TDK_SLF12575 | L2 |
| 1 | 8MHz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | 91k | Resistor_SMD:R_0603_1608Metric | R18 |
| 1 | AMS1117-3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U9 |
| 1 | BOOT0 jumper | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J2 |
| 1 | C_Polarized | Capacitor_SMD:CP_Elec_8x10.5 | C31 |
| 1 | DPS310XTSA1 | Snapeda:XDCR_DPS310XTSA1 | U7 |
| 1 | D_Zener | Diode_SMD:D_SOD-123 | D3 |
| 1 | Ferrite | Inductor_SMD:L_0805_2012Metric | FB1 |
| 1 | ICM-42688-P | Snapeda:PQFN50P300X250X97-14N | U6 |
| 1 | INA286 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U4 |
| 1 | LED | LED_SMD:LED_0805_2012Metric | D7 |
| 1 | LM61460AANRJRR | Snapeda:IC_LM61460AANRJRR | U5 |
| 1 | LMR33630ADDA | Package_SO:Texas_HSOP-8-1EP_3.9x4.9mm_P1.27mm_ThermalVias | U3 |
| 1 | Q_PMOS_GDS | Package_TO_SOT_SMD:TO-252-3_TabPin4 | Q1 |
| 1 | Reset | Button_Switch_SMD:SW_SPST_TL3342 | SW1 |
| 1 | SMBJ5.0A | Diode_SMD:D_SMB | D4 |
| 1 | STM32F405RGTx | Package_QFP:LQFP-64_10x10mm_P0.5mm | U1 |
| 1 | SWD | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J4 |
| 1 | USB_C_Receptacle_USB2.0_16P | Connector_USB:USB_C_Receptacle_XKB_U262-16XN-4BVC11 | J31 |
| 1 | W25Q128JVS | Package_SO:SOIC-8_5.3x5.3mm_P1.27mm | U8 |
| 1 | XT60PW-F | Snapeda:AMASS_XT60PW-F | J7 |
| 1 | XT60PW-M | Snapeda:AMASS_XT60PW-M | J8 |

ErdemA33/stm32f405-flight-controller
Open-source ArduPilot-compatible flight controller for fixed-wing UAVs. STM32F405, 4-layer KiCad design, built in 5 modular stages.

ErdemA33/stm32f405-flight-controller
Open-source ArduPilot-compatible flight controller for fixed-wing UAVs. STM32F405, 4-layer KiCad design, built in 5 modular stages.

ErdemA33/stm32f405-flight-controller
Open-source ArduPilot-compatible flight controller for fixed-wing UAVs. STM32F405, 4-layer KiCad design, built in 5 modular stages.

ErdemA33/stm32f405-flight-controller
Open-source ArduPilot-compatible flight controller for fixed-wing UAVs. STM32F405, 4-layer KiCad design, built in 5 modular stages.


ukinori/flightcontroller
STM32H743 VTOL/fixed-wing flight-controller hardware in KiCad 10: routed 4-layer PCB, schematics, BOM notes, connector pinouts and verification reports. Experimental prototype; PX4 port planned.

xXsenseiXx/KHATAF-F411
Open-hardware 4-layer STM32F411 drone flight controller designed in KiCad for INAV and Betaflight.


Fisheiyy/FriedSalmon2040
A, probably partially-functional, RP2040 based, 3D Printer Motherboard.


damnitzhemanth-oss/Flight_Controller
Custom STM based flightcontroller designed from scratch.

fkontiebo/flight-controller
Contrôleur de vol 4 layers basé sur STM32F405RGT6, conçu comme plateforme de navigation autonome avec bus CAN.
It measures 102.8 × 67 mm and has 4 copper layers, 1.6 mm thick.
129 parts, built around the DPS310XTSA1, INA286AID, LM61460AANRJRR and LMR33630ADDA. 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 ErdemA33/stm32f405-flight-controller repository on GitHub, at the commit this page was made from: the board is entegre_fc/entegre_fc.kicad_pcb and its schematic Input_Output/Input_Output.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask ErdemA33 before reusing the design.