Flight Controller F405-TE
STM32F405RGT6, ICM42688P, SPL06, OSD, SD slot, 6x UARTs, 1x I2C, 11x PWM outputs
Tips
INAV, 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.
BetaFlight, set dshot_bitbang = ON when using X6 and X8 DSHOT.
BetaFlight, Target name was renamed as MatekF405TE_SD
ArduPilot, set LOG_BACKEND_TYPE = 1 (File) for SD card logging
Specifications
- MCU: 168MHz STM32F405RGT6
- IMU: ICM42688-P (SPI)
- Baro: SPL06-001 (I2C)
- OSD: AT7456E (SPI)
- Blackbox: MicroSD slot (SPI)
- 6x UARTs, 1x Softserial_Tx option(INAV/BF)
- 11x PWM outputs (8x Dshot compatible with BF/ArduPilot)
- 1x I2C
- 4x ADC (VBAT, Current, RSSI, Airspeed)
- 1x spare PINIO
- 4x individual ESC power/signal pads
- 1x Group of G/S1/S2/S3/S4 pads for 4in1 ESC Signal/GND
- Built in inverter on UART2-RX for SBUS input
- Switchable Dual Camera Input
PDB Specifications
- Input: 9~36V (3~8S LiPo)
- PDB: 4x 35A (Max.4x 50A)
- BEC: 5V 1.5A
- BEC: 12V 2A
- LDO 3.3V: 200mA
- Current Senor: 220A, 3.3V ADC (INAV/BF scale 150, ArduPilot 66.7 A/V)
- Battery Voltage divider 1K:20K (INAV scale 2100, BF scale 210, ArduPilot BATT_VOLT_MULT 21.0)
Firmware
- ArduPilot: MatekF405-TE
- INAV: MATEKF405TE_SD
- BetaFlight: MATEKF405TE_SD
Physical
- Mounting: 30.5 x 30.5mm, Φ4mm with Grommets Φ3mm
- Dimensions: 36 x 46 mm
- Weight: 10g
Including
- 1x F405-TE
- 6x silicon grommets M4 to M3
- 1x Rubycon ZLH 35V/470uF (Low ESR)
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 | |
– | – | – | – | – | |
LED | 5 V tolerant I/O | TIM3_CH4 | 2812LED | 2812LED | |
ADC | Vbat Pad | 1K:20K divider builtin 9~36V |
Vbat ADC ADC_CHANNEL_1, PC4 |
BF scale 210, INAV scale 2100, Ardu | |
Curr pad | 0~3.3V | Current ADC ADC_CHANNEL_2, PC5 |
scale 150 | ||
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 | |||
TX4 RX4 | UART4 | USER | |||
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 | |||||
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 | |
– | – | – | – | – | |
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 | on board current sensor | BATT_CURR_PIN BATT_AMP_PERVLT |
15 66.7 |
|
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 | USER | 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 |
- “Internal errors 0x4000 l:213 spi_fail” warining, pls set LOG_BACKEND_TYPE = 1 (File) for SD card logging.
- 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)
- PINIO1, PIO1 pad, Low Level by default
- PINIO2, Camera switch, C1 ON by default
# GPIOs
- PA4 PINIO1 OUTPUT GPIO(81) LOW //PIO1 pad
- PB5 PINIO2 OUTPUT GPIO(82) LOW //camera 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 //PIO1 GPIO
- RC7_OPTION 28 //Relay On/Off, Use CH7 of Transmitter to control PIO1 Low/High Level
- RELAY_PIN2 82 //Camera switch GPIO
- RC8_OPTION 34 //Relay2 On/Off, Use CH8 of Transmitter to control high/low level on PB5 pad
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.
- F405-TE has INAV fw preloaded for QC
- set BLHeli32 ESC PWM rate to 48KHz or higher in BLHeliSuite
ArduPilot
- ArduPilot fw, “Internal errors 0x4000 l:213 spi_fail” warining, pls set LOG_BACKEND_TYPE = 1 (File) for SD card logging.
- Download 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.
- Download INAV firmware 4.1.x from our website. INAV5.x or newer directly from INAV configurator
BetaFlight
- If using 5V passive buzzer, CLI “set beeper_frequency = 2500”
- MATEKF405TE_SD target was supported since BF4.4.
- 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.