FC3 Flight Controller

$550.00

23 in stock

STM32H743 flight controller with triple IMU, magnetometer, barometer and dual CAN for PX4 autopilot systems.

Part number FC3 · Datasheet Revision 2 · Applies to board Rev A

Request Volume Pricing Engineering / Customization Inquiry

Volume pricing available for production orders, recurring purchases, and OEM integration programs. Contact us to discuss quantities and lead times.

SKU: FC3 Categories: ,
  • 5 VNominal supply
  • 3Redundant IMUs
  • 36 × 36 mmBoard size
  • 2 × CANDroneCAN buses

Overview

The FC3 is a compact, high-performance flight controller for autonomous and remotely piloted aircraft. It is built around the STM32H743VIT6 microcontroller and combines three ICM-40609-D inertial measurement units for redundant inertial sensing, an IIS2MDC magnetometer for heading and an ENS220 barometer for altitude. A micro SD card socket provides onboard data logging. Two CAN buses carry DroneCAN (UAVCAN) traffic to actuators and sensors, and the board also exposes SPI, I²C, two USARTs, four GPIO, USB and a debug port, either on connectors or on solder pads. The FC3 is intended to run the PX4 autopilot; the PX4 board target for it is efi/revA.

Key features

  • STM32H743VIT6 Cortex-M7 microcontroller at 480 MHz, 2 MB flash, 1 MB RAM
  • Three ICM-40609-D IMUs (accelerometer and gyroscope) on SPI4 for redundant inertial sensing
  • IIS2MDC 3-axis magnetometer and ENS220 barometric pressure sensor on I²C
  • Micro SD card socket (4-bit SDMMC) for data logging
  • 2 × CAN (FDCAN with MCP2562FD transceivers), each with a selectable 120 Ω termination
  • Interfaces: 1 × SPI, 1 × I²C, 2 × UART (USART with RTS/CTS flow control) and 4 × GPIO on connectors with matching solder pads, plus USB Type-C (full speed)
  • STDC14 debug and programming connector with a USART3 serial console
  • PX4 board target (efi/revA) with DroneCAN support
  • Single 5 V supply (4.5 to 5.5 V)
  • 36 × 36 mm board, 30 × 30 mm mounting pattern

Technical specifications

ParameterValueUnit
Electrical
Nominal supply voltage5V
Minimum supply voltage4.5V
Maximum supply voltage5.5V
Typical input current46.6mA
Maximum input current820mA
Typical power consumption233mW
Processor and memory
MicrocontrollerSTM32H743VIT6
CPU clock (PX4 board configuration)480MHz
Flash / RAM (device)2 / 1MB
Interfaces
CAN buses (FDCAN, MCP2562FD transceivers)2
USART with RTS/CTS2
SPI (external)1
I²C (external)1
GPIO4
Micro SD (4-bit)1
USBFull speed, Type-C
Sensors (manufacturer typical values)
Gyroscope noise4.5mdps/√Hz
Gyroscope sensitivity error±0.5%
Gyroscope sensitivity change with temperature±0.045%/°C
Accelerometer noise100µg/√Hz
Accelerometer sensitivity error±0.5%
Accelerometer sensitivity change with temperature±0.007%/°C
Accelerometer range (maximum)±32g
Barometer absolute accuracy±2hPa
Barometer temperature accuracy±1K
Barometer noise0.1Pa rms
Magnetometer range±50gauss
Magnetometer sensitivity1.5mgauss/LSB
Magnetometer sensitivity change with temperature±0.03%/°C
Magnetometer RMS noise3mgauss
Mechanical
Board size36 × 36mm
Board thickness1.6mm
Mounting hole pattern30 × 30mm
Mounting hole opening (with cut-out to the board corner)3.2mm

The microcontroller has no external crystal; in the PX4 board configuration the core runs from the internal oscillator through the PLL at 480 MHz. The sensor values are the typical figures published by the sensor manufacturers (ICM-40609-D, ENS220, IIS2MDC), not measurements of the FC3. The FC3 has no reverse-polarity or over-voltage protection on its 5 V input.

The four mounting holes lie on a 30 × 30 mm square, 3 mm in from each edge, for M3 screws or M2 screws with anti-vibration grommets; the cut-outs help when fitting the grommets. The J18 connector extends about 3 mm beyond the top edge. All dimensions in the drawings are in millimetres. The top view is the side with the micro SD socket and the STDC14 connector; the microcontroller is on the bottom side.

FC3 mechanical drawing, top view, 36 by 36 mm board with 30 by 30 mm mounting pattern
Mechanical drawing (top view)
FC3 mechanical drawing, bottom view, 36 by 36 mm board with 30 by 30 mm mounting pattern
Mechanical drawing (bottom view)

Absolute maximum ratings

