All projects
Personal Project · Avionics · Embedded

Custom STM32 Flight Controller

View on GitHub
Custom STM32 flight controller

A quadcopter built from the flight controller up around a bare STM32H743IIT6 board (FK743M2-IIT6) — the same MCU family that powers commercial Pixhawk autopilots. Rather than buy an off-the-shelf board, I brought up the hardware myself and ran ArduPilot on it, which meant understanding the autopilot from the pin map upward.

The core of the project is a hand-authored ArduPilot hwdef.dat — the board-definition file that tells the firmware exactly what is wired where. Getting sensors, radio and motors talking to the autopilot meant understanding everything from the pin map to the sensor buses, the motor mixer and the tuning that makes it fly.

Board bring-up

Compute

  • STM32H743IIT6 MCU
  • FK743M2-IIT6 board
  • Bare-metal, no dev board

Sensors & radio

  • ICM-42688-P IMU (SPI2)
  • BMP388 barometer (I2C1)
  • FS-iA6B iBUS RX (UART2)

Actuation

  • TIM1 PWM → 4 ESCs
  • X-frame motor order
  • Full power / FPV chain

Why ArduPilot

I chose ArduPilot over PX4 after a driver- and ecosystem-level trade-off analysis — weighing peripheral support, the maturity of its board-definition workflow, the depth of its documentation and community, and how cleanly custom logic can sit alongside the safety-critical core.

STM32H743ArduPilothwdef.datSPI / I2C / UARTICM-42688-PBMP388iBUS

See the board definition

The ArduPilot hwdef, wiring and bring-up notes are on GitHub.