Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SkySakura H743 fc Support #28094

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 105 additions & 0 deletions libraries/AP_HAL_ChibiOS/hwdef/SkySakuraH743/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# SkySakura H743 Flight Controller

The SkySakura H743 is a flight controller produced by [SkySakuraRC]

## Features

- MCU: STM32H743VIT6, 480MHz
- Gyro1: ICM42688
- Gyro2: IIM42652
- SD Card support
- BEC output: 5V 5A & 12V 5A (MAX 60W total)
- Barometer1: DPS310
- Barometer2: ICP20100
- Magnometer: IST8310
- CAN bus support
- 7 UARTS: (USART1, USART2, USART3, UART4, USART6, UART7 with flow control, UART8)
- 2 I2C, I2C1 is used internally.
- 13 PWM outputs (12 motor outputs, and 1 led)
- 4-12s wide voltage support

## Pinout

![SkySakura H743 Board](SkySakuraH743.png "SkySakura H743")

## 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.
|Name|Pin|Function|
|:-|:-|:-|
|SERIAL0|COMPUTER|USB|
|SERIAL1|RX7/TX7|UART7 (MAVLink2, flow-control-capable)|
|SERIAL2|TX1/RX1|UART1 (MAVLink2, DMA-enabled)|
|SERIAL3|TX2/RX2|UART2 (SPARE, DMA-enabled)|
|SERIAL4|TX3/RX3|UART3 (GPS1, DMA-enabled)|
|SERIAL5|TX4/RX4|UART4 (RCIN, DMA-enabled)|
|SERIAL6|TX6/RX6|UART6 (VTX, DMA-enabled)|
|SERIAL7|TX8/RX8|UART8 (ESC-Telemetry)|

## Safety Button
SkySakura H743 supports safety button, with connection to sh1.0 6 pin connector, with buzzer and safety led on the same connector.
Safety button is default to be disabled and can be enabled by setting the following parameter:
- BRD_SAFETY_DEFLT 1

## RC Input

RC input is configured on the on UART4 with sh1.0 connector. It supports all serial RC protocols. DJI sbus needs solder connection for the solder pad and are connected to UART4, inversion for UART4 needs to be configured.

## OSD Support

SkySakura H743 only supports HD OSD through uart connection. However, external spi is provided and an external AT7456E can be connected to enable analog OSD.

## PWM Output

The SkySakura H743 has 13 PWM outputs. M1-M8 are linked to sh1.0 8 pin connectors. All 8 outputs support bi-directional DShot and DShot. Output 9-13 support normal Dshot and 13 is configured as LED.

The PWM are in in two groups:

- PWM 1-2 in group1
- PWM 3-4 in group2
- PWM 5-6 in group3
- PWM 7-8 in group4
- PWM 9-12 in group5
- PWM 13 in group6

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.

## Battery Monitoring

The board has a builtin voltage sensor. The voltage sensor can handle up to 12S LiPo batteries. Current sensor and BATT2 moniter is present.
BATT2 voltage input is 6.6V capable, voltage divider resistor is 10k/10k so maximum input on batt2 pad is 13.2V.
ADC3 pad is BATT2 current input, ADC4 pad is BATT2 voltage input.

The correct battery setting parameters are:

- BATT_MONITOR 4
- BATT_VOLT_PIN 10
- BATT_VOLT_MULT 34
- BATT_CURR_PIN 11
- BATT2_MONITOR 4
- BATT2_VOLT_PIN 12
- BATT2_CURR_PIN 13
- BATT2_VOLT_MULT 10

These are set by default in the firmware and shouldn't need to be adjusted

## Compass

The SkySakura H743 have a builtin IST8310 compass.

## NeoPixel LED

PWM13 provides external NeoPixel LED support.

## 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.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
23 changes: 23 additions & 0 deletions libraries/AP_HAL_ChibiOS/hwdef/SkySakuraH743/defaults.parm
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# SERIAL1 is MAVLink2 by default
SERIAL1_PROTOCOL 2
SERIAL1_BAUD 57
# SERIAL2 is MAVLink2 by default
SERIAL2_PROTOCOL 2
SERIAL2_BAUD 57
# SERIAL4 is GPS by default
SERIAL4_PROTOCOL 5
SERIAL4_BAUD 230
# SERIAL5 is ESC-telemetry by default
SERIAL5_PROTOCOL 23
SERIAL5_BAUD 115
# SERIAL6 is VTX-DisplayPort by default
SERIAL6_PROTOCOL 42
SERIAL6_BAUD 115
# SERIAL7 is ESC-telemetry by default
SERIAL7_PROTOCOL 16
SERIAL7_BAUD 115
# Disable safety button by default
BRD_SAFETY_DEFLT 0
# Default FRAME
FRAME_CLASS 1
FRAME_TYPE 12
52 changes: 52 additions & 0 deletions libraries/AP_HAL_ChibiOS/hwdef/SkySakuraH743/hwdef-bl.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# hw definition file for processing by chibios_pins.py
# for SakuraH743 bootloader

# MCU class and specific type
MCU STM32H7xx STM32H743xx

# board ID for firmware load
APJ_BOARD_ID 2714

# USB setup
USB_STRING_MANUFACTURER "SkySakura"

# crystal frequency, setup to use external oscillator
OSCILLATOR_HZ 8000000

FLASH_SIZE_KB 2048

# bootloader starts at zero offset
FLASH_RESERVE_START_KB 0

# the location where the bootloader will put the firmware
# the H743 has 128k sectors
FLASH_BOOTLOADER_LOAD_KB 128


# order of UARTs (and USB). Allow bootloading on USB and telem1
SERIAL_ORDER OTG1 UART7

# UART7 (telem1)
PE7 UART7_RX UART7
PE8 UART7_TX UART7
PE10 UART7_CTS UART7
PE9 UART7_RTS UART7

# PA10 IO-debug-console
PA11 OTG_FS_DM OTG1
PA12 OTG_FS_DP OTG1

PA13 JTMS-SWDIO SWD
PA14 JTCK-SWCLK SWD

# make sure Vsw is on during bootloader
PE15 PINIO1 OUTPUT HIGH

PB5 LED_BOOTLOADER OUTPUT LOW
define HAL_LED_ON 0

# Add CS pins to ensure they are high in bootloader
PA4 IMU1_CS CS
PE11 IMU2_CS CS
PC5 BARO2_CS CS
PB12 EXT_CS CS
Loading
Loading