# MCU class and specific type
MCU STM32F4xx STM32F427xx

# USB setup
USB_VENDOR 0x35a7 # ONLY FOR USE BY ThePeach
USB_PRODUCT 0x0002
USB_STRING_MANUFACTURER "ThePeach"
USB_STRING_PRODUCT "FCC-R1 BL"

# board ID for firmware load
APJ_BOARD_ID 213

# crystal frequency
OSCILLATOR_HZ 24000000

# ChibiOS system timer
STM32_ST_USE_TIMER 5

# flash size
FLASH_SIZE_KB 2048

# location of application code
FLASH_BOOTLOADER_LOAD_KB 16

# bootloader loads at start of flash
FLASH_RESERVE_START_KB 0

# USB setup
USB_STRING_MANUFACTURER "ArduPilot"

# baudrate to run bootloader at on uarts
define BOOTLOADER_BAUDRATE 115200

# uarts and USB to run bootloader protocol on
SERIAL_ORDER OTG1 USART2 USART3 UART7

# this is the pin that senses USB being connected. It is an input pin
# setup as OPENDRAIN
PA9 VBUS INPUT OPENDRAIN

# 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

# Another USART, this one for telem1
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

# UART7 maps to uartF in the HAL (serial5 in SERIALn_ parameters)
PE7 UART7_RX UART7
PE8 UART7_TX UART7

# define a LED
PE12 LED_BOOTLOADER OUTPUT
define HAL_LED_ON 1

# this adds a C define which sets up the ArduPilot architecture
# define. Any line starting with 'define' is copied literally as
# a #define in the hwdef.h header
define HAL_CHIBIOS_ARCH_FMUV3 1

# we need to tell HAL_ChibiOS/Storage.cpp how much storage is
# available (in bytes)

# Add CS pins to ensure they are high in bootloader
PC2 MPU9250_CS CS
PC15 ICM20602_CS CS
PD7 MS5611_CS CS
PD10 FRAM_CS CS SPEED_VERYLOW

# default to all pins low to avoid ESD issues
DEFAULTGPIO OUTPUT LOW PULLDOWN