Open-source STM32-based flight controller designed in KiCad for PX4 and ArduPilot-compatible UAV platforms.
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.
- 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
| Component | Part Number |
|---|---|
| MCU | STM32F446RET6 |
| IMU | ICM-42670-P |
| Barometer | BMP390 |
| Voltage Regulator | SPX3819 |
| Crystal | 3.2mm × 2.5mm |
| USB Interface | USB Type-C |
| Interface | Quantity |
|---|---|
| CAN Bus | 1 |
| UART | 3 |
| SPI | 2 |
| ADC | 2 |
| GPIO Input | 1 |
| GPIO Output | 2 |
| Output |
|---|
| Servo 1 |
| Servo 2 |
| Servo 3 |
| Servo 4 |
| Servo 5 |
| Servo 6 |
| Parameter | Value |
|---|---|
| Layers | 2 |
| Nets | 79 |
| Pads | 291 |
| Vias | 297 |
| Unrouted Nets | 0 |
| ERC Status | Passed |
| DRC Status | Passed |
- Requirements Definition
- Component Selection
- Schematic Design
- ERC Validation
- PCB Placement
- PCB Routing
- Ground Plane Implementation
- DRC Verification
- Prototype Preparation
- ✅ Schematic Complete
- ✅ PCB Layout Complete
- ✅ ERC Passed
- ✅ DRC Passed
- ⏳ Prototype Manufacturing Pending
- ⏳ Hardware Bring-Up Pending
- ⏳ PX4 Integration Pending
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
hardware/ ├── schematic/ └── pcb/
docs/ └── images/
firmware/
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.
This project was developed with the help of open-source resources and educational content.
Special thanks to Timothy Kowalski for sharing detailed flight controller development content and open-source hardware resources.
Reference Project: