diff --git a/libraries/AP_HAL_ChibiOS/hwdef/KakuteH7Miniv2/README.md b/libraries/AP_HAL_ChibiOS/hwdef/KakuteH7Miniv2/README.md index ed9cb8a855..626a7ea569 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/KakuteH7Miniv2/README.md +++ b/libraries/AP_HAL_ChibiOS/hwdef/KakuteH7Miniv2/README.md @@ -1,14 +1,14 @@ -# KakuteH7Mini Flight Controller +# KakuteH7Mini v2 Flight Controller -The KakuteH7Mini is a flight controller produced by [Holybro](http://www.holybro.com/). +The KakuteH7Mini v2 is a flight controller produced by [Holybro](http://www.holybro.com/). ## Features - MCU - STM32H743 32-bit processor running at 480 MHz - - IMU - MPU6000 + - IMU - BMI270 - Barometer - BMP280 - OSD - AT7456E - - Onboard Flash: 128Mbits + - Onboard Flash: 1GBit - 6x UARTs (1,2,3,4,6,7) - 9x PWM Outputs (8 Motor Output, 1 LED) - Battery input voltage: 2S-6S @@ -16,7 +16,7 @@ The KakuteH7Mini is a flight controller produced by [Holybro](http://www.holybro ## Pinout -![KakuteH7Mini Board](KakuteH7Mini_Board.jpg "KakuteH7Mini") +![KakuteH7Mini v2 Board](../KakuteH7Mini/KakuteH7Mini_Board.jpg "KakuteH7Mini v2") ## UART Mapping @@ -35,9 +35,9 @@ receive pin for UARTn. The Tn pin is the transmit pin for UARTn. ## RC Input RC input is configured on the R6 (UART6_RX) pin. It supports all serial RC -protocols. For protocols requiring half-duplex serial to transmit -telemetry (such as FPort) you should setup SERIAL6 as an RC input serial port, -with half-duplex, pin-swap and inversion enabled. +protocols except PPM. For protocols requiring half-duplex serial to transmit +telemetry (such as FPort) you should setup SERIAL6 with half-duplex, pin-swap +and inversion enabled. ## FrSky Telemetry @@ -48,11 +48,11 @@ FrSky Telemetry is supported using the T6 pin (UART6 transmit). You need to set ## OSD Support -The KakuteH7Mini supports OSD using OSD_TYPE 1 (MAX7456 driver). +The KakuteH7Mini v2 supports OSD using OSD_TYPE 1 (MAX7456 driver). ## PWM Output -The KakuteH7Mini supports up to 9 PWM outputs. The pads for motor output +The KakuteH7Mini v2 supports up to 9 PWM outputs. The pads for motor output M1 to M4 on the motor connectors and M5 to M8 on separate pads, plus M9 for LED strip or another PWM output. @@ -70,7 +70,7 @@ to use DShot. Channels 1-4 support bi-directional dshot. ## Battery Monitoring -The board has a builting voltage and current sensor. The current +The board has a builtin voltage and current sensor. The current sensor can read up to 130 Amps. The voltage sensor can handle up to 6S LiPo batteries. @@ -84,7 +84,7 @@ The correct battery setting parameters are: ## Compass -The KakuteH7Mini does not have a builtin compass, but you can attach an external compass using I2C on the SDA and SCL pads. +The KakuteH7Mini v2 does not have a builtin compass, but you can attach an external compass using I2C on the SDA and SCL pads. ## Loading Firmware diff --git a/libraries/AP_HAL_ChibiOS/hwdef/KakuteH7v2/README.md b/libraries/AP_HAL_ChibiOS/hwdef/KakuteH7v2/README.md new file mode 100644 index 0000000000..45610569ce --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/KakuteH7v2/README.md @@ -0,0 +1,102 @@ +# KakuteH7 v2 Flight Controller + +The KakuteH7 v2 is a flight controller produced by [Holybro](http://www.holybro.com/). + +## Features + + - STM32H743 microcontroller + - BMI270 IMU + - BMP280 barometer + - Onboard Flash: 1GBit + - AT7456E OSD + - 6 UARTs + - 9 PWM outputs + +## Pinout + +![KakuteH7 v2 Board](../KakuteH7/Kakkute_H7_Board_Top__Bottom2.jpg "KakuteH7 v2") +![KakuteH7 v2 Board](../KakuteH7/Kakkute_H7_Board_Top__Bottom3.jpg "KakuteH7 v2") + +## UART Mapping + +The UARTs are marked Rn and Tn in the above pinouts. The Rn pin is the +receive pin for UARTn. The Tn pin is the transmit pin for UARTn. + + - SERIAL0 -> USB + - SERIAL1 -> UART1 (DJI-RX, DMA-enabled) + - SERIAL2 -> UART2 (Telem2, DMA-enabled) (connected to internal BT module) + - SERIAL3 -> UART3 (VTX) + - SERIAL4 -> UART4 (GPS, DMA-enabled) + - SERIAL5 -> not available + - SERIAL6 -> UART6 (RX, DMA-enabled) + - SERIAL7 -> UART7 (ESC Telemetry) + +## RC Input + +RC input is configured on the R6 (UART6_RX) pin. It supports all RC +protocols except PPM. For protocols requiring half-duplex serial to transmit +telemetry (such as FPort) you should configure SERIAL6 with half-duplex, pin-swap +and inversion enabled. + +## FrSky Telemetry + +FrSky Telemetry is supported using the Tx pin of any UART including SERIAL6/UART6 . You need to set the following parameters to enable support for FrSky S.PORT (example shows SERIAL6). + + - SERIAL6_PROTOCOL 10 + - SERIAL6_OPTIONS 7 + +## OSD Support + +The KakuteH7 v2 supports OSD using OSD_TYPE 1 (MAX7456 driver). + +## VTX Support + +The JST-GH-6P connector supports a standard DJI HD VTX connection. Pin 1 of the connector is 9v so be careful not to connect +this to a peripheral requiring 5v. The 9v supply is controlled by RELAY_PIN2 and is on by default. It can be configured to be operated by an RC switch by selecting the function RELAY2. + +## PWM Output + +The KakuteH7 supports up to 9 PWM outputs. The pads for motor output +M1 to M8 on the two motor connectors, plus M9 for LED strip or another +PWM output. + +The PWM is in 5 groups: + + - PWM 1, 2 in group1 + - PWM 3, 4 in group2 + - PWM 5, 6 in group3 + - PWM 7, 8 in group4 + - PWM 9 in group5 + +Channels within the same group need to use the same output rate. If +any channel in a group uses DShot then all channels in the group need +to use DShot. Channels 1-8 support bi-directional DShot. + +## Battery Monitoring + +The board has a builtin voltage and current sensor. The current +sensor can read up to 130 Amps. The voltage sensor can handle up to 6S +LiPo batteries. + +The correct battery setting parameters are: + + - BATT_MONITOR 4 + - BATT_VOLT_PIN 10 + - BATT_CURR_PIN 11 + - BATT_VOLT_MULT 10.1 + - BATT_AMP_PERVLT 17.0 + +## Compass + +The KakuteH7 v2 does not have a builtin compass, but you can attach an external compass using I2C on the SDA and SCL pads. + +## Loading Firmware + +Initial firmware load can be done with DFU by plugging in USB with the +bootloader button pressed. Then you should load the "with_bl.hex" +firmware, using your favourite DFU loading tool. + +Once the initial firmware is loaded you can update the firmware using +any ArduPilot ground station software. Updates should be done with the +*.apj firmware files. + diff --git a/libraries/AP_HAL_ChibiOS/hwdef/KakuteH7v2/defaults.parm b/libraries/AP_HAL_ChibiOS/hwdef/KakuteH7v2/defaults.parm new file mode 100644 index 0000000000..387d905a21 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/KakuteH7v2/defaults.parm @@ -0,0 +1,6 @@ +# setup for LEDs on chan9 +SERVO9_FUNCTION 120 +NTF_LED_TYPES 257 +# Default VTX power to on +RELAY_DEFAULT 1 +SERIAL7_PROTOCOL 16 \ No newline at end of file diff --git a/libraries/AP_HAL_ChibiOS/hwdef/KakuteH7v2/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/KakuteH7v2/hwdef-bl.dat new file mode 100644 index 0000000000..ca591a491e --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/KakuteH7v2/hwdef-bl.dat @@ -0,0 +1,4 @@ +include ../KakuteH7-bdshot/hwdef-bl.dat + +## pull up VTX power +PB11 VTX_PWR OUTPUT HIGH GPIO(81) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/KakuteH7v2/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/KakuteH7v2/hwdef.dat new file mode 100644 index 0000000000..1d31b70a7b --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/KakuteH7v2/hwdef.dat @@ -0,0 +1,57 @@ +# KakuteH7 v2 with flash chip for logging + +include ../KakuteH7-bdshot/hwdef.dat + +undef sdcard +undef icm20689 +undef IMU +undef HAL_OS_FATFS_IO +undef HAL_BOARD_LOG_DIRECTORY +undef HAL_BOARD_TERRAIN_DIRECTORY +undef PA3 PA0 PA2 PC8 PC9 PD8 PD9 PD0 PD1 PC6 PC7 PE7 PE8 + +MCU_CLOCKRATE_MHZ 480 + +# Holybro documentation: +# UART6 - RX +# UART1 - DJI RX +# UART4 - GPS +# UART3 - VTX + +# USART3 (VTX) +PD8 USART3_TX USART3 NODMA +PD9 USART3_RX USART3 NODMA + +# UART4 (GPS) +PD0 UART4_RX UART4 +PD1 UART4_TX UART4 + +# UART6 (RX) +PC7 USART6_RX USART6 +PC6 USART6_TX USART6 + +# UART7 (ESC Telemetry) +PE7 UART7_RX UART7 NODMA +PE8 UART7_TX UART7 NODMA + +PA0 TIM5_CH1 TIM5 PWM(5) GPIO(54) BIDIR +PA2 TIM5_CH3 TIM5 PWM(6) GPIO(55) BIDIR +PC8 TIM8_CH3 TIM8 PWM(7) GPIO(56) BIDIR +PC9 TIM8_CH4 TIM8 PWM(8) GPIO(57) + +# VTX Power control - should be high at startup to ensure power +PB11 VTX_PWR OUTPUT HIGH GPIO(81) +define RELAY2_PIN_DEFAULT 81 + +SPIDEV dataflash SPI1 DEVID1 SDCARD_CS MODE3 104*MHZ 104*MHZ +SPIDEV bmi270 SPI4 DEVID1 ICM20689_CS MODE3 1*MHZ 4*MHZ + +IMU BMI270 SPI:bmi270 ROTATION_ROLL_180 + +DMA_PRIORITY TIM3* TIM2* TIM5* TIM8* +DMA_NOSHARE *UP + +# Motor order implies Betaflight/X for standard ESCs +define HAL_FRAME_TYPE_DEFAULT 12 +define HAL_LOGGING_DATAFLASH_ENABLED 1 +define HAL_LOGGING_DATAFLASH_DRIVER AP_Logger_W25N01GV