# hwdef for bootloader for CubeYellow

# MCU class and specific type
MCU STM32F7xx STM32F777xx

# crystal frequency
OSCILLATOR_HZ 24000000

# board ID for firmware load
APJ_BOARD_ID 120

# flash size
FLASH_SIZE_KB 2048

# USB setup
USB_VENDOR 0x2DAE # ONLY FOR USE BY ProfiCNC / HEX! NOBODY ELSE
USB_PRODUCT 0x1002
USB_STRING_MANUFACTURER "Hex/ProfiCNC"

# order of UARTs (and USB)
SERIAL_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

# Pin for PWM Voltage Selection
PB4 PWM_VOLT_SEL OUTPUT HIGH

# 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

# Add CS pins to ensure they are high in bootloader
PC1 MAG_CS CS
PC2 MPU_CS CS
PC13 GYRO_EXT_CS CS
PC14 BARO_EXT_CS CS
PC15 ACCEL_EXT_CS CS
PD7 BARO_CS CS
PE4 MPU_EXT_CS CS
PD10 FRAM_CS CS SPEED_VERYLOW