Stresses beyond these values may cause permanent damage. They are estimated from the absolute maximum ratings of the components connected to each pin and have not been tested on the board.

ParameterMinMaxUnitLimited by
Supply voltage, 5V pin (J18 pin 2)-0.37.0VMCP2562FD supply
Voltage on CAN_H and CAN_L (DC)-58+58VMCP2562FD
Transient on CAN_H and CAN_L (ISO 7637)-150+100VMCP2562FD
ESD on CAN_H and CAN_L (HBM)±8kVMCP2562FD

Interfaces and connectors

Block diagram of the FC3 showing the STM32H743VIT6 connected to CAN, USART, SPI, I2C, GPIO, IMUs, magnetometer, barometer, micro SD, USB and debug interfaces
FC3 block diagram
Ref.FunctionConnector / mating part
J18Power input and CAN2Phoenix Contact 1844730, 2 × 3 pins, 2.54 mm pitch. Mating part: Phoenix Contact 1027605
J10CAN1Molex 5055680471, 4 pins, 1.25 mm pitch. Mating part: Molex 5055650401
J3USART1Molex 5055680671, 6 pins. Mating part: Molex 5055650601
J11USART2Molex 5055680671, 6 pins. Mating part: Molex 5055650601
J2I²C (I2C2)Molex 5055680471, 4 pins. Mating part: Molex 5055650401
J23SPI (SPI6)Molex 5055680571, 5 pins. Mating part: Molex 5055650501
J24GPIOMolex 5055680471, 4 pins. Mating part: Molex 5055650401
J1Debug and programming (STDC14)Samtec FTSH-107-01-L-D-K, 2 x 7 pins, 1.27 mm pitch. Mating part: 14-pin STDC14 ribbon cable
J4USBSame Sky UJ20-C-H-G-SMT-1-P16-TR, USB Type-C receptacle
J28Micro SD cardATTEND 112L-TDA0 micro SD socket
JP1BOOT mode jumper2-pin header, 1 mm pitch
JP2, JP3120 Ω CAN terminations2-pin headers, 1 mm pitch
Power and CAN2 data bus (J18)

J18 carries the 5 V supply input and the CAN2 bus (FDCAN2). The 5V pins of J2, J3, J10, J11 and J23 are connected directly to this supply with no switch or current limit. The USB Type-C connector does not power the board, so the board must be powered through J18.

J18 connector pin diagram: 1 NC, 2 5V, 3 GND, 4 GND, 5 CAN_H, 6 CAN_L
PinNetType
1NCNot connected
25VPower input
3GNDPower input
4GNDPower input
5CAN_H (CAN2_P)I/O
6CAN_L (CAN2_N)I/O
Peripheral connectors (J10, J3, J11, J2, J23, J24)

These Molex connectors bring out the CAN1 bus, two USARTs, an I²C bus, an SPI bus and four GPIO pins. All signals are 3.3 V logic except CAN. Signal names are from the point of view of the FC3 (RX is an input, TX an output).

PinJ10 CAN1J3 USART1J11 USART2J2 I²CJ23 SPIJ24 GPIO
1GNDGNDGNDGNDGNDGPIO16
2CAN1_NRTSRTSI2C2_SDASPI6_MOSIGPIO15
3CAN1_PCTSCTSI2C2_SCLSPI6_MISOGPIO14
45VRXRX5VSPI6_SCKGPIO13
5TXTX5V
65V5V

Microcontroller pins: USART1 TX PA9, RX PA10, CTS PA11, RTS PA12; USART2 TX PD5, RX PD6, CTS PD3, RTS PD4; I2C2 SDA PB11, SCL PB10; SPI6 SCK PA5, MISO PA6, MOSI PA7; GPIO13 to GPIO16 PC3 to PC0. J10 is the CAN1 interface (FDCAN1); a 120 Ω termination can be added with JP2. The board has no external pull-up resistors on the I²C bus, so fit pull-ups at the connected device or in the wiring. J23 has no chip select line; use a GPIO pin if one is needed. J24 has no power pins.

Each peripheral signal of these connectors, except 5V and GND, also has a solder pad on the board, labeled with the signal name. The pads are wired in parallel with the connector pins.

Pad Signal
J26, J27, J29, J30 USART1 TX, RX, CTS, RTS
J20, J21, J22, J25 USART2 TX, RX, CTS, RTS
J5, J6 I2C2 SDA, SCL
J7, J8, J9 SPI6 MISO, MOSI, SCK
J16, J17 CAN1 P, N
J12, J13, J14, J15 GPIO13, GPIO14, GPIO15, GPIO16
Debug and programming (J1, STDC14)

J1 is designed for use with the ST-LINK-V3MINIE and can be used to debug the board or load firmware onto the microcontroller over SWD. It also carries USART3, which gives a serial console through the ST-LINK. Mating part: 14-pin STDC14 ribbon cable.

