Back to Projects
Flight Controller (ErayH743)
An STM32H743-based flight controller running ArduPilot, designed to be assembled by hand
•In progress
Embedded SystemsPCB DesignSTM32ArduPilotDrone
Technologies:STM32H743ArduPilotKiCad 10PythonFreerouting
Flight Controller (ErayH743)
I'm designing my own flight controller for a 450 mm class quadcopter that can fly autonomously with GPS. The board runs ArduPilot (ArduCopter) and is designed to be assembled by hand (stencil + hot plate), without factory assembly.
Status: The design is complete. The schematic and the 4-layer PCB are done, with a clean DRC. Next step: manufacturing.

The board
| MCU | STM32H743VIT6 (480 MHz, 2 MB flash) |
| IMU | ICM-42670-P (ICM-42688-P fits too) + optional BMI270, each on its own SPI bus |
| Barometer | MS5611 |
| Firmware | ArduPilot; board definition (hwdef) written, bootloader and ArduCopter build |
| Connectors | Pixhawk-standard JST-GH pinouts: GPS ×2, telemetry ×2, RC, I2C, power module; 8 motor outputs; microSD; USB-C |
| PCB | 70 × 70 mm, 4 layers (GND and 3V3 inner planes), ENIG, all parts on the top side |
| Mounting | Standard 30.5 × 30.5 mm holes |
Design approach
The schematic and PCB aren't drawn by hand; they're generated from scripts using KiCad's Python API:
- Schematic: built from a single design definition; ERC, shorts and pin plan consistency are checked automatically.
- Placement: large parts go to fixed positions, passives to the nearest free spot by the pin they connect to.
- Routing: GND and 3V3 connections drop to the inner planes first, then Freerouting routes the signals on the top and bottom layers.
- Fabrication outputs (gerbers, drill files, BOM, assembly drawing) come out with a single command.
So after a change, the whole board can be regenerated in a few minutes and verified with DRC and a schematic-to-PCB match.

Roadmap
- ✅ Requirements and reference study (ArduPilot board definitions)
- ✅ Pin plan, BOM and ArduPilot board definition
- ✅ Schematic (clean ERC)
- ✅ PCB placement and routing (clean DRC)
- ⏳ Manufacturing
- Assembly and bring-up
- Firmware tuning and flight tests