# soviotech/pixhawk-flight-controller-board architecture

> Architecture diagram of the GitHub repository soviotech/pixhawk-flight-controller-board, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/soviotech/pixhawk-flight-controller-board
- Repository: https://github.com/soviotech/pixhawk-flight-controller-board

## Overview

This repository describes a custom Pixhawk-compatible flight-controller board, documented by its schematic and PCB artwork rather than runtime source. Its principal workflow is that Pixhawk-compatible firmware runs on the STM32H7, reads the redundant IMUs, barometer, GPS and receiver, and drives the airframe’s motors through PWM outputs; telemetry provides a separate radio link. The graph follows the README’s documented bus and integration relationships. Hardware details are documented, not verified against sampled source.

Main entry points: [`SCH_Schematic1_2026-06-17.pdf`](https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/SCH_Schematic1_2026-06-17.pdf) (STM32H7), [`PCB_PCB1_2026-06-17.pdf`](https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/PCB_PCB1_2026-06-17.pdf) (Board and harness layout)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_compute_sensing["Compute and sensing"]
  node_stm32["STM32H7"]
  node_imu_stack["Redundant IMUs"]
  node_barometer["Barometer"]
end

subgraph group_external_interfaces["External interfaces"]
  node_gps["GPS port"]
  node_telemetry["Telemetry port"]
  node_receiver["RC receiver port"]
  node_pwm_outputs["PWM motor outputs"]
end

subgraph group_board_integration["Board integration"]
  node_board_layout["Board and harness layout"]
  node_imu_island["Isolated IMU island"]
  node_vent_slot["Barometer vent slot"]
end

node_firmware(("Pixhawk firmware"))
node_gps_device(("GPS"))
node_radio(("Telemetry radio"))
node_rc_receiver(("RC receiver"))
node_motors(("Airframe motors"))

node_firmware -->|"runs on"| node_stm32
node_stm32 -->|"reads over SPI"| node_imu_stack
node_stm32 -->|"reads over I2C"| node_barometer
node_stm32 -->|"uses UART"| node_gps
node_gps_device -->|"connects to"| node_gps
node_stm32 -->|"uses second UART"| node_telemetry
node_radio -->|"connects to"| node_telemetry
node_stm32 -->|"reads canonical pins"| node_receiver
node_rc_receiver -->|"connects to"| node_receiver
node_stm32 -->|"drives timer channels"| node_pwm_outputs
node_pwm_outputs -->|"drives"| node_motors
node_board_layout -->|"isolates ground"| node_imu_island
node_board_layout -->|"provides vent"| node_vent_slot

click node_stm32 "https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/SCH_Schematic1_2026-06-17.pdf"
click node_imu_stack "https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/SCH_Schematic1_2026-06-17.pdf"
click node_barometer "https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/SCH_Schematic1_2026-06-17.pdf"
click node_gps "https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/SCH_Schematic1_2026-06-17.pdf"
click node_telemetry "https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/SCH_Schematic1_2026-06-17.pdf"
click node_receiver "https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/SCH_Schematic1_2026-06-17.pdf"
click node_pwm_outputs "https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/SCH_Schematic1_2026-06-17.pdf"
click node_board_layout "https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/PCB_PCB1_2026-06-17.pdf"
click node_imu_island "https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/PCB_PCB1_2026-06-17.pdf"
click node_vent_slot "https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/PCB_PCB1_2026-06-17.pdf"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_stm32,node_imu_stack,node_barometer toneBlue
class node_gps,node_telemetry,node_receiver,node_pwm_outputs toneAmber
class node_board_layout,node_imu_island,node_vent_slot toneMint
class node_firmware,node_gps_device,node_radio,node_rc_receiver,node_motors toneIndigo
```

## Components

### Compute and sensing

- [STM32H7](https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/SCH_Schematic1_2026-06-17.pdf): `SCH_Schematic1_2026-06-17.pdf`
- [Redundant IMUs](https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/SCH_Schematic1_2026-06-17.pdf): `SCH_Schematic1_2026-06-17.pdf`
- [Barometer](https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/SCH_Schematic1_2026-06-17.pdf): `SCH_Schematic1_2026-06-17.pdf`

### External interfaces

- [GPS port](https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/SCH_Schematic1_2026-06-17.pdf): `SCH_Schematic1_2026-06-17.pdf`
- [Telemetry port](https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/SCH_Schematic1_2026-06-17.pdf): `SCH_Schematic1_2026-06-17.pdf`
- [RC receiver port](https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/SCH_Schematic1_2026-06-17.pdf): `SCH_Schematic1_2026-06-17.pdf`
- [PWM motor outputs](https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/SCH_Schematic1_2026-06-17.pdf): `SCH_Schematic1_2026-06-17.pdf`

### Board integration

- [Board and harness layout](https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/PCB_PCB1_2026-06-17.pdf): `PCB_PCB1_2026-06-17.pdf`
- [Isolated IMU island](https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/PCB_PCB1_2026-06-17.pdf): `PCB_PCB1_2026-06-17.pdf`
- [Barometer vent slot](https://github.com/soviotech/pixhawk-flight-controller-board/blob/main/PCB_PCB1_2026-06-17.pdf): `PCB_PCB1_2026-06-17.pdf`

### Other components

- **Pixhawk firmware**
- **GPS**
- **Telemetry radio**
- **RC receiver**
- **Airframe motors**

## Connections

- Pixhawk firmware → STM32H7: runs on
- STM32H7 → Redundant IMUs: reads over SPI
- STM32H7 → Barometer: reads over I2C
- STM32H7 → GPS port: uses UART
- GPS → GPS port: connects to
- STM32H7 → Telemetry port: uses second UART
- Telemetry radio → Telemetry port: connects to
- STM32H7 → RC receiver port: reads canonical pins
- RC receiver → RC receiver port: connects to
- STM32H7 → PWM motor outputs: drives timer channels
- PWM motor outputs → Airframe motors: drives
- Board and harness layout → Isolated IMU island: isolates ground
- Board and harness layout → Barometer vent slot: provides vent
