Omnifly-H7
Omnifly H7 is a multi-platform flight controller based on the STM32H743, designed for fixed-wing, quadcopter, and rocketry applications. It integrates a full sensor suite, analog video OSD, pyrotechnic outputs, and extensive connectivity into a compact 50×50mm form factor.
Features
- Microcontroller: STM32H743VIT6 (480 MHz Cortex-M7, 2MB Flash, 1MB RAM)
- IMU: ICM-42688-P (6-axis, SPI)
- Barometer: BMP390 (I²C)
- Analog OSD: MAX7456 with camera input and VTX video output
- 3× Pyro channels — fused (10A, C1F), NMOS switched, continuity sensing via ADC
- 6× Servo / PWM outputs (TIM1 + TIM2, 5V logic)
- 4× Motor outputs (TIM5, dedicated quad ESC header)
- 8× UARTs (GPS, Radio, VTX, Camera, ESC telemetry, expansion)
- I²C (Compass / external sensors)
- CAN bus (ATA6561 transceiver, 120Ω terminated)
- USB-C Full Speed device (with ESD protection)
- MicroSD card (SDMMC1, 4-bit, ESD protected)
- 256Mbit NOR Flash (MX25L25645G, SPI)
- WS2812B ARGB LED
- Buzzer (NMOS driven, 5V)
- Analog FPV camera input + Analog VTX / DJI O4 header
- Dedicated solder pads: VBATT, 5V, 3V3, GND, CAN diff pair, UART7/8
- SWD debug header
- 50×50mm board, 30×30mm M3 mounting pattern
- 8-layer stackup for clean power and signal integrity
Hardware
Microcontroller: STM32H743VIT6
- 32-bit Arm® Cortex®-M7 core with FPU and DSP
- Up to 480 MHz CPU frequency
- 2 MB dual-bank Flash, 1 MB RAM (including 192 KB TCM)
- 12-bit ADC (up to 20 channels)
- Advanced timers: TIM1, TIM2, TIM5 used for motor/servo PWM
- Peripherals: 8× USART/UART, 3× SPI, 4× I²C, 2× CAN-FD, SDMMC, USB FS/HS
- Debug: SWD, SWO, ETM trace
- Package: LQFP-100
IMU: ICM-42688-P
- 6-axis (3-axis gyro + 3-axis accel)
- Gyro noise density: 2.8 mdps/√Hz
- Accel noise density: 70 μg/√Hz
- SPI interface up to 24 MHz
- Hardware interrupt (INT1) to STM32
- Dedicated +3V3_IMU LDO supply for noise isolation
- Package: LGA-14
Barometer: BMP390
- Pressure range: 300–1250 hPa
- Relative accuracy: ±0.06 hPa
- I²C interface (400 kHz)
- Package: LGA-10
OSD: MAX7456EUI+
- Single-channel monochrome analog OSD
- 27 MHz crystal for pixel clock
- SPI interface (CS, MOSI, MISO, SCK)
- 75Ω terminated camera input and video output
- 5V powered (PVDD + AVDD decoupled)
- Package: TSSOP-28
NOR Flash: MX25L25645GM2I-08G
- 256Mbit (32MB) capacity
- SPI / QPI interface up to 133 MHz
- Used for blackbox logging or parameter storage
- Package: SOP-8
CAN Transceiver: ATA6561-GBQW-N
- CAN / CAN-FD compliant
- Standby pin controlled by STM32
- 120Ω bus termination resistor onboard
- 3.3V logic / 5V VCC
- Package: DFN-9
Power Architecture
- Input: Direct battery (2S–6S, up to 25.2V) via 4×5mm solder pads
- 5V high-current rail: SIC437AED buck converter (~10A peak), feeds servos, VTX
- 5V logic rail: MBR230S1F-7 Schottky diodes OR the SIC437AED and USB 5V rails
- 3.3V rail: AP63200WU-7 buck converter, feeds STM32 and digital logic
- 3.3V IMU rail: TLV74033PDBVR LDO (low-noise, isolated for IMU)
- USB-C ESD: D1213A-02SOL-7 TVS on D+/D−
Pyro Channels (×3)
- Switch: SSM6K513NU dual N-channel MOSFET
- Fuse: C1F 10A (per channel)
- Continuity sensing: voltage divider + bleeder resistors → STM32 ADC (ADC2_IN8/9/10)
- LED indicator (red) per channel
- Output via WAGO 2065 terminals
- Max continuous current: 10A per channel (fuse limited)
Headers & Connectors
| Connector | Type | Signals |
|---|---|---|
| Quad ESC | SM10B-SRSS-TB | VBATT, GND, M1–M4, I_Sense, Telem |
| Single ESC | SM05B-GHS | VBATT, GND, I_Sense, Telem, M1 |
| S1–S6 Servo | SM03B-GHS-TB (×6) | SIG, GND, +5V |
| GPS + Compass | SM06B-GHS-TB | +5V/+3V3, GND, GPS TX/RX, CMPS SDA/SCL |
| Analog Camera | SM05B-GHS-TB | +5V, GND, CAM_IN, CAM_RX, CAM_TX |
| VTX / DJI O4 | S6B-PH-SM4-TB | VTX_VIN, GND, VTX_TX, VTX_RX, VIDEO_OUT |
| Radio / Receiver | SM04B-GHS-TB | +5V, GND, RADIO_TX, RADIO_RX |
| UART6 | SM04B-GHS-TB | +5V, GND, UART6_TX, UART6_RX |
| USB-C | UJ20-C-H-G-SMT-5-P16-TR | USB FS D+/D−, VBUS, CC1/CC2 |
| SWD | 6-pin pad (1.27mm) | VCC, NRST, GND, SWO, SWCLK, SWDIO |
| Pyro ×3 | 2065-101_998-403 ×6 | PYRO+, PYRO− per channel |
| Solder pads | — | UART7/8, CAN_P/N, VBATT, 5V, 3V3, GND |
PCB Stackup — 8 layers, 50×50mm
| Layer | Function |
|---|---|
| L1 | Signal + Components (Top) |
| L2 | GND plane |
| L3 | Signal |
| L4 | GND plane |
| L5 | Power — 5V and 3V3 |
| L6 | Power — VBATT and high-current 5V (pyro/servo/VTX) |
| L7 | GND plane |
| L8 | Signal + Components (Bottom) |
- Mounting: 30×30mm M3 pattern (standard flight controller stack)
Schematics / PCB / 3D
Keybinds
- Select
LMB - Zoom In/Out
Scroll - Pan
RMB Drag - Reset View
R
Quick start
- Connect a 2S–6S LiPo battery to the VBATT solder pads (observe polarity)
- Connect USB-C for configuration or firmware upload
- Flash firmware via SWD (STM32CubeIDE / OpenOCD) or USB DFU
- Connect peripherals to their respective headers (see connector table above)
- Configure outputs and UART assignments in your flight stack (Betaflight / ArduPilot / custom)
- For pyro use: connect e-matches to PYRO+/PYRO− terminals, verify continuity LED before arming
Safety
- Pyro channels are fused at 10A per channel — verify fuse integrity before every flight/launch
- Always disarm pyro outputs before connecting/disconnecting e-matches
- Battery voltage is present on pyro output pads at all times when battery is connected — treat as live
- VTX_VIN solder bridge (SB1) selects VBATT or +5VBUCK — verify selection before powering VTX
- GPS_VIN solder bridge (SB2) selects +5V or +3V3 — verify selection for your GPS module's Vcc
- USB and battery can be connected simultaneously — 5V rails are OR'd via Schottky diodes
- Maximum battery voltage: 25.2V (6S) — do not exceed
🔜 Firmware
Board is being manufactured — firmware examples and configuration guides coming soon.