Flight Controller F405-HDTE
STM32F405RGT6, ICM42688-P, SPL06, OSD, 6x UARTs, 1x I2C, 12x PWM, Dual BEC, 3~12S LiPo input
Tips
- With INAV firmware 6.0 or older, DSHOT can not work on S3, S5,S7 because of DMA clash, pls use ONESHOT or MULTISHOT and calibrate ESC PWM range. This DMA clash has been fixed from INAV 7.x.x.
- USB type-C to USB type-C cable can’t supply power to the board. Pls use USB-A to USB type-C cable.
Gallery
Specifications
F405-HDTE Quick Start Guide (PDF)
Features
- STM32F405 has 1MB flash which can run ArduPilot/INAV/BetaFlight
- InvenSense the 3rd generation IMU ICM42688-P
- 9-60V(3~12S LiPo) wide input voltage and voltage sense. and a 9~16V BEC for DJI OSD or analog VTX.
- 8motors+3servos in INAV/BF multirotor mixer.
- 2x SH1.0_8pin connector for PnP with 2x 4in1 ESC
- 1x SH1.0_6pin connector for PnP with HD System(Caddx Vista & Air Unit)
- USB pin breakout for connecting to external USB adapter.
Specifications
- MCU: STM32F405RGT6
- IMU: ICM42688-P
- OSD: AT7456E, DJI OSD
- Baro: SPL06-001 (I2C)
- Blackbox: 16M-byte Flash memory
- 6x UARTs, 1x Softserial_Tx option
- 12x PWM outputs (8x Dshot)
- 1x I2C
- 4x ADC (VBAT, Current, RSSI, Airspeed)
- 2x PINIO
- 2x SH1.0_8pin connector for 4in1 ESC
- 1x SH1.0_6pin connector for HD System(Caddx Vista & Air Unit)
- 3x LEDs for FC STATUS (Blue, Green) and 3.3V indicator(Red)
- 9~16V(Vxs) output ON/OFF switchable
- Dual analog camera signal switchable
Power
- Input: 9~60V (3~12S LiPo)
- BEC: 5V 1.5A
- BEC: Vx, 9~16V/1~2A (3S IN/9V 2A, 4S IN/12V 2A, 6S IN/16V 2A, 8S IN/16V 1.5A, 12S IN/16V 1A)
- Battery Voltage Sensor: 1K:20K (INAV scale 2100, BF scale 210)
- No Current Sensor built-in, supports external current sensor of PDB/4in1
Firmware
- ArduPilot: MatekF405-TE
- INAV: MATEKF405TE
- BetaFlight: MATEKF405TE
Physical
- Mounting: 30.5 x 30.5mm, Φ4mm with Grommets Φ3mm
- Dimensions: 36 x 36 x 9 mm
- Weight: 7g
Including
- 1x FC F405-HDTE
- 6x Silicon grommets M4 to M3
- 1x SH1.0_8pin cable 5cm, 2x SH1.0_8pin connectors
- 1x SH1.0_6pin to GH1.25_8pin cable for DJI Air Unit (replaced by black SH1.0-6pin to black SH1.0-6pin 12cm cable since Aug 01, 2023)
Layout
Wiring
INAV/BF mapping
INAV/BF MultiRotor | INAV Plane | ||||
PWM | S1 | 5 V tolerant I/O | TIM8_CH4 | Motor | Motor |
S2 | 5 V tolerant I/O | TIM8_CH3 | Motor | Motor | |
S3 | 5 V tolerant I/O | TIM1_CH3N | Motor | Servo | |
S4 | 5 V tolerant I/O | TIM1_CH1 | Motor | Servo | |
S5 | 5 V tolerant I/O | TIM2_CH4 | Motor | Servo | |
S6 | 5 V tolerant I/O | TIM2_CH3 | Motor | Servo | |
S7 | 5 V tolerant I/O | TIM2_CH2 | Motor | Servo | |
S8 | 5 V tolerant I/O | TIM2_CH1 | Motor | Servo | |
S9 | 5 V tolerant I/O | TIM12_CH1 | Servo | Servo | |
S10 | 5 V tolerant I/O | TIM13_CH1 | Servo | Servo | |
S11 | 5 V tolerant I/O | TIM4_CH1 | Servo | Servo | |
LED | 5 V tolerant I/O | TIM3_CH4 | 2812LED | 2812LED | |
ADC | Vbat Pad | 1K:20K divider builtin 0~60V |
Vbat ADC ADC_CHANNEL_1, PC4 |
BF scale 210, INAV scale 2100 | |
Curr pad | 0~3.3V | Current ADC ADC_CHANNEL_2, PC5 |
depends on external current sensor range | ||
RSSI Pad | 0~3.3V | RSSI ADC ADC_CHANNEL_3, PB0 |
Analog RSSI, Spare ADC | ||
ADC Pad | no divider builtin 0~3.3V |
AirS ADC ADC_CHANNEL_4, PC0 |
Analog Airspeed(INAV)
Spare ADC(BF) |
||
I2C | I2C1 | 5V tolerant I/O | Compass | QMC5883 / HMC5883 /IST8310 / IST8308 / MAG3110 / LIS3MDL | |
OLED | 0.96″ | ||||
onboard Barometer | SPL06-001 | ||||
Digital Airspeed sensor | MS4525 (INAV) | ||||
Temperature sensor | |||||
UART 5V tolerant I/O |
USB | USB | |||
TX1 RX1 | 5V tolerant I/O | UART1 | USER | ||
TX3 RX3 | UART3 | USER, ESC Telemetry | |||
TX4 RX4 | UART4 | DJI OSD | |||
TX5 RX5 | UART5 | GPS | |||
TX6 RX6 | UART6 | USER | |||
TX2 RX2 SBUS |
5V tolerant I/O | UART2 | RC input/Receiver | ||
SBUS pad | for SBUS receiver, SBUS pad = RX2+inverter | ||||
RX2 pad | IBUS/DSM/PPM, INAV doesn’t support PPM | ||||
TX2 & RX2 | CRSF | ||||
TX2 pad | SmartPort Telemetry | INAV enable Softserial_Tx1
BF “resource SERIAL_TX 11 A02” |
|||
TX2 pad | FPORT, uninverted S.Port/F.Port signal (hacked) | ||||
TX2 pad | SRXL2 |
ArduPilot mapping
ArduPilot | |||||
PWM 5V tolerant I/O |
S1 | PWM1 GPIO50 | TIM8_CH4 | DMA/DShot | Group1 |
S2 | PWM2 GPIO51 | TIM8_CH3 | DMA/DShot | ||
S3 | PWM3 GPIO52 | TIM1_CH3N | DMA/DShot | Group2 | |
S4 | PWM4 GPIO53 | TIM1_CH1 | DMA/DShot | ||
S5 | PWM5 GPIO54 | TIM2_CH4 | DMA/DShot | Gourp3 | |
S6 | PWM6 GPIO55 | TIM2_CH3 | DMA/DShot | ||
S7 | PWM7 GPIO56 | TIM2_CH2 | DMA/DShot | ||
S8 | PWM8 GPIO57 | TIM2_CH1 | DMA/DShot | ||
S9 | PWM9 GPIO58 | TIM12_CH1 | NO DMA | Gourp4 | |
S10 | PWM10 GPIO59 | TIM13_CH1 | NO DMA | Gourp5 | |
S11 | PWM11 GPIO60 | TIM4_CH1 | NO DMA | Gourp6 | |
LED pad | PWM12 GPIO61 | TIM3_CH4 | DMA/DShot | Gourp7 | |
SERVO12_FUNCTION 120, NTF_LED_TYPES neopixel | |||||
Mixing Dshot and normal PWM operation for outputs is restricted into groups, ie. enabling Dshot for an output in a group requires that ALL outputs in that group be configured and used as Dshot, rather than PWM outputs. If servo and motor are mixed in same group, make sure this group run lowest PWM frequency according to the servo specification. ie. Servo supports Max. 50Hz, ESC must run at 50Hz in this group. |
|||||
ADC | Vbat Pad | 1K:20K divider builtin 0~60V |
on board battery voltage | BATT_VOLT_PIN BATT_VOLT_MULT |
14 21.0 |
Curr pad | 0~3.3V | current sensor ADC | BATT_CURR_PIN BATT_AMP_PERVLT |
15 / |
|
RSSI Pad | 0~3.3V | RSSI ADC Analog RSSI |
RSSI_ANA_PIN RSSI_TYPE |
8 2 |
|
ADC | 0~3.3V | AirS ADC Analog Airspeed |
ARSPD_PIN ARSPD_TYPE |
10 2 |
|
I2C | I2C1 | 5V tolerant I/O | Compass | COMPASS_AUTODEC | 1 |
onboard Baro SPL06-001 | Address | 0x76 | |||
Digital Airspeed I2C MS4525 DLVR-L10D |
ARSPD_BUS ARSPD_TYPE ARSPD_TYPE |
1 1 9 |
|||
UART 5V tolerant I/O |
USB | USB | console | SERIAL0 | |
TX1 RX1 | USART1 | with DMA | telem1 | SERIAL1 | |
TX3 RX3 | USART3 | NO DMA | telem2 | SERIAL2 | |
TX5 RX5 | UART5 | NO DMA | GPS1 | SERIAL3 | |
TX4 RX4 | UART4 | NO DMA | DJI OSD | SERIAL4 | |
TX6 RX6 | USART6 | TX6 with DMA | USER | SERIAL5 | |
TX2 RX2 SBUS |
USART2 | with DMA | RC input/Receiver | SERIAL6 | |
RX2 | IBUS/DSM/PPM | BRD_ALT_CONFIG 0 Default |
|||
Sbs pad | SBUS | ||||
TX2 & RX2 | CRSF | BRD_ALT_CONFIG 1 SERIAL6_PROTOCOL 23 |
SERIAL6_OPTIONS 0 | ||
TX2 | uninverted FPort (hacked) | SERIAL6_OPTIONS 4 | |||
TX2 | SRXL2 | SERIAL6_OPTIONS 4 |
- If sending highspeed serial data (eg. 921600 baud) to the board, use USART1(Serial1) or USART2(Serial6).
Frsky Smartport Telemetry
- non-inverted (hacked) S.Port signal
- any spare Uart_TX
- SERIALx_BAUD 57
- SERIALx_OPTIONS 7
- SERIALx_PROTOCOL 4 or 10(for yaapu)
DJI FPV OSD (ArduPilot 4.1)
https://ardupilot.org/plane/docs/common-msp-osd-overview.html
- OSD_TYPE = 3
- SERIAL4_PROTOCOL = 33
- MSP_OPTIONS = 0 (polling mode)
Relay(PINIO)
- PINIO_1, “Vxs” ON by default
- PINIO_2, Camera input switch, C1 by default
# GPIOs
- PA4 PINIO1 OUTPUT GPIO(81) LOW //”Vxs” power switch
- PB5 PINIO2 OUTPUT GPIO(82) LOW //Camera input switch
# RCx_OPTION: RC input option
- 28 Relay On/Off
- 34 Relay2 On/Off
- 35 Relay3 On/Off
- 36 Relay4 On/Off
e.g.
- RELAY_PIN 81 //”Vxs” power switch PINIO
- RC7_OPTION 28 //Relay On/Off, Use CH7 of Transmitter to control Vxs ON/OFF
- RELAY_PIN2 82 //Camera input switch PINIO
- RC8_OPTION 34 //Relay2 On/Off, Use CH8 of Transmitter to control C1 or C2 input
The configured feature will be triggered when the auxiliary switch’s pwm value becomes higher than 1800. It will be deactivated when the value falls below 1200.
Check the pwm value sent from the transmitter when the switch is high and low using the Mission Planner’s Initial Setup >> Mandatory Hardware >> Radio Calibration screen. If it does not climb higher than 1800 or lower than 1200, it is best to adjust the servo end points in the transmitter.
Tips
- F405-HDTE has INAV fw preloaded for QC
ArduPilot
- Support musical tone alarm with 5V passive buzzer
- Download latest ArduPilot firmware from HERE.
INAV
- With INAV firmware, DSHOT can not work on S3, S5,S7 because of DMA clash, pls use ONESHOT or MULTISHOT and calibrate ESC PWM range. This DMA clash will be fixed from INAV 7.x.x.
- Support 5V passive buzzer
BetaFlight
- If using 5V passive buzzer, CLI “set beeper_frequency = 2500”
- MATEKF405TE target was supported since BF4.3 RC3.
- set dshot_bitbang = ON when using X6 and X8 DSHOT,
- You may download BF 4.3 directly from BF configurator, BF 4.2.x from our website (click “Firmwares” button at upper right corner)
- Barometer SPL06-001 is not supported by Betaflight.
Resellers