J1 STDC14 connector pin numbering, 14 pins in two rows
PinSignal
3+3.3V
4SWDIO
5, 7, 11GND
6SWCLK
12NRST
13USART3_TX (microcontroller output)
14USART3_RX (microcontroller input)
1, 2, 8, 9, 10Not connected
Jumpers: CAN termination and BOOT mode (JP1, JP2, JP3)

120 Ω termination (JP2, JP3). Fitting a jumper on JP2 or JP3 connects a 120 Ω termination resistor across the corresponding CAN bus. JP2 terminates CAN1 (connector J10) and JP3 terminates CAN2 (connector J18). Fit a termination only on the two nodes at the ends of a bus. Jumper pitch: 1 mm.

BOOT mode (JP1). JP1 connects the BOOT0 pin of the microcontroller to 3.3 V. With a jumper fitted, resetting the board starts the microcontroller’s built-in bootloader, which can load firmware over the USB Type-C connector. For normal operation, and to run the firmware after loading it, remove the jumper before resetting the board. Jumper pitch: 1 mm.

Micro SD card (J28) and USB (J4)

Micro SD card (J28). J28 is a micro SD card socket connected to the microcontroller’s SDMMC1 peripheral in 4-bit mode (CK on PC12, CMD on PD2, D0 to D3 on PC8 to PC11), through an EMI filter. The socket has no card-detect connection. It is used for data logging.

USB (J4). J4 is a USB Type-C receptacle wired to the microcontroller’s USB OTG HS peripheral using its on-chip full-speed PHY (D+ on PB15, D- on PB14), through a common-mode choke. The CC pins have 5.1 kΩ pull-down resistors, so the board is a USB device. VBUS is only sensed (PB13); it does not power the board.

Onboard devices and buses
DeviceBusMicrocontroller pins
ICM-40609-D IMU 1 (U5)SPI4Chip select PB0
ICM-40609-D IMU 2 (U6)SPI4Chip select PE8
ICM-40609-D IMU 3 (U7)SPI4Chip select PE10
SPI4 (shared by the IMUs)SPI4SCK PE2, MISO PE5, MOSI PE6
IIS2MDC magnetometer (U3)I²C (I2C4)SCL PD12, SDA PD13, interrupt PE15
ENS220 barometer (U4)I²C (I2C4)SCL PD12, SDA PD13, control lines PE13 and PE14
MCP2562FD CAN transceiver (U8)FDCAN1RX PD0, TX PD1
MCP2562FD CAN transceiver (U9)FDCAN2RX PB5, TX PB6

The internal I²C bus (I2C4) has no external pull-up resistors on the board.

Software and firmware

The FC3 is supported by the PX4 board target efi/revA (build target efi_revA_default) in the Ether Form Inc PX4 fork. The FC3 communicates with DroneCAN (UAVCAN v0) nodes such as ESCs, servo controllers and GNSS receivers through the PX4 uavcan driver. Set the UAVCAN_ENABLE parameter to 3 to enable sensors and actuators with dynamic node ID allocation. The bus bit rate is set by UAVCAN_BITRATE (default 1000000 bit/s) and the node ID of the flight controller by UAVCAN_NODE_ID (default 1, valid range 1 to 125).

PX4 default configuration (efi/revA)
ItemConfiguration
IMUsThree ICM-40609-D on SPI4 (icm40609d driver, one instance per chip select: PB0, PE8 and PE10)
MagnetometerIIS2MDC on I2C4, address 0x1E (iis2mdc driver)
BarometerENS220S on I2C4, address 0x20 (ens220s driver)
DroneCANTwo interfaces (CAN1 and CAN2), PX4 uavcan driver
RC inputSpektrum DSM receiver on USART2 (J11)
USBUSB Type-C, full speed, using the on-chip OTG_HS PHY (PB14, PB15; VBUS sensed on PB13). Provides the PX4 CDC/ACM serial port for MAVLink and the shell
External I²C (J2)I2C2 is enabled as an external bus. The board has no pull-ups, so the connected device must provide them
External SPI (J23)SPI6 is enabled as an external bus. No chip select is assigned because J23 has none
USART1 (J3)Pins PA9 (TX) and PA10 (RX) are configured. Hardware flow control is not enabled
GPIO (J24)GPIO13 to GPIO16 are configured as inputs at start-up and can be read or driven with the gpio command
SD cardLogging to the micro SD card (SDLOG_BACKEND bit 0, enabled by default)

Programming: connect an ST-LINK-V3MINIE to J1 (STDC14) to load firmware or debug over SWD. Firmware can also be loaded over the USB Type-C connector by fitting the BOOT jumper (JP1) and resetting the board.

Resources

Request a quote or discuss your integration

Choose the inquiry type that fits. A standard bulk quote only needs a quantity and your contact details; engineering and customization inquiries need a short description of what you need.