Skip to main content

Reference Design

Design Please read the page Rotorflight FC Design Requirements first. It is explaining the generic requirements for all Rotorflight designs.

For an FC to be fully supported by Rotorflight-2, it must follow one of the reference designs.

RF2 will offer more features and easier configurability for designs that are fully compatible.

Lots of effort has been put into these designs for making sure they are as flexible as possible, while not imposing any hardware limitations on the functionality. The manufacturer can choose not to implement any features that are marked optional. All other features must be implemented.

The reference designs are considering only the aspects that have effect on the software support, mostly the STM32 resource allocation and the minimum set of supported features. The rest - like size, form factor, connector locations - are left for the manufacturer to decide.

Reference Design F7Ax

The following design is for the STM32F722RET (64 pins LQFP) chip.

Variants

The design F7Ax has a few variants, depending on the chosen port combination.

VariantServosMotorsTELESBUSDSMPort APort BPort CPort DPort EPort FPort G
F7A1✔ ᴿˣ
F7A2✔ ᴿˣ
F7A3✔ ᴿˣ
F7A4✔ ᴿˣ

Legend: ✔ = Mandatory Port, ✓ = Optional Port, ᴿˣ = Primary port for a serial receiver

Ports

Servo and Motor Port

The servos and motors are connected to standard 0.1" pin headers. The pin headers are organised as two blocks, of size 4x3 and 3x3 pins.

The cyclic servos and the tail servo/ESC connect to the 4x3 block.

The main ESC connects to the 3x3 block.

A receiver can be connected to the 3x3 block in some configurations.

All pin headers in these blocks have a common GND and a common VX (BEC power).

LabelPin1Pin2Pin3MCU Pin
S1GNDVXPWMPB4
S2GNDVXPWMPB5
S3GNDVXPWMPB0
TAILGNDVXPWMPB3
ESCGNDVXSIGPB6
RPMGNDVXSIGPA2
SBUSGNDVXSIGPA3

The ESC pin headers are designed to accommodate all variations of traditional and drone ESCs. The following combinations are possible:

TypeESC HeaderRPM HeaderSBUS HeaderExample ESC
Large heli ESCPWM + BECRPM + BECTelem + BECHobbywing Platinum V4 120A
Small heli ESCPWM + BECRPM + BECS.BUS⁶Hobbywing Platinum V3 50A
BLHeli32 ESCDShotBEC.TelemetryIFlight BLITZ E80
BLHeli-S ESCDShotBECS.BUS⁶Holybro 20A

A one-wire receiver can be connected to the SBUS header, if the ESC Telemetry feature is not in use. The receiver must be high voltage capable, e.g. up to 8.4V.

Extended Servo and Motor Port

In case four cyclic servos are required, the following pinout with two 4x3 blocks can be used.

LabelPin1Pin2Pin3MCU Pin
S1GNDVXPWMPB4
S2GNDVXPWMPB5
S3GNDVXPWMPB0
S4GNDVXPWMPB1
TAILGNDVXPWMPB3
ESCGNDVXSIGPB6
RPMGNDVXSIGPA2
SBUSGNDVXSIGPA3

Expansion Port A

Port A is primarily a UART port. It shall be labelled with Ⓐ.

The connector type is 4-pin JST-GH, with the following pinout:

Pin1Pin2Pin3Pin4
TXRX5VGND

The signal pins are connected to PA0 (TX) and PA1 (RX) on UART4.

Port A can be also used as an RPM input port for two RPM signals, or two voltage inputs for the ADC.

Expansion Port B

Port B is primarily a UART port. It shall be labelled with Ⓑ.

The connector type is 4-pin JST-GH, with the following pinout:

Pin1Pin2Pin3Pin4
TXRX5VGND

The signal pins are connected to PC6 (TX) and PC7 (RX) on UART6.

Port B can be also used for Camera Control, or for LED Strip.

Expansion Port C

Port C is a UART port or an I2C port. It shall be labelled with Ⓒ.

The connector type is 4-pin JST-GH, with the following pinout:

Pin1Pin2Pin3Pin4
TX/SCLRX/SDA5VGND

The signal pins are connected to PB10 (TX) and PB11 (RX) on UART3.

Expansion Port D

Port D is primarily a UART port. It shall be labelled with Ⓓ.

The connector type is 4-pin JST-GH, with the following pinout:

Pin1Pin2Pin3Pin4
TXRX5VGND

The signal pins are connected to PA9 (TX) and PA10 (RX) on UART1.

Port D can be also used for Camera Control or LED Strip.

Expansion Port E

Port E is a UART port. It shall be labelled with Ⓔ.

The connector type is 4-pin JST-GH, with the following pinout:

Pin1Pin2Pin3Pin4
TXRX5VGND

The signal pins are connected to PC12 (TX) and PD2 (RX) on UART5.

Expansion Port F

Port F is a UART port. It shall be labelled with Ⓕ.

