# hwdef for bootloader for mRoX21-777

# The X2.1-777 is a member of the X2.1 flight controller from Mayan Robotics (mRo) www.mrobotics.io
# Introduced in October 2018
# Designed by Nikolay Arsov, Phillip Kocmoud, and Jordi Munoz
# with a STM32F777VIT6 MCU
# and STM32F103C8T6 IO MCU

# MCU class and specific type
MCU STM32F7xx STM32F777xx

# crystal frequency
OSCILLATOR_HZ 24000000

define STM32_LSECLK 32768U
define STM32_LSEDRV (3U << 3U)
define STM32_PLLSRC STM32_PLLSRC_HSE
define STM32_PLLM_VALUE 24
define STM32_PLLN_VALUE 432
define STM32_PLLP_VALUE 2
define STM32_PLLQ_VALUE 9

# board ID for firmware load
APJ_BOARD_ID 136

# board voltage
STM32_VDD 330U

# flash size
FLASH_SIZE_KB 2048

# USB setup
USB_VENDOR 0x0483 # ST
USB_PRODUCT 0x5740
USB_STRING_MANUFACTURER "mRo"
USB_STRING_PRODUCT "X2.1-777"
USB_STRING_SERIAL  "%SERIAL%"

# order of UARTs (and USB)
UART_ORDER OTG1 USART2 USART3 UART7

PD5 USART2_TX USART2
PD6 USART2_RX USART2
PD3 USART2_CTS USART2
PD4 USART2_RTS USART2

# the telem2 USART, also with RTS/CTS available
# USART3 serial3 telem2
PD8 USART3_TX USART3
PD9 USART3_RX USART3
PD11 USART3_CTS USART3
PD12 USART3_RTS USART3

PE7 UART7_RX UART7
PE8 UART7_TX UART7

# define a LED
PE12 LED_BOOTLOADER OUTPUT
define HAL_LED_ON 1

# now we define the pins that USB is connected on
PA11 OTG_FS_DM OTG1
PA12 OTG_FS_DP OTG1

# these are the pins for SWD debugging with a STlinkv2 or black-magic probe
PA13 JTMS-SWDIO SWD
PA14 JTCK-SWCLK SWD

# no reserved flash for bootloader
FLASH_RESERVE_START_KB 0

# start on 4th sector (1st sector for bootloader, 2 for extra storage)
FLASH_BOOTLOADER_LOAD_KB 96

define HAL_USE_EMPTY_STORAGE 1
define HAL_STORAGE_SIZE 16384