The connector type is 4-pin JST-GH, with the following pinout:

Pin1Pin2Pin3Pin4
TXRX5VGND

The signal pins are connected to PC10 (TX) and PC11 (RX) on UART3/4.

Expansion Port G

Port G is primarily for a UART/GPS and a I2C/Compass. It shall be labelled with Ⓖ.

The connector type is 6-pin JST-GH, with the following pinout:

Pin1Pin2Pin3Pin4Pin5Pin6
5VTXRXSCLSDAGND

This socket is Pixhawk GPS compatible.

The signal pins are connected to PB10 (SCL), PB11 (SDA) on I2C2; and PC6 (TX), PC7 (RX) on UART6.

Port G is an alternative to Ports B and C. Either Port G can be implemented, or Ports B and C - but not both.

DSM Port

The DSM Port is a dedicated port for connecting a Spektrum DSM satellite.

The connector type is 3-pin JST-ZH, with the following pinout:

Pin1Pin2Pin3
3.3VGNDSIG

The signal pin is connected to PA10 on UART1.

The DSM Port is sharing the RX pin with Port D. It is possible to implement either DSM Port, or Port D - or both.

MCU Resource Allocation

FunctionPINALT1ALT2ALT3ALT4Notes
Servo1PB4T3Ch1
Servo2PB5T3Ch2
Servo3PB0T3Ch3
Servo4PB1T3Ch4Optional: Fourth cyclic servo¹
RudderPB3T2Ch2Tail servo or motor
Motor1PB6T4Ch1Main motor
Motor2PB7T4Ch2Optional: Second motor¹
UART1 TxPA9TX1T1Ch2⁹Optional: UART, LED strip, CC
UART1 RxPA10RX1T1Ch3⁹Optional: UART, LED strip, CC
UART2 TxPA2TX2T5Ch3T9Ch1A2ESC Telem, RPM, CPPM, ADC, LED strip⁵
UART2 RxPA3RX2T5Ch4T9Ch2A3ESC Telem, RPM, CPPM, ADC, LED strip⁵
UART3 TxPC10TX3TX4
UART3 RxPC11RX3RX4
UART4 TxPA0TX4T5Ch1A0
UART4 RxPA1RX4T5Ch2A1
UART5 TxPC12TX5
UART5 RxPD2RX5
UART6 TxPC6TX6T8Ch1⁹Optional: UART, LED strip, CC, GPS
UART6 RxPC7RX6T8Ch2⁹Optional: UART, LED strip, CC, GPS
SCL1PB8SCL1Internal baro
SDA1PB9SDA1Internal baro
SCL2PB10SCL2TX3T2Ch3Optional: External compass, UART3, PWM
SDA2PB11SDA2RX3T2Ch4Optional: External compass, UART3, PWM
NSSPA4NSS1Gyro SPI NSS
SCKPA5SCK1Gyro SPI SCK
MISOPA6MISO1Gyro SPI MISO
MOSIPA7MOSI1Gyro SPI MOSI
GEXTPA15EXTIGyro INT
NSSPB12NSS2Flash SPI NSS
SCKPB13SCK2Flash SPI SCK
MISOPB14MISO2Flash SPI MISO
MOSIPB15MOSI2Flash SPI MOSI
ADC1PC0A10Optional: Vbat voltage sensor⁷
ADC2PC1A11Vx voltage sensor⁷
ADC3PC2A125V voltage sensor⁷
ADC4PC3A13Optional: extra ADC input
ADC5PC4A14Optional: extra ADC input
LED STRIPPA8T1Ch1⁹Optional: Dedicated LED strip
BEEPERPC13GPIOOptional: buzzer
LED1PC14GPIOGreen status LED³
LED2PC15GPIORed status LED³
USB DMPA11DMUSB data-
USB DPPA12DPUSB data+
SWDIOPA13SWDIODebugger test pad⁴
SWCLKPA14SWCLKDebugger test pad⁴
Free¹⁰PB2
Free¹⁰PC8
Free¹⁰PC9

¹ The optional motors and servos should have solder pads on the PCB.

² PC10/PC11 can be configured as UART3 or UART4, or a combination of RX3/TX4, allowing S.BUS and S.Port on the same socket.

³ A dual colour LED is preferred.

⁴ For easy debugging, GND,3V3,SWDIO,SWCLK solder pads should be available on the PCB.

⁵ PA2/PA3 is used for a combined ESC telemetry / RPM / Receiver pin header block.

⁶ A receiver can be connected if ESC telemetry is not used. PA2 and PA3 also support CPPM receivers.

⁷ A voltage divider and a filter cap is needed on each ADC input. The cutoff frequency for the input filter should be ~ 25Hz.

Not used

⁹ TIM1 can be used only if TIM8 is unused; and vice versa.

¹⁰ If space permits, all unused/free pins should have solder pads on the PCB.